]> Sergey Matveev's repositories - stargrave-blog.git/commitdiff
arc4random
authorSergey Matveev <stargrave@stargrave.org>
Tue, 9 Mar 2021 18:07:50 +0000 (21:07 +0300)
committerSergey Matveev <stargrave@stargrave.org>
Tue, 9 Mar 2021 18:15:57 +0000 (21:15 +0300)
http://www.openbsd.org/papers/hackfest2014-arc4random/
Давно слышал про rand() и random() и про то, что они не безопасны. В BSD
системах есть arc4random*(), которые изобрели в OpenBSD. Я сторонился
этого вызова, ибо это же RC4. Но, оказалось, что RC4 в нормальных ОС
давно заменён на что-то более серьёзное, типа ChaCha20.

Reseed происходит на регулярной основе, но не при каждом вызове. А
ChaCha20 я доверяю на 100% что она хороший выхлоп создаёт, без яростного
потребления энтропии. В итоге мне всё больше нравится идея использования
этой функции вместо чтения /dev/urandom, с которым ещё и куча кода
нужна, ведь это же работа с файлами, требующая ещё и соответствующих прав.
Плюс скорость ChaCha20 такая, что её и не для криптографических задач
вполне можно использовать.

Не даром в man-ах советуют её использовать. А в OpenBSD, пишут, что она
де-факто везде и всюду и применяется. И надо читать на ARCFOUR, а
"A Replacement Call for Random".

Ах да, конечно же этот вызов, судя по всяким презентациям, есть везде,
кроме, конечно же, glibc.


No differences found