Comments 8
Поддерживаются основные примитивы системного программирования,
необходимые для криптографии, в том числе генератор случайных чисел.
Например, черезMath.random()
Что? Math.random - это ГПСЧ, а не КСГПСЧ.
Note:
Math.random()
does not
provide cryptographically secure random numbers. Do not use them for
anything related to security. Use the Web Crypto API instead, and more
precisely thewindow.crypto.getRandomValues()
method.Источник: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/random
У браузерных расширений и скриптов, криптография не самое слабое место. Более распостранены XSS, hijacking (в следствие выполнения кода в пользовательской среде). В зависимости от сценария, что-то можно упаковать в wasm
, но вот если пользователь установил зловредное расширение, то inject и выполнение произвольного кода может производиться на любой странице.
Браузерный JavaScript не создан для криптографии
А для чего создан этот API ?
https://developer.mozilla.org/en-US/docs/Web/API/Web_Crypto_API
Math.random никто не использует. В любом браузере сейчас можно так:
const array = new Uint32Array(10);
window.crypto.getRandomValues(array);
console.log("Your lucky numbers:");
for (const num of array) {
console.log(num);
}
Источник тут: https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues
Причем getRandomValues реализована даже в IE11. https://caniuse.com/getrandomvalues
Я так и не понял о чём именно статья? Наверное я тупой ¯\_(ツ)_/¯
Насколько опасна JavaScript-криптография?
Так насколько она опасна? Вступление есть, концовка есть, а где собственно всё тело статьи?
Статья в корпоративном блоге компании, занимающейся PKI.
Естественно, они напишут — "не изобретайте велосипеды, а приходите к нам, мы вам сгенерим сертификаты" (и тов. майору тоже заодно).
Использую оффлайн веб-страничку с javascript для подсчета хешей. Javascript во все не обязывает использовать подключение к плохим сетям.
Насколько опасна JavaScript-криптография?