Как зашифровать ReadableStream - PullRequest
       95

Как зашифровать ReadableStream

0 голосов
/ 03 февраля 2019

Я ищу способ зашифровать произвольные большие файлы на стороне клиента в браузере, прежде чем отправить его на веб-сервер.В идеале я хотел бы зашифровать в aes-256-cbc и быть совместимым с форматом openssl.

Используя Stream API, я теперь могу читать фрагмент файла по фрагменту, обрабатывать его и передавать по конвейерув тело запроса XHR POST, что здорово.

Теперь мне нужен способ зашифровать его с помощью AES.К сожалению, API WebCrypto на данный момент не совместим с ReadableStreams.

https://github.com/w3c/webcrypto/issues/73

А пока что могут быть лучшими альтернативами?

1 Ответ

0 голосов
/ 10 февраля 2019

К сожалению, мы вряд ли увидим поддержку потоков в реализациях WebCrypto по соображениям безопасности.См. Шифрование потоков по некоторым причинам.

Вам также следует избегать криптографических реализаций JS и WebASM, поскольку они вряд ли обеспечат надлежащие гарантии безопасности.Для объяснения причин см. Почему JS Crypto считается вредным и посмотрите Снижение атак по побочным каналам .

В конечном итоге вам потребуется реализовать собственное разбиение на блоки и использовать WebCryptoдля вашего случая.

...