Google представил Key Transparency, альтернативу серверам криптографических ключей
Компания Google опубликовала исходные тексты рабочего прототипа новой технологии для безопасного хранения и обнаружения открытых ключей - Key Transparency. При создании проекта была поставлена задача создания сервиса, позволяющего просто и безопасно определить открытые ключи и другие учётные данные для любого адресата. Код написан на языке Go и распространяется под лицензией Apache 2.0.
Основными требованиями к новому сервису было существенное упрощение манипуляций с ключами, масштабирование на весь интернет и предоставление защищённого канала связи, позволяющего обращаться к сервису даже через сети, не заслуживающие доверия. Существующие методы организации шифрования с использованием открытых ключей существенно усложнены и требуют ручной верификации параметров получателя. Именно поэтому PGP не получил должного распространения для шифрования электронной почты и остался уделом специалистов. Аналогичная ситуация наблюдается и для программ обмена сообщениями, совместного доступа к файлам и систем доставки обновлений ПО - во всех случаях отсутствует единый, удобный и надёжный способ определения открытого ключа другого пользователя.
Технология Key Transparency намерена переломить сложившуюся ситуацию, благодаря существенному упрощению процесса выявления ключей и предоставлению инфраструктуры, пригодной для использования не экспертами. В Key Transparency cвязи между online-пользователями и открытыми ключами автоматически верифицируются и доступны для публичного аудита. Пользователь может увидеть все ключи закреплённые за определённой учётной записью, идентификатором которой служит email, а любые попытки создания поддельных записей сразу становятся публично видимы. Подобный подход гарантирует, что отправитель всегда будет использовать корректные ключи, которые проверены владельцем учётной записи.
Для реализации новой системы был учтён опыт уже существующих технологий: системы отслеживания и аудита SSL-сертификатов Certificate Transparency и механизма управления ключами CONIKS. В итоге подготовлен прототип универсального и прозрачного каталога, который может использоваться в любых системах, требующих шифрования и аутентификации, и оперирующих учётными данными, пригодными для независимого аудита. Все изменения в каталоге отражаются в публично доступном логе, имеется возможность отследить активность и стабильность учётной записи, а также понять кто и когда менял данные.
Для обеспечения целостности и защиты от искажения данных задним числом при хранении применяется древовидная структура "Дерево Меркла" (Merkle Tree), в которой каждая ветка верифицирует все нижележащие ветки и узлы, благодаря совместному (древовидному) хешированию. Имея конечный хэш пользователь может удостовериться в корректности всей истории операций, а также в корректности прошлых состояний БД (корневой проверочный хэш нового состояния базы вычисляется с учётом прошлого состояния). Так как данные общедоступны для аудита, для защиты персональной информации, email размещается не в открытом виде, а в форме VRF-функции, позволяющей определить позицию в дереве без хранения информации в открытом виде. Открытые ключи также размещаются в форме, позволяющей получить ключ только при запросе конкретной учётной записи.