Уязвимости Π² GnuPG, позволяващи заобикалянС Π½Π° вСрификацията ΠΈ изпълнСниС Π½Π° собствСн ΠΊΠΎΠ΄

На ΠΏΡ€ΠΎΠ²Π΅ΠΆΠ΄Π°Π½Π°Ρ‚Π° Π² ГСрмания конфСрСнция 39C3 (Chaos Communication Congress) бяха Ρ€Π°Π·ΠΊΡ€ΠΈΡ‚ΠΈ Π΄Π΅Ρ‚Π°ΠΉΠ»ΠΈ Π·Π° 12 досСга нСизвСстни ΠΈ всС ΠΎΡ‰Π΅ Π½Π΅ΠΈΠ·ΠΏΡ€Π°Π²Π΅Π½ΠΈ (0-day) уязвимости Π² инструмСнта Π·Π° Π·Π°Ρ‰ΠΈΡ‚Π΅Π½Π° комуникация GnuPG (GNU Privacy Guard), ΠΊΠΎΠΉΡ‚ΠΎ ΠΏΡ€Π΅Π΄Π»Π°Π³Π° ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΈ със стандартитС OpenPGP ΠΈ S/MIME ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ΠΈ Π·Π° ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ, Ρ€Π°Π±ΠΎΡ‚Π° с Π΅Π»Π΅ΠΊΡ‚Ρ€ΠΎΠ½Π½ΠΈ подписи, ΡƒΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅ ΠΈ Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ ΠΏΡƒΠ±Π»ΠΈΡ‡Π½ΠΈ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π° Π½Π° ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅. Най-опаснитС уязвимости позволяват заобикалянС Π½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°Ρ‚Π° Π½Π° цифровия подпис ΠΈ изпълнСниС Π½Π° ΠΊΠΎΠ΄ ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈ Π΄Π°Π½Π½ΠΈ Π² ASCII прСдставянС (ASCII Armor). Π Π°Π±ΠΎΡ‚Π½ΠΈ ΠΏΡ€ΠΎΡ‚ΠΎΡ‚ΠΈΠΏΠΈ Π½Π° Сксплойт ΠΈ ΠΏΠ°Ρ‚Ρ‡ΠΎΠ²Π΅ ΠΎΠ±Π΅Ρ‰Π°Π²Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½ΠΈ ΠΏΠΎ-късно. CVE ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΈ всС ΠΎΡ‰Π΅ Π½Π΅ са присвоСни.

УязвимоститС са ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅Π½ΠΈ ΠΎΡ‚ Π³Ρ€Π΅ΡˆΠΊΠΈ Π² ΠΊΠΎΠ΄Π° Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Π΄Π°Π½Π½ΠΈ ΠΈ парсинг Π½Π° Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ΠΈ ΠΈ Π½Π΅ са ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ с пропуски Π² криптографскитС Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠΈ. НапримСр, Π³Ρ€Π΅ΡˆΠΊΠ° Π² парсСра Π²ΠΎΠ΄ΠΈ Π΄ΠΎ срив ΠΏΡ€ΠΈ опрСдСлянС Π½Π° фактичСски подписанитС Π΄Π°Π½Π½ΠΈ ΠΈ създава условия, ΠΏΡ€ΠΈ ΠΊΠΎΠΈΡ‚ΠΎ провСряванитС Π΄Π°Π½Π½ΠΈ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π½Π΅ ΡΡŠΠ²ΠΏΠ°Π΄Π°Ρ‚ с подписанитС Π΄Π°Π½Π½ΠΈ, позволявайки Π½Π° атакуващия Π΄Π° ΠΏΠΎΠ΄ΠΌΠ΅Π½ΠΈ отворСния тСкст Π±Π΅Π· Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ приватния ΠΊΠ»ΡŽΡ‡.

