Как Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ PAM ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π·Π° Π»ΠΎΠΊΠ°Π»Π½Π° аутСнтификация Π² Linux с ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅ Π“ΠžΠ‘Π’-2012 Π½Π° Π ΡƒΡ‚ΠΎΠΊΠ΅Π½

Как Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ PAM ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π·Π° Π»ΠΎΠΊΠ°Π»Π½Π° аутСнтификация Π² Linux с ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅ Π“ΠžΠ‘Π’-2012 Π½Π° Π ΡƒΡ‚ΠΎΠΊΠ΅Π½

ΠŸΡ€ΠΎΡΡ‚ΠΈΡ‚Π΅ ΠΏΠ°Ρ€ΠΎΠ»ΠΈ Π½Π΅ ΠΏΡ€Π΅Π΄ΠΏΠ°Π·Π²Π°Ρ‚, Π° слоТнитС Π΅ Ρ‚Ρ€ΡƒΠ΄Π½ΠΎ Π΄Π° сС запомнят. Π—Π°Ρ‚ΠΎΠ²Π° чСсто сС ΠΎΠΊΠ°Π·Π²Π°Ρ‚ Π½Π° стикСр ΠΏΠΎΠ΄ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Π°Ρ‚Π° ΠΈΠ»ΠΈ Π½Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π°. Π—Π° Π΄Π° останат ΠΏΠ°Ρ€ΠΎΠ»ΠΈΡ‚Π΅ Π² Π³Π»Π°Π²ΠΈΡ‚Π΅ Π½Π° β€œΠ·Π°Π±Ρ€Π°Π²ΡΡ‰ΠΈΡ‚Π΅β€ ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈ ΠΈ Π·Π°Ρ‰ΠΈΡ‚Π°Ρ‚Π° Π΄Π° Π½Π΅ бъдС ΠΊΠΎΠΌΠΏΡ€ΠΎΠΌΠ΅Ρ‚ΠΈΡ€Π°Π½Π° – ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π° Π΄Π²ΡƒΡ„Π°ΠΊΡ‚ΠΎΡ€Π½Π° автСнтикация (2ЀА).

Π‘Π»Π°Π³ΠΎΠ΄Π°Ρ€Π΅Π½ΠΈΠ΅ Π½Π° комбинацията ΠΎΡ‚ Ρ„Π°ΠΊΡ‚ΠΎΡ€Π° Π½Π° ΠΏΡ€ΠΈΡ‚Π΅ΠΆΠ°Π²Π°Π½Π΅ Π½Π° устройството ΠΈ Π·Π½Π°Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° нСговия PIN-ΠΊΠΎΠ΄, самият PIN-ΠΊΠΎΠ΄ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΏΠΎ-прост ΠΈ лСсСн Π·Π° запомнянС. ΠΠ΅Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ†ΠΈΡ‚Π΅ Π² Π΄ΡŠΠ»ΠΆΠΈΠ½Π°Ρ‚Π° ΠΈΠ»ΠΈ произволността Π½Π° PIN-ΠΊΠΎΠ΄Π° сС компСнсират ΠΎΡ‚ изискванСто Π·Π° физичСско ΠΏΡ€ΠΈΡ‚Π΅ΠΆΠ°Π½ΠΈΠ΅ ΠΈ ограничСнията Π·Π° ΠΎΠΏΠΈΡ‚ Π·Π° Ρ€Π°Π·Π±ΠΈΠ²Π°Π½Π΅ Π½Π° PIN-ΠΊΠΎΠ΄Π°.

ОсвСн Ρ‚ΠΎΠ²Π°, Π² Π΄ΡŠΡ€ΠΆΠ°Π²Π½ΠΈΡ‚Π΅ учрСТдСния понякога искат всичко Π΄Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΏΠΎ Π“ΠžΠ‘Π’. Π—Π° Ρ‚Π°ΠΊΡŠΠ² Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ Π½Π° 2ЀА Π·Π° Π²Π»ΠΈΠ·Π°Π½Π΅ Π² Линукс Ρ‰Π΅ Π³ΠΎΠ²ΠΎΡ€ΠΈΠΌ. Π©Π΅ Π·Π°ΠΏΠΎΡ‡Π½Π° ΠΎΡ‚Π΄Π°Π»Π΅Ρ‡.

