PGP Tool

Учиться · 6 мин. чтения

Почему важна клиентская криптография

Серверные «зашифрованные» сервисы по-прежнему видят ваш открытый текст. Клиентская криптография полностью исключает сервер из границы доверия.

Многие сервисы рекламируют «шифрование». Почти все они имеют в виду шифрование при передаче (HTTPS) и шифрование в состоянии покоя. Обе практики разумны. Ни одна из них не скрывает ваши данные от людей, управляющих сервисом.

Где проходит граница#

Шифрование защищает данные от тех, кто находится за пределами границы доверия. Если граница — «от вашего ноутбука до сервера», то HTTPS скрывает данные от вашего интернет-провайдера, но сервер видит открытый текст. Если граница — «только ваш ноутбук», сервер видит лишь шифртекст, который не может прочесть.

Клиентская криптография означает вторую границу. Ваши данные шифруются до того, как покидают ваше устройство, и ключи для их расшифровки никогда не существуют на сервере.

Что означает «клиентский» в этом приложении#

  • Каждый вызов шифрования/дешифрования выполняется в вашем браузере с помощью OpenPGP.js или Web Crypto.
  • Закрытые ключи находятся в памяти браузера только на время операции; они никуда не отправляются.
  • Нет бэкенда. Сервер только доставляет HTML, JS и CSS — без API, без учётных записей.
  • Вы можете проверить это. Откройте инструменты разработчика → вкладку «Сеть». При включённом авиационном режиме исходящие запросы не отправляются.

Оговорка#

Клиентская криптография переносит границу доверия на ваше устройство. Если ваш браузер скомпрометирован или приложение получено с сервера, подвергнутого атаке посредника, вы уязвимы. Именно поэтому сайт имеет открытый исходный код, CSP и работает по HTTPS. Вы также можете клонировать репозиторий и запустить его локально.

Удобство против доверия — это ключевой компромисс. Серверные сервисы удобнее — синхронизация, восстановление, сброс пароля — но ценой доверия оператору. Клиентские сервисы менее удобны — потеряете ключ, потеряете данные — зато оператор не сможет вас предать.