Och, chłopcze, od czego zacząć.
Ten duży to zdecydowanie czarne skrzynki. Naukowcy zajmujący się kryptografią robią zamieszanie w takich kwestiach, jak problem z przypadkową możliwością losowego modelu Oracle. Badacze bezpieczeństwa są na drugim końcu i chcieliby, aby wszystko było użyteczne jako czarna skrzynka, a nie tylko funkcje skrótu. To jest stałe źródło napięcia.
Aby to zilustrować, jeśli przyjrzysz się formalnej analizie protokołów bezpieczeństwa, na przykład logice BAN , zobaczysz, że szyfrowanie symetryczne jest traktowane jako „idealny blokowy szyfr”. Jest tu subtelne rozróżnienie - logika BAN (i inne techniki analizy protokołów) nie twierdzą, że są dowodami bezpieczeństwa; są raczej technikami znajdowania wad. Dlatego nie jest do końca prawdą, że w grę wchodzi idealny model szyfru. Jednak empirycznie prawdą jest, że większość analiz bezpieczeństwa ogranicza się do modelu formalnego, więc efekt jest taki sam.
Nie rozmawialiśmy jeszcze nawet o praktykach. Ci faceci zwykle nawet nie mają pojęcia, że prymitywne krypto nie mają być czarnymi skrzynkami i wątpię, żeby to się kiedykolwiek zmieniło - dziesięciolecia prób wbicia tego sobie do głowy nie zrobiły żadnej różnicy.
Aby zobaczyć, jak poważny jest problem, zapoznaj się z tym poradnikiem dotyczącym bezpieczeństwa dotyczącym fałszowania podpisów API. Błąd jest częściowo spowodowany atakiem przedłużenia długości w konstrukcji Merkle-Damgard (co jest naprawdę bardzo proste) i wpływa na Flickr, DivShare, iContact, Mindmeister, Myxer, RememberTheMilk, Scribd, Vimeo, Voxel, Wizehhive i Zoomr. Autorzy zauważają, że nie jest to pełna lista.
Myślę, że praktykujący zasługują na lwia część winy za ten smutny stan rzeczy. Z drugiej strony być może teoretycy kryptowaluty również muszą przemyśleć swoją pozycję. Ich linia brzmiała: „budowanie czarnych skrzynek jest niemożliwe; nawet nie będziemy próbować”. Na to, co mówię, skoro jest jasne, że wasze konstrukcje i tak zostaną (źle) wykorzystane jako czarne skrzynki, dlaczego nie spróbować przynajmniej zbliżyć ich do czarnych skrzynek, jak to możliwe?
Artykuł „ Revkleited Merkle-Damgard” jest doskonałym przykładem tego, o czym mówię. Badają pojęcie bezpieczeństwa, że „funkcja skrótu H o dowolnej długości musi zachowywać się jak losowa wyrocznia, gdy blok konstrukcyjny o stałej długości jest postrzegany jako losowa wyrocznia lub idealny blok-szyfr”. Tego rodzaju badania teoretyczne mogą być niezwykle przydatne w praktyce.
Przejdźmy teraz do twojego przykładu oceny obwodu. Błagam, nie zgadzam się z twoim rozumowaniem. To nie jest tak, jakbyś wziął skompilowany plik binarny i ślepo zmienił go w obwód. Zamiast tego zastosujesz ocenę obwodu tylko do podstawowej funkcji porównawczej, co zwykle jest dość proste. Fairplay jest implementacją oceny obwodu. Mój współpracownik, który z nim pracował, powiedział mi, że jest zaskakująco szybki. Chociaż prawdą jest, że wydajność jest problemem przy ocenie obwodu (i znam przypadki rzeczywiste, w których został odrzucony z tego powodu), jest daleki od showstoppera.
Drugim powodem, dla którego nie zgadzam się z tobą, jest to, że jeśli pomyślisz o niektórych typowych scenariuszach, w których możesz chcieć przeprowadzić nieprzejrzystą ocenę obwodu - na przykład, gdy dwie firmy zastanawiają się, czy połączyć - koszty obliczeniowe zaangażowane są trywialne w porównaniu do ogólnego wysiłku ludzkiego i budżetu.
Dlaczego więc nikt nie stosuje w praktyce ogólnej bezpiecznej oceny funkcji? Świetne pytanie. To prowadzi mnie do mojej drugiej różnicy między teorią a praktyką: zaufanie faktycznie istnieje w praktyce! Nie wszystko trzeba zrobić w modelu paranoicznym. Zestaw problemów, które ludzie naprawdę chcą rozwiązać za pomocą kryptografii, jest znacznie, znacznie mniejszy niż wyobrażają sobie kryptografowie.
Znam kogoś, kto założył firmę próbującą sprzedawać bezpieczne usługi obliczeniowe dla wielu firm klientom korporacyjnym. Zgadnij co - nikt tego nie chciał. Sposób, w jaki rozwiązują te problemy, polega na podpisaniu umowy określającej, co możesz, a czego nie możesz zrobić z danymi oraz że zniszczysz dane po zakończeniu ich używania zgodnie z przeznaczeniem. W większości przypadków działa to dobrze.
Moja ostatnia różnica między teorią a praktyką dotyczy PKI. Dokumenty kryptograficzne często przyklejają gdzieś zdanie mówiące „zakładamy PKI”. Niestety cyfrowe certyfikaty dla użytkowników końcowych (w przeciwieństwie do stron internetowych lub pracowników w kontekście korporacyjnym, gdzie istnieje naturalna hierarchia) nigdy się nie zmaterializowały. Ten klasyczny artykuł opisuje wesołość, która pojawia się, gdy prosisz normalnych ludzi o użycie PGP. Powiedziano mi, że od tego czasu oprogramowanie znacznie się poprawiło, ale podstawowe problemy projektowe i architektoniczne oraz ograniczenia ludzkie nie różnią się dziś zbytnio.
Nie sądzę, że kryptografowie powinni robić coś inaczej w wyniku tego braku prawdziwej infrastruktury PKI, poza świadomością faktu, że ogranicza ona rzeczywiste zastosowanie protokołów kryptograficznych. Wrzuciłem to, ponieważ próbuję to naprawić.