Pull to refresh

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 the window.crypto.getRandomValues() method.

Источник: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Math/random

У браузерных расширений и скриптов, криптография не самое слабое место. Более распостранены XSS, hijacking (в следствие выполнения кода в пользовательской среде). В зависимости от сценария, что-то можно упаковать в wasm, но вот если пользователь установил зловредное расширение, то inject и выполнение произвольного кода может производиться на любой странице.

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 во все не обязывает использовать подключение к плохим сетям.

Sign up to leave a comment.