API веб-криптографии - Web Cryptography API
В API веб-криптографии это Консорциум World Wide Web (W3C) для низкоуровневого интерфейса, который повысит безопасность веб-приложения позволяя им выполнять криптографические функции без доступа к исходному ключевому материалу.[1] Этот агностик API будет выполнять основные криптографические операции, такие как хеширование, генерация подписи и проверка и шифрование а также расшифровка из веб-приложения.[2]
Описание
Консорциум World Wide Web (W3C) был основан в 1994 г. Тим Бернерс-Ли кто является первоначальным архитектором всемирной паутины. В этот консорциум входят международные компании, работающие в Интернете и всемирной паутине. Его цель - развитие открытые стандарты и предоставить рекомендации, которые позволят Интернету продолжать развиваться в одном направлении, а не распадаться на разные фракции, которые потенциально могут конкурировать друг с другом.
26 января 2017 года W3C опубликовал свою рекомендацию по API веб-криптографии.[3] который может выполнять основные криптографические операции в веб-приложениях. Этот независимый API будет использовать JavaScript выполнять операции, повышающие безопасность обмена данными внутри веб-приложения. API предоставит низкоуровневый интерфейс для создания и / или управления открытые ключи и приватные ключи за хеширование, цифровой подписи генерация и проверка и шифрование и расшифровка для использования с веб-приложениями.
API веб-криптографии можно использовать для самых разных целей, включая:
- Предоставление аутентификация для пользователей и сервисов
- Электронная подпись документов или кода
- Защита честность и конфиденциальность общения и обмен цифровыми данными
Поскольку API веб-криптографии является независимым по своей природе, его можно использовать на любом Платформа. Это обеспечит общий набор интерфейсы это позволит богатые интернет-приложения для выполнения криптографических функций без необходимости доступа к необработанному материалу ключей. Это будет сделано с помощью интерфейса SubtleCrypto, который определяет группу методов для выполнения вышеуказанных криптографических операций. Дополнительные интерфейсы в API веб-криптографии позволят генерировать ключи, выводить ключи, а также импортировать и экспортировать ключи.[1]
Видение использования API веб-криптографии
Спецификация W3C для API веб-криптографии сосредоточена на общих функциях и функциях, которые в настоящее время существуют между специфичными для платформы и стандартизованными криптографическими API-интерфейсами, по сравнению с теми, которые известны лишь нескольким реализациям. Рекомендация группы по использованию API веб-криптографии не требует реализации обязательного набора алгоритмов. Это связано с осознанием того, что криптографические реализации будут различаться среди соответствующих пользовательских агентов из-за постановления правительства, местный политика, безопасность практики и интеллектуальная собственность обеспокоенность.
Существует множество типов существующих веб-приложений, для которых хорошо подходит API веб-криптографии.[1]
Многофакторная аутентификация
Сегодня многофакторная аутентификация считается одним из самых надежных методов проверки личности пользователя веб-приложения, например онлайн-банкинга. Многие веб-приложения в настоящее время зависят от этого метода аутентификации для защиты как пользователя, так и его агента. С API веб-криптографии веб-приложение будет иметь возможность обеспечивать аутентификацию изнутри себя, вместо того, чтобы полагаться на аутентификацию транспортного уровня для секретного ключевого материала для аутентификации доступа пользователя. Этот процесс обеспечит более богатый опыт для пользователя.
API веб-криптографии позволит приложению находить подходящие клиентские ключи, которые были ранее созданы пользовательским агентом или были предварительно предоставлены веб-приложением. Приложение сможет предоставить пользовательскому агенту возможность либо сгенерировать новый ключ, либо повторно использовать существующий ключ в случае, если у пользователя нет ключа, уже связанного с его учетной записью. Связывая этот процесс с Безопасность транспортного уровня через который пользователь проходит аутентификацию, процесс многофакторной аутентификации может быть дополнительно усилен путем получения ключа, основанного на базовом транспорте.[1][2]
Защищенный обмен документами
API можно использовать для защиты конфиденциальных или конфиденциальных документов от несанкционированного просмотра из веб-приложения, даже если они были ранее безопасно получены. Веб-приложение будет использовать API веб-криптографии, чтобы зашифровать документ секретным ключом, а затем обернуть его открытыми ключами, которые были связаны с пользователями, которым разрешено просматривать документ. После перехода к веб-приложению авторизованный пользователь получит документ, который был зашифрован, и получит указание использовать свой закрытый ключ, чтобы начать процесс развертывания, который позволит им расшифровать и просмотреть документ.[2]
Облачное хранилище
Многие компании и частные лица полагаются на облачное хранилище. Для защиты поставщик удаленных услуг может захотеть, чтобы их веб-приложение давало пользователям возможность защитить свои конфиденциальные документы перед загрузкой своих документов или других данных. API веб-криптографии позволит пользователям:
- Выберите частный или секретный ключ
- Получите ключ шифрования из их ключа, если они хотят
- Зашифровать их документ / данные
- Загрузите их зашифрованный документ / данные, используя существующие API поставщика услуг.[2]
Подписание электронного документа
Возможность электронной подписи документов экономит время, повышает безопасность важных документов и может служить юридическим доказательством принятия пользователем документа. Многие веб-приложения предпочитают принимать электронные подписи вместо требования письменных подписей. С API веб-криптографии пользователю будет предложено выбрать ключ, который может быть сгенерирован или предварительно подготовлен специально для веб-приложения. Затем ключ можно было использовать во время операции подписи.
Защита целостности данных
Веб-приложения часто кэшируют данные локально, что подвергает данные риску взлома в случае оффлайн-атаки. API веб-криптографии позволяет веб-приложению использовать открытый ключ развернутый изнутри для проверки честность кеша данных.[2]
Безопасный обмен сообщениями
API веб-криптографии может повысить безопасность обмен сообщениями для использования в не для записи (OTR) и другие типы схем подписи сообщений с использованием соглашения о ключах. Отправитель сообщения и предполагаемый получатель будут согласовывать общие ключи шифрования и кода аутентификации сообщения (MAC) для шифрования и дешифрования сообщений для предотвращения несанкционированного доступа.[2]
Подпись и шифрование объектов JavaScript (JOSE)
API веб-криптографии может использоваться веб-приложениями для взаимодействия с форматами и структурами сообщений, которые определены в рабочей группе JOSE.[4] Приложение может читать и импортировать Веб-подпись JSON (JWK), проверять сообщения, которые были защищены электронной подписью или MAC ключи и расшифровать сообщения JWE.
Соответствие API веб-криптографии
W3C рекомендует поставщикам избегать использования проприетарных расширений для конкретных поставщиков со спецификациями API веб-криптографии. Это связано с тем, что это может снизить функциональную совместимость API и разбить базу пользователей, поскольку не все пользователи смогут получить доступ к определенному контенту. Если невозможно избежать расширения, зависящего от поставщика, поставщик должен добавить к нему префикс со строками, зависящими от поставщика, чтобы предотвратить конфликты с будущими поколениями спецификаций API.
Рекомендации
- ^ а б c d Тернер, Дон М. «Предложение W3C по API веб-криптографии». Криптоматический. Получено 9 мая 2017.
- ^ а б c d е ж Уотсон, Марк (редактор). «Рекомендация W3C по API веб-криптографии, предлагаемая 15 декабря 2016 г.». W3C. Получено 23 мая 2017.CS1 maint: дополнительный текст: список авторов (связь)
- ^ Уотсон, Марк (редактор). «Рекомендация W3C по API веб-криптографии, 26 января 2017 г.». W3C. Получено 3 июля 2018.CS1 maint: дополнительный текст: список авторов (связь)
- ^ JOSE Рабочая группа. "Подпись и шифрование объектов Javascript (хосе)". IETF. Получено 16 марта 2017.