Rutoken рдорд╛ GOST-2012 рдХреБрдЮреНрдЬреАрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд▓рд┐рдирдХреНрд╕рдорд╛ рд╕реНрдерд╛рдиреАрдп рдкреНрд░рдорд╛рдгреАрдХрд░рдгрдХреЛ рд▓рд╛рдЧрд┐ PAM рдореЛрдбреНрдпреБрд▓рд╣рд░реВ рдХрд╕рд░реА рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ

Rutoken рдорд╛ GOST-2012 рдХреБрдЮреНрдЬреАрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд▓рд┐рдирдХреНрд╕рдорд╛ рд╕реНрдерд╛рдиреАрдп рдкреНрд░рдорд╛рдгреАрдХрд░рдгрдХреЛ рд▓рд╛рдЧрд┐ PAM рдореЛрдбреНрдпреБрд▓рд╣рд░реВ рдХрд╕рд░реА рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ

рд╕рд╛рдзрд╛рд░рдг рдкрд╛рд╕рд╡рд░реНрдбрд╣рд░реВ рд╕реБрд░рдХреНрд╖рд┐рдд рдЫреИрдирдиреН, рд░ рдЬрдЯрд┐рд▓рд╣рд░реВ рд╕рдореНрдЭрди рдЕрд╕рдореНрднрд╡ рдЫрдиреНред рдпрд╕реИрд▓реЗ рддрд┐рдиреАрд╣рд░реВ рдкреНрд░рд╛рдп: рдХрд┐рдмреЛрд░реНрдб рд╡рд╛ рдордирд┐рдЯрд░рдорд╛ рдЯрд╛рдБрд╕рд┐рдПрдХреЛ рдиреЛрдЯрдорд╛ рд╕рдорд╛рдкреНрдд рд╣реБрдиреНрдЫрдиреНред рдкрд╛рд╕рд╡рд░реНрдбрд╣рд░реВ "рдмрд┐рд░реНрд╕рдиреЗ" рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрдХреЛ рджрд┐рдорд╛рдЧрдорд╛ рд░рд╣рд┐рд░рд╣рдиреЗ рд░ рд╕реБрд░рдХреНрд╖рд╛рдХреЛ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдпрддрд╛ рд╣рд░рд╛рдПрдХреЛ рдЫреИрди рднрдиреЗрд░ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрди, рддреНрдпрд╣рд╛рдБ рджреБрдИ-рдХрд╛рд░рдХ рдкреНрд░рдорд╛рдгреАрдХрд░рдг (2FA) рдЫред

рдпрдиреНрддреНрд░рдХреЛ рд╕реНрд╡рд╛рдорд┐рддреНрд╡ рд░ рдпрд╕рдХреЛ PIN рдерд╛рд╣рд╛ рдкрд╛рдЙрдиреБрдХреЛ рд╕рдВрдпреЛрдЬрдирдХреЛ рдХрд╛рд░рдгрд▓реЗ рдЧрд░реНрджрд╛, PIN рдЖрдлреИрдВрд▓рд╛рдИ рд╕рдореНрдЭрди рд╕рдЬрд┐рд▓реЛ рд░ рд╕рдЬрд┐рд▓реЛ рд╣реБрди рд╕рдХреНрдЫред PIN рд▓рдореНрдмрд╛рдЗ рд╡рд╛ рдЕрдирд┐рдпрдорд┐рддрддрд╛рдорд╛ рд╣реБрдиреЗ рдмреЗрдлрд╛рдЗрджрд╛рд╣рд░реВ рднреМрддрд┐рдХ рдЕрдзрд┐рдХрд╛рд░ рдЖрд╡рд╢реНрдпрдХрддрд╛ рд░ PIN рдмреНрд░реБрдЯ рдлреЛрд░реНрд╕рдорд╛ рдкреНрд░рддрд┐рдмрдиреНрдзрд╣рд░реВрджреНрд╡рд╛рд░рд╛ рдЕрдлрд╕реЗрдЯ рд╣реБрдиреНрдЫрдиреНред

рдердк рд░реВрдкрдорд╛, рдпреЛ рд╕рд░рдХрд╛рд░реА рдПрдЬреЗрдиреНрд╕реАрд╣рд░реВрдорд╛ рд╣реБрдиреНрдЫ рдХрд┐ рддрд┐рдиреАрд╣рд░реВ рд╕рдмреИ GOST рдЕрдиреБрд╕рд╛рд░ рдХрд╛рдо рдЧрд░реНрди рдЪрд╛рд╣рдиреНрдЫрдиреНред рд▓рд┐рдирдХреНрд╕рдорд╛ рд▓рдЧ рдЗрди рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рдпреЛ 2FA рд╡рд┐рдХрд▓реНрдк рдЫрд▓рдлрд▓ рдЧрд░рд┐рдиреЗрдЫред рдо рдЯрд╛рдврд╛рдмрд╛рдЯ рд╕реБрд░реБ рдЧрд░реНрдЫреБред

PAM рдореЛрдбреНрдпреБрд▓рд╣рд░реВ

Pluggable Authentication Modules (PAM) рдПрдХ рдорд╛рдирдХ API рд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВрдорд╛ рд╡рд┐рднрд┐рдиреНрди рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╕рдВрдпрдиреНрддреНрд░рд╣рд░реВрдХреЛ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рднрдПрдХреЛ рдореЛрдбреНрдпреБрд▓рд╣рд░реВ рд╣реБрдиреНред
PAM рд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрди рд╕рдХреНрдиреЗ рд╕рдмреИ рдЙрдкрдпреЛрдЧрд┐рддрд╛рд╣рд░реВ рд░ рдЕрдиреБрдкреНрд░рдпреЛрдЧрд╣рд░реВрд▓реЗ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдЙрдард╛рдЙрдБрдЫрдиреН рд░ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░рдорд╛рдгреАрдХрд░рдгрдХреЛ рд▓рд╛рдЧрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдЫрдиреНред
рдЕрднреНрдпрд╛рд╕рдорд╛, рдпрд╕рд▓реЗ рдпрд╕реНрддреЛ рдХрд╛рдо рдЧрд░реНрдЫ: рд▓рдЧрдЗрди рдЖрджреЗрд╢рд▓реЗ PAM рд▓рд╛рдИ рдХрд▓ рдЧрд░реНрдЫ, рдЬрд╕рд▓реЗ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдлрд╛рдЗрд▓рдорд╛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдореЛрдбреНрдпреБрд▓рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд╕рдмреИ рдЖрд╡рд╢реНрдпрдХ рдЬрд╛рдБрдЪрд╣рд░реВ рдЧрд░реНрдЫ рд░ рдирддрд┐рдЬрд╛рд▓рд╛рдИ рд▓рдЧрдЗрди рдЖрджреЗрд╢рдорд╛ рдлрд░реНрдХрд╛рдЙрдБрдЫред

