рдкреЛрд╕реНрдЯ-рд╡рд┐рд╢реНрд▓реЗрд╖рдг: рдХреНрд░рд┐рдкреНрдЯреЛ-рдХреБрдЮреНрдЬреА рд╕рд░реНрднрд░ SKS Keyserver рдХреЛ рдиреЗрдЯрд╡рд░реНрдХрдорд╛ рдкрдЫрд┐рд▓реНрд▓реЛ рдЖрдХреНрд░рдордгрдХреЛ рдмрд╛рд░реЗрдорд╛ рдХреЗ рдерд╛рд╣рд╛ рдЫ

рд╣реНрдпрд╛рдХрд░рд╣рд░реВрд▓реЗ рдУрдкрдирдкреАрдЬреАрдкреА рдкреНрд░реЛрдЯреЛрдХрд▓рдХреЛ рдПрдХ рд╡рд┐рд╢реЗрд╖рддрд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗ рдЬреБрди рджрд╕ рд╡рд░реНрд╖ рднрдиреНрджрд╛ рдмрдвреАрдХреЛ рд▓рд╛рдЧрд┐ рдкрд░рд┐рдЪрд┐рдд рдЫред

рд╣рд╛рдореА рддрдкрд╛рдИрдВрд▓рд╛рдИ рдмрддрд╛рдЙрдБрдЫреМрдВ рдХрд┐ рдмрд┐рдиреНрджреБ рдХреЗ рд╣реЛ рд░ рдХрд┐рди рддрд┐рдиреАрд╣рд░реВрд▓реЗ рдпрд╕рд▓рд╛рдИ рдмрдиреНрдж рдЧрд░реНрди рд╕рдХреНрджреИрдирдиреНред

рдкреЛрд╕реНрдЯ-рд╡рд┐рд╢реНрд▓реЗрд╖рдг: рдХреНрд░рд┐рдкреНрдЯреЛ-рдХреБрдЮреНрдЬреА рд╕рд░реНрднрд░ SKS Keyserver рдХреЛ рдиреЗрдЯрд╡рд░реНрдХрдорд╛ рдкрдЫрд┐рд▓реНрд▓реЛ рдЖрдХреНрд░рдордгрдХреЛ рдмрд╛рд░реЗрдорд╛ рдХреЗ рдерд╛рд╣рд╛ рдЫ
/ рдЕрдирд╕реНрдкреНрд▓рд╛рд╕ / рдЪреБрдирд▓рд┐рдпрд╛ рдЬреБ

рдиреЗрдЯрд╡рд░реНрдХ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ

рдЬреБрди рдордзреНрдпрдорд╛, рдЕрдЬреНрдЮрд╛рдд рдЖрдХреНрд░рдордг рдЧрд░реЗ рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд┐рдХ рдХреБрдЮреНрдЬреА рд╕рд░реНрднрд░рд╣рд░реВрдХреЛ рдиреЗрдЯрд╡рд░реНрдХрдорд╛ SKS рдХреАрд╕рд░реНрднрд░, OpenPGP рдкреНрд░реЛрдЯреЛрдХрд▓рдорд╛ рдирд┐рд░реНрдорд┐рддред рдпреЛ IETF рдорд╛рдирдХ рд╣реЛ (RFC 4880), рдЬреБрди рдЗрдореЗрд▓ рд░ рдЕрдиреНрдп рд╕рдиреНрджреЗрд╢рд╣рд░реВ рдЗрдиреНрдХреНрд░рд┐рдкреНрдЯ рдЧрд░реНрди рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдиреНрдЫред рдПрд╕рдХреЗрдПрд╕ рдиреЗрдЯрд╡рд░реНрдХ рддреАрд╕ рд╡рд░реНрд╖ рдкрд╣рд┐рд▓реЗ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд╡рд┐рддрд░рдг рдЧрд░реНрди рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛред рдЬрд╕рдорд╛ рдЙрдкрдХрд░рдгрд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЫрдиреН gnuPG рдбрд╛рдЯрд╛ рдЗрдиреНрдХреНрд░рд┐рдкреНрдЯ рдЧрд░реНрди рд░ рдЗрд▓реЗрдХреНрдЯреНрд░реЛрдирд┐рдХ рдбрд┐рдЬрд┐рдЯрд▓ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд╣рд░реВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиред

