HTTP czy HTTPS?

Wszystko zaczęło się od tego, że Wampiryczny blog zmienił sposób dostępu, wymuszając HTTPS. Skomentowałem pół żartem, pół serio. Dostałem odpowiedź w komentarzu, przeczytałem i trochę mi się włos zjeżył na głowie. Bo zdecydowanie o zużyciu energii ktoś nie pomyślał. Jak jestem zwolennikiem udostępniania treści po HTTPS i bardzo sobie ostrzę zęby na projekt letsencrypt.org, tak uważam, że wybór powinien być po stronie odbiorcy, a jedynie miejsca, gdzie są przesyłane wrażliwe dane (np. hasła) powinny mieć wymuszony HTTPS.

Postanowiłem zrobić mały test, czyli pobrać stronę po HTTP i zobaczyć, ile zostało pobranych bajtów (i w jakim czasie), a następnie to samo dla HTTPS. Jako system został użyty base system Debiana, uruchomiony w wirtualce (KVM), uruchomionej na laptopie. Jako stronę serwującą dokładnie to samo po HTTP i HTTPS dobrzy ludzie podrzucili stronę OVH. Google.com na ten przykład serwowało wgetowi nieidentyczną zawartość.

HTTP

$ ifconfig eth0 | grep "RX bytes" ; time for NUM in {1..20}; do wget --no-check-certificate -qO - http://ovh.pl/ >> out_http.txt; done ; ifconfig eth0 | grep "RX bytes"RX bytes:11251203 (10.7 MiB)  TX bytes:495042 (483.4 KiB)real    0m9.471suser    0m0.000ssys     0m0.772sRX bytes:14173253 (13.5 MiB)  TX bytes:583042 (569.3 KiB)

Jak widać wysłano 88000 bajtów, odebrano 2922050.

HTTPS

$ ifconfig eth0 | grep "RX bytes" ; time for NUM in {1..20}; do wget --no-check-certificate -qO - https://ovh.pl/ >> out_https.txt; done ; ifconfig eth0 | grep "RX bytes"RX bytes:14173313 (13.5 MiB)  TX bytes:583102 (569.4 KiB)real    0m13.938suser    0m0.000ssys     0m0.904sRX bytes:17387531 (16.5 MiB)  TX bytes:739702 (722.3 KiB)

Z kolei tutaj wysłano 156600 bajtów, a odebrano 3214218.

Podsumowując: HTTPS w tym teście był wolniejszy o 46%, przy korzystaniu z niego wysłane zostało o 78% więcej danych, a odebrano o blisko 10% więcej danych. Efekt, czyli pobrana zawartość jest dokładnie taka sama. Oczywiście ww. narzut procentowy będzie się różnił w zależności od rozmiaru pliku wynikowego, ale jak widać narzuty są spore.

Do prędkości bym się zbytnio nie przywiązywał, bo o ile za brak ruchu na wirtualce ręczę, to na lapku różne rzeczy się dzieją, choć generalnie idluje, a sam lapek zapięty po wifi. Niemniej, pomiarów było kilka, także dla mojej strony ze stanem rowerów na stacjach Nextbike. Wyniki podobne – wolniej i więcej przesłanych danych po HTTPS.

Dlatego przerażają mnie zmiany planowane zmiany w Chromium powodujące, że strony po odwiedzane po HTTP będą oznaczone jako niezaufane. Podobnie robi Mozilla. Rozumiem, że jeśli wysyłamy dane, zwł. z kamery czy mikrofonu, ba, jeśli cokolwiek wprowadzamy na stronie czy wysyłamy pliki. Ale sam odbiór? Trochę przesada. Tym bardziej, że istnieją narzędzia, do wymuszania HTTPS, jeśli ktoś ma taką potrzebę – choćby HTTPS Everywhere.

Zupełnie nie rozumiem podejścia Google do wykorzystania HTTPS jako sygnału rankingowego. Zdobycie certyfikatu nie jest problemem, a jak ruszy Let’s Encrypt, to już w ogóle. Znaczy rozumiem ideę, ale do sprawdzenia autentyczności, wystarczyłoby np. pobierać po HTTPS sitemap.xml. Czy tam robots.txt. Czy stronę główną.

Trochę zastanawiam się, po co ta nagonka. I mam wrażenie, że nie tyle o bezpieczeństwo chodzi (dobry pretekst, fakt), a o pieniądze. O ile certyfikaty tanieją i będą za darmo (ale czy wszystkie?), o tyle pewnie jest to pretekst do kolejnego wzrostu narzutu na ruch, nowych usług (terminowanie SSL na proxy czy CDN), wymiany pudełek itp. Nawiasem, jest nawet strona zachwalająca, jaki to TSL jest szybki, na współczesnych procesorach i nowym oprogramowaniu. Tyle, że nie. Ale nie omieszkam sprawdzić (na najnowszym Debianie), jak tylko Let’s Encrypt ruszy…

Zachęcam do polemiki. Polecenia podałem wyżej, można samemu sprawdzić, podać kontrprzykłady, pochwalić się konfiguracją z minimalnym narzutem na wersję szyfrowaną.

UPDATE: Poprawione polecenia (było dwa razy HTTP, zamiast raz HTTP i raz HTTPS). Bug przy przeklejaniu, wyniki są i były prawidłowe. W sumie jestem rozczarowany, że tak długo nikt tego nie zauważył.

Ja, spamer (rzekomy)

Maila dostałem. Od jednego z moich dostawców poczty. Alert bezpieczeństwa! Ciekawie wyglądały już nagłówki:

Subject: Alert bezpieczeństwa! Ryzyko przejęcia konta
From: Poczta

Ludzie zajmujący się security śmiechnęli, że śmierdzi fake. Też mi to przeszło przez głowę, ale w dzisiejszych czasach nieustannie trzeba zachowywać czujność. Nieustannie! 😉

Drogi Użytkowniku,

Otrzymujesz od nas tę wiadomość ponieważ istnieje uzasadniona obawa, że Twój komputer jest zainfekowany przez wirusa/trojana.
Przypuszczamy że wirus/trojan przejął kontrolę nad Twoją skrzynką mailową i wysyła SPAM w Twoim imieniu.

W związku z powyższym prosimy o wykonanie wskazanych czynności:

 1. Należy niezwłocznie przeskanować  komputer programem antywirusowym
 2. Następnie dokonać zmiany hasła do konta pocztowego na stronie: https://konto.onet.pl/update-password.html.
 3. Po zmianie hasła, należy wylogować się z konta, a następnie zalogować ponownie na stronie https://poczta.onet.pl.
 4. Po zalogowaniu prosimy o wysłanie wiadomości mailowej na adres blokadaskrzynki@grupaonet.pl z potwierdzeniem wykonania powyższych kroków.

Do chwili wykonania wszystkich wymienionych czynności mogą występować problemy z wysyłką wiadomości.

Przypominamy, że ze względów bezpieczeństwa Grupa Onet.pl SA nigdy nie prosi o podawanie lub potwierdzanie haseł oraz nie umieszcza w wysyłanych e-mailach odsyłaczy do stron, na których hasło można zmienić.

Hasła nie wolno nikomu ujawniać. Nie należy odpowiadać na e-maile lub telefony z prośbami o podanie hasła. W przypadku otrzymania e-maila zawierającego podobne prośby, prosimy ten fakt zgłosić pod adresem abuse@onet.pl lub dzwonić na numery: 0 801 080 200 lub 012 26 00 200 (poniedziałek-piątek, 7:00-23:00; sobota-niedziela, 10:00-18:00). Polecamy nasze porady na temat bezpieczeństwa: http://pomoc.onet.pl/46,1120,przewodnik.html

Uprzejmie tłumaczę, że Linux, silne hasło, szyfrowane protokoły i raczej false positive, bo dostałem dziwny komunikat przy wysyłce maila do SpamCopa, więc niczego skanować nie będę ot tak, tylko dajcie najpierw logi i przede wszystkim odblokujcie konto.

Otrzymałem dziś odpowiedź:

Witamy,

Dziękujemy za list.

Przekazywane przez Pana wiadomości (raporty)  to był spam, dlatego też nasz system antyspamowy zareagował zablokowaniem kanału smtp oraz wysłaniem powiadomienia.

W tym przypadku nie ma konieczności wykonania opisanych w Alercie bezpieczeństwa czynności.

I w zasadzie chyba powinienem im teraz wytłumaczyć, że to nie był spam, tylko legalna wiadomość (nadawca zamawiał!). Że można, ba, powinno się traktować inaczej maile, które całą treść mają w załączniku eml. No i pewnie że przydała by się whitelista na spamcop.net. Ale nie sądzę, by zrozumieli. Gdyby rozumieli, że zjepsuli, to w treści pojawiłoby się przecież słowo przepraszam. Pozostaje odezwać się do SpamCopa nt. obsługi GPG. Może wtedy Onet przestanie zaglądać mi w pocztę i – co gorsza – wyciągać błędne wnioski na tej podstawie.

Swoją drogą, ostatnio spamu tyle przychodzi, że chyba odpalę skrypt Montera do automatycznego zatwierdzania spamu na SpamCop.

UPDATE Zauważyłem, że podobne podejście do tematu co Onet ma Wirtualna Polska. Też nie pozwolili mi ostatnio zgłosić spamu do SpamCopa.

Nie zablokujesz Tora…

Krótkie przypomnienie: około pół roku temu pisałem, jak zablokować węzły wyjściowe Tora. Lista węzłów wyjściowych (exit nodes) Tora jest publiczna, więc wygląda, że mamy sielankę.

Logo Tor

Źródło: https://media.torproject.org/image/official-images/2011-tor-logo-flat.svg

Tymczasem dziś podczas rozmowy w gronie administratorów padło stwierdzenie od osoby, która badała ruch w sieci Tor, że podczas swoich eksperymentów zarejestrowała ruch z węzłów wyjściowych, których nie było na liście. Metodyka badania prosta jak budowa cepa: wyślij znane żądanie przez Tora do swojego hosta, zapisz IP z którego nadeszło połączenie, porównaj z listą exit nodes.

I wtedy mnie olśniło. Dla pewności zapytałem jeszcze na kanale IRC poświęconym Torowi czy nie ma jakiejś weryfikacji i… jak najbardziej jest to wykonalne. Po prostu jako exit node listowany jest IP, który jest podłączony do sieci Tor. Wystarczy więc, że maszyna ma więcej niż jedno IP lub przekierowuje ruch na inną maszynę (choćby iptables) i… połączenia Tor będą widoczne z nielistowanego adresu. Co więcej, może się on zmieniać w czasie…

Usłyszałem nawet znamienne zdanie na kanale: założę się, że są exit node’y, które po prostu wysyłają ruch przez VPN.  I to by było tyle w temacie prostych, błędnych odpowiedzi na pozornie proste pytania…