Філіп Ціммерманн

Фотографія Філа

Пам'ятайте про шарлатанську панацею

Частина первісного довідника користувача PGP 1991 (оновленого у 1997)

Коли ви розглядаєте криптографічне програмне забезпечення, є питання, яке завжди залишається без відповіді - чому ви повинні довіряти цьому продукту? Навіть якщо ви власноруч передивилися вихідний код, все ж не кожен має достатньо криптографічного досвіду, щоб робити судження про захищеність. Навіть якщо ви - досвічений шифрувальник, ви все ж таки можете не помітити незначні слабкості в алгоримті.

Коли на початку 70-их я вчився в коледжі, я винайшов те, що вважав геніальною схемою кодування. Простий псевдовипадковий потік чисел додавався до потоку тексту для створення зашифрованого тексту. Це мало б зірвати будь-який частотний аналіз зашифрованого тексту і продукт буде незламний для найвинахідливiших розвідувальних агенцій. Я почувався дуже крутим через своє досягнення.

Через декілька років я знайщов ту саму схему у декількох підручниках та навчальних текстах з криптографії. Як гарно. Інші шифрувальники видумали таку ж схему, як і я. На жаль, вона була презентована як домашнє завдання на використання елементарних криптоаналітичних технік зламу. Отакої.

З цього принизливого досвіду я навчився, наскільки просто помилитися у якості захисту, коли працюєш над шифрувальним алгоритмом. Більшість людей не розуміють, як складно створити шифрувальний алготитм, який може витримати тривалий і впевнений напад винахідливого опонента. Багато розробників програмного забезпечення створювали такі ж наївні шифрувальні алгоритми (часто навіть такі самі шифрувальні схеми), а деякі з них були використані у комерційних шифрувальних пакетах програмного забезпечення та продані за добрі гроші тисячам нічого не підозрюючих користувачів.

Це схоже на продаж ременів безпеки, які добре виглядають і в яких добре почуваєшся, але які розстібаються під час найповільнішого креш тесту. Покладатися на них може бути гірше, ніж не користуватися ними взагалі. Ніхто навіть не підозрює, що вони погані, аж поки не станеться реальна аварія. Покладання на слабке шифрувальне програмне забезпечення може привести до того, що ви, не знаючи, піддасте ризику вразливу інформацію. А ви могли б цього не зробити, якби в вас не було шифрувального програмного забезпечення взагалі. Можливо ви так ніколи і не дізнаєтесь, що ваша інформація не така вже й захищена.

