Итоги
Найти все ошибки в исходном тексте большой программы непросто, особенно если вы не являетесь её автором. Просто прочитать исходники от начала до конца — не лучший вариант. Наш метод заключался в том, чтобы просканировать код, прочитать все комментарии и изучить те части, которые мы посчитали заслуживающими внимания. Такой метод привёл к следующим результатам:
- Позволил выявить детали реализации определённых алгоритмов. Он показал, как именно PGP делает те или иные вещи, в частности, в отношении асимметричного крипто. Описания из учебников оставляют множество подробностей на откуп программисту. Эти подробности важны, поскольку непосредственно влияют на безопасность.
- Помог обнаружить некоторые баги, упущения и особенности кода. Нам удалось найти значительное их число, но мы убеждены, что многие ещё остались.
Наше общее впечатление, что разработчики PGP знали, что делают: важные детали проверены и перепроверены, и очевидно значительные усилия были положены, чтобы сделать PGP безопасным. Это даёт уверенность в PGP.
К сожалению, так же очевидно, что PGP, как и любая другая программа, содержит ошибки. Это не значит, что вы не должны использовать PGP, это значит, что, используя PGP, следует быть осторожным — надёжность PGP не абсолютна.