Come funziona JS Crypto RNG di Google Chrome?

1

Secondo caniuse , Google Chrome ha il supporto per crypto.getRandomValues() per (presumibilmente / si spera) generare valori casuali crittograficamente sicuri. Come viene implementato?

Poiché ci sono stati molti problemi con le popolari librerie di crittografia che utilizzano i propri RNG homebrew, mi piacerebbe sapere quanta fiducia posso garantire a questo CSPRG.

    
posta Naftuli Kay 07.10.2016 - 21:51
fonte

1 risposta

2

Su POSIX, Google Chrome utilizza infatti /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);
}
    
risposta data 07.10.2016 - 22:03
fonte

Leggi altre domande sui tag