Уязвимости Π² 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