Line 1,109: |
Line 1,109: |
| | | | | |
| | Everyone | | | Everyone |
| + | |- |
| + | | Web-applets OpenSSL broken RNG |
| + | | [[SPL_services|csrng]] access was added to web-applets with [12.1.0+]. Prior to that, csrng and nn::os::GenerateRandomBytes were not used (besides sdk heap code). |
| + | nn::os::GetSystemTick is used to seed the OpenSSL RNG, among other data. Hence, it's probably (?) possible to bruteforce the RNG initial state, allowing predicting RNG output. |
| + | |
| + | The RNG code is wkcRandomNumbersPeer (peer_wkc nro), with the initialization code using GetSystemTick located in the func immediately before wkcGetTickCountPeer. The former is called from wkcOsslRandFilefReadPeer. wkcOsslRandFilefReadPeer is called for seeding the OpenSSL RNG. |
| + | |
| + | With [12.1.0+], wkcRandomNumberPeer/wkcRandomNumbersPeer wrap nn::os::GenerateRandomBytes. wkcCryptographicallyRandomValuesPeer was added which wraps nn::crypto::GenerateCryptographicallyRandomBytes. wkcOsslRandFilefReadPeer now calls nn::crypto::GenerateCryptographicallyRandomBytes instead of wkcRandomNumbersPeer. |
| + | | Breaking web-applets OpenSSL RNG -> potentially predict RNG data (keys(?)) during TLS comms. |
| + | | [[12.1.0]] |
| + | | [[12.1.0]] |
| + | | January 28, 2022 |
| + | | October 8, 2024 |
| + | | [[User:Yellows8|yellows8]], likely (?) others |
| |} | | |} |
| | | |