рд╣реНрдпрд╛рдХрд░рд╣рд░реВрд▓реЗ рджреБрдИ GnuPG рдкрд░рд┐рдпреЛрдЬрдирд╛ рдкреНрд░рдмрдиреНрдзрдХрд╣рд░реВ, рд░реЛрдмрд░реНрдЯ рд╣реНрдпрд╛рдиреНрд╕рди рд░ рдбреЗрдирд┐рдпрд▓ рдЧрд┐рд▓рдореЛрд░рдХреЛ рдкреНрд░рдорд╛рдгрдкрддреНрд░рд╣рд░реВ рд╕рдореНрдЭреМрддрд╛ рдЧрд░реЗред рд╕рд░реНрднрд░рдмрд╛рдЯ рднреНрд░рд╖реНрдЯ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд▓реЛрдб рдЧрд░реНрдирд╛рд▓реЗ GnuPG рдЕрд╕рдлрд▓ рд╣реБрдиреНрдЫ тАФ рдкреНрд░рдгрд╛рд▓реА рдорд╛рддреНрд░ рдлреНрд░рд┐рдЬ рд╣реБрдиреНрдЫред рддреНрдпрд╣рд╛рдБ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдЧрд░реНрдиреЗ рдХрд╛рд░рдг рдЫ рдХрд┐ рдЖрдХреНрд░рдордгрдХрд╛рд░реАрд╣рд░реВ рддреНрдпрд╣рд╛рдБ рд░реЛрдХрд┐рдиреЗ рдЫреИрдирдиреН, рд░ рд╕рдореНрдЭреМрддрд╛ рдкреНрд░рдорд╛рдгрдкрддреНрд░рд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛ рдорд╛рддреНрд░ рдмрдвреНрдиреЗрдЫред рд╣рд╛рд▓, рд╕рдорд╕реНрдпрд╛рдХреЛ рд╣рдж рдЕрдЬреНрдЮрд╛рдд рд░рд╣рдиреНрдЫред

рдЖрдХреНрд░рдордгрдХреЛ рд╕рд╛рд░

рд╣реНрдпрд╛рдХрд░рд╣рд░реВрд▓реЗ рдУрдкрдирдкреАрдЬреАрдкреА рдкреНрд░реЛрдЯреЛрдХрд▓рдорд╛ рд░рд╣реЗрдХреЛ рдХрдордЬреЛрд░реАрдХреЛ рдлрд╛рдЗрджрд╛ рдЙрдард╛рдПред рдЙрдиреА рджрд╢рдХреМрдВрджреЗрдЦрд┐ рд╕рдореБрджрд╛рдпрдорд╛ рдкрд░рд┐рдЪрд┐рдд рдЫрдиреНред GitHub рдорд╛ рдкрдирд┐ рдкрд╛рдЙрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рдЕрдиреБрд░реВрдк рд╢реЛрд╖рдгрд╣рд░реВред рддрд░ рдЕрд╣рд┐рд▓реЗрд╕рдореНрдо рдХрд╕реИрд▓реЗ рдкрдирд┐ "рдкреНрд╡рд╛рд▓" рдмрдиреНрдж рдЧрд░реНрдиреЗ рдЬрд┐рдореНрдореЗрд╡рд╛рд░реА рд▓рд┐рдПрдХреЛ рдЫреИрди (рд╣рд╛рдореА рдкрдЫрд┐ рдердк рд╡рд┐рд╡рд░рдгрдорд╛ рдХрд╛рд░рдгрд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛ рдХреБрд░рд╛ рдЧрд░реНрдиреЗрдЫреМрдВ)ред

Habr├й рдорд╛ рд╣рд╛рдореНрд░реЛ рдмреНрд▓рдЧ рджреЗрдЦрд┐ рдЪрдпрди рдХреЛ рдПрдХ рдЬреЛрдбреА:

OpenPGP рд╡рд┐рдирд┐рд░реНрджреЗрд╢ рдЕрдиреБрд╕рд╛рд░, рдЬреЛ рдХреЛрд╣реАрд▓реЗ рдкрдирд┐ рдЖрдлреНрдиреЛ рдорд╛рд▓рд┐рдХ рдкреНрд░рдорд╛рдгрд┐рдд рдЧрд░реНрди рдкреНрд░рдорд╛рдгрдкрддреНрд░рд╣рд░реВрдорд╛ рдбрд┐рдЬрд┐рдЯрд▓ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд╣рд░реВ рдердкреНрди рд╕рдХреНрдЫрдиреНред рдпрд╕рдмрд╛рд╣реЗрдХ, рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд╣рд░реВрдХреЛ рдЕрдзрд┐рдХрддрдо рд╕рдВрдЦреНрдпрд╛ рдХреБрдиреИ рдкрдирд┐ рд╣рд┐рд╕рд╛рдмрд▓реЗ рд╡рд┐рдирд┐рдпрдорд┐рдд рдЫреИрдиред рд░ рдпрд╣рд╛рдБ рдПрдЙрдЯрд╛ рд╕рдорд╕реНрдпрд╛ рдЙрддреНрдкрдиреНрди рд╣реБрдиреНрдЫ - SKS рдиреЗрдЯрд╡рд░реНрдХрд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ рдПрдХ рдкреНрд░рдорд╛рдгрдкрддреНрд░рдорд╛ 150 рд╣рдЬрд╛рд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд╣рд░реВ рд░рд╛рдЦреНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫ, рддрд░ GnuPG рд▓реЗ рдпрд╕реНрддреЛ рд╕рдВрдЦреНрдпрд╛рд▓рд╛рдИ рд╕рдорд░реНрдерди рдЧрд░реНрджреИрдиред рдпрд╕рд░реА, рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд▓реЛрдб рдЧрд░реНрджрд╛, GnuPG (рд╕рд╛рдереИ рдЕрдиреНрдп OpenPGP рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрдирд╣рд░реВ) рд╕реНрдерд┐рд░ рд╣реБрдиреНрдЫред

рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рдордзреНрдпреЗ рдПрдХ рдПрдХ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗ - рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдЖрдпрд╛рдд рдЧрд░реНрди рдЙрдирд▓рд╛рдИ рд▓рдЧрднрдЧ 10 рдорд┐рдиреЗрдЯ рд▓рд╛рдЧреНрдпреЛред рдкреНрд░рдорд╛рдгрдкрддреНрд░рдорд╛ 54 рд╣рдЬрд╛рд░ рднрдиреНрджрд╛ рдмрдвреА рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд╣рд░реВ рдерд┐рдП, рд░ рдпрд╕рдХреЛ рд╡рдЬрди 17 рдПрдордмреА рдерд┐рдпреЛ:

$ gpg --homedir=$PWD --recv C4BC2DDB38CCE96485EBE9C2F20691179038E5C6
gpg: key F20691179038E5C6: 4 duplicate signatures removed
gpg: key F20691179038E5C6: 54614 signatures not checked due to missing keys
gpg: key F20691179038E5C6: 4 signatures reordered
gpg: key F20691179038E5C6: public key "Daniel Kahn Gillmor <[email protected]>" imported
gpg: no ultimately trusted keys found
gpg: Total number processed: 1
gpg:               imported: 1
$ ls -lh pubring.gpg
-rw-r--r--  1 filippo  staff    17M  2 Jul 16:30 pubring.gpg

рдХреБрд░рд╛рд▓рд╛рдИ рдирд░рд╛рдореНрд░реЛ рдмрдирд╛рдЙрдирдХреЛ рд▓рд╛рдЧрд┐, OpenPGP рдХреБрдЮреНрдЬреА рд╕рд░реНрднрд░рд╣рд░реВрд▓реЗ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдЬрд╛рдирдХрд╛рд░реА рд╣рдЯрд╛рдЙрдБрджреИрдирдиреНред рдпреЛ рдЧрд░рд┐рдиреНрдЫ рддрд╛рдХрд┐ рддрдкрд╛рдИрдВрд▓реЗ рдкреНрд░рдорд╛рдгрдкрддреНрд░рд╣рд░реВрдХрд╛ рд╕рд╛рде рд╕рдмреИ рдХрд╛рд░реНрдпрд╣рд░реВрдХреЛ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдЯреНрд░реЗрд╕ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ рд░ рддрд┐рдиреАрд╣рд░реВрдХреЛ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рд░реЛрдХреНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред рддрд╕рд░реНрде, рд╕рдордЭреМрддрд╛ рддрддреНрд╡рд╣рд░реВ рд╣рдЯрд╛рдЙрди рдЕрд╕рдореНрднрд╡ рдЫред

рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдкрдорд╛, SKS рдиреЗрдЯрд╡рд░реНрдХ рдПрдХ рдареВрд▓реЛ "рдлрд╛рдЗрд▓ рд╕рд░реНрднрд░" рд╣реЛ рдЬрд╕рдорд╛ рдЬреЛ рдХреЛрд╣реАрд▓реЗ рдбрд╛рдЯрд╛ рд▓реЗрдЦреНрди рд╕рдХреНрдЫред рд╕рдорд╕реНрдпрд╛ рдЪрд┐рддреНрд░рдг рдЧрд░реНрди, рдЧрдд рд╡рд░реНрд╖ GitHub рдирд┐рд╡рд╛рд╕реА рдлрд╛рдЗрд▓ рдкреНрд░рдгрд╛рд▓реА рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБрднрдпреЛ, рдЬрд╕рд▓реЗ рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд┐рдХ рдХреБрдЮреНрдЬреА рд╕рд░реНрднрд░рд╣рд░реВрдХреЛ рдиреЗрдЯрд╡рд░реНрдХрдорд╛ рдХрд╛рдЧрдЬрд╛рддрд╣рд░реВ рднрдгреНрдбрд╛рд░ рдЧрд░реНрджрдЫред

рдЕрд╕реБрд░рдХреНрд╖рд╛ рдХрд┐рди рдмрдиреНрдж рднрдПрди ?

рдХрдордЬреЛрд░реА рдмрдиреНрдж рдЧрд░реНрдиреЗ рдХреБрдиреИ рдХрд╛рд░рдг рдерд┐рдПрдиред рдкрд╣рд┐рд▓реЗ, рдпреЛ рд╣реНрдпрд╛рдХрд░ рдЖрдХреНрд░рдордгрдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдПрдиред рдпрджреНрдпрдкрд┐ рдЖрдИрдЯреА рд╕рдореБрджрд╛рдп рд▓рд╛рдореЛ рд╕рдордпрдХреЛ рд▓рд╛рдЧрд┐ рд╕реЛрдзреЗ SKS рд░ OpenPGP рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ рд╕рдорд╕реНрдпрд╛рдорд╛ рдзреНрдпрд╛рди рджрд┐рдиреБрдкрд░реНрдЫред

рдирд┐рд╖реНрдкрдХреНрд╖ рд╣реБрди, рдпреЛ рдЬреВрди рдорд╛ рддрд┐рдиреАрд╣рд░реВ рдЕрдЭреИ рдкрдирд┐ рдзреНрдпрд╛рди рджрд┐рдПрд░ рд▓рд╛рдпрдХ рдЫ рд╕реБрд░реБ рдЧрд░рд┐рдпреЛ рдкреНрд░рдпреЛрдЧрд╛рддреНрдордХ рдХреБрдЮреНрдЬреА рд╕рд░реНрднрд░ keys.openpgp.orgред рдпрд╕рд▓реЗ рдпрд╕ рдкреНрд░рдХрд╛рд░рдХрд╛ рдЖрдХреНрд░рдордгрд╣рд░реВ рд╡рд┐рд░реБрджреНрдз рд╕реБрд░рдХреНрд╖рд╛ рдкреНрд░рджрд╛рди рдЧрд░реНрджрдЫред рдпрджреНрдпрдкрд┐, рдпрд╕рдХреЛ рдбрд╛рдЯрд╛рдмреЗрд╕ рд╕реНрдХреНрд░реНрдпрд╛рдЪрдмрд╛рдЯ рднрд░рд┐рдПрдХреЛ рдЫ, рд░ рд╕рд░реНрднрд░ рдЖрдлреИрдВ SKS рдХреЛ рднрд╛рдЧ рд╣реЛрдЗрдиред рддрд╕рд░реНрде, рдпрд╕рд▓рд╛рдИ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рдкрд╣рд┐рд▓реЗ рд╕рдордп рд▓рд╛рдЧреНрдиреЗрдЫред

рдкреЛрд╕реНрдЯ-рд╡рд┐рд╢реНрд▓реЗрд╖рдг: рдХреНрд░рд┐рдкреНрдЯреЛ-рдХреБрдЮреНрдЬреА рд╕рд░реНрднрд░ SKS Keyserver рдХреЛ рдиреЗрдЯрд╡рд░реНрдХрдорд╛ рдкрдЫрд┐рд▓реНрд▓реЛ рдЖрдХреНрд░рдордгрдХреЛ рдмрд╛рд░реЗрдорд╛ рдХреЗ рдерд╛рд╣рд╛ рдЫ
/ рдЕрдирд╕реНрдкреНрд▓рд╛рд╕ / рд░реБрдмреЗрди рдмрд╛рдЧреБрд╕