PAM ΠΌΠΎΠ΄ΡƒΠ»ΠΈ

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π²Π°Π΅ΠΌΠΈ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π·Π° автСнтикация (Pluggable Authentication Modules, PAM) – Ρ‚ΠΎΠ²Π° са ΠΌΠΎΠ΄ΡƒΠ»ΠΈ със стандартСн API ΠΈ Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΌΠ΅Ρ…Π°Π½ΠΈΠ·ΠΌΠΈ Π·Π° автСнтикация Π² прилоТСнията.
Всички ΡƒΡ‚ΠΈΠ»ΠΈΡ‚ΠΈ ΠΈ прилоТСния, ΠΊΠΎΠΈΡ‚ΠΎ работят с PAM, Π³ΠΈ ΠΏΠΎΠ΄Π±ΠΈΡ€Π°Ρ‚ ΠΈ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π³ΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Π·Π° автСнтикация Π½Π° потрСбитСля.
На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ°, Ρ‚ΠΎΠ²Π° Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΏΠΎ слСдния Π½Π°Ρ‡ΠΈΠ½: ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° login сС ΠΎΠ±Ρ€ΡŠΡ‰Π° към PAM, ΠΊΠΎΠΉΡ‚ΠΎ ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° всички Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° ΠΌΠΎΠ΄ΡƒΠ»ΠΈΡ‚Π΅, ΡƒΠΊΠ°Π·Π°Π½ΠΈ Π² конфигурационния Ρ„Π°ΠΉΠ», ΠΈ Π²Ρ€ΡŠΡ‰Π° Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚Π° ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° login.

librtpam

РазработСният ΠΎΡ‚ компанията «Актив» ΠΌΠΎΠ΄ΡƒΠ» добавя Π΄Π²ΡƒΡ„Π°ΠΊΡ‚ΠΎΡ€Π½Π° автСнтикация Π½Π° ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° смарт ΠΊΠ°Ρ€Ρ‚ΠΈ ΠΈΠ»ΠΈ USB Ρ‚ΠΎΠΊΠ΅Π½ΠΈ с асимСтрични ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅ ΠΏΠΎ послСднитС стандарти Π½Π° отСчСствСната криптография.

НСка Π΄Π° Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ ΠΏΡ€ΠΈΠ½Ρ†ΠΈΠΏΠ° Π½Π° Ρ€Π°Π±ΠΎΡ‚Π°:

  • Π½Π° Ρ‚ΠΎΠΊΠ΅Π½Π° сС ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π° сСртификат Π½Π° потрСбитСля ΠΈ нСговият частСн ΠΊΠ»ΡŽΡ‡;
  • ΡΠ΅Ρ€Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΡŠΡ‚ Π΅ Π·Π°ΠΏΠ°Π·Π΅Π½ Π² Π΄ΠΎΠΌΠ°ΡˆΠ½Π°Ρ‚Π° дирСктория Π½Π° потрСбитСля ΠΊΠ°Ρ‚ΠΎ Π΄ΠΎΠ²Π΅Ρ€Π΅Π½.

