Skip to content

Artykuły oznaczone jako: szyfrowanie

Szyfrowanie rozmów i SMS'ów na smartfonie z Androidem (Signal)

Każdy z nas ma już raczej w swoim posiadaniu telefon, czy jego nieco bardziej zaawansowaną wersję określaną mianem smartfona. Te urządzenia to w zasadzie przenośne i do tego bardzo małe komputery, które umożliwiają nam komunikowanie się z osobami na całym świecie. Wykonywanie połączeń głosowych, przesyłanie SMS'ów/MMS'ów czy też korzystanie z Internetu w naszych komórkach od dawna jest już standardem i ciężko byłoby nam się obejść bez tej technologii obecnie. Problem w tym, że nasza komunikacja jest narażona na podsłuch. W przypadku Internetu większość połączeń jest już szyfrowana na linii dwóch klientów (E2E, End To End). Natomiast jeśli chodzi o telefony, to tutaj sprawa kuleje i to bardzo poważnie, bo w zasadzie nasze połączenia głosowe czy SMS'y są do wglądu dla każdych służb, które z jakiegoś powodu uznają, że mogą naruszać naszą prywatność. Jedyna opcja, która jest w stanie zabezpieczyć nas przed tego typu praktykami, to szyfrowanie rozmów. Tak się składa, że jest kilka aplikacji na Androida, które są w stanie realizować tego typu przedsięwzięcie. Jedną z nich jest darmowa i otwartoźródłowa aplikacja Signal, której się przyjrzymy nieco bliżej w tym artykule.

Czytaj cały wpis

Jak zmienić hasło do zaszyfrowanego smartfona z Androidem

Każdy nowszy smartfon z Androidem oferuje możliwość zaszyfrowania wszystkich danych użytkownika zlokalizowanych na partycji /data/ . Cały proces można przeprowadzić w bardzo prosty sposób i bez większych problemów. Raz zaszyfrowanego telefonu nie da rady cofnąć do stadium przed szyfrowaniem i w zasadzie to zabezpieczenie można zdjąć jedynie przez przywrócenie urządzenia do ustawień fabrycznych. My tutaj jednak nie będziemy zajmować się samym szyfrowaniem smartfona i skupimy się bardziej na hasłach zabezpieczających mających stać na straży dostępu do naszych cennych danych, które mamy w telefonie. Większość z nas wykorzystuje krótkie hasło do odblokowania ekranu. To samo hasło z kolei jest wykorzystywane do zaszyfrowania klucza używanego w procesie szyfrowania/deszyfrowania danych na flash'u smartfona. W ustawieniach Androida nie ma jednak opcji rozdzielenia tych haseł i można by pomyśleć, że wykorzystanie czterocyfrowego kodu PIN jako zabezpieczenie mija się z celem. Na pewno w części smartfonów tak ale niekoniecznie we wszystkich modelach. Tak się składa, że akurat leży u mnie nieużywany Neffos Y5 od TP-LINK, to postanowiłem przyjrzeć się nieco bliżej tej kwestii haseł i sprawdzić czy jest się czego obawiać stosując krótkie hasła w zaszyfrowanych Androidach.

Czytaj cały wpis

Problem z zaszyfrowaniem partycji /data/ na smartfonie z Androidem

Bawiąc się ostatnio trochę mechanizmami szyfrującymi w moich smartfonach Neffos podesłanych przez TP-LINK, po raz kolejny coś nieopatrznie uszkodziłem. Tym razem sprawa wygląda nieco bardziej poważnie, bo uwalony został cały moduł szyfrujący urządzenie. Chodzi generalnie o to, że w Androidzie w wersji 4.4/5.0 została wprowadzona możliwość zaszyfrowania wszystkich danych użytkownika, tj. informacji przechowywanych na partycji /data/ . Do odszyfrowania tej partycji potrzebny jest klucz szyfrujący. Problem w tym, że Android musi gdzieś ten klucz trzymać i to w taki sposób, by proces Factory Reset był w stanie ten klucz usunąć, choćby na wypadek zapomnienia hasła i próby odzyskania w takiej sytuacji władzy nad smartfonem. Pech chciał, że akurat na moim Neffos Y5 mam wgrane TWRP recovery i z jakiegoś powodu nie mogłem zresetować ustawień telefonu do fabrycznych przez ten tryb i posłużyłem się narzędziem fastboot . Ono najwyraźniej nieco inaczej formatuje partycję /data/ i w ten sposób uwala cały mechanizm szyfrowania oferowany przez Androida. Czy da radę jakoś poprawić ten problem, a jeśli tak to w jaki sposób?

