Zasada Kerckhoffsa

Zasada Kerckhoffsa (zwana także dezyderatem Kerckhoffsa , założeniem , aksjomatem , doktryną lub prawem ) kryptografii została sformułowana przez urodzonego w Holandii kryptografa Auguste'a Kerckhoffsa w XIX wieku. Zasada głosi, że system kryptograficzny powinien być bezpieczny, nawet jeśli wszystko w systemie, z wyjątkiem klucza , jest powszechnie znane. Ta koncepcja jest szeroko akceptowana przez kryptografów, w przeciwieństwie do bezpieczeństwo przez zaciemnienie , które nie jest.

Zasada Kerckhoffsa została sformułowana przez amerykańskiego matematyka Claude'a Shannona jako „ wróg zna system”, tj. „należy projektować systemy przy założeniu, że wróg natychmiast w pełni się z nimi zapozna”. W tej formie nazywa się to maksymą Shannona .

Innym sformułowaniem amerykańskiego badacza i profesora Stevena M. Bellovina jest:

Innymi słowy — zaprojektuj swój system, zakładając, że Twoi przeciwnicy znają go szczegółowo. (Były urzędnik Narodowego Centrum Bezpieczeństwa Komputerowego NSA powiedział mi, że standardowe założenie było takie, że numer seryjny 1 każdego nowego urządzenia był dostarczany na Kreml.)

Pochodzenie

Auguste Kerckhoffs był profesorem języka niemieckiego w Ecole des Hautes Etudes Commerciales (HEC) w Paryżu. Na początku 1883 roku artykuł Kerckhoffsa, La Cryptographie Militaire , został opublikowany w dwóch częściach w Journal of Military Science, w którym określił sześć zasad projektowania szyfrów wojskowych . W tłumaczeniu z francuskiego są to:

  1. System musi być praktycznie, jeśli nie matematycznie, nieczytelny;
  2. Nie powinno wymagać zachowania tajemnicy i nie powinno stanowić problemu, jeśli wpadnie w ręce wroga;
  3. Musi istnieć możliwość komunikowania się i zapamiętywania klucza bez używania pisemnych notatek, a korespondenci muszą mieć możliwość dowolnej zmiany lub modyfikacji klucza;
  4. Musi mieć zastosowanie do łączności telegraficznej;
  5. Musi być przenośny i nie powinien wymagać kilku osób do obsługi lub obsługi;
  6. Wreszcie, biorąc pod uwagę okoliczności, w których ma być używany, system musi być łatwy w użyciu i nie powinien być stresujący w użyciu ani wymagać od użytkowników znajomości i przestrzegania długiej listy zasad.

Niektóre nie są już istotne, biorąc pod uwagę zdolność komputerów do wykonywania złożonego szyfrowania. Druga zasada, obecnie znana jako zasada Kerckhoffsa , jest nadal niezwykle ważna.

Wyjaśnienie zasady

Kerckhoffs postrzegał kryptografię jako rywala i lepszą alternatywę dla szyfrowania steganograficznego , które było powszechne w XIX wieku do ukrywania znaczenia wiadomości wojskowych. Jednym z problemów związanych ze schematami kodowania jest to, że opierają się one na trzymanych przez ludzi tajemnicach, takich jak „słowniki”, które ujawniają na przykład tajne znaczenie słów. Słowniki podobne do steganograficznych, raz ujawnione, na stałe naruszają odpowiedni system kodowania. Innym problemem jest to, że ryzyko ujawnienia rośnie wraz ze wzrostem liczby użytkowników posiadających tajemnice.

W przeciwieństwie do tego, dziewiętnastowieczna kryptografia wykorzystywała proste tablice, które zapewniały transpozycję znaków alfanumerycznych, na ogół z określonymi przecięciami wierszy i kolumn, które można było modyfikować za pomocą kluczy, które były na ogół krótkie, numeryczne i można je było zapisać w pamięci ludzkiej. System został uznany za „nieczytelny”, ponieważ tabele i klucze same w sobie nie przekazują znaczenia. Tajne wiadomości mogą zostać naruszone tylko wtedy, gdy pasujący zestaw tabeli, klucza i wiadomości wpadnie w ręce wroga w odpowiednich ramach czasowych. Kerckhoffs uważał, że wiadomości taktyczne mają znaczenie tylko przez kilka godzin. Systemy niekoniecznie są zagrożone, ponieważ ich komponenty (tj. tablice znaków alfanumerycznych i klucze) można łatwo zmienić.

Zaleta tajnych kluczy

Korzystanie z bezpiecznej kryptografii ma zastąpić trudny problem zabezpieczenia wiadomości znacznie łatwiejszym problemem, zapewniającym bezpieczeństwo stosunkowo małych kluczy. System, który wymaga długoterminowej tajemnicy dla czegoś tak dużego i złożonego jak cały projekt systemu kryptograficznego, oczywiście nie może osiągnąć tego celu. Zastępuje tylko jeden trudny problem innym. Jeśli jednak system jest bezpieczny nawet wtedy, gdy wróg zna wszystko poza kluczem, to wszystko, czego potrzeba, to zarządzanie kluczami w tajemnicy.

Istnieje wiele sposobów na odkrycie wewnętrznych szczegółów powszechnie używanego systemu. Najbardziej oczywiste jest to, że ktoś może przekupić, szantażować lub w inny sposób grozić pracownikom lub klientom, aby wyjaśnili system. Na przykład podczas wojny jedna strona prawdopodobnie zdobędzie część sprzętu i ludzi z drugiej strony. Każda ze stron będzie również wykorzystywać szpiegów do zbierania informacji.