ΠŸΡ€ΠΎΡ†Π΅ΡΡŠΡ‚ Π½Π° автСнтикация ΠΏΡ€ΠΎΡ‚ΠΈΡ‡Π° ΠΏΠΎ слСдния Π½Π°Ρ‡ΠΈΠ½:

  1. На Π ΡƒΡ‚ΠΎΠΊΠ΅Π½Π° сС ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π° Ρ‚ΡŠΡ€ΡΠ΅Π½Π΅ Π½Π° личния сСртификат Π½Π° потрСбитСля.
  2. Иска сС PIN ΠΊΠΎΠ΄ΡŠΡ‚ Π½Π° Ρ‚ΠΎΠΊΠ΅Π½Π°.
  3. Π˜Π·Π²ΡŠΡ€ΡˆΠ²Π° сС подписванС Π½Π° случайни Π΄Π°Π½Π½ΠΈ с частния ΠΊΠ»ΡŽΡ‡ Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ Π² Ρ‡ΠΈΠΏΠ° Π½Π° Π ΡƒΡ‚ΠΎΠΊΠ΅Π½Π°.
  4. ΠŸΠΎΠ»ΡƒΡ‡Π΅Π½ΠΎΡ‚ΠΎ подписванС сС провСрява с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° публичния ΠΊΠ»ΡŽΡ‡ ΠΎΡ‚ сСртификата Π½Π° потрСбитСля.
  5. ΠœΠΎΠ΄ΡƒΠ»ΡŠΡ‚ Π²Ρ€ΡŠΡ‰Π° Π½Π° ΠΈΠ·Π²ΠΈΠΊΠ°Π»ΠΎΡ‚ΠΎ ΠΏΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚Π° ΠΎΡ‚ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ°Ρ‚Π° Π½Π° подписванСто.

МоТС Π΄Π° сС Π°Π²Ρ‚Π΅Π½Ρ‚ΠΈΠΊΠΈΡ€Π°Ρ‚Π΅ ΠΏΠΎ ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅Ρ‚Π΅ Π“ΠžΠ‘Π’ Π  34.10-2012 (дълТини 256 ΠΈΠ»ΠΈ 512 Π±ΠΈΡ‚Π°) ΠΈΠ»ΠΈ остарСлия Π“ΠžΠ‘Π’ Π  34.10-2001.

НС трябва Π΄Π° сС притСсняватС Π·Π° сигурността Π½Π° ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅Ρ‚Π΅ – Ρ‚Π΅ сС Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Ρ‚ Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ Π² Π ΡƒΡ‚ΠΎΠΊΠ΅Π½Π° ΠΈ Π½ΠΈΠΊΠΎΠ³Π° Π½Π΅ напускат Π½Π΅Π³ΠΎΠ²Π°Ρ‚Π° ΠΏΠ°ΠΌΠ΅Ρ‚ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° криптографскитС ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ.

Как Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ PAM ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π·Π° Π»ΠΎΠΊΠ°Π»Π½Π° аутСнтификация Π² Linux с ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅ Π“ΠžΠ‘Π’-2012 Π½Π° Π ΡƒΡ‚ΠΎΠΊΠ΅Π½

Π ΡƒΡ‚ΠΎΠΊΠ΅Π½ Π•Π¦ΠŸ 2.0 Π΅ сСртифициран ΠΎΡ‚ Π€Π‘Π‘ ΠΈ ЀБВЭК ΠΏΠΎ НДВ 4, Π·Π°Ρ‚ΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π² ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΈ систСми, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π°Ρ‰ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»Π½Π° информация.

ΠŸΡ€Π°ΠΊΡ‚ΠΈΡ‡Π΅ΡΠΊΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅

ΠŸΠΎΠ΄Ρ…ΠΎΠ΄ΡΡ‰ практичСски Π·Π° всяка ΡΡŠΠ²Ρ€Π΅ΠΌΠ΅Π½Π½Π° Линукс ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π° систСма, Π·Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‰Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ xUbuntu 18.10.

1) Π˜Π½ΡΡ‚Π°Π»ΠΈΡ€Π°ΠΌΠ΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈΡ‚Π΅ ΠΏΠ°ΠΊΠ΅Ρ‚ΠΈ

sudo apt-get install libccid pcscd opensc
Ако искатС Π΄Π° Π΄ΠΎΠ±Π°Π²ΠΈΡ‚Π΅ Π·Π°ΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅ Π½Π° работния ΠΏΠ»ΠΎΡ‚ с Π΅ΠΊΡ€Π°Π½Π½Π° Π·Π°Ρ‰ΠΈΡ‚Π° – Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΎ инсталирайтС ΠΏΠ°ΠΊΠ΅Ρ‚Π° libpam-pkcs11.