рдореВрд▓ рдкреНрд░рдгрд╛рд▓реАрдорд╛ рдмрдЧрдХреЛ рд▓рд╛рдЧрд┐, рдПрдХ рдЬрдЯрд┐рд▓ рд╕рд┐рдВрдХреНрд░реЛрдирд╛рдЗрдЬреЗрд╕рди рддрдВрддреНрд░рд▓реЗ рдпрд╕рд▓рд╛рдИ рдлрд┐рдХреНрд╕ рд╣реБрдирдмрд╛рдЯ рд░реЛрдХреНрдЫред рдХреБрдЮреНрдЬреА рд╕рд░реНрднрд░ рдиреЗрдЯрд╡рд░реНрдХ рдореВрд▓ рд░реВрдкрдорд╛ рдпрд╛рд░реЛрди рдорд┐рдиреНрд╕реНрдХреАрдХреЛ рдкреАрдПрдЪрдбреА рдереАрд╕рд┐рд╕рдХреЛ рдЕрд╡рдзрд╛рд░рдгрд╛рдХреЛ рдкреНрд░рдорд╛рдгрдХреЛ рд░реВрдкрдорд╛ рд▓реЗрдЦрд┐рдПрдХреЛ рдерд┐рдпреЛред рдпрд╕рдмрд╛рд╣реЗрдХ, рдПрдХ рдмрд░реБ рд╡рд┐рд╢рд┐рд╖реНрдЯ рднрд╛рд╖рд╛, OCaml, рдХрд╛рдордХреЛ рд▓рд╛рдЧрд┐ рдЫрдиреЛрдЯ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛред рджреНрд╡рд╛рд░рд╛ рдХреЛ рдЕрдиреБрд╕рд╛рд░ рд╕рдВрд░рдХреНрд╖рдХ рд░реЛрдмрд░реНрдЯ рд╣реНрдпрд╛рдиреНрд╕рди, рдХреЛрдб рдмреБрдЭреНрди рдЧрд╛рд╣реНрд░реЛ рдЫ, рддреНрдпрд╕реИрд▓реЗ рдпрд╕рдорд╛ рд╕рд╛рдиреЛ рд╕реБрдзрд╛рд░ рдорд╛рддреНрд░ рдЧрд░рд┐рдиреНрдЫред SKS рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдкрд░рд┐рдорд╛рд░реНрдЬрди рдЧрд░реНрди, рдпрд╕рд▓рд╛рдИ рд╕реНрдХреНрд░реНрдпрд╛рдЪрдмрд╛рдЯ рдкреБрди: рд▓реЗрдЦреНрдиреБ рдкрд░реНрдЫред

рдХреБрдиреИ рдкрдирд┐ рдЕрд╡рд╕реНрдерд╛рдорд╛, GnuPG рд▓реЗ рд╕рдЮреНрдЬрд╛рд▓ рдХрд╣рд┐рд▓реНрдпреИ рдирд┐рд╢реНрдЪрд┐рдд рд╣реБрдиреЗрдЫ рднрдиреНрдиреЗ рд╡рд┐рд╢реНрд╡рд╛рд╕ рдЧрд░реНрджреИрдиред GitHub рдорд╛ рдПрдХ рдкреЛрд╕реНрдЯрдорд╛, рд╡рд┐рдХрд╛рд╕рдХрд░реНрддрд╛рд╣рд░реВрд▓реЗ рдкрдирд┐ рд▓реЗрдЦреЗ рдХрд┐ рддрд┐рдиреАрд╣рд░реВ SKS Keyserver рд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрди рд╕рд┐рдлрд╛рд░рд┐рд╕ рдЧрд░реНрджреИрдирдиреНред рд╡рд╛рд╕реНрддрд╡рдорд╛, рддрд┐рдиреАрд╣рд░реВрд▓реЗ рдирдпрд╛рдБ рд╕реЗрд╡рд╛ рдХреБрдЮреНрдЬреАрд╣рд░реВ.openpgp.org рдорд╛ рд╕рдВрдХреНрд░рдордг рд╕реБрд░реБ рдЧрд░реНрдиреБрдХреЛ рдореБрдЦреНрдп рдХрд╛рд░рдгрд╣рд░реВ рдордзреНрдпреЗ рдпреЛ рдПрдХ рд╣реЛред рд╣рд╛рдореА рдШрдЯрдирд╛рд╣рд░реВрдХреЛ рдердк рд╡рд┐рдХрд╛рд╕ рдорд╛рддреНрд░ рд╣реЗрд░реНрди рд╕рдХреНрдЫреМрдВред

рд╣рд╛рдореНрд░реЛ рдХрд░реНрдкреЛрд░реЗрдЯ рдмреНрд▓рдЧрдмрд╛рдЯ рдХреЗрд╣реА рд╕рд╛рдордЧреНрд░реАрд╣рд░реВ:

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди