This page was translated from English by the community.Learn more and join the MDN Web Docs community.
Web Crypto API
Baseline Widely available
This feature is well established and works across many devices and browser versions. It’s been available across browsers since июль 2015 г..
Экспериментальная возможность:Это экспериментальная технология
Так как спецификация этой технологии ещё не стабилизировалась, смотритетаблицу совместимости по поводу использования в различных браузерах. Также заметьте, что синтаксис и поведение экспериментальной технологии может измениться в будущих версиях браузеров, вслед за изменениями спецификации.
Web Crypto API – интерфейс, позволяющий использовать криптографические примитивы для построения систем, манипулировать, хранить секретные ключи без необходимости делать доступными базовые биты ключа для JavaScript.
Интерфейс открывает доступ к следующим примитивам:
- digest, the ability to compute a hash of an arbitrary block of data, in order to detect any change in it.
- mac, the ability to compute a message authentication code.
- sign иverify, the ability to digitally sign a document, and to verify a signature.
- encrypt иdecrypt, the ability to encode or decode a document.
- import иexport, the ability to import a key or export a key.
- key generation, the ability to create a cryptographically secure key, or key pair, without the use of base key, but using the available entropy of the local system.
- key wrapping andunwrapping, the ability to transmit, and to receive, a key from a third party, encoded using another key, without exposing the underlying key to JavaScript.
- random, способность генерировать криптографически достоверные псевдослучайные числа.
Web Crypto API не решает всех проблем, которые касаются использования криптографии на Web-сайтах или приложениях:
- Она не заменяет "собственной модели безопасности" браузера (когда на некоторых Web-сайтах используются свои собственные ключи).
- Оно не взаимодействует со специальным аппаратным обеспечением (смарт-карты, USB-ключи или генераторы случайных чисел).
Предупреждение:Само по себе использование криптографии не делает систему безопасной. Безопасность – этопроцесс постоянной оценки рисков, возникающих в контексте эксплуатации системы. Контекст, как и риски, изменяются с течением времени.
When dealing with security, the wholesystem must be considered. In the case of the Web Crypto API, Web developers shouldn't consider only the security of the script, but the security of the connection to the server, because using Web Crypto over HTTP is not secure. The overall security can't be stronger than the security of the weakest part of the overall system.
In this article
Интерфейсы
Некоторые браузеры реализовали интерфейсCrypto, но сделали это недостаточно точно или без должного уровня безопасности. Чтобы избежать конфуза с модулемCrypto из пакета Node, методы и свойства интерфейса были перенесены в новый интерфейс:SubtleCrypto. СвойствоCrypto.subtle даёт доступ к объекту, реализующему Web Crypto API.
Использование
Web Crypto API может использоваться для:
- того, чтобы удостовериться в том, что данные не подделаны третьей стороной. Если информация хранится в открытом хранилище, подпись, сгенерированная с помощью пароля, позволяет людям, знающим пароль, выяснить, имеют ли они дело с оригинальными значениями или же нет.
Спецификации
| Specification |
|---|
| Web Cryptography API |