2) ДобавямС 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) ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡΠ²Π°ΠΌΠ΅, Ρ‡Π΅ Π ΡƒΡ‚ΠΎΠΊΠ΅Π½ Π•Π¦ΠŸ 2.0 Ρ€Π°Π±ΠΎΡ‚ΠΈ Π² систСмата

Π’ Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π° изпълнявамС
$ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -T
Ако Π²ΠΈΠ΄ΠΈΡ‚Π΅ Ρ€Π΅Π΄Π° Rutoken ECP – всичко Π΅ Π½Π°Ρ€Π΅Π΄.

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 ΠΈ Π΄Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π° Π²Π΅Ρ€ΠΈΠ³ΠΈ Π½Π° Π΄ΠΎΠ²Π΅Ρ€ΠΈΠ΅.

ΠŸΡ€ΠΎΡΡ‚ Π½Π°Ρ‡ΠΈΠ½ (Ρ‡Ρ€Π΅Π· Π±Ρ€Π°ΡƒΠ·ΡŠΡ€)

Π—Π° ΠΏΠΎΠ»ΡƒΡ‡Π°Π²Π°Π½Π΅ Π½Π° тСстов сСртификат ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ ΡƒΠ΅Π±-сСрвиза β€žΠ¦Π΅Π½Ρ‚ΡŠΡ€ Π·Π° рСгистрация Π ΡƒΡ‚ΠΎΠΊΠ΅Π½β€œ. ΠŸΡ€ΠΎΡ†Π΅ΡΡŠΡ‚ Ρ‰Π΅ ΠΎΡ‚Π½Π΅ΠΌΠ΅ Π½Π΅ ΠΏΠΎΠ²Π΅Ρ‡Π΅ ΠΎΡ‚ 5 ΠΌΠΈΠ½ΡƒΡ‚ΠΈ.

ΠŸΡŠΡ‚ΡΡ‚ Π½Π° Ρ…Π°ΠΊΠ΅Ρ€Π° (Ρ‡Ρ€Π΅Π· ΠΊΠΎΠ½Π·ΠΎΠ»Π° ΠΈ, вСроятно, ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€)

ΠŸΡ€ΠΎΠ²Π΅Ρ€Π΅Ρ‚Π΅ вСрсията Π½Π° OpenSC
$ opensc-tool --version
Ако вСрсията Π΅ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠ° ΠΎΡ‚ 0.20, ΠΎΠ±Π½ΠΎΠ²Π΅Ρ‚Π΅ ΠΈΠ»ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°ΠΉΡ‚Π΅ ΠΊΠ»ΠΎΠ½Π° pkcs11-tool с ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° Π“ΠžΠ‘Π’-2012 ΠΎΡ‚ нашия GitHub (Π² ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° Π½Π° ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ‚Π°Π·ΠΈ статия вСрсия 0.20 всС ΠΎΡ‰Π΅ Π½Π΅ Π΅ ΠΈΠ·Π΄Π°Π΄Π΅Π½Π°) ΠΈΠ»ΠΈ ΠΎΡ‚ ΠΊΠ»ΠΎΠ½Π° master Π½Π° основния ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ OpenSC Π½Π΅ ΠΏΠΎ-късно ΠΎΡ‚ ΠΊΠΎΠΌΠΈΡ‚Π° 8cf1e6f

Π“Π΅Π½Π΅Ρ€ΠΈΡ€Π°ΠΌΠ΅ ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π° Π΄Π²ΠΎΠΉΠΊΠ° с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ:
--key-type: GOSTR3410-2012-512:А (Π“ΠžΠ‘Π’-2012 512 Π±ΠΈΡ‚Π° с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€ А), GOSTR3410-2012-256:A (Π“ΠžΠ‘Π’-2012 256 Π±ΠΈΡ‚Π° с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚ΡŠΡ€ A)

--id: ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π½Π° ΠΎΠ±Π΅ΠΊΡ‚Π° (CKA_ID) ΠΏΠΎΠ΄ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π½Π° Π΄Π²ΡƒΠ·Π½Π°Ρ‡Π½ΠΈ символи Π² hex ΠΎΡ‚ Ρ‚Π°Π±Π»ΠΈΡ†Π°Ρ‚Π° 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

