ΠΠΆΠ΅ΠΉΡΠΎΠ½ ΠΠΎΠ½Π΅Π½ΡΠΈΠ»Π΄ (Jason A. Donenfeld), Π°Π²ΡΠΎΡ VPN WireGuard, ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈΠ» ΠΏΠ°ΡΡΠΈ, Π·Π½Π°ΡΠΈΡΠ΅Π»ΡΠ½ΠΎ ΡΡΠΊΠΎΡΡΡΡΠΈΠ΅ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ ΡΠΈΡΠ΅Π» ΠΎΡ ΡΠΈΡΡΠ΅ΠΌΡ ΡΠ΅ΡΠ΅Π· ΡΡΠ½ΠΊΡΠΈΡ getrandom(), ΡΠ΅Π°Π»ΠΈΠ·ΠΎΠ²Π°Π½Π½ΡΡ ΡΠ΅ΡΠ΅Π· ΡΠΎΠΎΡΠ²Π΅ΡΡΡΠ²ΡΡΡΠΈΠΉ ΡΠΈΡΡΠ΅ΠΌΠ½ΡΠΉ Π²ΡΠ·ΠΎΠ² Linux. ΠΡΠ΅ΠΈΠΌΡΡΠ΅ΡΡΠ²ΠΎΠΌ ΡΠ°ΠΊΠΎΠ³ΠΎ ΡΠ΅ΡΠ΅Π½ΠΈΡ ΠΏΠΎ ΡΡΠ°Π²Π½Π΅Π½ΠΈΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ /dev/random ΠΈΠ»ΠΈ /dev/urandom ΡΠ²Π»ΡΠ΅ΡΡΡ Π½Π΅ΠΏΠΎΠ΄Π²Π΅ΡΠΆΠ΅Π½Π½ΠΎΡΡΡ Π°ΡΠ°ΠΊΠ°ΠΌ Π½Π° ΠΈΡΡΠ΅ΡΠΏΠ°Π½ΠΈΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²ΡΡ Π΄Π΅ΡΠΊΡΠΈΠΏΡΠΎΡΠΎΠ², ΠΊΠΎΡΠΎΡΡΠ΅ ΠΌΠΎΠ³ΡΡ ΠΏΡΠΈΠ²Π΅ΡΡΠΈ ΠΊ Π½Π΅ΠΈΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΠΈ Π½Π΅ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠΌ ΠΊΡΠΈΠΏΡΠΎΠ³ΡΠ°ΡΠΈΡΠ΅ΡΠΊΠΈΠΌ ΠΊΠ»ΡΡΠ°ΠΌ.
ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½Π½Π°Ρ ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ ΠΎΡΠ½ΠΎΠ²Π°Π½Π° Π½Π° ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠΈ ΠΌΠ΅Ρ
Π°Π½ΠΈΠ·ΠΌΠ° vDSO (virtual dynamic shared object), Π΄Π°ΡΡΠ΅Π³ΠΎ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡ ΠΏΠ΅ΡΠ΅Π½Π΅ΡΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΡΠΈΠΊ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π° ΠΈΠ· ΡΠ΄ΡΠ° Π² ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΠ΅Π»Ρ ΠΈ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ ΠΏΠ΅ΡΠ΅ΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡΠ°. Π ΡΠ»ΡΡΠ°Π΅ Ρ getrandom(), Π² Π²ΠΈΠ΄Π΅ vDSO ΠΎΡΠΎΡΠΌΠ»Π΅Π½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ ΡΠ²ΡΠ·Π°Π½Π½ΠΎΠ³ΠΎ Ρ Π΄Π°Π½Π½ΠΎΠΉ ΡΡΠ½ΠΊΡΠΈΠ΅ΠΉ ΡΠΈΡΡΠ΅ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ·ΠΎΠ²Π°, ΠΊΠΎΠ΄ ΠΊΠΎΡΠΎΡΠΎΠΉ Π·Π°ΡΠ°Π½Π΅Π΅ Π·Π°Π³ΡΡΠΆΠ°Π΅ΡΡΡ Π² Π°Π΄ΡΠ΅ΡΠ½ΠΎΠ΅ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΏΡΠΎΡΠ΅ΡΡΠ° Π½Π΅ΠΏΠΎΡΡΠ΅Π΄ΡΡΠ²Π΅Π½Π½ΠΎ ΡΠ΄ΡΠΎΠΌ. Π’Π°ΠΊΠΎΠΉ ΠΏΠΎΠ΄Ρ
ΠΎΠ΄ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ» ΡΡΠΊΠΎΡΠΈΡΡ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΠ΅ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΡ
ΡΠΈΡΠ΅Π» Π² Π½Π΅ΠΊΠΎΡΠΎΡΡΡ
ΡΠΈΡΡΠ°ΡΠΈΡΡ
Π² 15 ΡΠ°Π· ΠΈ Π±ΠΎΠ»Π΅Π΅.
ΠΡΡΠΎΡΠ½ΠΈΠΊ: opennet.ru