Czytaj cały wpis

Jak ukryć zaszyfrowany kontener LUKS pod linux

Gdy w grę wchodzi poufność informacji, to przeciętny użytkownik komputera od razu zaczyna rozważać szyfrowanie danych. Są różne narzędzia, które te kwestię realizują w mniejszym lub większym stopniu. Kiedyś wszyscy korzystali z TrueCrypt ale po jego dziwnych przygodach ludzie stopniowo zaczęli od tego oprogramowania odchodzić. W jego miejscu zaczęły pojawiać się różne forki, np. VeraCrypt. Abstrahując od tych ww. narzędzi, w każdym linux'ie mamy również dostępny mechanizm szyfrujący na bazie LUKS i jego goła wersję wykorzystującą dm-crypt. Przy pomocy każdego z tych narzędzi jesteśmy w stanie zaszyfrować dysk komputera, pendrive, czy nawet kartę SD, w taki sposób, by nikt inny nie uzyskał dostępu do danych zgromadzonych na tych nośnikach informacji. Problem w tym, że w dalszym ciągu ktoś może nas torturować, by wydobyć od nas hasło czy keyfile i uzyskać dostęp do tych zaszyfrowanych danych bez większego trudu. Dlatego też pojawiło się coś nazwanego Plausible Deniability, gdzie wykorzystywane są tak naprawdę dwa nośniki z czego jeden robi za przykrywkę, a na drugim mamy zgromadzone poufne pliki. W ten sposób agresorowi podajemy hasło do trefnego kontenera i wszyscy są zadowoleni. Czy aby na pewno?

Czytaj cały wpis

Szyfrowanie logów w OpenWRT (syslog-ng)

We wpisie dotyczącym logread została podniesiona kwestia przesłania logów przez sieć. OpenWRT jest w stanie tego typu zadanie realizować po określeniu kilku dodatkowych opcji w pliku /etc/config/system . Trzeba jednak zdawać sobie sprawę, że tak przesyłane komunikaty nie będą w żaden sposób zabezpieczone. W sieci domowej raczej nie musimy sobie zawracać głowy tym mankamentem. Niemniej jednak, gdy w grę wchodzi przesyłanie logów do zdalnego serwera zlokalizowanego gdzieś w internecie, to taką komunikację należy zabezpieczyć przed podsłuchem. Niestety OpenWRT standardowo nie wspiera takich udziwnień ale dysponuje on pakietami, które mogą nam zapewnić taką funkcjonalność. Szyfrowanie logów możemy w łatwy sposób wdrożyć za pomocą pakietu syslog-ng3 . W nim znajduje się demon syslog-ng , który jest kompatybilny w pełni z innymi linux'owymi demonami logowania. Nie powinno zatem być problemów ze skonfigurowaniem tego całego mechanizmu.

Czytaj cały wpis

Klucze szyfrujące RSA w OpenWRT (ssh)

Klucze RSA w protokole SSH mogą być wykorzystane jako sposób identyfikacji danej osoby przy logowaniu się do zdalnego serwera. Te klucze zawsze występują w parach. Jeden prywatny, drugi publiczny. Pierwszy z nich jest znany tylko nam i powinien być trzymany w sekrecie i pilnie strzeżony. Klucz publiczny z kolei zaś jest przesyłany na każdy serwer SSH, z którym chcemy się połączyć. Gdy serwer jest w posiadaniu naszego klucza publicznego i widzi przy tym, że próbujemy nawiązać połączenie, używa on tego klucza, by wysłać do nas zapytanie (challange). Jest ono zakodowane i musi na nie zostać udzielona prawidłowa odpowiedź. Tej z kolei może udzielić ktoś, kto jest w posiadaniu klucza prywatnego. Nie ma innej opcji, by rozkodować wiadomość. Dlatego też nikt inny nie może udzielić na nią prawidłowej odpowiedzi. To rozwiązanie eliminuje wrażliwość na różne formy podsłuchu. Ten kto nasłuchuje nie będzie w stanie przechwycić pakietów zawierających hasło, bo ono nie jest nigdy transmitowane prze sieć. No i oczywiście jeśli chodzi o samo hasło, to odpadają nam ataki bruteforce pod kątem jego złamania. W tym wpisie postaramy się zaimplementować na routerze z OpenWrt system logowania oparty o klucze RSA.

Czytaj cały wpis

Nagłówek kontenera LUKS trzymany na pendrive