Π‘Π»Π΅Π΄ Ρ‚ΠΎΠ²Π° Ρ‰Π΅ създадСм сСртификат. По-Π΄ΠΎΠ»Ρƒ Ρ‰Π΅ Π±ΡŠΠ΄Π°Ρ‚ описани Π΄Π²Π° Π½Π°Ρ‡ΠΈΠ½Π°: ΠΏΡŠΡ€Π²ΠΈΡΡ‚ Ρ‡Ρ€Π΅Π· Π£Π¦ (Ρ‰Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ тСстови Π£Π¦), вторият – самоподписан. Π—Π° Ρ†Π΅Π»Ρ‚Π° ΠΏΡŠΡ€Π²ΠΎ трябва Π΄Π° инсталиратС ΠΈ настроитС OpenSSL вСрсия 1.1 ΠΈΠ»ΠΈ ΠΏΠΎ-Π½ΠΎΠ²Π°, Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° с Π ΡƒΡ‚ΠΎΠΊΠ΅Π½ Ρ‡Ρ€Π΅Π· спСциалСн ΠΌΠΎΠ΄ΡƒΠ» rtengine, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ Ρ€ΡŠΠΊΠΎΠ²ΠΎΠ΄ΡΡ‚Π²ΠΎΡ‚ΠΎ Π˜Π½ΡΡ‚Π°Π»ΠΈΡ€Π°Π½Π΅ ΠΈ настройка Π½Π° OpenSSL.
НапримСр: Π·Π° β€˜--id 3132’ Π² OpenSSL трябва Π΄Π° ΡƒΠΊΠ°ΠΆΠ΅Ρ‚Π΅ β€žpkcs11:id=12Β«.

ΠœΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° сС Π²ΡŠΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ ΠΎΡ‚ услугитС Π½Π° тСстови Π£Π¦, ΠΊΠΎΠΈΡ‚ΠΎ са ΠΌΠ½ΠΎΠ³ΠΎ, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, Π΅Ρ‚ΠΎ, Π΅Ρ‚ΠΎ ΠΈ Π΅Ρ‚ΠΎ, Π·Π° Ρ‚ΠΎΠ²Π° Ρ‰Π΅ създадСм заявка Π·Π° сСртификат

Π”Ρ€ΡƒΠ³ Π²Π°Ρ€ΠΈΠ°Π½Ρ‚ – ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π΄Π° сС ΠΏΠΎΠ΄Π΄Π°Π΄Π΅Ρ‚Π΅ Π½Π° ΠΌΡŠΡ€Π·Π΅Π» ΠΈ Π΄Π° ΡΡŠΠ·Π΄Π°Π΄Π΅Ρ‚Π΅ самоподписан
$ openssl req -utf8 -Π½ΠΎΠ² -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) РСгистрирамС сСртификата Π² систСмата

Π£Π±Π΅Π΄Π΅Ρ‚Π΅ сС, Ρ‡Π΅ Π²Π°ΡˆΠΈΡΡ‚ сСртификат ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΠΊΠ°Ρ‚ΠΎ base64 Ρ„Π°ΠΉΠ»:

Как Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ PAM ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π·Π° Π»ΠΎΠΊΠ°Π»Π½Π° аутСнтификация Π² Linux с ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅ Π“ΠžΠ‘Π’-2012 Π½Π° Π ΡƒΡ‚ΠΎΠΊΠ΅Π½

Ако Π²Π°ΡˆΠΈΡΡ‚ сСртификат ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° Ρ‚Π°ΠΊΠ°:

Как Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ PAM ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π·Π° Π»ΠΎΠΊΠ°Π»Π½Π° аутСнтификация Π² Linux с ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅ Π“ΠžΠ‘Π’-2012 Π½Π° Π ΡƒΡ‚ΠΎΠΊΠ΅Π½

