Twoje bezpieczeństwo online zależy od... lampy (film, 16m)
Mateusz Chrobok w swoim najnowszym filmie porusza temat szyfrowania, podkreślając, jak ważne jest zapewnienie bezpieczeństwa naszych danych. W erze cyfrowej, gdzie prawie każda komunikacja, od rozmów z przyjaciółmi po operacje bankowe, wymaga szyfrowania, istotne jest zrozumienie, jak działa ten proces. Szyfry opierają się w dużej mierze na matematyce, a w szczególności na losowościach oraz entropii, co jest kluczowym elementem w zapewnieniu, że nasze dane są skutecznie zabezpieczone. Jak Mateusz wyjaśnia, komputerom jest relatywnie trudno generować prawdziwie losowe liczby, ponieważ są one zaprojektowane do powtarzalności i deterministycznych obliczeń. Dlatego, aby stworzyć solidne szyfrowanie, potrzebujemy generatorów liczb pseudolosowych, które korzystają z entropii z różnych źródeł, takich jak ruchy myszką czy klawiaturą.
W swoim filmie Mateusz omawia również wyzwania związane z generowaniem entropii. I choć fakt, że komputery nie rodzą się z wbudowaną losowością, nie czyni ich zadania niemożliwym, stawia to przed nimi poważne wyzwania. Dla dużych serwerów, które muszą obsługiwać wiele równoległych połączeń, może być niewystarczająca ilość entropii do szyfrowania wszystkich połączeń. Oznacza to, że w pewnych sytuacjach mogą wystąpić opóźnienia lub, co gorsza, obniżenie jakości szyfrowania, co stanowi poważne zagrożenie bezpieczeństwa.
Mateusz podkreśla także innowacyjne pomysły na generowanie entropii, które są stosowane przez niektóre firmy, takie jak Cloudflare. Oprócz klasycznych źródeł losowości, wykorzystali oni nietypowy sposób generowania danych z lamp lawowych. Ten sposób tworzenia entropii jest nie tylko genialny, ale także zapewnia, że ziarno, które generuje urządzenie, jest całkowicie losowe. Dzięki temu działanie generatora liczb losowych pozostaje niezawodne i trudne do przewidzenia, co znacząco polepsza bezpieczeństwo szyfrowania.
Na końcu Mateusz zwraca uwagę na innowacyjne podejście Samsunga do tej problematyki. Stworzyli oni cyfrowy generator prawdziwych losowych liczb, oparty na oscylatorze pierścieniowym. Ten nowy system, nazwany Meta Ring Oscillator, obiecuje wyższą jakość entropii i ma potencjał do uproszczenia implementacji w różnych urządzeniach. Testy są już obiecujące, a badacze sugerują różne rozwiązania, aby zminimalizować wady tej technologii.
Na koniec artykułu warto wspomnieć, że film Mateusza na temat szyfrowania zdobył już 33548 wyświetleń oraz 2032 polubień. Statystyki te sugerują, że temat wzbudza duże zainteresowanie wśród widzów, a Mateusz skutecznie przyciąga uwagę d młodego pokolenia, które jest świadome zagrożeń związanych z bezpieczeństwem danych w sieci. Zachęcamy do obejrzenia materiału i podzielenia się swoimi przemyśleniami w komentarzach.
Toggle timeline summary
-
Wprowadzenie do znaczenia szyfrowania.
-
Omówienie rodzajów komunikacji, które wymagają szyfrowania.
-
Wzmianka o różnych rodzajach danych, które wymagają ochrony.
-
Wyjaśnienie wspólnej podstawy matematycznej za różnymi metodami szyfrowania.
-
Znaczenie losowości i entropii w szyfrowaniu.
-
Konsekwencje braku losowości w szyfrowaniu.
-
Pytania o to, jak zapewnić prawdziwą losowość w szyfrowaniu.
-
Znaczenie nieprzewidywalności w generowaniu kluczy.
-
Wyzwania, przed którymi stają komputery w generowaniu losowości.
-
Dyskusja na temat tego, jak komputery były zaprojektowane do wykonywania przewidywalnych operacji.
-
Metody wykorzystywane przez komputery do zbierania nieprzewidywalnych danych.
-
Identyfikacja ograniczeń w obecnej generacji entropii.
-
Efekty jednoczesnych połączeń zaszyfrowanych o dużej przepustowości.
-
Wprowadzenie sprzętowych generatorów liczb losowych jako rozwiązanie.
-
Przegląd nowego cyfrowego źródła entropii stworzonego przez Samsunga.
-
Kreatywne wdrożenia zbierania losowości do szyfrowania.
-
Zapewniające metody generacji losowej, nawet przy zakłóceniach.
-
Wykorzystanie zjawisk fizycznych do generowania losowości.
-
Klasyfikacja generatorów liczb losowych: prawdziwe vs deterministyczne.
-
Wyzwania w wcześniejszych metodach generowania fizycznych źródeł losowości.
-
Zachęta do postępów w poprawie rozwiązań bezpieczeństwa.
-
Zakończenie z wezwaniem do kreatywnych i niekonwencjonalnych pomysłów.
Transcription
Cześć! Szyfrowanie to nie tylko przyjemność, ale wręcz obowiązek. Szyfrujemy przecież komunikację ze swoim bankiem, rozmowy ze znajomymi prowadzone przez różnorakie komunikatory, czy w końcu zawartość naszych telefonów i komputerów, aby dane na nich zebrane nie wpadły w niepowołane ręce w wyniku chociażby ich zgubienia czy też kradzieży. Rodzajów szyfrów jest cała masa i to nie miejsce ani czas, aby je kategoryzować. Mają one jednak pewną cechę wspólną. Opierają się w swoich podstawach na matematyce, często zresztą na liczbach pierwszych, bardzo dużych liczbach pierwszych wybieranych losowo. I to właśnie ta losowość nazywana fachowo entropią jest najistotniejszym elementem koniecznym do skutecznego zaszyfrowania prowadzonej komunikacji. No bo jeżeli coś nie jest losowe i można wskazać w tym jakiejś wzorce, to być może da się też przewidzieć z jakąś dozą prawdopodobieństwa, co wystąpi w przyszłości. W pewnym uproszczeniu trafić, jaka liczba pierwsza została wybrana podstawą naszego szyfru. A stąd już tylko krok do położenia go na łopatki i szybkiego złamania, skutkującego możliwością podsłuchiwania wszystkiego, co przesyłamy. Jak do tego nie dopuścić? W jaki sposób zagwarantować, że to, co losujemy, jest naprawdę losowe? I czy konieczna jest do tego komisja kontroli gier i zakładów? Zapraszam. Zacznijmy więc od paru oczywistości. W całym procesie ustalania kluczy, którymi będziemy zabezpieczać swoją komunikację, ważna jest nie tylko przypadkowość, ale też nieprzewidywalność. Choć to w sumie bardzo zbliżone rzeczy. Wygenerowana liczba pierwsza musi być przypadkowa, ale sposób, w jaki są generowane kolejne i kolejne, nie może pozwolić na odkrycie w nich jakichś prawideł. To przecież łatwo byłoby przeanalizować, przyglądając się przez jakiś czas wymienianym kluczom, a wtedy szansa na odgadnięcie, co będzie następne, drastycznie rośnie. Tu napotykamy na bardzo poważny problem. No bo niestety komputery nie są dobre w losowość. Nic dziwnego, tak je zaprojektowano. Przecież to po prostu takie bardziej zaawansowane kalkulatory. 2 plus 2 zawsze ma dać 4. Gdyby czasami wynik był inny, no to po co nam taki komputer? I pomijmy w tym miejscu kwestie komputerów kwantowych, a skupmy się na technologiach, które wszyscy mamy na swoich biurkach czy też w kieszeniach. Generowanie entropii przez nasze telefony czy komputery wymaga od nich zrobienia czegoś w dokładnie odwrotny sposób niż ten, do którego zostały zaprojektowane. Jak więc sobie radzą z tym, aby jednak wygenerować coś losowego, a przynajmniej bardzo do tego zbliżonego? Stosuje się do tego choćby mechanizmy, które starają się zebrać dość nieprzewidywalne źródła danych i połączyć je w jakiś sprytny sposób. Bierze się np. ruchy myszki, wciśniętej klawisze klawiatury czy aktywność systemu operacyjnego i tak zebrane dane tłumaczy się następnie na ciąg zer i jedynek, który jest dość przypadkowy. Parametr ten nazywa się fachowo ziarnem, z angielskiego seed. Tylko do czego ono w ogóle jest potrzebne? Ano, jeżeli posiadamy generator liczb losowych w systemie, to możemy zasilić go właśnie takim ziarnem. I teraz nawet jakby generator ten nie działał w pełni przypadkowo, to kiedy wykorzysta do generowania entropii jakieś dodatkowe, zewnętrzne, losowe już źródło, to entropia, którą wytworzy, będzie, cóż, bardziej losowa, a tym samym jej jakość będzie wyższa. No bo jeżeli do porządku dodamy sporo chaosu, to wcale go to nie uporządkuje. To co, problem rozwiązany? Niestety nie do końca. Sęk w tym, że taka entropia przeważnie nie jest nieskończona, to znaczy nie jest generowana na bieżąco w wystarczającej ilości, aby zaspokoić wszystkie potrzeby systemu operacyjnego w każdej sytuacji. Może jej po prostu teoretycznie zabraknąć, gdybyśmy chcieli naraz nawiązać wiele, ale to bardzo wiele równoległych połączeń szyfrowanych np. TLS-em. O ile pewnie nie jest to problem laptopa na naszych kolanach, to serwera, do którego łączą się co chwila tysiące użytkowników, już jak najbardziej tak. Co stanie się w takiej sytuacji? Albo czas konieczny na nawiązanie połączenia lawinowo wzrośnie, efektywnie całkowicie to uniemożliwiając i kładąc taki serwer na łopatki, albo jakość szyfrowania spadnie tak bardzo, że jego złamanie stanie się dziecinnie proste. Tak źle i tak niedobrze. Ale to nie jedyny problem. Komputery są deterministyczne, a więc wykonując kilkakrotnie te same operacje, otrzymamy w efekcie te same wyniki. Znów, 2 plus 2 zawsze musi dać 4. Jeżeli więc dostarczymy generatorowi w dwóch przypadkach identyczne ziarno, to z losowości nieci. Otrzymamy dokładnie ten sam wynik. Mówimy więc raczej o generatorach liczb pseudolosowych, bo losowość ta jest od czegoś uzależniona i wcale nie jest stuprocentowa. No i jeżeli atakującemu uda się w jakiś sposób wymusić na systemie wielokrotne skorzystanie z tego samego przewidywalnego ziarna, no to koniec. Będzie w stanie bez większego problemu złamać wszystkie nasze szyfry bazujące na entropii. Czy więc jesteśmy zgubieni? Pewnym rozwiązaniem tego palącego problemu jest zastosowanie dedykowanych sprzętowych generatorów liczb plusowych. Jakość entropii podawanej przez nie jest znacznie lepsza. Co ciekawe, taki sprzętowy generator wbudowany jest np. w moduł TPM płyty głównej, odpowiedzialny za bezpieczeństwo startu systemu operacyjnego oraz operacje kryptograficzne. Ale można to też zrobić w zdecydowanie bardziej seksowny sposób, w dodatku analogowo, w naszym do bólu cyfrowym świecie. Co więc jest takim winylem kryptografii? Co pewnie nie jest dla Was dziwieniem, otaczający nas świat jest naprawdę świetnym źródłem przypadkowości. Aby więc z tego jakoś skorzystać, taki np. Cloudflare wpadł na pomysł używania lamp, ale nie zwykłych sietlówek, a takich lava lamp, jakie pewnie widzieliście u wujka Mietka na meblościance. Ich wnętrza są w ciągłym ruchu i przybierają totalnie przypadkowe kształty. No dobra, nie wpadli na to tak do końca sami, bo to pomysł innej firmy Silicon Graphics z produktem Lavarant, ale ich patent po prostu już wygasł. Cloudflare w swojej siedzibie w San Francisco wzięli więc ich jakąś setkę, ustawili na regale w jednym z firmowych korytarzy i jak sobie tak na nie spojrzymy, to mamy praktycznie pewność, że jest to jedyna taka ich konfiguracja, która już nigdy prawdopodobnie się nie powtórzy. Tylko co z tym można zrobić? Proste. Naprzeciw postawili kamerę, która robi im co chwilę zdjęcie. Fotki te przesyłane są dalej na serwery Cloudflara, a zdjęcie takie to przecież ciąg, zer i jedynek. Na podstawie binarnego zapisu tego pliku ze zdjęciem tworzy się dodatkowy szum dla generatora liczb losowych, wspomnianej już ziarną. Genialne w swojej prostocie i gwarantuje, że ziarno takie jest w pełni losowe, a więc i generowana na jego podstawie entropia, również. Ba, nawet jak ktoś przed tymi lampami stanie i je zasłoni, to nie tylko w niczym nie przeszkodzi, ale nawet pomoże, bo to też element, który jest na swój sposób przypadkowy. Zresztą lampy są tylko częścią całego tego procesu, bo przecież muszą być jakoś zabezpieczeni na wypadek awarii kamery, braku prądu czy wejściem tam kogoś złośliwego, kto postawi przed jej obiektywem po prostu zdjęcie. Bo jeżeli czegoś nauczyły mnie filmy sensacyjne z lat dziewięćdziesiątych, to właśnie tego, że ktoś na pewno wpadnie na taki pomysł. Czy to oznacza, że w każdym biurze Cloudflara na świecie stoi ściana wypełniona lampami z lawą? Nie, ale to nawet lepiej, bo to nie jest jedyny szalony pomysł, na który wpadli. W Londynie na przykład robi się zdjęcia kilkudziesięciu podwójnych wahadeł. Ich ruch jest w pełni przypadkowy, na co mamy dowody. Ruszają się tak one bez końca, dostarczając ziarno na tej samej zasadzie. Ale to nie wszystko. Stoją w bardzo mocno przeszklonej przestrzeni, więc rzucają jeszcze cień, który przecież też jest elementem zdjęcia, a zmienia się w zależności od pory roku, pogody czy nawet przelatującego za oknem gołębia. Przy okazji wygląda to jak jakaś naprawdę ciekawa instalacja artystyczna, jest więc o czym opowiadać, robiąc Cloudflare nie jako reklamę. Zresztą skoro już o artyzmie mowa, pierwsze wykorzystane w tym celu wahadło zostało przekazane do Muzeum Nauki w Londynie, gdzie można je zobaczyć na własne oczy. Ale czy to nie jest jakiś potencjalny wektor ataku? No bo kiedy od czegoś zależy bezpieczeństwo tak wielu kwestii, to strzeże się tego jak oka w głowie. Trzyma się w jakiejś piwnicy, zabrania wstępu do ściśle klimatyzowanego pomieszczenia, a o robieniu foteczek to nawet nie ma mowy. No, tylko że nie. Bo w obu tych przypadkach bezpieczeństwo nie polega na tajemnicy, a po prostu na gwarancji losowości. I zrobienie przez kogoś fotki wszystkich tych wahadeł, albo nawet nagranie filmu jak się poruszają, w żadnym stopniu nie przybliży nikogo do złamania szyfru. To taka dokładna odwrotność antywzorca security by obscurity. Nie powiem, jest w tym coś poetyckiego. Tylko czy na zawsze już jesteśmy skazani na takie ciekawe, ale absolutnie niepraktyczne rozwiązania? Przecież nie zamkniemy setek lamp, ani wahadeł w swoim telefonie. Problem ten więc postanowił w inny sposób rozwiązać Samsung. Generatory liczb losowych, czyli random number generators, możemy podzielić z grubsza na dwie grupy. tRNG, true, czyli takie prawdziwe, w których źródłem entropii jest coś analogowego, czyli właśnie tak jak w przypadku dziwnych pomysłów Claude Fleur, oraz dRNG, deterministyczne. Te drugie, dla uzyskania wyższego poziomu losowości, mogą dodatkowo wykorzystać ziarno generowane przez te pierwsze. A mieszając oba te rozwiązania, dostajemy dobrej jakości entropię, której po prostu nie zabraknie. Proste? Oznacza to jednak, że generator prawdziwych liczb losowych, albo prawdziwy generator liczb losowych, zwał jak zwał, jest najistotniejszą częścią takiego systemu. Niestety jego analogowy rodowód jest bardzo problematyczny, no bo jak już raz zaprojektuje się go dla jakiegoś konkretnego urządzenia, to nie da się go w łatwy i co ważne tani sposób użyć ponownie w innym projekcie, bo zawsze coś trzeba do niego dostosować. No i w tym właśnie miejscu cały na niebiesko wchodzi Samsung. Stworzyli oni fizyczne, a nie programowe źródło entropii bazujące na oscylatorze pierścieniowym, w dodatku takim metastabilnym. O co chodzi? Ano do tej pory te RNG były, jak już wspominałem, analogowe. Samsung postanowił to zmienić i zbudować w pełni cyfrowy generator prawdziwie losowych liczb, co potencjalnie znacznie ułatwi wszystkim życie oraz podniesie bezpieczeństwo dzięki szerszej, bo tańszej implementacji. To element gotowego czipu do wlutowania w płytkę drukowaną i po sprawie. Tak więc nie da się go łatwo zmodyfikować ani podmienić bez zniszczenia układu. System zresztą podczas startu urządzenia przeprowadza procedurę sprawdzania, czy generowana losowość statystycznie jest losowa. A to jeszcze bardziej uodparnia całe urządzenie na ewentualne ataki. Okej, koreańczycy nie byli tak do końca pierwsi. Opierają swój pomysł na wcześniejszych badaniach, które jednak nigdy nie spełniły wszystkich pokładanych w nich nadziei i nie zostały szeroko zaimplementowane, choćby z powodu skomplikowania, rozmiaru, niskiej przepustowości czy też innych problemów. Co więc Samsung zrobił inaczej? Wykorzystali fenomen metastabilności. Jest to pewien konkretny stan, w którym zachowanie elementu elektronicznego jest z definicji całkowicie losowe. Teoretycznie więc jest to idealne źródło entropii. Jednak tu pojawia się problem. Okoliczności, na które nigdy nie mamy pełnego wpływu, jak temperatura, promieniowanie jonizujące czy choćby drobne wahania napięcia, sprawiają, że prawdopodobieństwo bycia w tym stanie jest bardzo, bardzo małe. Albo udaje się w nim być, ale przez bardzo, ale to bardzo krótki moment. Koreańczycy po prostu znaleźli sposób, jak przebywać bardzo blisko tego stanu. Zdecydowanie bliżej, niż wcześniej było to możliwe. I to nawet w obecności różnych zakłóceń. Czyli kiedy np. napięcie będzie się wahać, choćby dość znacznie w stosunku do oczekiwanego. W dodatku taki TRNG jest gotowy do działania bardzo szybko od procesu inicjalizacji. Nie trzeba czekać kilkaset albo nawet kilka tysięcy cykli, aby generowane dane można było uznać za wystarczająco losowe, co jest regułą w przypadku innych rozwiązań tej kategorii. Nie tylko generuje ono wysokiej jakości entropię, spełniając zakładane normy, ale też przepustowość jest bardzo wysoka, sięgając 140 megabitów na sekundę, co jest świetnym wynikiem o rząd lub dwa wielkości większym, niż konkurencyjne rozwiązania. Cały ten nowy pomysł nazwano Meta Ring Oscillator, czyli meta oscylatorem pierścieniowym. Uroczo, co prawda. No ale hola hola, nie ma róży bez kolców. Zbudowany w ten sposób TRNG jest na razie dość czuły na jakość procesu technologicznego wytwarzania, a tym samym dość drogi w produkcji. Jest też wrażliwy na skrajne temperatury otoczenia. Badacze jednak zaproponowali w swojej pracy kilka pomysłów jak te problemy rozwiązać i wydają się one trzymać kupy. Testy zachęcają do dalszej eksploracji w tym kierunku, a uregulowanie kwestii patentowych jest już w trakcie. Co robić i jak żyć? Rozwój to nie tylko więcej gigaherców czy rdzeni, czy też nowe algorytmy wielkich modeli językowych, ale też usprawnianie znanych nam już od lat rozwiązań, w których niby nic nowego nie ma już do zrobienia. Szczególnie jeżeli dzięki temu można potencjalnie zadbać o bardzo wysokie bezpieczeństwo szeroko, a nie tylko w tych najdroższych albo bardzo wyspecjalizowanych urządzeniach. To krok w dobrą stronę i mam nadzieję, że już niedługo zobaczymy nie tylko meta oscylatory pierścieniowe, które będą w użyciu w realnym świecie, ale również konkurencyjne dla nich rozwiązania. Tak, kiedyś używałem kamery do generowania entropii w sposób podobny do tego znanego z Cloudflare. Chcesz sam zbudować sobie taką ścianę z lamp, a potem wykorzystać ją do generowania liczb losowych? Nic trudnego. W przeciwieństwie do moich studenckich lat, na GitHubie znajdziesz nawet gotowy projekt o nazwie Lavalamp, którym możesz się zainteresować i zwiększyć entropię na swoim sprzęcie. Wiadomo, kiedyś to było, teraz to nie ma. Ale jak już będziesz miał się czym pochwalić, to nie zapomnij wysłać mi foteczki. Jestem wielkim fanem zwariowanych i totalnie niepraktycznych pomysłów. I to już wszystko na dziś. Tymczasem dziękuję za Waszą uwagę i do zobaczenia! Napisy stworzone przez społeczność Amara.org