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

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

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

Π‘Π»Π°Π³ΠΎΠ΄Π°Ρ€Π΅Π½ΠΈΠ΅ Π½Π° комбинацията ΠΎΡ‚ Ρ„Π°ΠΊΡ‚ΠΎΡ€ΠΈ Π·Π° ΠΏΡ€ΠΈΡ‚Π΅ΠΆΠ°Π½ΠΈΠ΅ Π½Π° устройство ΠΈ Π·Π½Π°Π½ΠΈΠ΅ Π½Π° нСговия 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, ΠΏΠΎΡ€Π°Π΄ΠΈ ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π² ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΎΠ½Π½ΠΈ систСми, ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π°Ρ‰ΠΈ ΠΊΠΎΠ½Ρ„ΠΈΠ΄Π΅Π½Ρ†ΠΈΠ°Π»Π½Π° информация.

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

ΠŸΠΎΠ΄Ρ…ΠΎΠ΄ΡΡ‰ Π΅ ΠΏΠΎΡ‡Ρ‚ΠΈ всСки ΡΡŠΠ²Ρ€Π΅ΠΌΠ΅Π½Π΅Π½ Linux, Π·Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€ Ρ‰Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ 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 всС ΠΎΡ‰Π΅ Π½Π΅ Π΅ ΠΈΠ·Π΄Π°Π΄Π΅Π½Π°) ΠΈΠ»ΠΈ ΠΎΡ‚ основния ΠΊΠ»ΠΎΠ½ Π½Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Π° OpenSC Π½Π΅ ΠΏΠΎ-късно ΠΎΡ‚ ΠΊΠΎΠΌΠΈΡ‚Π° 8cf1e6f

Π“Π΅Π½Π΅Ρ€ΠΈΡ€Π°ΠΌΠ΅ ΠΊΠ»ΡŽΡ‡ΠΎΠ²Π° Π΄Π²ΠΎΠΉΠΊΠ° с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ:
--key-type: GOSTR3410-2012-512:A (Π“ΠžΠ‘Π’-2012 512 Π±ΠΈΡ‚Π° с ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈ A), 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 -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) РСгистриратС сСртификата Π² систСмата

Π£Π²Π΅Ρ€Π΅Ρ‚Π΅ сС, Ρ‡Π΅ Π²Π°ΡˆΠΈΡΡ‚ сСртификат ΠΈΠ·Π³Π»Π΅ΠΆΠ΄Π° ΠΊΠ°Ρ‚ΠΎ 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
Auth-Type: ОсновСн
Auth: Π΄ΠΎΡΡ‚Π°Ρ‚ΡŠΡ‡Π΅Π½ /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
Π’ΡŠΠ²Π΅Π΄Π΅Ρ‚Π΅ ΠΈΠΌΠ΅ Π½Π° потрСбитСля. Всичко Π΅ настроСно ΠΏΡ€Π°Π²ΠΈΠ»Π½ΠΎ, Π°ΠΊΠΎ систСмата изисква ПИН-ΠΊΠΎΠ΄ Π½Π° устройството.

Как Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚Π΅ 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