Π˜Π΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€ΠΎΠ²Π°Π½Π½Ρ‹Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹:

  • Π“Ρ€Π΅ΡˆΠΊΠ° Π² ΠΊΠΎΠ΄Π° Π½Π° парсСра Π½Π° ΡˆΠΈΡ„Ρ€ΠΎΠ²Π°Π½ΠΈ Π΄Π°Π½Π½ΠΈ, разпространявани Π² Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ASCII-Armor (тСкстови Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ с Π±Π»ΠΎΠΊ 'BEGIN/END PGP ARMORED FILE'), Π²ΠΎΠ΄Π΅Ρ‰Π° Π΄ΠΎ запис извън Π³Ρ€Π°Π½ΠΈΡ†ΠΈΡ‚Π΅ Π½Π° Π±ΡƒΡ„Π΅Ρ€Π°. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ изпълнСниС Π½Π° ΠΊΠΎΠ΄ ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π² gpg Π½Π° спСциално ΠΎΡ„ΠΎΡ€ΠΌΠ΅Π½ΠΈ Π΄Π°Π½Π½ΠΈ. Уязвимостта сС проявява Π² функцията armor_filter() ΠΈ Π΅ ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅Π½Π° ΠΎΡ‚ Π΄Π²ΠΎΠΉΠ½ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Π²Π°Π½Π΅ Π½Π° брояча 'n' Π² Ρ†ΠΈΠΊΡŠΠ»Π° 'for' β€” нСзависимо ΠΎΡ‚ ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅Ρ‚ΠΎ 'n++' Π² самия Ρ†ΠΈΠΊΡŠΠ», Π±Ρ€ΠΎΡΡ‡ΡŠΡ‚ сС ΡƒΠ²Π΅Π»ΠΈΡ‡Π°Π²Π° ΠΈ Π² тялото Π½Π° Ρ†ΠΈΠΊΡŠΠ»Π° ΠΏΡ€ΠΈ запис Π½Π° Π΄Π°Π½Π½ΠΈ Π² Π±ΡƒΡ„Π΅Ρ€Π° 'buf[n++]'. Π’ ΠΊΡ€Π°ΠΉΠ½Π° смСтка извън Π±ΡƒΡ„Π΅Ρ€Π° сС записва излишСн Π±Π°ΠΉΡ‚, Π° ΠΏΡ€ΠΎΠΌΠ΅Π½Π»ΠΈΠ²Π°Ρ‚Π° с Ρ€Π°Π·ΠΌΠ΅Ρ€Π° 'ret_len' Π·Π°Π΅ΠΌΠ° стойност, Π½Π°Π΄Ρ…Π²ΡŠΡ€Π»ΡΡ‰Π° фактичСската.
  • Π’ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° създаванС ΠΈΠ»ΠΈ прСзапис Π½Π° всСки Ρ„Π°ΠΉΠ», Π² Ρ€Π°ΠΌΠΊΠΈΡ‚Π΅ Π½Π° Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²Π° Π·Π° Π΄ΠΎΡΡ‚ΡŠΠΏ, ΠΏΠΎΡ€Π°Π΄ΠΈ Π½Π΅ΠΊΠΎΡ€Π΅ΠΊΡ‚Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΏΠΎΠ»Π΅Ρ‚ΠΎ 'filename' Π² ΠΏΠ°ΠΊΠ΅Ρ‚ с Π΄Π°Π½Π½ΠΈ. Уязвимостта ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π·Π° ΠΎΡ€Π³Π°Π½ΠΈΠ·ΠΈΡ€Π°Π½Π΅ Π½Π° изпълнСниС Π½Π° ΠΊΠΎΠ΄ Π² систСмата ΠΏΡ€ΠΈ изпълнСниС Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄ΠΈΡ‚Π΅ 'gpg β€”decrypt poc.enc' ΠΈ 'gpg poc.enc' Π·Π° ΠΏΡ€Π΅Π³Π»Π΅Π΄ Π½Π° изпратСния ΠΎΡ‚ атакуващия Ρ„Π°ΠΉΠ» poc.enc. Π˜Π·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΠΊΠΎΠ΄Π° ΠΌΠΎΠΆΠ΅ Π΄Π° сС постигнС, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Ρ‡Ρ€Π΅Π· създаванС Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ~/ .bash_completion ΠΈΠ»ΠΈ ~/ .ssh/authorized_keys.
  • Π’ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° подмяна Π½Π° открития тСкст, ΠΏΠΎΠΊΠ°Π·Π²Π°Π½ Π½Π° потрСбитСля ΠΏΡ€ΠΈ ΡƒΠΊΠ°Π·Π²Π°Π½Π΅ Π½Π° опция Β«β€”decryptΒ» ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° ΠΎΡ‚Π΄Π΅Π»Π½ΠΎ прСдоставСни Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΈ подписи (Detached Signature, ΡΡŠΠ·Π΄Π°Π²Π°Ρ‚ сС с опция Β«β€”detach-sigΒ» ΠΈ сС прСдоставят Π² ΠΎΡ‚Π΄Π΅Π»Π΅Π½ sig-Ρ„Π°ΠΉΠ»). Π‘ΡŠΡ‰Π½ΠΎΡΡ‚Ρ‚Π° Π½Π° ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° Π΅, Ρ‡Π΅ ΠΏΡ€ΠΈ ΠΎΡ‚Π΄Π΅Π»Π½ΠΎ ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Π½Π΅ Π½Π° ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ ΠΈ sig-Ρ„Π°ΠΉΠ», Π°Ρ‚Π°ΠΊΠΈ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡ€Π°Ρ‰ΠΈ мСТдинния Ρ‚Ρ€Π°Ρ„ΠΈΠΊ (MITM), ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° внСсат ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ Π² sig-Ρ„Π°ΠΉΠ»Π°, слСд ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°Ρ‚Π° остава ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ, Π½ΠΎ ΠΏΡ€ΠΈ ΠΏΡ€Π΅Π³Π»Π΅Π΄ Π½Π° ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅Ρ‚ΠΎ ΠΎΡ‚ sig-Ρ„Π°ΠΉΠ»Π° с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° опцията Β«β€”decryptΒ» Ρ‰Π΅ бъдС ΠΈΠ·Π²Π΅Π΄Π΅Π½ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΎ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅. echo Plaintext > plaintext gpg β€”detach-sig plaintext # промяна plaintext.sig ΠΎΡ‚ атакуващия с добавянС Π½Π° Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π΅Π½ тСкст gpg β€”verify plaintext.sig plaintext # ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½ΠΎ gpg β€”decrypt plaintext.sig # ΠΏΡ€ΠΎΠ²Π΅Ρ€Π΅Π½ΠΎ, Π½ΠΎ ΠΈΠ·Π»ΠΈΠ·Π° Ρ€Π°Π·Π»ΠΈΡ‡Π΅Π½ тСкст
  • Π’ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° допълванС Π½Π° подписано ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅ с ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π½ΠΈ Π΄Π°Π½Π½ΠΈ, Π·Π°ΠΏΠ°Π·Π²Π°ΠΉΠΊΠΈ ΡƒΡΠΏΠ΅ΡˆΠ½Π°Ρ‚Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° подписа. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚ възниква Π·Π°Ρ€Π°Π΄ΠΈ отрязванСто Π½Π° Π΄Π°Π½Π½ΠΈ ΠΏΠΎ Π³Ρ€Π°Π½ΠΈΡ†Π°Ρ‚Π° ΠΎΡ‚ 20000 Π·Π½Π°ΠΊΠ° ΠΏΡ€ΠΈ изчисляванС Π½Π° Ρ…Π΅Ρˆ.
  • НСкорСктна ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° ΠΊΠΎΠ΄ΠΎΠ²Π΅Ρ‚Π΅ Π·Π° Π°ΡƒΡ‚Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½ΠΎ ΠΊΡ€ΠΈΠΏΡ‚ΠΈΡ€Π°Π½Π΅ (MDC β€” Modification Detection Codes), позволяваща ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΊΡ€ΠΈΠΏΡ‚ΠΈΡ€Π°Π½ΠΈ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ ΠΏΠΎ Ρ‚Π°ΠΊΡŠΠ² Π½Π°Ρ‡ΠΈΠ½, Ρ‡Π΅ ΠΏΡ€ΠΈ Π΄Π΅ΠΊΡ€ΠΈΠΏΡ‚ΠΈΡ€Π°Π½Π΅ ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½ΠΎΡ‚ΠΎ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅ Ρ‰Π΅ бъдС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π΅Π½ΠΎ ΠΊΠ°Ρ‚ΠΎ Π΄Ρ€ΡƒΠ³ Ρ‚ΠΈΠΏ ΠΏΠ°ΠΊΠ΅Ρ‚ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π²ΡŠΠ·ΠΏΡ€ΠΈΠ΅Ρ‚ΠΎ ΠΊΠ°Ρ‚ΠΎ ΠΏΡ€Π΅Π΄Π½Π°Π·Π½Π°Ρ‡Π΅Π½ΠΎ Π·Π° ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½Π΅ ΠΎΡ‚ΠΊΡ€ΠΈΡ‚ ΠΊΠ»ΡŽΡ‡).
  • Π’ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° подмяна Π½Π° Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ Π΄Π°Π½Π½ΠΈ Π² CS-подписитС (Cleartext Signature), създадСни с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° Ρ„Π»Π°Π³Π° Β«β€”not-dash-escapedΒ» ΠΈΠ»ΠΈ ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€Π°Π½ΠΈ ΠΎΡ‚ ΠΎΡ‚Π΄Π΅Π»Π½ΠΎ поставСни подписи (Detached Signature). Уязвимостта ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°, Π·Π° Π΄Π° създадС Ρƒ потрСбитСля Ρ„Π°Π»ΡˆΠΈΠ²ΠΎ Π²ΠΏΠ΅Ρ‡Π°Ρ‚Π»Π΅Π½ΠΈΠ΅ Π·Π° Ρ‚ΠΎΠ²Π°, ΠΊΠ°ΠΊΠ²ΠΈ Π΄Π°Π½Π½ΠΈ Π²ΡΡŠΡ‰Π½ΠΎΡΡ‚ са Π±ΠΈΠ»ΠΈ подписани. НапримСр, потрСбитСлят ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·Ρ‚Π΅Π³Π»ΠΈ ΠΎΡ‚ достовСрни ΠΈΠ·Ρ‚ΠΎΡ‡Π½ΠΈΡ†ΠΈ правилния ΠΊΠ»ΡŽΡ‡ Π·Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° цифровия подпис, Π½ΠΎ атакуващият ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° MITM-Π°Ρ‚Π°ΠΊΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΠΎΠ΄ΠΌΠ΅Π½ΠΈ изтСглСния ΠΎΡ‚ потрСбитСля iso-ΠΎΠ±Ρ€Π°Π· ΠΈ Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈ Π² подписа към ΠΎΠ±Ρ€Π°Π·Π° Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π΅Π½ Ρ…Π΅Ρˆ, ΠΏΠΎ Ρ‚Π°ΠΊΡŠΠ² Π½Π°Ρ‡ΠΈΠ½, Ρ‡Π΅ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°Ρ‚Π° Π½Π° подмСнСния ΠΎΠ±Ρ€Π°Π· Π΄Π° ΠΏΡ€Π΅ΠΌΠΈΠ½Π΅ ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎ ΠΏΡ€ΠΈ Π½Π°Π»ΠΈΡ‡ΠΈΠ΅ Π² систСмата Π½Π° провСрочния ΠΏΡ€Π°Π²ΠΈΠ»Π΅Π½ ΠΊΠ»ΡŽΡ‡.
  • Подмяна Π½Π° Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ Π΄Π°Π½Π½ΠΈ Π² ASCII-прСдставянСто Π½Π° CS-подписа (Cleartext Signature) Ρ‡Ρ€Π΅Π· вмъкванС Π½Π° символ с Π½ΡƒΠ»Π΅Π² ΠΊΠΎΠ΄. Уязвимостта, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, позволява вмъкванС Π½Π° ΠΏΡ€ΠΎΠΈΠ·Π²ΠΎΠ»Π΅Π½ тСкст Π² Π·Π°Π³Π»Π°Π²ΠΈΠ΅Ρ‚ΠΎ Hash.
  • НСправилното Ρ‚ΡŠΠ»ΠΊΡƒΠ²Π°Π½Π΅ Π½Π° Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° OpenPGP Π²ΠΎΠ΄ΠΈ Π΄ΠΎ ситуация, ΠΏΡ€ΠΈ която ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅Ρ‚ΠΎ β€žOne-Pass Signed Messageβ€œ Π² ASCII-кодирания Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π΅Π½ΠΎ ΠΊΠ°Ρ‚ΠΎ β€žCleartext Signatureβ€œ ΠΏΡ€ΠΈ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ измСнСния Π² Π·Π°Π³Π»Π°Π²ΠΊΠ°Ρ‚Π°. Уязвимостта позволява замяна Π½Π° ΠΎΡ€ΠΈΠ³ΠΈΠ½Π°Π»Π½ΠΈΡ‚Π΅ подписани Π΄Π°Π½Π½ΠΈ с Π·Π»ΠΎΠ½Π°ΠΌΠ΅Ρ€Π΅Π½ΠΎ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅, Π·Π°ΠΏΠ°Π·Π²Π°ΠΉΠΊΠΈ видимостта Π·Π° ΡƒΡΠΏΠ΅ΡˆΠ½Π° вСрификация.
  • Липсата Π½Π° ясно Ρ€Π°Π·Π³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π² информацията Π·Π° ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΡΡ‚Ρ‚Π° Π½Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°Ρ‚Π° Π½Π° Ρ†ΠΈΡ„Ρ€ΠΎΠ²Π°Ρ‚Π° подпись ΠΈ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΠ΅Ρ‚ΠΎ позволява ΡΡŠΠ·Π΄Π°Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ„Π°Π»ΡˆΠΈΠ²ΠΈ нСподписани ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΏΡ€ΠΈ изпълнСниС Π½Π° β€žgpg β€”decryptβ€œ ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π°Ρ‚ ΠΊΠ°Ρ‚ΠΎ Π°Π²Ρ‚Π΅Π½Ρ‚ΠΈΡ‡Π½ΠΈ.
  • Π’ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° създаванС Π½Π° OpenPGP-ΡΡŠΠΎΠ±Ρ‰Π΅Π½ΠΈΡ, ΠΊΠΎΠΈΡ‚ΠΎ Π² gpg Ρ‰Π΅ Π±ΡŠΠ΄Π°Ρ‚ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π°Π½ΠΈ ΠΏΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π΅Π½ Π½Π°Ρ‡ΠΈΠ½, ΠΎΡ‚ΠΊΠΎΠ»ΠΊΠΎΡ‚ΠΎ Π² Π΄Ρ€ΡƒΠ³ΠΈΡ‚Π΅ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° OpenPGP. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚ Π΅ ΠΏΠΎΡ€ΠΎΠ΄Π΅Π½ ΠΎΡ‚ особСноститС ΠΏΡ€ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ°Ρ‚Π° Π½Π° ΠΌΠ½ΠΎΠ³ΠΎ дълги Ρ€Π΅Π΄ΠΎΠ²Π΅ Π² ASCII-прСдставянСто Π½Π° OpenPGP-Π΄Π°Π½Π½ΠΈ.
  • БъздаванС Π½Π° условия ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° вСрификацията Π½Π° Ρ†ΠΈΡ„Ρ€ΠΎΠ²Π°Ρ‚Π° подпись Π·Π° ΠΎΡ‚ΠΊΠ°Ρ‚ Π½Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌΠ° Π·Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° Ρ…Π΅Ρˆ Π΄ΠΎ нСбСзопасния SHA1.
  • Π’ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° подмяна Π½Π° собствСнитС Π²Ρ‚ΠΎΡ€ΠΈΡ‡Π½ΠΈ ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅ (subkey) Π±Π΅Π· тяхното ΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½ΠΈΠ΅, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ приватния ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ Π½Π° мастСр-ΠΊΠ»ΡŽΡ‡Π°. Атаката сС ΠΎΡΡŠΡ‰Π΅ΡΡ‚Π²ΡΠ²Π° Ρ‡Ρ€Π΅Π· добавянС Π½Π° Ρ„Π°Π»ΡˆΠΈΠ² Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π½Π° ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅Ρ‚Π΅ с опцията β€žβ€”keyringβ€œ.

Π”ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΎ са ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΡ†ΠΈΡ€Π°Π½ΠΈ Π΄Π²Π΅ уязвимости Π² minisign, опростСн инструмСнтариум Π·Π° създаванС ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π½Π° Ρ†ΠΈΡ„Ρ€ΠΎΠ²ΠΈ подписи. И Π΄Π²Π΅Ρ‚Π΅ уязвимости (1, 2) позволяват ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»Π½ΠΈ послСдоватСлности Π½Π° Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° (β€ž\e[1Eβ€œ) ΠΈΠ»ΠΈ спСциални символи (β€ž\rβ€œ) Π² ΠΏΠΎΠ»Π΅Ρ‚ΠΎ Π·Π° ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€, Π·Π° Π΄Π° сС ΠΌΠΎΠ΄ΠΈΡ„ΠΈΡ†ΠΈΡ€Π° ΠΈΠ·Ρ…ΠΎΠ΄ΡŠΡ‚ Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠ°Ρ‚Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π·Π° замяна Π½Π° информацията Π·Π° Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚Π° ΠΎΡ‚ вСрификацията.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster