Общесистемные настройки криптографии

Наши участники делают еще один шаг в направлении общесистемных крипто-политик, работа по реализации которых начата в Fedora 21. Nikos Mavrogiannopoulos, основной разработчик криптобиблиотеки GnuTLS, создал спецификацию на работу с библиотеками OpenSSL и GnuTLS, которой должны следовать все приложения, использующие их. Расширение спецификации на nss планируется, но пока не реализовано. Остальные криптобиблиотеки, с нашей точки зрения, лучше не использовать. Если же разработчики их используют, то им стоит рассмотреть переход на одну из этих трех. В будущем останется лишь одна, но которая из них, пока непонятно.

Nikos открыл заявки в нашей багзилле на каждый пакет, который зависит от GnuTLS или OpenSSL, и прогресс уже пошел. Наши участники встретили нововведение в целом положительно.

Возвращаясь к трем основным библиотекам, мы бы рады сказать, что надо прямо сейчас переходить на %криптобиблиотека%, но это невозможно. Все три обладают несовпадающим набором функционала, к их upstream-командам есть серьезные вопросы по процессу разработки, все три обладают различными лицензиями, что не позволяет переносить функционал друг из друга. В быту проблемы вызывают все библиотеки. Но проблема еще и в том, что логика работы криптобиблиотек не всегда понятна. Криптография, это и без того непростая область, так еще и конкретные реализации усложняют процесс. Например, наш коллега, Adam Williamson, решил разобраться в деталях того, как происходит подключение дополнительные сертификатов в основных крипто-библиотеках. Сначала оказалось, что хранилище сертификатов по умолчанию в разных дистрибутивах находится в разных местах, да еще и по формату отличается (внимание, очень длинный пост), затем оказалось, что понятие "trusted" в OpenSSL гораздо сложнее, чем кажется, и не все мэйнтейнеры понимают его правильно. Последнее далось Адаму особенно тяжело.