ΠΠ° ΠΊΠΎΠ½ΡΠ΅ΡΠ΅Π½ΡΠΈΡΡΠ° 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
