From 074785cea106179cb3305637055ab0a009ca74f2 Mon Sep 17 00:00:00 2001 From: Peter Bengtsson Date: Tue, 8 Dec 2020 14:42:52 -0500 Subject: initial commit --- .../checking_authenticity_with_password/index.html | 33 +++++++++ files/ru/web/api/web_crypto_api/index.html | 80 ++++++++++++++++++++++ 2 files changed, 113 insertions(+) create mode 100644 files/ru/web/api/web_crypto_api/checking_authenticity_with_password/index.html create mode 100644 files/ru/web/api/web_crypto_api/index.html (limited to 'files/ru/web/api/web_crypto_api') diff --git a/files/ru/web/api/web_crypto_api/checking_authenticity_with_password/index.html b/files/ru/web/api/web_crypto_api/checking_authenticity_with_password/index.html new file mode 100644 index 0000000000..ea8ec86586 --- /dev/null +++ b/files/ru/web/api/web_crypto_api/checking_authenticity_with_password/index.html @@ -0,0 +1,33 @@ +--- +title: Проверка подлинности данных с паролем +slug: Web/API/Web_Crypto_API/Checking_authenticity_with_password +tags: + - HMAC + - Web Crypto +translation_of: Web/API/Web_Crypto_API/Checking_authenticity_with_password +--- +

{{APIRef("Web Crypto API")}}{{draft}}

+ +

Проверка подлинности данных может быть выполнена с помощью Web Crypto API. В этой статье мы покажем как создавать и управлять подписями, используя хэш-функцию и пароль.

+ +

HMAC алгоритм генерирует хэш на основе передаваемых ключа и данных, которые нужно подписать. Позже, идентичный хэш может быть вычислен заного любым пользователем, у которого имеется ключ. Необходимость ключа позволяет хранить данные и хэш вместе: злоумышленник не сможет создать хэш для измененных данных, не имея ключа.

+ +

Стоит заметить, что алгоритм никак не связан с какой-либо другой информацией о владельце: знание ключа – необходимое и достаточное условие для изменения данных.

+ +

Предположим, данные хранятся на компьютере. Чтобы получить доступ к записи или чтению, мы будем использовать localforage.js – библиотека-обертка над хранилищами браузера. Эта библиотека необязательна и используется в качестве примера для удобства, чтобы сосредоточиться на криптографии.

+ +

Данные, доступ к которым мы хотим получить, имеют следующую форму:

+ +

 

+ +

где data – данные для подписания и signature – подпись, информация для проверки подлинности.

+ +

Криптографические ключи невозможно выучить наизусть, а обычные пароли недостаточно безопасны. Чтобы решить эту проблему, криптографы создали алгоритмы для создания криптографических ключей из паролей. Знание пароля позволяет воссоздать ключ и использовать его.

+ +

Запрашиваем пароль у пользователя для генерации ключа:

+ +
 
+ +

С этим ключом мы можем вычислить хэш данных.

+ +
 
diff --git a/files/ru/web/api/web_crypto_api/index.html b/files/ru/web/api/web_crypto_api/index.html new file mode 100644 index 0000000000..08e1f04357 --- /dev/null +++ b/files/ru/web/api/web_crypto_api/index.html @@ -0,0 +1,80 @@ +--- +title: Web Crypto API +slug: Web/API/Web_Crypto_API +tags: + - API +translation_of: Web/API/Web_Crypto_API +--- +

{{DefaultAPISidebar("Web Crypto API")}}{{SeeCompatTable}}{{draft}}

+ +

Web Crypto API – интерфейс, позволяющий использовать криптографические примитивы для построения систем, манипулировать, хранить секретные ключи без необходимости делать доступными базовые биты ключа для JavaScript.

+ +

Интерфейс открывает доступ к следующим примитивам:

+ + + +

Web Crypto API не решает всех проблем, которые касаются использования криптографии на Web-сайтах или приложениях:

+ + + +
+

Внимание!

+ + +
+ +

Интерфейсы

+ +

Некоторые браузеры реализовали интерфейс {{domxref("Crypto")}}, но сделали это недостаточно точно или без должного уровня безопасности. Чтобы избежать конфуза с модулем {{domxref("Crypto")}} из пакета Node, методы и свойства интерфейса были перенесены в новый интерфейс: {{domxref("SubtleCrypto")}}. Свойство {{domxref("Crypto.subtle")}} даёт доступ к объекту, реализующему Web Crypto API.

+ +

Использование

+ +

Web Crypto API может использоваться для:

+ + + +

Спецификации

+ + + + + + + + + + + + + + + + +
СпецификацияСтатусКомментарий
{{SpecName("Web Crypto API")}}{{Spec2("Web Crypto API")}}Initial definition
+ +

Совместимость с браузерами

+ + + +

{{Compat("api.Crypto")}}

+ +
 
-- cgit v1.2.3-54-g00ecf