Jeśli metoda wymaga oprogramowania, ktoś może wykonać zrzuty pamięci lub uruchomić oprogramowanie pod kontrolą debuggera, aby zrozumieć metodę. Jeśli używany jest sprzęt, ktoś może kupić lub ukraść część sprzętu i zbudować wszelkie programy lub gadżety potrzebne do jego przetestowania. Sprzęt można również zdemontować, aby szczegóły chipa można było zbadać pod mikroskopem.

Utrzymanie bezpieczeństwa

Uogólnienie, które niektórzy czynią na podstawie zasady Kerckhoffsa, brzmi: „Im mniej i prostszych tajemnic należy zachować, aby zapewnić bezpieczeństwo systemu, tym łatwiej jest utrzymać bezpieczeństwo systemu”. Bruce Schneier wiąże to z przekonaniem, że wszystkie systemy bezpieczeństwa muszą być zaprojektowane tak, aby zawodziły tak płynnie , jak to tylko możliwe:

zasada ma zastosowanie poza kodami i szyframi do systemów bezpieczeństwa w ogólności: każdy sekret tworzy potencjalny punkt awarii . Innymi słowy, tajemnica jest główną przyczyną kruchości – a zatem czymś, co może sprawić, że system będzie podatny na katastrofalne załamanie. I odwrotnie, otwartość zapewnia plastyczność.

Każdy system bezpieczeństwa zależy przede wszystkim od zachowania pewnych rzeczy w tajemnicy. Jednak zasada Kerckhoffsa wskazuje, że rzeczy utrzymywane w tajemnicy powinny być najmniej kosztowne do zmiany, jeśli zostaną przypadkowo ujawnione.

Na przykład algorytm kryptograficzny może być implementowany przez sprzęt i oprogramowanie, które są szeroko rozpowszechnione wśród użytkowników. Jeśli bezpieczeństwo zależy od zachowania tej tajemnicy, to ujawnienie prowadzi do poważnych trudności logistycznych w opracowywaniu, testowaniu i dystrybucji implementacji nowego algorytmu – jest on „kruchy”. Z drugiej strony, jeśli utrzymywanie algorytmu w tajemnicy nie jest ważne, ale tylko klucze używane z algorytmem muszą być tajne, to ujawnienie kluczy wymaga po prostu prostszego, mniej kosztownego procesu generowania i dystrybucji nowych kluczy.

Aplikacje

Zgodnie z zasadą Kerckhoffsa większość cywilnej kryptografii wykorzystuje publicznie znane algorytmy. Z kolei szyfry używane do ochrony tajnych informacji rządowych lub wojskowych są często utrzymywane w tajemnicy (patrz Szyfrowanie typu 1 ). Nie należy jednak zakładać, że szyfry rządowe/wojskowe muszą być utrzymywane w tajemnicy, aby zachować bezpieczeństwo. Możliwe, że mają one być tak kryptograficzne, jak algorytmy publiczne, a decyzja o zachowaniu ich w tajemnicy jest zgodna z warstwową postawą bezpieczeństwa.

Bezpieczeństwo przez zaciemnienie

Firmy, a czasem nawet organy standaryzacyjne, jak w przypadku szyfrowania CSS na płytach DVD , są dość powszechne w utrzymywaniu w tajemnicy wewnętrznego działania systemu. Niektórzy twierdzą, że to „bezpieczeństwo przez zaciemnienie” sprawia, że ​​produkt jest bezpieczniejszy i mniej podatny na ataki. Kontrargumentem jest to, że utrzymywanie w tajemnicy wnętrzności może poprawić bezpieczeństwo na krótką metę, ale na dłuższą metę należy ufać tylko systemom, które zostały opublikowane i przeanalizowane.

Steven Bellovin i Randy Bush skomentowali:

Bezpieczeństwo przez zaciemnienie uważane za niebezpieczne

Ukrywanie luk w zabezpieczeniach algorytmów, oprogramowania i/lub sprzętu zmniejsza prawdopodobieństwo ich naprawy i zwiększa prawdopodobieństwo, że mogą i zostaną wykorzystane. Zniechęcanie do dyskusji na temat słabych punktów i słabych punktów lub zakazanie ich jest niezwykle niebezpieczne i szkodliwe dla bezpieczeństwa systemów komputerowych, sieci i jej obywateli.

Otwarta dyskusja zachęca do lepszego bezpieczeństwa

Długa historia kryptografii i kryptoanalizy wielokrotnie pokazała, że ​​otwarta dyskusja i analiza algorytmów ujawnia słabości, o których nie pomyśleli ich pierwotni autorzy, a tym samym prowadzi do lepszych i bezpieczniejszych algorytmów. Jak Kerckhoffs zauważył o systemach szyfrujących w 1883 [Kerc83]: „Il faut qu'il n'exige pas le secret, et qu'il puisse sans inconvénient tomber entre les mains de l'ennemi”. (Z grubsza „system nie może wymagać zachowania tajemnicy i musi być w stanie zostać skradziony przez wroga bez powodowania problemów”).

Notatki

Ten artykuł zawiera materiał z artykułu Citizendium Zasada Kerckhoffsa ”, który jest objęty licencją Creative Commons Attribution-ShareAlike 3.0 Unported License, ale nie GFDL .

Linki zewnętrzne