Web Crypto API без ssl

Я написал небольшое веб-приложение для безопасной передачи сообщений, чтобы узнать больше о шифровании, и хотел показать его своим друзьям и позволить им немного поиграть с ним, поэтому я разместил его на своем маленьком сервере и был потрясен, обнаружив, что Web Crypto API (который я усердно работал, чтобы заставить его работать, потому что он не очень специфичен в своих сообщениях об ошибках) ТРЕБУЕТ SSL (вроде как побеждает цель реализации вашей собственной схемы шифрования в браузерах)!

У меня уже есть другой API, работающий на этом сервере с SSL, но вместо того, чтобы объединять их, я хотел спросить: есть ли способ обойти требование безопасного сокета Web Crypto API или есть другая библиотека, которая позволяет мне использовать такие же или похожие функции в незащищенном контексте?


person Nicolai Veliki    schedule 29.12.2019    source источник
comment
Webcrypto — это API браузера. Каким образом требуется SSL или даже сетевое подключение?   -  person President James K. Polk    schedule 29.12.2019
comment
@James Восстановите Монику Полк технически, вы правы, но сайт должен обслуживаться в безопасном контексте для большинства браузеров (наиболее часто используемых), чтобы разрешить использование API. Это либо локальный хост, как я его тестировал, либо SSL. Поскольку я отправил его на свой сервер, чтобы все могли использовать (и мои друзья могли играть с ним), в этом смысле он требует SSL.   -  person Nicolai Veliki    schedule 29.12.2019


Ответы (1)


Спецификация WebCrypto API(https://www.w3.org/TR/WebCryptoAPI/ ) не ограничивается SSL, но реализации браузера требуют «безопасного источника».

Например, для Chrome требуется https , wss, localhost или расширение. См. https://stackoverflow.com/a/46671627/6371459.

Вам нужно будет настроить SSL-соединение, чтобы использовать webcrypto. Если вы хотите использовать другую библиотеку (forge, pki.js и т.д.) у вас не будет этого ограничения, хотя желательно использовать SSL/TLS при использовании криптографии.

person pedrofb    schedule 30.12.2019
comment
PKIjs, который указан выше, в противном случае отличный ответ, не реализует криптографию и, следовательно, имеет те же ограничения происхождения, что и WebCrypto, на котором он построен. - person rmhrisk; 25.01.2020
comment
Я бы также добавил, что использование криптографии в контексте браузера без аутентификации источника приложения и защиты передачи сайта клиенту бесплодно. Это не ограничение веб-криптографии, а одна из моделей веб-безопасности. - person rmhrisk; 25.01.2020
comment
@pedrofb, не могли бы вы рассказать мне, как использовать библиотеку Forge для реализации функциональности window.crypto.subtle.importKey. потому что у меня нет подключения https - person Satya Dev Yadav; 21.07.2021
comment
@SatyaDevYadav, посмотрите в документации для privateKeyFromPem github.com/digitalbazaar/forge#pkcs8. Разместите новый вопрос, если у вас есть конкретные сомнения - person pedrofb; 21.07.2021
comment
@pedrofb Сэр, я разместил новый вопрос, можете ли вы проверить и направить меня. Вот ссылка stackoverflow.com/questions/68479744/ - person Satya Dev Yadav; 22.07.2021