Заключение
Было крайне увлекательно погрузиться в детали полной реализации криптосистемы, тем более столь известной системы с такой яркой историей, как PGP. Наверное, наиболее важный итог нашего исследования в том, что реализация криптографической системы требует значительно больше, чем просто смешать несколько алгоритмов. Что касается поставленных нами в начале вопросов, то вот наши ответы на них:
PGP взломан?
В PGP были и скорее всего по-прежнему есть серьёзные баги. Одни из них обнаружены, другие — нет. Эти баги — ахиллесова пята PGP и парадная дверь для атак. Атаки, разработанные исследователями, позволяют творить потрясающие вещи: извлекать секретные ключи, подделывать подписи, читать сообщения, но, в то же время, ни одна из них не взламывает PGP в обывательском смысле слова: PGP остаётся программой, дающей вам весьма хорошую секретность, поскольку успех атак зависит от особых обстоятельств или беспечности пользователей. Поэтому PGP не взломан, и использование этой программы определённо обеспечит вам больше приватности, чем отказ от использования. Я рекомендую использовать PGP, потому что он даст вам весомую безопасность по доступной цене.
Некоторые друзья любят задавать мне вопрос: "Так ты сломал PGP?"
В главе, посвящённой атакам, вы найдёте мой план взлома PGP. Он позволяет подделывать подписи и, при должных обстоятельствах, даже читать чужие письма. Так что ответ — да. :-)
Если в будущем PGP окажется взломан, причиной тому явно послужит не взлом одного из реализованных алгоритмов: все они очень прочны, и многие исследователи уже не раз пытались их атаковать без какого-либо практического результата. Баги в PGP вызывают наибольшее беспокойство, как и безопасность всего компьютера, на котором работает PGP.
PGP содержит потайной ход?
Мы не выявили закладок ни в исходном коде, ни в реализованных алгоритмах. Очень маловероятно, чтобы кто-то мог с лёгкостью взламывать программу. Я считаю, что все слухи о потайном ходе, встроенном, к примеру, по требованию правительства США, — не более, чем слухи.
Какая версия PGP лучше?
Ответить на этот вопрос нелегко, отчасти потому, что это ещё и дело вкуса: первые версии обладали пользовательским интерфейсом, совершенно отличным от более поздних версий.
За свою жизнь PGP приобрёл множество занятных функций вроде шифрования диска и уничтожения файлов. Использование этих функций бесспорно улучшает защищённость компьютера пользователя. Но более важный вопрос заключается в том, насколько хорошо PGP выполняет свою первоначальную задачу — защиту переписки.
Создатели PGP заявляют, что последняя версия лучше остальных благодаря исправленным ошибкам и багам. Проверить это утверждение невозможно: исходный код программы недоступен. Они наверняка имеют серьёзную причину, чтобы не публиковать исходный код, так что любую версию выше 6.5.8 нельзя назвать хорошей. Новейшая версия скорее всего наиболее продвинутая и имеет самый дружественный пользовательский интерфейс, но её нельзя рекомендовать по принципиальным причинам. 1
Все версии до 2.0 используют Bass-o-Matic и ни в коем случае не должны применяться. Из старых версий 2.6 во всех её ипостасях — самая совершенная, и лучшая по мнению таких экспертов, как Ральф Сендерек. Но в ряде аспектов она слабее более новых версий программы: она использует MD5 и старый формат, который менее безопасен, чем новый.
Новые версии PGP от 5.0 до 6.5.8 имеют лучший формат файлов, однако это преимущество компенсирует более комплексный исходный код, очевидно содержащий больше ошибок. Если вы хотите остановить свой выбор на одной из этих версий, используйте 6.5.8, поскольку в ней исправлен баг ADK.
Единственный продукт, который по-настоящему хочу посоветовать — это GNU Privacy Guard по причине, что это проект с открытым кодом. Мне кажется, открытые исходные тексты крайне важны для системы компьютерной безопасности, даже более важны, чем лёгкость использования. Очень жаль, что NAI считает иначе.
Как сделать PGP безопасней?
Его алгоритмы безупречны, формат файлов хорош, все методы разумны. Что следует изменить, так это снизить в коде количество багов. Один из способов решить эту задачу — упростить программу и сократить исходный код. Следует сделать версию PGP, которая выполняет лишь главные вещи, но выполняет их хорошо; она должна быть написана так кратко, как это только возможно.
Касаемо отдалённого будущего, у меня есть несколько личных соображений. Стандарт OpenPGP разрастается, становясь со временем всё более сложным. Это не на пользу безопасности. С добавлением каждой новой функции становится всё менее понятным значение подписи, что делает более вероятными ошибочные оценки и выводы. Не способствует безопасности и добавление всё новых и новых алгоритмов, ведь если один окажется взломан, противник может попытаться убедить пользователей использовать именно его. Мы должны стремиться к базовому стандарту, содержащему предельный минимум функций. Среднестатистический пользователь, у которого нет времени на изучение всех нюансов криптографии, даже не нуждается в продвинутых возможностях: если вы не знаете, как что-то работает, вы не можете пользоваться им безопасно.
Думаю, остаётся простор и для другой программы, нацеленной на экспертов и энтузиастов криптографии и предназначенной для экспериментирования с алгоритмами. Она стала бы идеальной платформой для распространения и демонстраций криптографических знаний. Такая расширенная версия могла бы иметь функции для анализа сообщений базового стандарта и даже включать алгоритмы факторизации. Многие из преданных пользователей PGP были бы рады обладать таким инструментом.
1 Сказанное в этом абзаце относится исключительно к PGP 7.x, — прим. пер.