Ρ‚ΠΎ трябва Π΄Π° ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€Π°Ρ‚Π΅ сСртификата ΠΎΡ‚ 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 ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Ρ‰ ΠΏΡŠΠ»Π½ΠΎΡ‚ΠΎ ΠΈΠΌΠ΅ Π½Π° ΠΌΠΎΠ΄ΡƒΠ»Π°, Π΄Π°Π»ΠΈ Π΅ Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅, ΠΏΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚Π° Π½Π° ΠΌΠΎΠ΄ΡƒΠ»Π° ΠΈ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΡ‚Π΅ Π½Π° аутСнтификацията.
Π’ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΡ‚Π΅ Π½Π° аутСнтификацията ΠΈΠΌΠ° изисквания към ΡƒΡΠΏΠ΅ΡˆΠ½ΠΎΡΡ‚Ρ‚Π° Π½Π° опСрацията:

  • required (Π·Π°Π΄ΡŠΠ»ΠΆΠΈΡ‚Π΅Π»Π΅Π½): Ρ‚Π°ΠΊΠΈΠ²Π° ΠΌΠΎΠ΄ΡƒΠ»ΠΈ трябва Π΄Π° Π²ΡŠΡ€Π½Π°Ρ‚ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»Π΅Π½ ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€. Ако Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚ΡŠΡ‚ ΠΎΡ‚ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΠΌΠΎΠ΄ΡƒΠ»Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»Π΅Π½ ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€, Ρ‚ΠΎΠ²Π° Ρ‰Π΅ Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ Π³Ρ€Π΅ΡˆΠΊΠ° Π² аутСнтификацията. Π—Π°ΠΏΠΈΡ‚Π²Π°Π½Π΅Ρ‚ΠΎ Ρ‰Π΅ бъдС ΠΏΡ€Π΅ΠΊΡ€Π°Ρ‚Π΅Π½ΠΎ, Π½ΠΎ останалитС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Ρ‰Π΅ Π±ΡŠΠ΄Π°Ρ‚ ΠΈΠ·Π²ΠΈΠΊΠ°Π½ΠΈ.
  • requisite (Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ): ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ Π½Π° required, Π½ΠΎ Π²Π΅Π΄Π½Π°Π³Π° Π²ΠΎΠ΄ΠΈ Π΄ΠΎ ΠΏΡ€ΠΎΠ²Π°Π» Π½Π° аутСнтификацията ΠΈ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€Π° останалитС ΠΌΠΎΠ΄ΡƒΠ»ΠΈ.
  • sufficient (Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π΅Π½): Π°ΠΊΠΎ ΠΏΡ€Π΅Π΄ Ρ‚Π°ΠΊΡŠΠ² ΠΌΠΎΠ΄ΡƒΠ» Π½ΠΈΡ‚ΠΎ Π΅Π΄ΠΈΠ½ ΠΎΡ‚ ΠΌΠΎΠ΄ΡƒΠ»ΠΈΡ‚Π΅ required ΠΈΠ»ΠΈ sufficient Π½Π΅ Π΅ Π²ΡŠΡ€Π½Π°Π» ΠΎΡ‚Ρ€ΠΈΡ†Π°Ρ‚Π΅Π»Π΅Π½ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚, Ρ‚ΠΎ ΠΌΠΎΠ΄ΡƒΠ»ΡŠΡ‚ Ρ‰Π΅ Π²ΡŠΡ€Π½Π΅ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»Π΅Π½ ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€. ΠžΡΡ‚Π°Π½Π°Π»ΠΈΡ‚Π΅ ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Ρ‰Π΅ Π±ΡŠΠ΄Π°Ρ‚ ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€Π°Π½ΠΈ.
  • optional (Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π΅Π½): Π°ΠΊΠΎ Π² стСка няма ΠΌΠΎΠ΄ΡƒΠ»ΠΈ required ΠΈ Π½ΠΈΡ‚ΠΎ Π΅Π΄ΠΈΠ½ ΠΎΡ‚ ΠΌΠΎΠ΄ΡƒΠ»ΠΈΡ‚Π΅ sufficient Π½Π΅ Π΅ Π²ΡŠΡ€Π½Π°Π» ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»Π΅Π½ Ρ€Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚, Ρ‚ΠΎ ΠΏΠΎΠ½Π΅ Π΅Π΄ΠΈΠ½ ΠΎΡ‚ ΠΌΠΎΠ΄ΡƒΠ»ΠΈΡ‚Π΅ optional трябва Π΄Π° Π²ΡŠΡ€Π½Π΅ ΠΏΠΎΠ»ΠΎΠΆΠΈΡ‚Π΅Π»Π΅Π½ ΠΎΡ‚Π³ΠΎΠ²ΠΎΡ€.

