Bezpieczeństwo jest krytyczną cechą naszego współczesnego życia. Biorąc pod uwagę liczbę rzeczy, które opierają się na komunikacji cyfrowej, bezpieczeństwo ma teraz fundamentalne znaczenie. Weźmy przykład połączenia z witryną internetową. Jeśli połączenie jest bezpiecznie szyfrowane, możesz mieć pewność, że dane przesyłane między Tobą a serwerem WWW są niezmodyfikowane i nieznane wszystkim innym. Jeśli łączysz się niepewnie, każde urządzenie, które transmituje lub może zobaczyć transmisję twojego połączenia, może zobaczyć dokładnie, jakie dane są przesyłane. W tym scenariuszu każde urządzenie będące częścią łańcucha transmisji między tobą a serwerem może również edytować przesyłane dane.
Rzecz w całej tej tajemnicy polega na tym, że większość z nich wcale nie jest tajna. W rzeczywistości cały algorytm szyfrowania jest publiczny. Tylko jedna część systemu musi być tajna, aby zaszyfrowane wiadomości były bezpieczne. To jest klucz szyfrujący. Współczesna kryptografia kieruje się zasadą Kerckhoffsa z 1883 roku: „kryptosystem powinien być bezpieczny, nawet jeśli wszystko, co dotyczy system, z wyjątkiem klucza, jest powszechnie znany”. Systemy w tamtym czasie zazwyczaj opierały się na innej zasadzie: bezpieczeństwo poprzez zapomnienie.
Bezpieczeństwo przez zaciemnienie
Koncepcja bezpieczeństwa poprzez niejasność wydaje się na pierwszy rzut oka bardziej sensowna. Jeśli cały system szyfrowania jest tajny, to jak ktokolwiek może odszyfrować wiadomość? Niestety, chociaż ma to sens, istnieje kilka głównych problemów, których nie uwzględnia. Główny problem polega po prostu na tym, że nie można korzystać z systemu bez narażania go na ryzyko ujawnienia. Jeśli zaimplementujesz go na komputerze, może zostać zhakowany. Fizyczną maszynę można ukraść. Jeśli uczysz tylko zaufanych ludzi, mogą zostać oszukani, schwytani i torturowani.
Klasycznym przykładem takiego systemu jest szyfr przesuwny Cezara. W rzeczywistości nosi imię Juliusza Cezara, który używał go do delikatnej korespondencji. Szyfry Cezara dostosowują transpozycję jednej litery do drugiej w sposób cykliczny. Cezar użył przesunięcia w lewo o trzy, w wyniku czego D stało się A. Wiadomo o tym z „Żywotu Juliusza Cezara” napisanego przez Swetoniusza w roku 56 n.e. Nie jest jasne, jak bezpieczny był wówczas ten szyfr. Taki schemat obecnie zasadniczo nie zapewniałby żadnego bezpieczeństwa. Powodem tego jest to, że system polega na tym, że system pozostaje tajny. Technicznie rzecz biorąc, używa klucza, tym kluczem jest liczba przesuniętych miejsc w alfabecie. Liczba możliwych kluczy jest jednak tak mała, że wszystkie możliwe opcje można łatwo przetestować, nawet ręcznie. Pozostawia to jedynie brak znajomości systemu jako czynnika ochronnego.
Wróg zna system
W pewnym momencie wróg, kimkolwiek to będzie, prawdopodobnie będzie w stanie całkowicie zrozumieć twój system, tak jakby był publiczny. Jeśli twój system jest bezpieczny tylko wtedy, gdy jest tajny, to kiedy system jest zrozumiały, musisz go wymienić. Jest to kosztowne i wymaga czasu. Jeśli zamiast tego twój system opiera się tylko na tajności klucza, nie tylko łatwiej jest utrzymać go w tajemnicy, ale także łatwiej go zmienić.
Złożone i słabo udokumentowane systemy są często trudne do prawidłowego wdrożenia. Są również trudne do utrzymania, zwłaszcza gdy nie są utrzymywane przez twórcę. Musi istnieć wystarczająca ilość dokumentacji, aby uprawnieni użytkownicy mogli korzystać z systemu. Dokumentację tę może następnie zdobyć przeciwnik, który może uzyskać częściowe lub pełne zrozumienie systemu.
Ponadto właściwa kryptografia jest niezwykle trudna do wykonania nawet dla osób zaznajomionych z pojęciami. Jeśli system został zaprojektowany przez osobę niebędącą ekspertem, istnieje duże prawdopodobieństwo, że zawiera on przynajmniej drobne, jeśli nie poważne, wady. System publiczny może być przeglądany przez wszystkich ekspertów przez dziesięciolecia. Daje to solidny powód, by sądzić, że dobrze znany system jest rzeczywiście bezpieczny.
Wniosek
Bezpieczeństwo przez zaciemnienie to koncepcja systemu, który jest bezpieczny, ponieważ mechanizm systemu nie jest zrozumiały. Niestety stosunkowo łatwo jest zrozumieć system, a potem trudno opracować wystarczająco nowy system. Nowoczesne systemy bezpieczeństwa, takie jak kryptografia, są zazwyczaj publiczne i polegają na bezpieczeństwie tajnego klucza w celu ochrony danych, które zabezpiecza. Klucz można dowolnie zmieniać. Wiele różnych kluczy może być używanych jednocześnie przez różne osoby bez żadnych negatywnych skutków. O wiele łatwiej jest zabezpieczyć mały klucz niż cały system. O wiele łatwiej jest też zmienić, gdy jest to zagrożone.