librtpam

Aktiv рдХрдореНрдкрдиреА рджреНрд╡рд╛рд░рд╛ рд╡рд┐рдХрд╛рд╕ рдЧрд░рд┐рдПрдХреЛ рдореЛрдбреНрдпреБрд▓рд▓реЗ рдШрд░реЗрд▓реБ рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлреАрдХреЛ рдирд╡реАрдирддрдо рдорд╛рдкрджрдгреНрдб рдЕрдиреБрд╕рд╛рд░ рдПрд╕рд┐рдореЗрдЯреНрд░рд┐рдХ рдХреБрдЮреНрдЬреАрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд╕реНрдорд╛рд░реНрдЯ рдХрд╛рд░реНрдбрд╣рд░реВ рд╡рд╛ USB рдЯреЛрдХрдирд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрдХреЛ рджреБрдИ-рдХрд╛рд░рдХ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдердкреНрдЫред

рдпрд╕рдХреЛ рд╕рдЮреНрдЪрд╛рд▓рдирдХреЛ рд╕рд┐рджреНрдзрд╛рдиреНрдд рд╣реЗрд░реМрдВ:

  • рдЯреЛрдХрдирд▓реЗ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рдХреЛ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд░ рдпрд╕рдХреЛ рдирд┐рдЬреА рдХреБрдЮреНрдЬреА рднрдгреНрдбрд╛рд░ рдЧрд░реНрджрдЫ;
  • рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рдХреЛ рдЧреГрд╣ рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реАрдорд╛ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдкрдорд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рдЧрд░рд┐рдПрдХреЛ рдЫред

рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╣реБрдиреНрдЫ:

  1. Rutoken рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рдХреЛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рдкреНрд░рдорд╛рдгрдкрддреНрд░рдХреЛ рд▓рд╛рдЧрд┐ рдЦреЛрдЬреА рдЧрд░реНрджрдЫред
  2. рдЯреЛрдХрди рдкрд┐рди рдЕрдиреБрд░реЛрдз рдЧрд░рд┐рдПрдХреЛ рдЫред
  3. рдЕрдирд┐рдпрдорд┐рдд рдбреЗрдЯрд╛ рдирд┐рдЬреА рдХреБрдЮреНрдЬреАрдорд╛ рд╕реАрдзрд╛ рд░реБрдЯреЛрдХрди рдЪрд┐рдкрдорд╛ рд╕рд╛рдЗрди рдЗрди рдЧрд░рд┐рдПрдХреЛ рдЫред
  4. рдкрд░рд┐рдгрд╛рдорд╕реНрд╡рд░реВрдк рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рдХреЛ рдкреНрд░рдорд╛рдгрдкрддреНрд░рдмрд╛рдЯ рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреБрдЮреНрдЬреА рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдкреНрд░рдорд╛рдгрд┐рдд рд╣реБрдиреНрдЫред
  5. рдореЛрдбреНрдпреБрд▓рд▓реЗ рдХрд▓рд┐рдЩ рдПрдкрдорд╛ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдкрд░рд┐рдгрд╛рдо рдлрд░реНрдХрд╛рдЙрдБрдЫред

рддрдкрд╛рдИрдВрд▓реЗ GOST R 34.10-2012 рдХреБрдЮреНрдЬреАрд╣рд░реВ (рд▓рдореНрдмрд╛рдЗ 256 тАЛтАЛрд╡рд╛ 512 рдмрд┐рдЯ) рд╡рд╛ рдкреБрд░рд╛рдиреЛ GOST R 34.10-2001 рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫред

рддрдкрд╛рдИрдВрд▓реЗ рдХреБрдЮреНрдЬреАрд╣рд░реВрдХреЛ рд╕реБрд░рдХреНрд╖рд╛рдХреЛ рдмрд╛рд░реЗрдорд╛ рдЪрд┐рдиреНрддрд╛ рд▓рд┐рдиреБ рдкрд░реНрджреИрди - рддрд┐рдиреАрд╣рд░реВ рд╕рд┐рдзреИ рд░реБрдЯреЛрдХреЗрдирдорд╛ рдЙрддреНрдкрдиреНрди рд╣реБрдиреНрдЫрдиреН рд░ рдХреНрд░рд┐рдкреНрдЯреЛрдЧреНрд░рд╛рдлрд┐рдХ рдЕрдкрд░реЗрд╕рдирд╣рд░реВрдорд╛ рдпрд╕рдХреЛ рдореЗрдореЛрд░реА рдХрд╣рд┐рд▓реНрдпреИ рдЫреЛрдбреНрджреИрдирдиреНред

Rutoken рдорд╛ GOST-2012 рдХреБрдЮреНрдЬреАрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд▓рд┐рдирдХреНрд╕рдорд╛ рд╕реНрдерд╛рдиреАрдп рдкреНрд░рдорд╛рдгреАрдХрд░рдгрдХреЛ рд▓рд╛рдЧрд┐ PAM рдореЛрдбреНрдпреБрд▓рд╣рд░реВ рдХрд╕рд░реА рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ

Rutoken EDS 2.0 NDV 4 рдЕрдиреБрд╕рд╛рд░ FSB рд░ FSTEC рджреНрд╡рд╛рд░рд╛ рдкреНрд░рдорд╛рдгрд┐рдд рдЫ, рддреНрдпрд╕реИрд▓реЗ рдпреЛ рдЧреЛрдкреНрдп рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдЧрд░реНрдиреЗ рд╕реВрдЪрдирд╛ рдкреНрд░рдгрд╛рд▓реАрд╣рд░реВрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред

рд╡реНрдпрд╛рд╡рд╣рд╛рд░рд┐рдХ рдкреНрд░рдпреЛрдЧ

рд▓рдЧрднрдЧ рдХреБрдиреИ рдкрдирд┐ рдЖрдзреБрдирд┐рдХ рд▓рд┐рдирдХреНрд╕рд▓реЗ рдЧрд░реНрдиреЗрдЫ, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐ рд╣рд╛рдореА xUbuntu 18.10 рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗрдЫреМрдВред

рез) рдЖрд╡рд╢реНрдпрдХ рдкреНрдпрд╛рдХреЗрдЬрд╣рд░реВ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН

sudo apt-get install libccid pcscd opensc
рдпрджрд┐ рддрдкрд╛рдЗрдБ рд╕реНрдХреНрд░рд┐рдирд╕реЗрднрд░рдХреЛ рд╕рд╛рде рдбреЗрд╕реНрдХрдЯрдк рд▓рдХ рдердкреНрди рдЪрд╛рд╣рдиреБрд╣реБрдиреНрдЫ рднрдиреЗ, рдкреНрдпрд╛рдХреЗрдЬ рдердк рд░реВрдкрдорд╛ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН libpam-pkcs11.

2) GOST рд╕рдорд░реНрдердирдХреЛ рд╕рд╛рде PAM рдореЛрдбреНрдпреБрд▓ рдердкреНрдиреБрд╣реЛрд╕реН

рдмрд╛рдЯ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд▓реЛрдб рдЧрд░реНрджреИ https://download.rutoken.ru/Rutoken/PAM/
PAM рдлреЛрд▓реНрдбрд░ librtpam.so.1.0.0 рдХреЛ рд╕рд╛рдордЧреНрд░реА рдкреНрд░рдгрд╛рд▓реА рдлреЛрд▓реНрдбрд░рдорд╛ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдЧрд░реНрдиреБрд╣реЛрд╕реН
/usr/lib/ рд╡рд╛ /usr/lib/x86_64-linux-gnu/рд╡рд╛ /usr/lib64

3) librtpkcs11ecp.so рдХреЛ рд╕рд╛рде рдкреНрдпрд╛рдХреЗрдЬ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН

рд▓рд┐рдЩреНрдХрдмрд╛рдЯ DEB рд╡рд╛ RPM рдкреНрдпрд╛рдХреЗрдЬ рдбрд╛рдЙрдирд▓реЛрдб рд░ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН: https://www.rutoken.ru/support/download/pkcs/

4) рдЬрд╛рдБрдЪ рдЧрд░реНрдиреБрд╣реЛрд╕реН рдХрд┐ Rutoken EDS 2.0 рдкреНрд░рдгрд╛рд▓реАрдорд╛ рдХрд╛рдо рдЧрд░реНрджрдЫ

рдЯрд░реНрдорд┐рдирд▓рдорд╛ рд╣рд╛рдореА рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрдЫреМрдВ
$ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -T
рдпрджрд┐ рддрдкрд╛рдЗрдБ рд▓рд╛рдЗрди рджреЗрдЦреНрдиреБрд╣реБрдиреНрдЫ Rutoken ECP <no label> - рдпрд╕рдХреЛ рдорддрд▓рдм рд╕рдмреИ рдареАрдХ рдЫред

5) рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдкрдвреНрдиреБрд╣реЛрд╕реН

рдЙрдкрдХрд░рдгрд╕рдБрдЧ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдЫ рднрдиреА рдЬрд╛рдБрдЪ рдЧрд░реНрджреИ
$ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -O
рдпрджрд┐ рд▓рд╛рдЗрди рдкрдЫрд┐:
Using slot 0 with a present token (0x0)

  • рдЬрд╛рдирдХрд╛рд░реА рдкреНрд░рджрд░реНрд╢рд┐рдд рдЫ рдХреБрдЮреНрдЬреАрд╣рд░реВ рд░ рдкреНрд░рдорд╛рдгрдкрддреНрд░рд╣рд░реВрдХреЛ рдмрд╛рд░реЗрдорд╛, рддрдкрд╛рдИрдВрд▓реЗ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдкрдвреНрди рд░ рдбрд┐рд╕реНрдХрдорд╛ рдмрдЪрдд рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред рдпреЛ рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐, рдирд┐рдореНрди рдЖрджреЗрд╢ рдЪрд▓рд╛рдЙрдиреБрд╣реЛрд╕реН, рдЬрд╣рд╛рдБ {id} рдХреЛ рд╕рдЯреНрдЯрд╛ рддрдкрд╛рдИрдВрд▓реЗ рдЕрдШрд┐рд▓реНрд▓реЛ рдЖрджреЗрд╢рдХреЛ рдЖрдЙрдЯрдкреБрдЯрдорд╛ рджреЗрдЦреНрдиреБрднрдПрдХреЛ рдкреНрд░рдорд╛рдгрдкрддреНрд░ ID рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ:
    $ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -r -y cert --id {id} --output-file cert.crt
    рдпрджрд┐ cert.crt рдлрд╛рдЗрд▓ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░рд┐рдПрдХреЛ рдЫ рднрдиреЗ, рдЪрд░рдг 6 рдорд╛ рдЬрд╛рдиреБрд╣реЛрд╕реН)ред
  • рддреНрдпрд╣рд╛рдБ рдХреЗрд╣реА рдЫреИрди, рддреНрдпрд╕рдкрдЫрд┐ рдЙрдкрдХрд░рдг рдЦрд╛рд▓реА рдЫред рдЖрдлреНрдиреЛ рдкреНрд░рд╢рд╛рд╕рдХрд▓рд╛рдИ рд╕рдореНрдкрд░реНрдХ рдЧрд░реНрдиреБрд╣реЛрд╕реН рд╡рд╛ рдЕрд░реНрдХреЛ рдЪрд░рдг рдкрдЫреНрдпрд╛рдПрд░ рдХреБрдЮреНрдЬреАрд╣рд░реВ рд░ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдЖрдлреИрдВ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реНред

5.1) рдПрдХ рдкрд░реАрдХреНрд╖рдг рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН

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

рд╕рдЬрд┐рд▓реЛ рддрд░рд┐рдХрд╛ (рдмреНрд░рд╛рдЙрдЬрд░ рдорд╛рд░реНрдлрдд)

рдкрд░реАрдХреНрд╖рдг рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрди, рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН рд╡реЗрдм рд╕реЗрд╡рд╛ "Rutoken рджрд░реНрддрд╛ рдХреЗрдиреНрджреНрд░"ред рдкреНрд░рдХреНрд░рд┐рдпрд╛ 5 рдорд┐рдиреЗрдЯ рднрдиреНрджрд╛ рдмрдвреА рд▓рд╛рдЧреНрджреИрдиред

рдЧреАрдХрдХреЛ рдмрд╛рдЯреЛ (рдХрдиреНрд╕реЛрд▓ рд░ рд╕рдореНрднрд╡рддрдГ рдХрдореНрдкрд╛рдЗрд▓рд░ рдорд╛рд░реНрдлрдд)

OpenSC рд╕рдВрд╕реНрдХрд░рдг рдЬрд╛рдБрдЪ рдЧрд░реНрдиреБрд╣реЛрд╕реН
$ opensc-tool --version
рдпрджрд┐ рд╕рдВрд╕реНрдХрд░рдг 0.20 рднрдиреНрджрд╛ рдХрдо рдЫ рднрдиреЗ, рддреНрдпрд╕рдкрдЫрд┐ рдЕрдкрдбреЗрдЯ рд╡рд╛ рдирд┐рд░реНрдорд╛рдг рдЧрд░реНрдиреБрд╣реЛрд╕реН GOST-11 рд╕рдорд░реНрдердирдХреЛ рд╕рд╛рде pkcs2012-рдЙрдкрдХрд░рдг рд╢рд╛рдЦрд╛ рд╣рд╛рдореНрд░реЛ GitHub рдмрд╛рдЯ (рдпрд╕ рд▓реЗрдЦрдХреЛ рдкреНрд░рдХрд╛рд╢рдирдХреЛ рд╕рдордпрдорд╛, рд░рд┐рд▓реАрдЬ 0.20 рдЕрдЭреИ рдЬрд╛рд░реА рдЧрд░рд┐рдПрдХреЛ рдЫреИрди) рд╡рд╛ рдореБрдЦреНрдп OpenSC рдкрд░рд┐рдпреЛрдЬрдирд╛рдХреЛ рдорд╛рд╕реНрдЯрд░ рд╢рд╛рдЦрд╛рдмрд╛рдЯ рдкрдЫрд┐ред рдкреНрд░рддрд┐рдмрджреНрдз 8cf1e6f

рдирд┐рдореНрди рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВрд╕рдБрдЧ рдХреБрдЮреНрдЬреА рдЬреЛрдбреА рдЙрддреНрдкрдиреНрди рдЧрд░реНрдиреБрд╣реЛрд╕реН:
--key-type: GOSTR3410-2012-512:╨Р (╨У╨Ю╨б╨в-2012 512 ╨▒╨╕╤В c ╨┐╨░╤А╨░╨╝╤Б╨╡╤В╨╛╨╝ ╨Р), GOSTR3410-2012-256:A (╨У╨Ю╨б╨в-2012 256 ╨▒╨╕╤В ╤Б ╨┐╨░╤А╨░╨╝╤Б╨╡╤В╨╛╨╝ A)

--id: рд╡рд╕реНрддреБ рдкрд╣рд┐рдЪрд╛рдирдХрд░реНрддрд╛ (CKA_ID) ASCII рддрд╛рд▓рд┐рдХрд╛рдмрд╛рдЯ рджреБрдИ-рдЕрдЩреНрдХрдХреЛ рд╣реЗрдХреНрд╕ рдХреНрдпрд╛рд░реЗрдХреНрдЯрд░ рдирдореНрдмрд░рд╣рд░реВрдХреЛ рд░реВрдкрдорд╛ред рдкреНрд░рд┐рдиреНрдЯрдпреЛрдЧреНрдп рдХреНрдпрд╛рд░реЗрдХреНрдЯрд░рд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐ ASCII рдХреЛрдбрд╣рд░реВ рдорд╛рддреНрд░ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реН, рдХрд┐рдирднрдиреЗ... id рд▓рд╛рдИ рд╕реНрдЯреНрд░рд┐рдЩрдХреЛ рд░реВрдкрдорд╛ OpenSSL рдорд╛ рдкрд╛рд╕ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫред рдЙрджрд╛рд╣рд░рдг рдХреЛ рд▓рд╛рдЧреА, ASCII рдХреЛрдб "3132" рд╕реНрдЯреНрд░рд┐рдЩ "12" рд╕рдВрдЧ рдореЗрд▓ рдЦрд╛рдиреНрдЫред рд╕реБрд╡рд┐рдзрд╛рдХреЛ рд▓рд╛рдЧрд┐, рддрдкрд╛рдИрдВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ ASCII рдХреЛрдбрд╣рд░реВрдорд╛ рд╕реНрдЯреНрд░рд┐рдЩрд╣рд░реВ рд░реВрдкрд╛рдиреНрддрд░рдг рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐ рдЕрдирд▓рд╛рдЗрди рд╕реЗрд╡рд╛.