ΠŸΡŠΠ»Π½ΠΎΡ‚ΠΎ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Π½ΠΈΠ΅ Π½Π° Ρ„Π°ΠΉΠ»Π° /usr/share/pam-configs/rutoken-gost-pam:
ИмС: Rutoken PAM GOST
По ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅: Π΄Π°
ΠŸΡ€ΠΈΠΎΡ€ΠΈΡ‚Π΅Ρ‚: 800
Π’ΠΈΠΏ удостовСряванС: ОсновСн
УдостовСряванС: Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π½ΠΎ /usr/lib/librtpam.so.1.0.0 /usr/lib/librtpkcs11ecp.so

Как Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ PAM ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π·Π° Π»ΠΎΠΊΠ°Π»Π½Π° аутСнтификация Π² Linux с ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅ Π“ΠžΠ‘Π’-2012 Π½Π° Π ΡƒΡ‚ΠΎΠΊΠ΅Π½

Π·Π°ΠΏΠ°Π·Π²Π°ΠΌΠ΅ Ρ„Π°ΠΉΠ»Π°, слСд Ρ‚ΠΎΠ²Π° изпълнявамС
$ sudo pam-auth-update
Π² появилото сС ΠΏΡ€ΠΎΠ·ΠΎΡ€Π΅Ρ† слагамС Π·Π²Π΅Π·Π΄ΠΈΡ‡ΠΊΠ° ΠΎΠΊΠΎΠ»ΠΎ Rutoken PAM GOST ΠΈ натискамС OK

Как Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ PAM ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π·Π° Π»ΠΎΠΊΠ°Π»Π½Π° аутСнтификация Π² Linux с ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅ Π“ΠžΠ‘Π’-2012 Π½Π° Π ΡƒΡ‚ΠΎΠΊΠ΅Π½

8) ΠŸΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° настройкитС

Π—Π° Π΄Π° Ρ€Π°Π·Π±Π΅Ρ€Π΅ΠΌ, Ρ‡Π΅ всичко Π΅ настроСно, Π½ΠΎ Π² ΡΡŠΡ‰ΠΎΡ‚ΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π΄Π° Π½Π΅ Π·Π°Π³ΡƒΠ±ΠΈΠΌ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° Π²Ρ…ΠΎΠ΄ Π² систСмата, Π²ΡŠΠ²Π΅Π΄Π΅Ρ‚Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π°
$ sudo login
Π’ΡŠΠ²Π΅Π΄Π΅Ρ‚Π΅ потрСбитСлското ΠΈΠΌΠ΅. Всичко Π΅ настроСно ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ, Π°ΠΊΠΎ систСмата поиска PIN-ΠΊΠΎΠ΄ Π½Π° устройството.

Как Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ PAM ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π·Π° Π»ΠΎΠΊΠ°Π»Π½Π° аутСнтификация Π² Linux с ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅ Π“ΠžΠ‘Π’-2012 Π½Π° Π ΡƒΡ‚ΠΎΠΊΠ΅Π½

9) Настройка Π½Π° Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°Ρ‚Π° Π½Π° ΠΊΠΎΠΌΠΏΡŽΡ‚ΡŠΡ€Π° ΠΏΡ€ΠΈ ΠΈΠ·Π²Π»ΠΈΡ‡Π°Π½Π΅ Π½Π° Ρ‚ΠΎΠΊΠ΅Π½Π°