Jeśli kiedyś rozważaliśmy umieszczenie pliku klucza (keyfile) do zaszyfrowanego kontenera LUKS na pendrive, to ciekawszą alternatywą może okazać się umieszczenie całego nagłówka takiego kontenera na zewnętrznym nośniku. Ma to tę przewagę nad keyfile, że wszystkie informacje zapewniające dostęp do kontenera, wliczając w to klucz główny, są oddzielone od zaszyfrowanych danych. W ten sposób nawet jeśli kontener wpadnie w niepowołane ręce, to nie ma żadnego sposobu na to, by ten ktoś te dane odzyskał, no bo przecie nie ma klucza szyfrującego. Przechwycenie hasła również nic to nie zmieni, no chyba, że ten ktoś zdobędzie również pendrive z nagłówkiem kontenera. Z ludzkiego punktu widzenia, to na takim dysku będą znajdować się jedynie losowymi dane i do tego w formie kompletnie nieczytelnej dla człowieka (brak systemu plików). Niemniej jednak, jest kilka rzeczy, o których warto pamiętać, gdy w grę wchodzi nagłówek LUKS i to o nich porozmawiamy sobie w tym wpisie.

Czytaj cały wpis

Klucz główny kontenera LUKS i jego odzyskanie

Kontenery LUKS to takie wynalazki, za których pomocą jesteśmy w stanie zaszyfrować całe dyski twarde, a właściwie to znajdujące się na nich dane. Taki kontener składa się głównie z nagłówka, który jest umieszczany na początku partycji. By być w stanie dokonać szyfrowania i deszyfrowania informacji w locie, system musi posiadać klucz główny (master key). Ten klucz jest przechowywany w nagłówku i by go wydobyć, musimy wprowadzić jedno z haseł do kontenera. Później klucz wędruje do pamięci, a hasło jest z niej usuwane. W ten sposób system ma dostęp do klucza głównego przez cały czas począwszy od chwili otwarcia kontenera, aż do momentu jego zamknięcia. Ten klucz jesteśmy w stanie bez większego problemu wydobyć, co może być bardzo przydatne na wypadek zapomnienia hasła, czy też uszkodzenia samego nagłówka. W tym wpisie postaramy się odzyskać klucz główny zaszyfrowanego kontenera LUKS.

Czytaj cały wpis

Odszyfrowanie kontenerów LUKS w systemd

Osoby, które wykorzystują pełne szyfrowanie dysku, wiedzą, że nie zawsze da radę tak skonfigurować swój system, by upchnąć go na jednej partycji. Nawet jeśli korzystamy z LVM wewnątrz kontenera LUKS, to i tak zwykle możemy posiadać inne zaszyfrowane partycje, które są odrębną całością i montowane osobno przy starcie systemu. W takim przypadku zwykle jesteśmy zmuszeni do podawania hasła do każdego z tych dysków z osobna, co zajmuje czas. Ten problem opisałem po części przy okazji implementacji kontenera LUKS na potrzeby Dropbox'a, jak i we wpisie poświęconym przejściu z kontenerów TrueCrypt'a na te linux'owe, które są wspierane natywnie przez sam kernel. Niemniej jednak, tamto rozwiązanie było oparte głównie o starszy init (sysvinit), co wymagało dodatkowej konfiguracji, tak by system otworzył się po podaniu tylko jednego hasła. W tym wpisie postaramy się wdrożyć mechanizm, który jest oferowany przez systemd.

Czytaj cały wpis

Szyfrowanie dźwięku przesyłanego przez sieć

PulseAudio to serwer dźwięku, który jest w stanie otrzymywać zapytania ze zdalnych lokalizacji. Wobec czego, możemy realizować przesyłanie dźwięku przez sieć i usłyszeć go tam, gdzie go sobie życzymy. Problem w tym, że taki dźwięk jest przesyłany przez sieć w formie niezaszyfrowanej. Dlatego też jesteśmy narażeni na podsłuchanie wszystkiego co mówimy do mikrofonu lub też tego co pojawia się w naszych głośnikach. Możemy jednak zabezpieczyć komunikację między klientem i serwerem dźwięku wykorzystując do tego połączenie SSH. W ten sposób cały sygnał dźwiękowy, jaki jest generowany przez danego hosta w sieci, zostanie wrzucony w szyfrowany kanał TLS i nikt nie będzie w stanie go zinterpretować. Ten wpis ma na celu przedstawienie sposobu na zaszyfrowanie dźwięku, bez którego większość z nas nie wyobraża sobie pacy przy komputerze.

Czytaj cały wpis

Strona 1 z 3123