<bgdev />free

Вход

dev/urandom == CryptGenRandom?
0

#1275 (ツ) Courvoisier
Последно редактирано на 29.07.2020 от Courvoisier, видяно: 1041 пъти.

/dev/urandom има ли за еквивалент CryptGenRandom (което се използва от RNGCryptoServiceProvider) в Windows? Видях, че всъщност devurandom в OpenBSD може и да е по- добро от в повечето Linux. Според зависи източниците на ентропия. Имало ли е значение за някой, така че да мине на OpenBSD? Според секюрити аудиторите ми, CentOS и Windows Server 2016, с последни ъпдейти е ОК. Вероятно е, но има ли нужда в определени ситуации да го мисля?

#1282 (ツ) johnfound
Създадено на 29.07.2020, видяно: 1036 пъти.

Ами не, няма причина да го мислиш.

С изключение на това кой точно генератор да използваш /dev/random или /dev/urandom.

По този въпрос текат постоянни спорове. Едни казват, че за криптография не трябва да се използва urandom, други, обратно, че именно той трябва да се използва и нищо друго. rofl

#1283 (ツ) Elim Garak
Последно редактирано на 29.07.2020 от Elim Garak, видяно: 1033 пъти.

много зависи къде ти е софтуера :) аз съм виждал зависнали вмки в клауда, защото на /dev/random му беше свършила ентропията и съответно всички ВМи чакаха именно там

#1296 (ツ) Courvoisier
Създадено на 29.07.2020, видяно: 1020 пъти.
johnfound

Ами не, няма причина да го мислиш.

С изключение на това кой точно генератор да използваш /dev/random или /dev/urandom.

По този въпрос текат постоянни спорове. Едни казват, че за криптография не трябва да се използва urandom, други, обратно, че именно той трябва да се използва и нищо друго. rofl

Да, вчера попаднах на един такъв. urandom имало консистентно поведение на всички nix системи и било по-добре да не ти увисне инвокацията, отколкото няколко процеса да чакат за резултат, ако random блокира инвокацията. Т.е. разбрах го, че е по-добре да разчитам на малко ентропия, отколкото да изчакам да се генерира достатъчно ентропия, защото тогава ентропията била по-предвидима. А и на виртуалки източниците на ентропия били по-малко, защото не влизат тайминги на клавиатури и т.н., които имало на нормално желязо. Но корпоративно винаги съм на виртуалки. Само дома съм на истинско желязо.

Тук имам да дълбая още, не претендирам, че го разбирам добре на толкова low level. В netcore ще ползвам RngCrypto,което би трябвало да съобрази на каква операционна система е и ако е на линукс да си инвокира, например /dev/urandom

#1298 (ツ) Elim Garak
Създадено на 29.07.2020, видяно: 1013 пъти.

Не работят така нещата. Примерно в джава SecureRandom, което се ползва за крипто, ползва по дефолт /dev/random. Няма такова нещо като съобразяване. Твойта работа е да съобразиш, а компа прави само каквото му кажеш.

#1319 (ツ) Courvoisier
Създадено на 29.07.2020, видяно: 1000 пъти.

Сега търся какво използва RNGCryptoServiceProvider. Имам доказателства, че не използва /dev/random, но нямам доказателства, че използва /dev/urandom. Порових даже малко в сорса на неткора, обаче още не го намерих. Открих, че за Линукс се ползва RandomNumberGeneratorImplementation.Unix.cs по- конкретно, което инвокира Interop.Crypto.GetRandomBytes(...). То, от своя страна, ще си извика OpenSSL. Сега имам работа, после ще продължа с търсенето :-D

#1525 (ツ) Courvoisier
Създадено на 29.07.2020, видяно: 983 пъти.

Значи, отговорът е, че ще ползват каквото намерят за добре, но по- скоро ще е /dev/urandom System.Security.Cryptography.Native По- сложно, back to the books....

#1617 (ツ) Courvoisier
Последно редактирано на 29.07.2020 от Courvoisier, видяно: 962 пъти.

dev/urandom == CryptGenRandom?
0

AsmBB v3.0 (check-in: a316dab8b98d07d9); SQLite v3.42.0 (check-in: 831d0fb2836b71c9);
©2016..2023 John Found; Licensed under EUPL. Powered by Assembly language Created with Fresh IDE