$ ./pkcs11-tool --module /usr/lib/librtpkcs11ecp.so --keypairgen --key-type GOSTR3410-2012-512:A -l --id 3132

рдЕрд░реНрдХреЛ рд╣рд╛рдореА рдкреНрд░рдорд╛рдгрдкрддреНрд░ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреЗрдЫреМрдВред рджреБрдИ рддрд░рд┐рдХрд╛рд╣рд░реВ рддрд▓ рд╡рд░реНрдгрди рдЧрд░рд┐рдиреЗрдЫ: рдкрд╣рд┐рд▓реЛ CA рдорд╛рд░реНрдлрдд (рд╣рд╛рдореА рдкрд░реАрдХреНрд╖рдг CAs рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗрдЫреМрдВ), рджреЛрд╕реНрд░реЛ рд╕реНрд╡-рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рдЫред рдпреЛ рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐, рддрдкрд╛рдИрдВрд▓реЗ рдкрд╣рд┐рд▓реЗ рд╕реНрдерд╛рдкрдирд╛ рд░ рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ OpenSSL рд╕рдВрд╕реНрдХрд░рдг 1.1 рд╡рд╛ рдкрдЫрд┐рдХреЛ Rutoken рд╕рдБрдЧ рдХрд╛рдо рдЧрд░реНрди рд╡рд┐рд╢реЗрд╖ rtengine рдореЛрдбреНрдпреБрд▓ рдорд╛рд░реНрдлрдд рдореНрдпрд╛рдиреБрдЕрд▓ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ред OpenSSL рд╕реНрдерд╛рдкрдирд╛ рд░ рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░реНрджреИ.
рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐: '-рдХрд╛ рд▓рд╛рдЧрд┐-id 3132' OpenSSL рдорд╛ рддрдкрд╛рдИрдВрд▓реЗ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ "pkcs11:id=12"ред

рддрдкрд╛рдИрд▓реЗ рдкрд░реАрдХреНрд╖рдг CA рдХреЛ рд╕реЗрд╡рд╛рд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХреНрдиреБрд╣реБрдиреНрдЫ, рдЬрд╕рдордзреНрдпреЗ рдзреЗрд░реИ рдЫрдиреН, рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рд╣реЗрд░, рд╣реЗрд░ ╨╕ рд╣реЗрд░, рдпрд╕рдХрд╛ рд▓рд╛рдЧрд┐ рд╣рд╛рдореА рдкреНрд░рдорд╛рдгрдкрддреНрд░рдХреЛ рд▓рд╛рдЧрд┐ рдЕрдиреБрд░реЛрдз рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреЗрдЫреМрдВ

рдЕрд░реНрдХреЛ рд╡рд┐рдХрд▓реНрдк рднрдиреЗрдХреЛ рдЖрд▓рд╕реНрдпрдорд╛ рджрд┐рдиреБ рд░ рд╕реНрд╡-рд╣рд╕реНрддрд╛рдХреНрд╖рд░рд┐рдд рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБ рд╣реЛ
$ openssl req -utf8 -new -keyform engine -key "pkcs11:id=12" -engine rtengine -out req.csr

рдпрдиреНрддреНрд░рдорд╛ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдЕрдкрд▓реЛрдб рдЧрд░реНрджреИ
$ openssl req -utf8 -x509 -keyform engine -key "pkcs11:id=12" -engine rtengine -out cert.cer

6) рдкреНрд░рдгрд╛рд▓реАрдорд╛ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рджрд░реНрддрд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН

рдирд┐рд╢реНрдЪрд┐рдд рдЧрд░реНрдиреБрд╣реЛрд╕реН рдХрд┐ рддрдкрд╛рдИрдВрдХреЛ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдЖрдзрд╛рд░ 64 рдлрд╛рдЗрд▓ рдЬрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫ:

Rutoken рдорд╛ GOST-2012 рдХреБрдЮреНрдЬреАрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд▓рд┐рдирдХреНрд╕рдорд╛ рд╕реНрдерд╛рдиреАрдп рдкреНрд░рдорд╛рдгреАрдХрд░рдгрдХреЛ рд▓рд╛рдЧрд┐ PAM рдореЛрдбреНрдпреБрд▓рд╣рд░реВ рдХрд╕рд░реА рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ

рдпрджрд┐ рддрдкрд╛рдИрдВрдХреЛ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдпрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫ рднрдиреЗ:

Rutoken рдорд╛ GOST-2012 рдХреБрдЮреНрдЬреАрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд▓рд┐рдирдХреНрд╕рдорд╛ рд╕реНрдерд╛рдиреАрдп рдкреНрд░рдорд╛рдгреАрдХрд░рдгрдХреЛ рд▓рд╛рдЧрд┐ PAM рдореЛрдбреНрдпреБрд▓рд╣рд░реВ рдХрд╕рд░реА рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ

рддреНрдпрд╕рдкрдЫрд┐ рддрдкрд╛рдИрдВрд▓реЗ рдкреНрд░рдорд╛рдгрдкрддреНрд░рд▓рд╛рдИ DER рдврд╛рдБрдЪрд╛рдмрд╛рдЯ PEM рдврд╛рдБрдЪрд╛рдорд╛ рд░реВрдкрд╛рдиреНрддрд░рдг рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ (base64)

$ openssl x509 -in cert.crt -out cert.pem -inform DER -outform PEM
рд╣рд╛рдореА рдлреЗрд░рд┐ рдЬрд╛рдБрдЪ рдЧрд░реНрдЫреМрдВ рдХрд┐ рд╕рдмреИ рдЕрд╣рд┐рд▓реЗ рдХреНрд░рдордмрджреНрдз рдЫред

рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдкреНрд░рдорд╛рдгрдкрддреНрд░рд╣рд░реВрдХреЛ рд╕реВрдЪреАрдорд╛ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдердкреНрдиреБрд╣реЛрд╕реН
$ mkdir ~/.eid
$ chmod 0755 ~/.eid
$ cat cert.pem >> ~/.eid/authorized_certificates
$ chmod 0644 ~/.eid/authorized_certificates