Іноді комерційні програми використовують Федеральний Стандарт Шифрування Даних (Data Encryption Standard (DES), вельми хороший звичайний алгоритм (але ключі в нього закороткі), рекомендований урядом для застосування (але не для секретної інформації, дивно, чи не так??? Хммм). DES може застосовувати декілька "методів оперування". Деякі з них краші за інші. Уряд не рекомендує користуватися найпростішим та найслабшим методом Electronic Codebook (ECB). Але вони дійсно рекомендують використовувати більш складні Cipher Feedback (CFB) та Cipher Block Chaining (CBC).

Нажаль більшість комерційних шифрувальних програм, які я переглядав, використовують метод ECB. Коли я розмовляв з авторами багатьох цих впроваджень, вони говорили, що ніколи не чули про методи CBC чи CFB, і нічого не знають про слабкі місця у ECB. Самий факт, що вони не вивчили криптографію настільки, щоб знати про такі елементарні концепції, говорить не на користь цих розробок. Іноді вони дуже необачно керують своїми DES ключами. Крім того, ті ж самі пакети програмного забезпечення часто включають другий швидший шифрувальний алгоритм, який можна використовувати замість повільного DES. Автор часто вважає, що його другий швидший алгоритм так само захищений, як DES, але коли я тестую його, я розумію, що його алгоритм - це тільки варіація на тему моєї геніальної схеми часів коледжу. Іноді він сам не знає наскільки реально захищена його схема, та просто намагається переконати мене в тому, що я можу їй довіряти. Він впевнений, що його алгоритм дійсно геніальний, але як я можу це підтвердити, не подивившись на нього?

Чесно кажучи, у багатьох випадках ці жахливо слабкі продукти не виробляються компаніями, які спеціалізуються на криптографічній технології.

Навіть дійсно хороші пакети програмного забезпечення, які використовують DES з правильними операційними методами, мають проблеми. Стандарт DES використовує 56-бітний ключ, який за сьогоднішніми стандартами є дуже малим, і може бути легко зламаним повним перебором ключів на спеціальних швидкісних машинах. DES зараз наприкінці свого корисного існування, так само як і будь-яке програмне забезпечення, що використовує його.

Є така компанія - AccessData (http://www.accessdata.com), яка продає недорогий пакет, що ламає вбудовані шифрувальні схеми, які використовуються WordPerfect, Lotus 1-2-3, MS Excel, Symphony, Quattro Pro, Paradox, MS Word, та PKZIP. Він не просто відгадує паролі, він робить справжній криптоаналіз. Деякі люди купують його, коли самі забувають паролі до власних файлів. Правоохоронці також купують його, щоб прочитати файли, які їм вдається конфіскувати. Я розмовляв із Еріком Томпсоном, автором, і він сказав, що його програма ламає алгоритми швидше ніж за секунду, і щоб все не виглядало дуже просто для клієнтів, йому довелося додати декілька циклів, щоб уповільнити процес.

На арені захищеної телефонії ваші шанси виглядають доволі бідно. Лідер у змаганнях тут - це STU-III (Secure Telephone Unit), вироблений Motorola та AT&T за ціною від $2,000 до $3,000. Його використовують уряди для передачі секретної інформації. Він застосовує якісну сильну криптографію, але вимагає спеціальну урядову ліцензію, щоб придбати саме цю версію. Комерційна версія STU-III, яка доступна загалу, слабкіша, для зручності Агенції Національної Безпеки. Експортна версія послаблена ще жорсткіше. Є також Surity 3600 за $1,200, вироблений AT&T, для шифрування він використовує славнозвісний урядовий Обмежувальний чіп. Крім того є аналогові (не цифрові) шифрувальники голосу, які можна придбати з каталогів "майбутніх шпигунів". Якщо говорити про криптографію, то вони звичайні непотрібні іграшки, але їх таки продають як "захищені" клієнтам, які просто не знають ні про що краще.

Де в чому криптографія схожа на фармакологію. Її цілісність може бути абсолютно важливою. Поганий пеніцилін виглядає так само, як і хороший пеніцилін. Ви можете визначити, якщо з вашою програмою щось негаразд, але чи зможете ви визначити слабкість криптографічного пакету? Шифрувальний алгоритм, згенерований поганим шифруванням виглядає так само, як і той, що створений якісним шифрувальним алгоритмом. Тут багато змїїної олії. Багато шарлатанських ліків. На відміну від спекулянтів, що продають патентовані ліки, які нічого не виліковують, наші розробники програмного забезпечення не завжди навіть здогадуються про те, що їх робота - справжнісіньке шарлатанство. Вони можуть бути хорошими розробниками програмного забезпечення, але частіше за все вони навіть не читали учбову літературу з криптографії. І вони думають, що вони здатні створити нормальну криптографічну програму. А чому ні? Здається, це не так складно. І їхня програма, здається, працює нормально.

Той, хто вважає, що він винайшов незламну шифрувальну схему, це або неймовірний геній, або він наївний та недосвідчений. На жаль, іноді мені доводиться мати справу з "геніальними" криптографами, які хочуть "покращити" PGP, додавши шифрувальні алгоритми свого зразка.

Я пам'ятаю розмову у 1991 з Брайаном Сноу, дуже поважним криптографом з Агенції Національної Безпеки. Він сказав, що ніколи б не довіряв шифрувальному алгоритму, створеному кимось, хто не провів до цього багато часу, ламаючи коди. В цьому було багато сенсу. Я сказав, що майже ніхто з комерційного криптографічного оточення не підходить під цей критерій. "Саме так", сказав він із самовпевненою посмішкою, "і це робить нашу роботу у Агенції Національної Безпеки набагато простішою". Від цієї думки мені стало не по собі. Я теж не підходив.

Уряд теж всюди продавав "зміїну олію". Після Другої Світової Війни Сполучені Штати продавали німецькі шифрувальні машини Enigma країнам третього світу. Але вони ніколи не говорили, що Антанта зламала коди Enigma під час війни. Цей факт залишався секретним багато років. Навіть сьогодні багато UNIX систем у всьому світі використовують код Enigma для шифрування файлів, частково тому, що уряд створював багато перепонів для використання кращих алгоритмів. Вони навіть намагалися законно заборонити публікацію алгоритму RSA у 1977. І протягом багатьох років вони розчавлювали будь-які комерційні спроби розробити ефективні захищені телефони для широкого загалу.

Головне завдання американської Агенції Національної Безпеки - збирати інформацію, головним чином таємно підслуховуючи приватні телефонні розмови (прочитайте книгу Джеймса Бамфорда, Палац Таємниць). АНБ накопичила значні навики і ресурси для злому кодів. Якщо в людей немає хорошої криптографії щоб захистити себе, це робить роботу АНБ набагато простішою. АНБ також відповідальна за перевірку та рекомендацію шифрувальних алгоритмів. Деякі критики впевнені в тому, що тут виникає певний конфлікт інтересів, це як залишити лиса стерегти курник. У 1980-ті, АНБ проштовхувала прості шифрувальні алгоритми, які вона сама створила, і вона не розповідає нікому про принципи їхньої роботи, тому що це секретна інформація. Але кожен криптограф скаже вам, що зовсім не треба засекречувати нормально розроблений алгоритм для того, щоб він залишався захищеним. Тільки ключі мають бути захищеними. Як інші люди можуть довіряти захищеності алгоритму АНБ? А для неї не так складно створити алгоритми, які тільки вони можуть зламати, якщо ніхто інший не може перевірити його.

Під час публікації PGP, існувало три головні причини, що підривали якість комерційного програмного забезпечення у США.

ß Перша - це фактична відсутність компетентних розробників комерційного шифрувального програмного забезпечення (хоча це почало змінюватися з появою PGP). Будь-який програміст уявляв себе шифрувальником, і це призвело до розповсюдження дуже поганих шифрувальних програм.

ß Друга - це те, що Агенція Національної Безпеки навмисно і систематично придушувала будь-яку комерційну шифрувальну технологію залякуванням легальною відповідальністю та економічним тиском. Частина цього тиску - це контроль експорту шифрувального програмного забезпечення, який, в свою чергу, спровокував пригнічення локальної криптографії.

ß Третя причина, чому не з'являлися якісні криптографічні продукти - це створення картелю для патентування всіх програмних продуктів та шифрувальних алгоритмів. Це мало б дозволити раз і назавжди припинити розповсюдження цієї технології (хоча цей картель криптографічних патентів розвалився восени 1995).

Ефект від усіх цих явищ був такий, що до того, як була опублікована PGP, у Сполучених Штатах Америки не було жодного публічного криптографічного програмного забезпечення.

Сьогодні я не впевнений у захищеності PGP так само, як був впевнений у геніальності своєї шифрувальної програми з часів коледжу. Якщо б я був таким впевненим, це було б дуже поганою ознакою. Але я не думаю, що в PGP є якісь явні слабкі місця (хоча я впевнений в тому, що в ній є дефекти). Я відібрав найкраші алгоритми з опублікованої учбової літератури. Ці алгоритми неодноразово підлягали експертній оцінці. Я знаю багато ведучих криптологів і я обговорював з деякими з них криптографічні алгоритми та протоколи, використані в PGP. Вона добре досліджена і розроблялася роками. Крім того, я не працюю з АНБ. Але вам не потрібно вірити мені, що PGP дійсно цілісна. Адже вихідний код опубліковано для вашої експертної оцінки.

Ще одне свідчення моєї відданості якості криптографії PGP: через те, що вперше я опублікував PGP у 1991 безкоштовно, три роки я переслідувався американською митницею за розповсюдження PGP за кордоном. Існував ризик кримінального переслідування та довгострокового ув'язнення (між іншим, уряд чомусь не переживав так через інше криптографічне програмне забезпечення, чомусь саме PGP роздратувала їх у повній мірі. Чи це достатньо свідчить про силу PGP?). Я заробив хорошу репутацію криптографічною цілісністю своїх продуктів. Я не зраджу своїй відданості нашому праву на приватність, заради якого я ризикував власною волею. Я не дозволю продукту з моїм ім'ям мати якісь потаємні back doors.

Філіп Ціммерманн
Боулдер, Колорадо
червень 1991 (оновлено 1997)



Translation Ukrainian Hi-tech Initiative, Marina Kobenko, 2005