¿Cómo funciona el RNG JS Crypto de Google Chrome?

1

Según caniuse , Google Chrome admite crypto.getRandomValues() para generar valores aleatorios criptográficamente seguros. ¿Cómo se implementa esto?

Dado que ha habido muchos problemas con las bibliotecas criptográficas populares que utilizan sus propios RNGs caseros, me gustaría saber cuánta confianza puedo otorgar a este CSPRG.

    
pregunta Naftuli Kay 07.10.2016 - 21:51
fuente

1 respuesta

2

En POSIX, Google Chrome de hecho usa /dev/urandom :

class URandomFd {
    public:
        URandomFd() : fd_(open("/dev/urandom", O_RDONLY)) {
            DCHECK_GE(fd_, 0) << "Cannot open /dev/urandom: " << errno;
        }

    ~URandomFd() { close(fd_); }

    int fd() const { return fd_; }

    private:
        const int fd_;
};

// ...

void RandBytes(void* output, size_t output_length) {
    const int urandom_fd = g_urandom_fd.Pointer()->fd();
    const bool success =
        ReadFromFD(urandom_fd, static_cast<char*>(output), output_length);
    CHECK(success);
}
    
respondido por el Naftuli Kay 07.10.2016 - 22:03
fuente

Lea otras preguntas en las etiquetas