рдЕрдиреНрддрд┐рдо рдкрдЩреНрдХреНрддрд┐рд▓реЗ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рдкреНрд░рдорд╛рдгрдкрддреНрд░рд╣рд░реВрдХреЛ рд╕реВрдЪреАрд▓рд╛рдИ рдЕрдиреНрдп рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрджреНрд╡рд╛рд░рд╛ рд╕рдВрдпреЛрдЧрд╡рд╢ рд╡рд╛ рдЬрд╛рдирд╛рдЬрд╛рдиреА рдкрд░рд┐рд╡рд░реНрддрди рд╣реБрдирдмрд╛рдЯ рдЬреЛрдЧрд╛рдЙрдБрдЫред рдпрд╕рд▓реЗ рдХрд╕реИрд▓рд╛рдИ рдпрд╣рд╛рдБ рдЖрдлреНрдиреЛ рдкреНрд░рдорд╛рдгрдкрддреНрд░ рдердкреНрди рд░ рддрдкрд╛рдИрдВрдХреЛ рддрд░реНрдлрдмрд╛рдЯ рд▓рдЧ рдЗрди рдЧрд░реНрди рд╕рдХреНрд╖рдо рд╣реБрдирдмрд╛рдЯ рд░реЛрдХреНрдЫред

7) рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╕реЗрдЯ рдЕрдк рдЧрд░реНрдиреБрд╣реЛрд╕реН

рд╣рд╛рдореНрд░реЛ PAM рдореЛрдбреНрдпреБрд▓ рд╕реЗрдЯрдЕрдк рдкреВрд░реНрдгрддрдпрд╛ рдорд╛рдирдХ рд╣реЛ рд░ рдЕрдиреНрдп рдореЛрдбреНрдпреБрд▓рд╣рд░реВ рд╕реЗрдЯрдЕрдк рдЧрд░реЗ рдЬрд╕реНрддреИ рдЧрд░реАрдиреНрдЫред рдлрд╛рдЗрд▓рдорд╛ рд╕рд┐рд░реНрдЬрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН /usr/share/pam-configs/rutoken-gost-pam рдореЛрдбреНрдпреБрд▓рдХреЛ рдкреВрд░рд╛ рдирд╛рдо рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫ, рдЪрд╛рд╣реЗ рдпреЛ рдкреВрд░реНрд╡рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд░реВрдкрдорд╛ рд╕рдХреНрд╖рдо рдЧрд░рд┐рдПрдХреЛ рдЫ, рдореЛрдбреНрдпреБрд▓рдХреЛ рдкреНрд░рд╛рдердорд┐рдХрддрд╛, рд░ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВред
рдкреНрд░рдорд╛рдгреАрдХрд░рдг рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВрд▓реЗ рд╕рдЮреНрдЪрд╛рд▓рдирдХреЛ рд╕рдлрд▓рддрд╛рдХреЛ рд▓рд╛рдЧрд┐ рдЖрд╡рд╢реНрдпрдХрддрд╛рд╣рд░реВ рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫ:

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

рдкреВрд░реНрдг рдлрд╛рдЗрд▓ рд╕рд╛рдордЧреНрд░реА /usr/share/pam-configs/rutoken-gost-pam:
Name: Rutoken PAM GOST
Default: yes
Priority: 800
Auth-Type: Primary
Auth: sufficient /usr/lib/librtpam.so.1.0.0 /usr/lib/librtpkcs11ecp.so

Rutoken рдорд╛ GOST-2012 рдХреБрдЮреНрдЬреАрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд▓рд┐рдирдХреНрд╕рдорд╛ рд╕реНрдерд╛рдиреАрдп рдкреНрд░рдорд╛рдгреАрдХрд░рдгрдХреЛ рд▓рд╛рдЧрд┐ PAM рдореЛрдбреНрдпреБрд▓рд╣рд░реВ рдХрд╕рд░реА рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ

рдлрд╛рдЗрд▓ рдмрдЪрдд рдЧрд░реНрдиреБрд╣реЛрд╕реН, рддреНрдпрд╕рдкрдЫрд┐ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрдиреБрд╣реЛрд╕реН
$ sudo pam-auth-update
рджреЗрдЦрд╛ рдкрд░реНрдиреЗ рд╡рд┐рдиреНрдбреЛрдорд╛, рдпрд╕рдХреЛ рдЫреЗрдЙрдорд╛ рддрд╛рд░рд╛ рдЪрд┐рдиреНрд╣ рд░рд╛рдЦреНрдиреБрд╣реЛрд╕реН Rutoken PAM GOST рд░ рдХреНрд▓рд┐рдХ рдЧрд░реНрдиреБрд╣реЛрд╕реН OK

Rutoken рдорд╛ GOST-2012 рдХреБрдЮреНрдЬреАрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд▓рд┐рдирдХреНрд╕рдорд╛ рд╕реНрдерд╛рдиреАрдп рдкреНрд░рдорд╛рдгреАрдХрд░рдгрдХреЛ рд▓рд╛рдЧрд┐ PAM рдореЛрдбреНрдпреБрд▓рд╣рд░реВ рдХрд╕рд░реА рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ

8) рд╕реЗрдЯрд┐рдЩрд╣рд░реВ рдЬрд╛рдБрдЪ рдЧрд░реНрдиреБрд╣реЛрд╕реН

