После длительной разработки под руководством специалистов Mozilla и Google наконец-то увидела свет первая версия рабочего черновика Web Crypto API.
Спецификации описывают JavaScript API для выполнения базовых криптографических операций в веб-приложениях. Это такие операции, как хэширование, генерация подписи, зашифровка и расшифровка. Дополнительно, спецификации описывают API для генерации и/или управления ключами, необходимыми для вышеуказанных операций. Хранилище ключей/примитивов предусмотрено как для временных, так и для постоянных ключей/примитивов.
Использование этих API возможно для аутентификации пользователей и сервисов, цифровой подписи документов или кода, обеспечения общей конфиденциальности коммуникаций и аутентичности сообщений. Среди конкретных применений называются системы многофакторной аутентификации, защищённые хранилища документов, облачные хранилища, безопасная передача сообщений, подпись и шифрование JS-объектов (Javascript Object Signing and Encryption, JOSE) и проч.
Например, в случае закачки информации на облачный хостинг пользователь может предварительно обеспечить конфиденциальность информации. Web Crypto API предусматривает, что в таких случаях приложение допускает применение пользователем приватного или секретного ключа в его локальной системе, после чего зашифрованные данные передаются через API.
По стандарту, все криптографические операции проходят через интерфейс CryptoOperation, так что приложения имеют доступ только к этому интерфейсу, не имея прямого доступа к ключам и другой криптографической информации.
В секции «Алгоритмы» перечислены рекомендуемые алгоритмы для разработчиков, хотя эта секция не носит обязательный характер:
- HMAC с использованием SHA-256
- RSASSA-PKCS1-v1_5 с использованием SHA-256
- ECDSA с использованием кривых P-256 и SHA-256
- AES-CBC
Рабочая группа Web Cryptography Working Group приглашает всех экспертов к обсуждению нового стандарта в соответствующем списке рассылки.