Π’ ΡΡŠΡΡ‚Π°Π²Π° Π½Π° ΠΏΠ°ΠΊΠ΅Ρ‚Π° libpam-pkcs11 Π²Π»ΠΈΠ·Π° ΡƒΡ‚ΠΈΠ»ΠΈΡ‚Π° pkcs11_eventmgr, която позволява ΠΈΠ·Π²ΡŠΡ€ΡˆΠ²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ дСйствия ΠΏΡ€ΠΈ възникванС Π½Π° ΡΡŠΠ±ΠΈΡ‚ΠΈΡ PKCS#11.
Π—Π° настройка pkcs11_eventmgr слуТи ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€Π°Ρ†ΠΈΠΎΠ½Π΅Π½ Ρ„Π°ΠΉΠ»: /etc/pam_pkcs11/pkcs11_eventmgr.conf
Π—Π° Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ дистрибуции Π½Π° Линукс, ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π°, която ΠΈΠ·Π²ΠΈΠΊΠ²Π° Π±Π»ΠΎΠΊΠΈΡ€ΠΎΠ²ΠΊΠ°Ρ‚Π° Π½Π° Π°ΠΊΠ°ΡƒΠ½Ρ‚Π° ΠΏΡ€ΠΈ ΠΈΠ·Π²Π»Π΅Ρ‡Π΅Π½Π΅ Π½Π° смарт-ΠΊΠ°Ρ€Ρ‚ΠΈ ΠΈΠ»ΠΈ Ρ‚ΠΎΠΊΠ΅Π½, Ρ‰Π΅ сС Ρ€Π°Π·Π»ΠΈΡ‡Π°Π²Π°. Π’ΠΈΠΆΡ‚Π΅. 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 ΠΈ сС рСстартирайтС.

ΠžΠΏΠΈΡΠ°Π½ΠΈΡ‚Π΅ ΡΡ‚ΡŠΠΏΠΊΠΈ Π·Π° настройка Π½Π° ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ‚Π° систСма ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ ΠΊΠ°Ρ‚ΠΎ инструкции Π² дистрибуции Π½Π° Linux, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΈ мСстни.

Как Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ PAM ΠΌΠΎΠ΄ΡƒΠ»ΠΈ Π·Π° Π»ΠΎΠΊΠ°Π»Π½Π° аутСнтификация Π² Linux с ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π΅ Π“ΠžΠ‘Π’-2012 Π½Π° Π ΡƒΡ‚ΠΎΠΊΠ΅Π½

Π—Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅

ПК с Linux Π² рускитС Π΄ΡŠΡ€ΠΆΠ°Π²Π½ΠΈ структури стават всС ΠΏΠΎ-популярни, Π° настройката Π½Π° Π½Π°Π΄Π΅ΠΆΠ΄Π½Π° Π΄Π²ΡƒΡ„Π°ΠΊΡ‚ΠΎΡ€Π½Π° автСнтикация Π² Ρ‚Π°Π·ΠΈ ОБ Π½Π΅ Π²ΠΈΠ½Π°Π³ΠΈ Π΅ лСсна. Π©Π΅ сС Ρ€Π°Π΄Π²Π°ΠΌΠ΅ с Ρ‚ΠΎΠ²Π° Ρ€ΡŠΠΊΠΎΠ²ΠΎΠ΄ΡΡ‚Π²ΠΎ Π΄Π° ΠΏΠΎΠΌΠΎΠ³Π½Π΅ΠΌ Π΄Π° сС Ρ€Π΅ΡˆΠΈ "ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΠ° с ΠΏΠ°Ρ€ΠΎΠ»ΠΈΡ‚Π΅" ΠΈ Π½Π°Π΄Π΅ΠΆΠ΄Π½ΠΎ Π΄Π° Π·Π°Ρ‰ΠΈΡ‚ΠΈΠΌ Π΄ΠΎΡΡ‚ΡŠΠΏΠ° Π΄ΠΎ ПК, Π±Π΅Π· Π΄Π° сС Π½Π°Π»Π°Π³Π° Π΄Π° отдСлямС ΠΌΠ½ΠΎΠ³ΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π·Π° Ρ‚ΠΎΠ²Π°.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: habr.com

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