рд╕рдмреИ рдХреБрд░рд╛ рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░рд┐рдПрдХреЛ рдЫ рднрдиреЗрд░ рдмреБрдЭреНрди, рддрд░ рдПрдХреИ рд╕рдордпрдорд╛ рдкреНрд░рдгрд╛рд▓реАрдорд╛ рд▓рдЧ рдЗрди рдЧрд░реНрдиреЗ рдХреНрд╖рдорддрд╛ рдЧреБрдорд╛рдЙрдиреБ рд╣реБрдБрджреИрди, рдЖрджреЗрд╢ рдкреНрд░рд╡рд┐рд╖реНрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реНред
$ sudo login
рдЖрдлреНрдиреЛ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рдирд╛рдо рдкреНрд░рд╡рд┐рд╖реНрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реНред рдпрджрд┐ рдкреНрд░рдгрд╛рд▓реАрд▓рд╛рдИ рдпрдиреНрддреНрд░ рдкрд┐рди рдХреЛрдб рдЪрд╛рд╣рд┐рдиреНрдЫ рднрдиреЗ рд╕рдмреИ рдХреБрд░рд╛ рдареАрдХрд╕рдБрдЧ рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░рд┐рдПрдХреЛ рдЫред

Rutoken рдорд╛ GOST-2012 рдХреБрдЮреНрдЬреАрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд▓рд┐рдирдХреНрд╕рдорд╛ рд╕реНрдерд╛рдиреАрдп рдкреНрд░рдорд╛рдгреАрдХрд░рдгрдХреЛ рд▓рд╛рдЧрд┐ PAM рдореЛрдбреНрдпреБрд▓рд╣рд░реВ рдХрд╕рд░реА рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ

9) рдЯреЛрдХрди рдирд┐рдХрд╛рд▓реНрджрд╛ рдмреНрд▓рдХ рдЧрд░реНрди рдХрдореНрдкреНрдпреБрдЯрд░ рдХрдиреНрдлрд┐рдЧрд░ рдЧрд░реНрдиреБрд╣реЛрд╕реН

рдкреНрдпрд╛рдХреЗрдЬрдорд╛ рд╕рдорд╛рд╡реЗрд╢ рдЫ libpam-pkcs11 рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╕рдорд╛рд╡реЗрд╢ рдЫ pkcs11_eventmgr, рдЬрд╕рд▓реЗ рддрдкрд╛рдИрдВрд▓рд╛рдИ PKCS#11 рдШрдЯрдирд╛рд╣рд░реВ рд╣реБрдБрджрд╛ рд╡рд┐рднрд┐рдиреНрди рдХрд╛рд░реНрдпрд╣рд░реВ рдЧрд░реНрди рдЕрдиреБрдорддрд┐ рджрд┐рдиреНрдЫред
рд╕реЗрдЯрд┐рдЩрд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ pkcs11_eventmgr рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдлрд╛рдЗрд▓рдХреЛ рд░реВрдкрдорд╛ рдХрд╛рд░реНрдп рдЧрд░реНрджрдЫ: /etc/pam_pkcs11/pkcs11_eventmgr.conf
рд╡рд┐рднрд┐рдиреНрди Linux рд╡рд┐рддрд░рдгрд╣рд░реВрдХрд╛ рд▓рд╛рдЧрд┐, рд╕реНрдорд╛рд░реНрдЯ рдХрд╛рд░реНрдб рд╡рд╛ рдЯреЛрдХрди рд╣рдЯрд╛рдЗрдБрджрд╛ рдЦрд╛рддрд╛ рд▓рдХ рд╣реБрдиреЗ рдЖрджреЗрд╢ рдлрд░рдХ рд╣реБрдиреЗрдЫред рд╕реЗрдореАред event card_remove.
рдПрдЙрдЯрд╛ рдЙрджрд╛рд╣рд░рдг рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдлрд╛рдЗрд▓ рддрд▓ рджреЗрдЦрд╛рдЗрдПрдХреЛ рдЫ:

pkcs11_eventmgr
{
    # ╨Ч╨░╨┐╤Г╤Б╨║ ╨▓ ╨▒╤Н╨║╨│╤А╨░╤Г╨╜╨┤╨╡
    daemon = true;
     
    # ╨Э╨░╤Б╤В╤А╨╛╨╣╨║╨░ ╤Б╨╛╨╛╨▒╤Й╨╡╨╜╨╕╨╣ ╨╛╤В╨╗╨░╨┤╨║╨╕
    debug = false;
 
    # ╨Т╤А╨╡╨╝╤П ╨╛╨┐╤А╨╛╤Б╨░ ╨▓ ╤Б╨╡╨║╤Г╨╜╨┤╨░╤Е
    polling_time = 1;
 
    # ╨г╤Б╤В╨░╨╜╨╛╨▓╨║╨░ ╤В╨░╨╣╨╝-╨░╤Г╤В╨░ ╨╜╨░ ╤Г╨┤╨░╨╗╨╡╨╜╨╕╨╡ ╨║╨░╤А╤В╤Л
    # ╨Я╨╛-╤Г╨╝╨╛╨╗╤З╨░╨╜╨╕╤О 0
    expire_time = 0;
 
    # ╨Т╤Л╨▒╨╛╤А pkcs11 ╨▒╨╕╨▒╨╗╨╕╨╛╤В╨╡╨║╨╕ ╨┤╨╗╤П ╤А╨░╨▒╨╛╤В╤Л ╤Б ╨а╤Г╤В╨╛╨║╨╡╨╜
    pkcs11_module = usr/lib/librtpkcs11ecp.so;
 
    # ╨Ф╨╡╨╣╤Б╤В╨▓╨╕╤П ╤Б ╨║╨░╤А╤В╨╛╨╣
    # ╨Ъ╨░╤А╤В╨░ ╨▓╤Б╤В╨░╨▓╨╗╨╡╨╜╨░:
    event card_insert {
        # ╨Ю╤Б╤В╨░╨▓╨╗╤П╨╡╨╝ ╨╖╨╜╨░╤З╨╡╨╜╨╕╤П ╨┐╨╛ ╤Г╨╝╨╛╨╗╤З╨░╨╜╨╕╤О (╨╜╨╕╤З╨╡╨│╨╛ ╨╜╨╡ ╨┐╤А╨╛╨╕╤Б╤Е╨╛╨┤╨╕╤В)
        on_error = ignore ;
 
        action = "/bin/false";
    }
 
    # ╨Ъ╨░╤А╤В╨░ ╨╕╨╖╨▓╨╗╨╡╤З╨╡╨╜╨░
    event card_remove {
        on_error = ignore;
         
        # ╨Т╤Л╨╖╤Л╨▓╨░╨╡╨╝ ╤Д╤Г╨╜╨║╤Ж╨╕╤О ╨▒╨╗╨╛╨║╨╕╤А╨╛╨▓╨║╨╕ ╤Н╨║╤А╨░╨╜╨░
        
        # ╨Ф╨╗╤П GNOME 
        action = "dbus-send --type=method_call --dest=org.gnome.ScreenSaver /org/gnome/ScreenSaver org.gnome.ScreenSaver.Lock";
        
        # ╨Ф╨╗╤П XFCE
        # action = "xflock4";
        
        # ╨Ф╨╗╤П Astra Linux (FLY)
        # action = "fly-wmfunc FLYWM_LOCK";
    }
 
    # ╨Ъ╨░╤А╤В╨░ ╨┤╨╛╨╗╨│╨╛╨╡ ╨▓╤А╨╡╨╝╤П ╨╕╨╖╨▓╨╗╨╡╤З╨╡╨╜╨░
    event expire_time {
        # ╨Ю╤Б╤В╨░╨▓╨╗╤П╨╡╨╝ ╨╖╨╜╨░╤З╨╡╨╜╨╕╤П ╨┐╨╛ ╤Г╨╝╨╛╨╗╤З╨░╨╜╨╕╤О (╨╜╨╕╤З╨╡╨│╨╛ ╨╜╨╡ ╨┐╤А╨╛╨╕╤Б╤Е╨╛╨┤╨╕╤В)
        on_error = ignore;
 
        action = "/bin/false";
    }
}

рддреНрдпрд╕ рдкрдЫрд┐ рдЕрдиреБрдкреНрд░рдпреЛрдЧ рдердкреНрдиреБрд╣реЛрд╕реН pkcs11_eventmgr рд╕реНрдЯрд╛рд░реНрдЯрдЕрдк рдЧрд░реНрдиред рдпреЛ рдЧрд░реНрдирдХреЛ рд▓рд╛рдЧрд┐, .bash_profile рдлрд╛рдЗрд▓ рд╕рдореНрдкрд╛рджрди рдЧрд░реНрдиреБрд╣реЛрд╕реН:
$ nano /home/<╨╕╨╝╤П_╨┐╨╛╨╗╤М╨╖╨╛╨▓╨░╤В╨╡╨╗╤П>/.bash_profile
рдлрд╛рдЗрд▓рдХреЛ рдЕрдиреНрддреНрдпрдорд╛ pkcs11_eventmgr рд▓рд╛рдИ рдЬреЛрдбреНрдиреБрд╣реЛрд╕реН рд░ рд░рд┐рдмреБрдЯ рдЧрд░реНрдиреБрд╣реЛрд╕реНред

рдЕрдкрд░реЗрдЯрд┐рдЩ рд╕рд┐рд╕реНрдЯрдо рд╕реЗрдЯрдЕрдк рдЧрд░реНрдирдХрд╛ рд▓рд╛рдЧрд┐ рд╡рд░реНрдгрд┐рдд рдЪрд░рдгрд╣рд░реВ рдШрд░реЗрд▓реБ рд╕рд╣рд┐рдд рдХреБрдиреИ рдкрдирд┐ рдЖрдзреБрдирд┐рдХ рд▓рд┐рдирдХреНрд╕ рд╡рд┐рддрд░рдгрдорд╛ рдирд┐рд░реНрджреЗрд╢рдирд╣рд░реВрдХреЛ рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред

Rutoken рдорд╛ GOST-2012 рдХреБрдЮреНрдЬреАрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд▓рд┐рдирдХреНрд╕рдорд╛ рд╕реНрдерд╛рдиреАрдп рдкреНрд░рдорд╛рдгреАрдХрд░рдгрдХреЛ рд▓рд╛рдЧрд┐ PAM рдореЛрдбреНрдпреБрд▓рд╣рд░реВ рдХрд╕рд░реА рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреЗ

рдирд┐рд╖реНрдХрд░реНрд╖рдорд╛

рд▓рд┐рдирдХреНрд╕ рдкреАрд╕реАрд╣рд░реВ рд░реВрд╕реА рд╕рд░рдХрд╛рд░реА рдПрдЬреЗрдиреНрд╕реАрд╣рд░реВрдорд╛ рдмрдвреНрджреЛ рд▓реЛрдХрдкреНрд░рд┐рдп рд╣реБрдБрджреИрдЫрдиреН, рд░ рдпрд╕ OS рдорд╛ рднрд░рдкрд░реНрджреЛ рджреБрдИ-рдХрд╛рд░рдХ рдкреНрд░рдорд╛рдгреАрдХрд░рдг рд╕реЗрдЯрдЕрдк рд╕рдзреИрдВ рд╕рдЬрд┐рд▓реЛ рд╣реБрдБрджреИрдиред рд╣рд╛рдореА рддрдкрд╛рдИрдВрд▓рд╛рдИ рдпрд╕ рдЧрд╛рдЗрдбрдХреЛ рд╕рд╛рде "рдкрд╛рд╕рд╡рд░реНрдб рд╕рдорд╕реНрдпрд╛" рд╕рдорд╛рдзрд╛рди рдЧрд░реНрди рд░ рдпрд╕рдорд╛ рдзреЗрд░реИ рд╕рдордп рдЦрд░реНрдЪ рдирдЧрд░реА рддрдкрд╛рдИрдВрдХреЛ рдкреАрд╕реАрдорд╛ рдкрд╣реБрдБрдЪрд▓рд╛рдИ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд░реВрдкрдорд╛ рд╕реБрд░рдХреНрд╖рд┐рдд рдЧрд░реНрди рдорджреНрджрдд рдЧрд░реНрди рдкрд╛рдЙрдБрджрд╛ рдЦреБрд╕реА рд╣реБрдиреЗрдЫреМрдВред

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

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