เบงเบดเบ—เบตเบเบฒเบ™เปƒเบŠเป‰เป‚เบกเบ”เบนเบ™ PAM เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบžเบดเบชเบนเบ”เบขเบทเบ™เบขเบฑเบ™เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เปƒเบ™ Linux เป‚เบ”เบเปƒเบŠเป‰เบ›เบธเปˆเบก GOST-2012 เปƒเบ™ Rutoken

เบงเบดเบ—เบตเบเบฒเบ™เปƒเบŠเป‰เป‚เบกเบ”เบนเบ™ PAM เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบžเบดเบชเบนเบ”เบขเบทเบ™เบขเบฑเบ™เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เปƒเบ™ Linux เป‚เบ”เบเปƒเบŠเป‰เบ›เบธเปˆเบก GOST-2012 เปƒเบ™ Rutoken

เบฅเบฐเบซเบฑเบ”เบœเปˆเบฒเบ™เบ‡เปˆเบฒเบเป†เปเบกเปˆเบ™เบšเปเปˆเบ›เบญเบ”เป„เบž, เปเบฅเบฐเบฅเบฐเบซเบฑเบ”เบœเปˆเบฒเบ™เบ—เบตเปˆเบŠเบฑเบšเบŠเป‰เบญเบ™เปเบกเปˆเบ™เบšเปเปˆเบชเบฒเบกเบฒเบ”เบˆเบทเปˆเป„เบ”เป‰. เบ”เป‰เบงเบเป€เบซเบ”เบ™เบฑเป‰เบ™, เบžเบงเบเบกเบฑเบ™เบˆเบถเปˆเบ‡เบกเบฑเบเบˆเบฐเบˆเบปเบšเบฅเบปเบ‡เบ”เป‰เบงเบเบšเบฑเบ™เบ—เบถเบเบ•เบดเบ”เบขเบนเปˆเบเป‰เบญเบ‡เปเบ›เป‰เบ™เบžเบดเบก เบซเบผเบท เบˆเปเบžเบฒเบš. เป€เบžเบทเปˆเบญเบฎเบฑเบšเบ›เบฐเบเบฑเบ™เบงเปˆเบฒเบฅเบฐเบซเบฑเบ”เบœเปˆเบฒเบ™เบเบฑเบ‡เบ„เบปเบ‡เบขเบนเปˆเปƒเบ™เปƒเบˆเบ‚เบญเบ‡เบœเบนเป‰เปƒเบŠเป‰ "เบฅเบทเบก" เปเบฅเบฐเบ„เบงเบฒเบกเบซเบ™เป‰เบฒเป€เบŠเบทเปˆเบญเบ–เบทเบ‚เบญเบ‡เบเบฒเบ™เบ›เบปเบเบ›เป‰เบญเบ‡เบšเปเปˆเป„เบ”เป‰เบชเบนเบ™เป€เบชเบ, เบกเบตเบเบฒเบ™เบเบงเบ”เบชเบญเบšเบชเบญเบ‡เบ›เบฑเบ”เปƒเบˆ (2FA).

เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบเบฒเบ™เบ›เบฐเบชเบปเบกเบ›เบฐเบชเบฒเบ™เบ‚เบญเบ‡เบเบฒเบ™เป€เบ›เบฑเบ™เป€เบˆเบปเป‰เบฒเบ‚เบญเบ‡เบญเบธเบ›เบฐเบเบญเบ™เปเบฅเบฐเบเบฒเบ™เบฎเบนเป‰ PIN เบ‚เบญเบ‡เบกเบฑเบ™, PIN เบ•เบปเบงเบ‚เบญเบ‡เบกเบฑเบ™เป€เบญเบ‡เบชเบฒเบกเบฒเบ”เบ‡เปˆเบฒเบเปเบฅเบฐเบˆเบทเปˆเบ‡เปˆเบฒเบเบเบงเปˆเบฒ. เบ‚เปเป‰เป€เบชเบเบ‚เบญเบ‡เบ„เบงเบฒเบกเบเบฒเบง PIN เบซเบผเบทเบ„เบงเบฒเบกเบชเบธเปˆเบกเปเบกเปˆเบ™เบŠเบปเบ”เป€เบŠเบตเบเป‚เบ”เบเบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เบเบฒเบ™เบ„เบญเบšเบ„เบญเบ‡เบ—เบฒเบ‡เบ”เป‰เบฒเบ™เบฎเปˆเบฒเบ‡เบเบฒเบเปเบฅเบฐเบ‚เปเป‰เบˆเปเบฒเบเบฑเบ”เบเปˆเบฝเบงเบเบฑเบšเบœเบปเบ™เบšเบฑเบ‡เบ„เบฑเบšเปƒเบŠเป‰ PIN.

เบ™เบญเบเบˆเบฒเบเบ™เบฑเป‰เบ™, เบกเบฑเบ™เป€เบเบตเบ”เบ‚เบทเป‰เบ™เปƒเบ™เบญเบปเบ‡เบเบฒเบ™เบ‚เบญเบ‡เบฅเบฑเบ”เบ–เบฐเบšเบฒเบ™เบ—เบตเปˆเบžเบงเบเป€เบ‚เบปเบฒเบ•เป‰เบญเบ‡เบเบฒเบ™เปƒเบซเป‰เบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เป€เบฎเบฑเบ”เบงเบฝเบเบ•เบฒเบก GOST. เบ—เบฒเบ‡เป€เบฅเบทเบญเบ 2FA เบ™เบตเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบชเบนเปˆเบฅเบฐเบšเบปเบš Linux เบˆเบฐเบ–เบทเบเบ›เบถเบเบชเบฒเบซเบฒเบฅเบท. เบ‚เป‰เบญเบเบˆเบฐเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™เบˆเบฒเบเป„เบ.

เป‚เบกเบ”เบนเบ™ PAM

Pluggable Authentication Modules (PAM) เปเบกเปˆเบ™เป‚เบกเบ”เบนเบ™เบ—เบตเปˆเบกเบต API เบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™ เปเบฅเบฐเบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบปเบ™เป„เบเบเบฒเบ™เบžเบดเบชเบนเบ”เบขเบทเบ™เบขเบฑเบ™เบ•เปˆเบฒเบ‡เป†เปƒเบ™เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™.
เบญเบธเบ›เบฐเบ–เบณ เปเบฅเบฐ เปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเปˆเบ™เบ—เบฑเบ‡เปเบปเบ”เบ—เบตเปˆเบชเบฒเบกเบฒเบ”เป€เบฎเบฑเบ”เบงเบฝเบเบเบฑเบš PAM เป€เบญเบปเบฒเบžเบงเบเบกเบฑเบ™เบ‚เบถเป‰เบ™ เปเบฅเบฐเบชเบฒเบกเบฒเบ”เปƒเบŠเป‰เบžเบงเบเบกเบฑเบ™เป€เบžเบทเปˆเบญเบเบงเบ”เบชเบญเบšเบœเบนเป‰เปƒเบŠเป‰.
เปƒเบ™เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”, เบกเบฑเบ™เป€เบฎเบฑเบ”เบงเบฝเบเป€เบŠเบฑเปˆเบ™เบ™เบตเป‰: เบ„เปเบฒเบชเบฑเปˆเบ‡เป€เบ‚เบปเป‰เบฒเบชเบนเปˆเบฅเบฐเบšเบปเบšเป€เบญเบตเป‰เบ™เบงเปˆเบฒ PAM, เป€เบŠเบดเปˆเบ‡เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบ—เบตเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ—เบฑเบ‡เบซเบกเบปเบ”เป‚เบ”เบเปƒเบŠเป‰เป‚เบกเบ”เบนเบ™เบ—เบตเปˆเบฅเบฐเบšเบธเป„เบงเป‰เปƒเบ™เป„เบŸเบฅเปŒเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเปเบฅเบฐเบชเบปเปˆเบ‡เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบเบฑเบšเบ„เบทเบ™เป„เบ›เบซเบฒเบ„เปเบฒเบชเบฑเปˆเบ‡เป€เบ‚เบปเป‰เบฒเบชเบนเปˆเบฅเบฐเบšเบปเบš.

librtpam

เป‚เบกเบ”เบนเบ™เบ—เบตเปˆเบžเบฑเบ”เบ—เบฐเบ™เบฒเป‚เบ”เบเบšเปเบฅเบดเบชเบฑเบ” Aktiv เป€เบžเบตเปˆเบกเบเบฒเบ™เบเบงเบ”เบชเบญเบšเบชเบญเบ‡เบ›เบฑเบ”เปƒเบˆเบ‚เบญเบ‡เบœเบนเป‰เปƒเบŠเป‰เป‚เบ”เบเปƒเบŠเป‰เบšเบฑเบ”เบญเบฑเบ”เบชเบฐเบฅเบดเบเบฐเบซเบผเบท USB tokens เป‚เบ”เบเปƒเบŠเป‰เบเบฐเปเบˆ asymmetric เบ•เบฒเบกเบกเบฒเบ”เบ•เบฐเบ–เบฒเบ™เบซเบฅเป‰เบฒเบชเบธเบ”เบ‚เบญเบ‡เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เบžเบฒเบเปƒเบ™เบ›เบฐเป€เบ—เบ”.

เปƒเบซเป‰เป€เบšเบดเปˆเบ‡เบซเบผเบฑเบเบเบฒเบ™เบ‚เบญเบ‡เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™เบ‚เบญเบ‡เบกเบฑเบ™:

  • token เป€เบเบฑเบšเบฎเบฑเบเบชเบฒเปƒเบšเบขเบฑเป‰เบ‡เบขเบทเบ™เบ‚เบญเบ‡เบœเบนเป‰เปƒเบŠเป‰เปเบฅเบฐเบเบฐเปเบˆเบชเปˆเบงเบ™เบ•เบปเบงเบ‚เบญเบ‡เบกเบฑเบ™;
  • เปƒเบšเบฎเบฑเบšเบฎเบญเบ‡เบ–เบทเบเบšเบฑเบ™เบ—เบถเบเป„เบงเป‰เปƒเบ™เป„เบ”เป€เบฃเบฑเบเบ—เปเบฃเบตเบซเบผเบฑเบเบ‚เบญเบ‡เบœเบนเป‰เปƒเบŠเป‰เป€เบ›เบฑเบ™เบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰.

เบ‚เบฐโ€‹เบšเบงเบ™โ€‹เบเบฒเบ™โ€‹เบเบงเบ”โ€‹เบชเบญเบšโ€‹เป„เบ”เป‰โ€‹เป€เบเบตเบ”โ€‹เบ‚เบถเป‰เบ™โ€‹เบ”เบฑเปˆเบ‡โ€‹เบ•เปเปˆโ€‹เป„เบ›โ€‹เบ™เบตเป‰โ€‹:

  1. Rutoken เบ„เบปเป‰เบ™เบซเบฒเปƒเบšเบขเบฑเป‰เบ‡เบขเบทเบ™เบชเปˆเบงเบ™เบ•เบปเบงเบ‚เบญเบ‡เบœเบนเป‰เปƒเบŠเป‰.
  2. เบฎเป‰เบญเบ‡เบ‚เป PIN token.
  3. เบ‚เปเป‰เบกเบนเบ™เปเบšเบšเบชเบธเปˆเบกเบ–เบทเบเป€เบŠเบฑเบ™เปƒเบชเปˆเบฅเบฐเบซเบฑเบ”เบชเปˆเบงเบ™เบ•เบปเบงเป‚เบ”เบเบเบปเบ‡เปƒเบ™เบŠเบดเบš Rutoken.
  4. เบฅเบฒเบเป€เบŠเบฑเบ™เบ—เบตเปˆเป„เบ”เป‰เบฎเบฑเบšเปเบกเปˆเบ™เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบขเบฑเป‰เบ‡เบขเบทเบ™เป‚เบ”เบเปƒเบŠเป‰เบฅเบฐเบซเบฑเบ”เบชเบฒเบ—เบฒเบฅเบฐเบ™เบฐเบˆเบฒเบเปƒเบšเบขเบฑเป‰เบ‡เบขเบทเบ™เบ‚เบญเบ‡เบœเบนเป‰เปƒเบŠเป‰.
  5. เป‚เบกเบ”เบนเบ™เบชเบปเปˆเบ‡เบœเบปเบ™เบเบฒเบ™เบขเบฑเป‰เบ‡เบขเบทเบ™เบฅเบฒเบเป€เบŠเบฑเบ™เปƒเบซเป‰เบเบฑเบšเปเบญเบฑเบšเบžเบฅเบดเป€เบ„เบŠเบฑเบ™เบเบฒเบ™เป‚เบ—.

เบ—เปˆเบฒเบ™เบชเบฒเบกเบฒเบ”เบเบงเบ”เบชเบญเบšเบ„เบงเบฒเบกเบ–เบทเบเบ•เป‰เบญเบ‡เป‚เบ”เบเปƒเบŠเป‰เบเบฐเปเบˆ GOST R 34.10-2012 (เบ„เบงเบฒเบกเบเบฒเบง 256 เบซเบผเบท 512 เบšเบดเบ”) เบซเบผเบท GOST R 34.10-2001 เบ—เบตเปˆเบฅเป‰เบฒเบชเบฐเป„เบซเบก.

เบ—เปˆเบฒเบ™เบšเปเปˆเบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบเบฑเบ‡เบงเบปเบ™เบเปˆเบฝเบงเบเบฑเบšเบ„เบงเบฒเบกเบ›เบญเบ”เป„เบžเบ‚เบญเบ‡เบเบฐเปเบˆ - เบžเบงเบเบกเบฑเบ™เบ–เบทเบเบœเบฐเบฅเบดเบ”เป‚เบ”เบเบเบปเบ‡เปƒเบ™ Rutoken เปเบฅเบฐเบšเปเปˆเป€เบ„เบตเบเบ›เปˆเบญเบเปƒเบซเป‰เบ„เบงเบฒเบกเบŠเบปเบ‡เบˆเปเบฒเบ‚เบญเบ‡เบกเบฑเบ™เปƒเบ™เบฅเบฐเบซเบงเปˆเบฒเบ‡เบเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบฅเบฐเบซเบฑเบ”เบฅเบฑเบš.

เบงเบดเบ—เบตเบเบฒเบ™เปƒเบŠเป‰เป‚เบกเบ”เบนเบ™ PAM เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบžเบดเบชเบนเบ”เบขเบทเบ™เบขเบฑเบ™เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เปƒเบ™ Linux เป‚เบ”เบเปƒเบŠเป‰เบ›เบธเปˆเบก GOST-2012 เปƒเบ™ Rutoken

Rutoken EDS 2.0 เป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบขเบฑเป‰เบ‡เบขเบทเบ™เป‚เบ”เบ FSB เปเบฅเบฐ FSTEC เบญเบตเบ‡เบ•เบฒเบก NDV 4, เบ”เบฑเปˆเบ‡เบ™เบฑเป‰เบ™เบˆเบถเปˆเบ‡เบชเบฒเบกเบฒเบ”เบ–เบทเบเบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เบฅเบฐเบšเบปเบšเบ‚เปเป‰เบกเบนเบ™เบ‚เปˆเบฒเบงเบชเบฒเบ™เบ—เบตเปˆเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ‚เปเป‰เบกเบนเบ™เบฅเบฑเบš.

เบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เบžเบฒเบเบ›เบฐเบ•เบดเบšเบฑเบ”

เป€เบเบทเบญเบšเบ—เบธเบ Linux เบ—เบตเปˆเบ—เบฑเบ™เบชเบฐเป„เบซเบกเบˆเบฐเป€เบฎเบฑเบ”, เบ•เบปเบงเบขเปˆเบฒเบ‡เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเปƒเบŠเป‰ xUbuntu 18.10.

1) เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบŠเบธเบ”เบ—เบตเปˆเบˆเปเบฒเป€เบ›เบฑเบ™

sudo apt-get install libccid pcscd opensc
เบ–เป‰เบฒเบ—เปˆเบฒเบ™เบ•เป‰เบญเบ‡เบเบฒเบ™เป€เบžเบตเปˆเบกเบเบฒเบ™เบฅเบฑเบญเบเป€เบ”เบฑเบชเบ—เบฑเบญเบšเบ”เป‰เบงเบเบ•เบปเบงเบฎเบฑเบเบชเบฒเปœเป‰เบฒเบˆเป, เปƒเบซเป‰เบ•เบดเบ”เบ•เบฑเป‰เบ‡เบŠเบธเบ”เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบ•เบทเปˆเบก libpam-pkcs11.

2) เป€เบžเบตเปˆเบกเป‚เบกเบ”เบนเบ™ PAM เบ—เบตเปˆเบกเบตเบเบฒเบ™เบชเบฐเบซเบ™เบฑเบšเบชเบฐเบซเบ™เบนเบ™ GOST

เบเบณเบฅเบฑเบ‡เป‚เบซเบผเบ”เบซเป‰เบญเบ‡เบชเบฐเปเบธเบ”เบˆเบฒเบ 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 เป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบ™เบฅเบฐเบšเบปเบš

เปƒเบ™ terminal เบžเบงเบเป€เบฎเบปเบฒเบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™
$ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -T
เบ–เป‰เบฒเป€เบˆเบปเป‰เบฒเป€เบซเบฑเบ™เป€เบชเบฑเป‰เบ™ Rutoken ECP <no label> - เบกเบฑเบ™เบซเบกเบฒเบเบ„เบงเบฒเบกเบงเปˆเบฒเบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เปเบกเปˆเบ™ OK.

5) เบญเปˆเบฒเบ™เปƒเบšเบขเบฑเป‰เบ‡เบขเบทเบ™

เบเบฒเบ™เบเบงเบ”เบชเบญเบšเบงเปˆเบฒเบญเบธเบ›เบฐเบเบญเบ™เบกเบตเปƒเบšเบขเบฑเป‰เบ‡เบขเบทเบ™
$ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -O
เบ–เป‰เบฒเบซเบผเบฑเบ‡เบˆเบฒเบเป€เบชเบฑเป‰เบ™:
Using slot 0 with a present token (0x0)

  • เบ‚เปเป‰เบกเบนเบ™เบ–เบทเบเบชเบฐเปเบ”เบ‡ เบเปˆเบฝเบงเบเบฑเบšเบเบฐเปเบˆเปเบฅเบฐเปƒเบšเบขเบฑเป‰เบ‡เบขเบทเบ™, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เบญเปˆเบฒเบ™เปƒเบšเบขเบฑเป‰เบ‡เบขเบทเบ™เปเบฅเบฐเบšเบฑเบ™เบ—เบถเบเบกเบฑเบ™เปƒเบชเปˆเปเบœเปˆเบ™. เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เบชเบดเปˆเบ‡เบ™เบตเป‰, เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ„เปเบฒเบชเบฑเปˆเบ‡เบ•เปเปˆเป„เบ›เบ™เบตเป‰, เบšเปˆเบญเบ™เบ—เบตเปˆเปเบ—เบ™เบ—เบตเปˆเบˆเบฐเป€เบ›เบฑเบ™ {id}, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เป„เบ”เป‰เบ—เบปเบ”เปเบ—เบ™เปƒเบšเบขเบฑเป‰เบ‡เบขเบทเบ™เปƒเบšเบขเบฑเป‰เบ‡เบขเบทเบ™เบ—เบตเปˆเบ—เปˆเบฒเบ™เป€เบซเบฑเบ™เบขเบนเปˆเปƒเบ™เบœเบปเบ™เบœเบฐเบฅเบดเบ”เบ‚เบญเบ‡เบ„เปเบฒเบชเบฑเปˆเบ‡เบ—เบตเปˆเบœเปˆเบฒเบ™เบกเบฒ:
    $ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -r -y cert --id {id} --output-file cert.crt
    เบ–เป‰เบฒเป„เบŸเบฅเปŒ cert.crt เป„เบ”เป‰เบ–เบทเบเบชเป‰เบฒเบ‡เบ‚เบทเป‰เบ™, เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ‚เบฑเป‰เบ™เบ•เบญเบ™ 6).
  • เบšเปเปˆโ€‹เบกเบตโ€‹เบซเบเบฑเบ‡, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบญเบธเบ›เบฐเบเบญเบ™เปเบกเปˆเบ™เบซเบงเปˆเบฒเบ‡เป€เบ›เบปเปˆเบฒ. เบ•เบดเบ”เบ•เปเปˆเบœเบนเป‰เป€เบšเบดเปˆเบ‡เปเบเบ‡เบฅเบฐเบšเบปเบšเบ‚เบญเบ‡เบ—เปˆเบฒเบ™ เบซเบผเบทเบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ” เปเบฅเบฐเปƒเบšเบขเบฑเป‰เบ‡เบขเบทเบ™เบ•เบปเบงเบ—เปˆเบฒเบ™เป€เบญเบ‡เป‚เบ”เบเบ›เบฐเบ•เบดเบšเบฑเบ”เบ•เบฒเบกเบ‚เบฑเป‰เบ™เบ•เบญเบ™เบ•เปเปˆเป„เบ›.

5.1) เบชเป‰เบฒเบ‡เปƒเบšเบขเบฑเป‰เบ‡เบขเบทเบ™เบเบฒเบ™เบชเบญเบšเป€เบชเบฑเบ‡

เป€เบญเบปเบฒเปƒเบˆเปƒเบชเปˆ! เบงเบดเบ—เบตเบเบฒเบ™เบ—เบตเปˆเบญเบฐเบ—เบดเบšเบฒเบเป„เบงเป‰เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบชเป‰เบฒเบ‡เบฅเบฐเบซเบฑเบ”เปเบฅเบฐเปƒเบšเบขเบฑเป‰เบ‡เบขเบทเบ™เปเบกเปˆเบ™เป€เบซเบกเบฒเบฐเบชเบปเบกเบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ—เบปเบ”เบชเบญเบšเปเบฅเบฐเบšเปเปˆเป„เบ”เป‰เบกเบตเบˆเบธเบ”เบ›เบฐเบชเบปเบ‡เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ™เปเบฒเปƒเบŠเป‰เปƒเบ™เบฎเบนเบšเปเบšเบšเบเบฒเบ™เบ•เปเปˆเบชเบนเป‰. เป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เบชเบดเปˆเบ‡เบ™เบตเป‰, เบ—เปˆเบฒเบ™เบˆเปเบฒเป€เบ›เบฑเบ™เบ•เป‰เบญเบ‡เปƒเบŠเป‰เบเบฐเปเบˆเปเบฅเบฐเปƒเบšเบขเบฑเป‰เบ‡เบขเบทเบ™เบ—เบตเปˆเบญเบญเบเปƒเบซเป‰เป‚เบ”เบเบญเบปเบ‡เบเบฒเบ™เบขเบฑเป‰เบ‡เบขเบทเบ™เบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰เบ‚เบญเบ‡เบญเบปเบ‡เบเบฒเบ™เบ‚เบญเบ‡เป€เบˆเบปเป‰เบฒเบซเบผเบทเบญเบปเบ‡เบเบฒเบ™เบขเบฑเป‰เบ‡เบขเบทเบ™เบ—เบตเปˆเป„เบ”เป‰เบฎเบฑเบšเบเบฒเบ™เบฎเบฑเบšเบฎเบญเบ‡.
เป‚เบกเบ”เบนเบ™ PAM เบ–เบทเบเบญเบญเบเปเบšเบšเบกเบฒเป€เบžเบทเปˆเบญเบ›เบปเบเบ›เป‰เบญเบ‡เบ„เบญเบกเบžเบดเบงเป€เบ•เบตเบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เปเบฅเบฐเบ–เบทเบเบญเบญเบเปเบšเบšเบกเบฒเป€เบžเบทเปˆเบญเป€เบฎเบฑเบ”เบงเบฝเบเบขเบนเปˆเปƒเบ™เบญเบปเบ‡เบเบฒเบ™เบˆเบฑเบ”เบ•เบฑเป‰เบ‡เบ‚เบฐเบซเบ™เบฒเบ”เบ™เป‰เบญเบ. เป€เบ™เบทเปˆเบญเบ‡เบˆเบฒเบเบกเบตเบœเบนเป‰เปƒเบŠเป‰เบˆเปเบฒเบ™เบงเบ™เบซเบ™เป‰เบญเบ, Administrator เบชเบฒเบกเบฒเบ”เบเบงเบ”เบชเบญเบšเบเบฒเบ™เบ–เบญเบ™เปƒเบšเบขเบฑเป‰เบ‡เบขเบทเบ™เปเบฅเบฐเบšเบฑเบ™เบŠเบต block เบ”เป‰เบงเบเบ•เบปเบ™เป€เบญเบ‡, เป€เบŠเบฑเปˆเบ™เบ”เบฝเบงเบเบฑเบ™เบเบฑเบšเป„เบฅเบเบฐเป€เบงเบฅเบฒเบ—เบตเปˆเบ–เบทเบเบ•เป‰เบญเบ‡เบ‚เบญเบ‡เปƒเบšเบขเบฑเป‰เบ‡เบขเบทเบ™. เป‚เบกเบ”เบนเบ™ PAM เบเบฑเบ‡เบšเปเปˆเบ—เบฑเบ™เบฎเบนเป‰เบงเบดเบ—เบตเบเบฒเบ™เบเบงเบ”เบชเบญเบšเปƒเบšเบขเบฑเป‰เบ‡เบขเบทเบ™เป‚เบ”เบเปƒเบŠเป‰ CRLs เปเบฅเบฐเบชเป‰เบฒเบ‡เบ•เปˆเบญเบ‡เป‚เบชเป‰เบ„เบงเบฒเบกเป„เบงเป‰เบงเบฒเบ‡เปƒเบˆ.

เบงเบดเบ—เบตเบ—เบตเปˆเบ‡เปˆเบฒเบ (เบœเปˆเบฒเบ™ browser)

เป€เบžเบทเปˆเบญเปƒเบซเป‰เป„เบ”เป‰เบฎเบฑเบšเปƒเบšเบขเบฑเป‰เบ‡เบขเบทเบ™เบเบฒเบ™เบ—เบปเบ”เบชเบญเบš, เปƒเบŠเป‰ เบเบฒเบ™เบšเปเบฅเบดเบเบฒเบ™เป€เบงเบฑเบšเป„เบŠเบ•เปŒ "เบชเบนเบ™เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™ Rutoken". เบ‚เบฐเบšเบงเบ™เบเบฒเบ™เบˆเบฐเปƒเบŠเป‰เป€เบงเบฅเบฒเบšเปเปˆเป€เบเบตเบ™ 5 เบ™เบฒเบ—เบต.

เบงเบดเบ—เบตเบเบฒเบ™เบ‚เบญเบ‡ geek (เบœเปˆเบฒเบ™ console เปเบฅเบฐเบญเบฒเบ”เบˆเบฐเป€เบ›เบฑเบ™ compiler)

เบเบงเบ”เป€เบšเบดเปˆเบ‡เป€เบงเบตเบŠเบฑเบ™ OpenSC
$ opensc-tool --version
เบ–เป‰เบฒเบฎเบธเปˆเบ™เบซเบ™เป‰เบญเบเบเบงเปˆเบฒ 0.20, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ›เบฑเบšเบ›เบธเบ‡เบซเบผเบทเบชเป‰เบฒเบ‡ pkcs11-tool เบชเบฒเบ‚เบฒเบ—เบตเปˆเบกเบตเบเบฒเบ™เบฎเบญเบ‡เบฎเบฑเบš GOST-2012 เบˆเบฒเบ GitHub เบ‚เบญเบ‡เบžเบงเบเป€เบฎเบปเบฒ (เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเป€เบœเบตเบเปเบœเปˆเบšเบปเบ”เบ„เบงเบฒเบกเบ™เบตเป‰, เบเบฒเบ™เบ›เปˆเบญเบ 0.20 เบเบฑเบ‡เบšเปเปˆเบ—เบฑเบ™เป„เบ”เป‰เบ›เปˆเบญเบเบญเบญเบเบกเบฒ) เบซเบผเบทเบˆเบฒเบเบชเบฒเบ‚เบฒเบ•เบปเป‰เบ™เบชเบฐเบšเบฑเบšเบ‚เบญเบ‡เป‚เบ„เบ‡เบเบฒเบ™ OpenSC เบ•เบปเป‰เบ™เบ•เปเบšเปเปˆเบ•เปเปˆเบกเบฒ. เบ„เปเบฒเบซเบกเบฑเป‰เบ™เบชเบฑเบ™เบเบฒ 8cf1e6f

เบชเป‰เบฒเบ‡เบ„เบนเปˆเบ„เบตเบ—เบตเปˆเบกเบตเบžเบฒเบฅเบฒเบกเบดเป€เบ•เบตเบ•เปเปˆเป„เบ›เบ™เบตเป‰:
--key-type: GOSTR3410-2012-512:ะ (ะ“ะžะกะข-2012 512 ะฑะธั‚ c ะฟะฐั€ะฐะผัะตั‚ะพะผ ะ), 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

เบ•เปเปˆเป„เบ›เบžเบงเบเป€เบฎเบปเบฒเบˆเบฐเบชเป‰เบฒเบ‡เปƒเบšเบขเบฑเป‰เบ‡เบขเบทเบ™. เบชเบญเบ‡เบงเบดเบ—เบตเบˆเบฐเบ–เบทเบเบญเบฐเบ—เบดเบšเบฒเบเบ‚เป‰เบฒเบ‡เบฅเบธเปˆเบกเบ™เบตเป‰: เบ—เปเบฒเบญเบดเบ”เปเบกเปˆเบ™เบœเปˆเบฒเบ™ 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) เบฅเบปเบ‡เบ—เบฐเบšเบฝเบ™เปƒเบšเบขเบฑเป‰เบ‡เบขเบทเบ™เปƒเบ™เบฅเบฐเบšเบปเบš

เปƒเบซเป‰เปเบ™เปˆเปƒเบˆเบงเปˆเบฒเปƒเบšเบขเบฑเป‰เบ‡เบขเบทเบ™เบ‚เบญเบ‡เบ—เปˆเบฒเบ™เบ„เป‰เบฒเบเบ„เบทเป„เบŸเบฅเปŒ base64:

เบงเบดเบ—เบตเบเบฒเบ™เปƒเบŠเป‰เป‚เบกเบ”เบนเบ™ PAM เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบžเบดเบชเบนเบ”เบขเบทเบ™เบขเบฑเบ™เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เปƒเบ™ Linux เป‚เบ”เบเปƒเบŠเป‰เบ›เบธเปˆเบก GOST-2012 เปƒเบ™ Rutoken

เบ–เป‰เบฒเปƒเบšเบฎเบฑเบšเบฎเบญเบ‡เบ‚เบญเบ‡เป€เบˆเบปเป‰เบฒเบกเบตเบฅเบฑเบเบชเบฐเบ™เบฐเบ™เบตเป‰:

เบงเบดเบ—เบตเบเบฒเบ™เปƒเบŠเป‰เป‚เบกเบ”เบนเบ™ PAM เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบžเบดเบชเบนเบ”เบขเบทเบ™เบขเบฑเบ™เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เปƒเบ™ Linux เป‚เบ”เบเปƒเบŠเป‰เบ›เบธเปˆเบก GOST-2012 เปƒเบ™ Rutoken

เบซเบผเบฑเบ‡โ€‹เบˆเบฒเบโ€‹เบ™เบฑเป‰เบ™โ€‹เบ—เปˆเบฒเบ™โ€‹เบˆเปเบฒโ€‹เป€เบ›เบฑเบ™โ€‹เบ•เป‰เบญเบ‡โ€‹เป„เบ”เป‰โ€‹เบ›เปˆเบฝเบ™โ€‹เปƒเบšโ€‹เบขเบฑเป‰เบ‡โ€‹เบขเบทเบ™โ€‹เบˆเบฒเบโ€‹เบฎเบนเบšโ€‹เปเบšเบš 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 เบ›เบฐเบเบญเบšเบกเบตเบŠเบทเปˆเป€เบ•เบฑเบกเบ‚เบญเบ‡เป‚เบกเบ”เบนเบ™, เบšเปเปˆเบงเปˆเบฒเบˆเบฐเบ–เบทเบเป€เบ›เบตเบ”เปƒเบŠเป‰เป‚เบ”เบเบ„เปˆเบฒเป€เบฅเบตเปˆเบกเบ•เบปเป‰เบ™, เบšเบนเบฅเบดเบกเบฐเบชเบดเบ”เบ‚เบญเบ‡เป‚เบกเบ”เบนเบ™, เปเบฅเบฐเบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบขเบทเบ™เบขเบฑเบ™.
เบ•เบปเบงเบเปเบฒเบ™เบปเบ”เบเบฒเบ™เบฎเบฑเบšเบฎเบญเบ‡เบกเบตเบ„เบงเบฒเบกเบ•เป‰เบญเบ‡เบเบฒเบ™เบชเปเบฒเบฅเบฑเบšเบ„เบงเบฒเบกเบชเปเบฒเป€เบฅเบฑเบ”เบ‚เบญเบ‡เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบ‡เบฒเบ™:

  • เบ•เป‰เบญเบ‡เบเบฒเบ™: เป‚เบกเบ”เบนเบ™เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบ•เป‰เบญเบ‡เบชเบปเปˆเบ‡เบœเบปเบ™เบ•เบญเบšเปเบ—เบ™เปƒเบ™เบ—เบฒเบ‡เบšเบงเบ. เบ–เป‰เบฒเบœเบปเบ™เบ‚เบญเบ‡เบเบฒเบ™เป‚เบ—เป‚เบกเบ”เบนเบ™เบกเบตเบเบฒเบ™เบ•เบญเบšเป‚เบ•เป‰เบ—เบฒเบ‡เบฅเบปเบš, เบ™เบตเป‰เบˆเบฐเป€เบฎเบฑเบ”เปƒเบซเป‰เป€เบเบตเบ”เบ„เบงเบฒเบกเบœเบดเบ”เบžเบฒเบ”เปƒเบ™เบเบฒเบ™เบเบงเบ”เบชเบญเบš. เบเบฒเบ™เบฎเป‰เบญเบ‡เบ‚เปเบˆเบฐเบ–เบทเบเบซเบผเบธเบ”เบฅเบปเบ‡, เปเบ•เปˆเป‚เบกเบ”เบนเบ™เบ—เบตเปˆเบเบฑเบ‡เป€เบซเบผเบทเบญเบˆเบฐเบ–เบทเบเป€เบญเบตเป‰เบ™.
  • requisite: เบ„เป‰เบฒเบเบ„เบทเบเบฑเบ™เบเบฑเบšเบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™, เปเบ•เปˆเบ—เบฑเบ™เบ—เบตเบ—เบฑเบ™เปƒเบ”เบเบฒเบ™เบžเบดเบชเบนเบ”เบขเบทเบ™เบขเบฑเบ™เบฅเบปเป‰เบกเป€เบซเบฅเบงเปเบฅเบฐเบšเปเปˆเบชเบปเบ™เปƒเบˆเป‚เบกเบ”เบนเบ™เบญเบทเปˆเบ™เป†.
  • เบžเบฝเบ‡เบžเป: เบ–เป‰เบฒเบšเปเปˆเบกเบตเป‚เบกเบ”เบนเบ™เบ—เบตเปˆเบ•เป‰เบญเบ‡เบเบฒเบ™เบซเบผเบทเบžเบฝเบ‡เบžเปเบเปˆเบญเบ™เบ—เบตเปˆเป‚เบกเบ”เบนเบ™เบ”เบฑเปˆเบ‡เบเปˆเบฒเบงเบชเบปเปˆเบ‡เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเบ—เบฒเบ‡เบฅเบปเบš, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เป‚เบกเบ”เบนเบ™เบˆเบฐเบชเบปเปˆเบ‡เบ„เบทเบ™เบเบฒเบ™เบ•เบญเบšเบชเบฐเบซเบ™เบญเบ‡เปƒเบ™เบ—เบฒเบ‡เบšเบงเบ. เป‚เบกเบ”เบนเบ™เบ—เบตเปˆเบเบฑเบ‡เป€เบซเบผเบทเบญเบˆเบฐเบ–เบทเบเบฅเบฐเป€เบฅเบตเบ.
  • เบ—เบฒเบ‡เป€เบฅเบทเบญเบ: เบ–เป‰เบฒเบšเปเปˆเบกเบตเป‚เบกเบ”เบนเบ™เบ—เบตเปˆเบเปเบฒเบ™เบปเบ”เป„เบงเป‰เปƒเบ™ stack เปเบฅเบฐเบšเปเปˆเบกเบตเป‚เบกเบ”เบนเบ™เบ—เบตเปˆเบžเบฝเบ‡เบžเปเปƒเบซเป‰เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเปƒเบ™เบ—เบฒเบ‡เบšเบงเบ, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบขเปˆเบฒเบ‡เบซเบ™เป‰เบญเบเบซเบ™เบถเปˆเบ‡เบ‚เบญเบ‡เป‚เบกเบ”เบนเบ™เบ—เบฒเบ‡เป€เบฅเบทเบญเบเบˆเบฐเบ•เป‰เบญเบ‡เบชเบปเปˆเบ‡เบœเบปเบ™เป„เบ”เป‰เบฎเบฑเบšเปƒเบ™เบ—เบฒเบ‡เบšเบงเบ.

เป€เบ™เบทเป‰เบญเปƒเบ™เป„เบŸเบฅเปŒเป€เบ•เบฑเบก /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

เบงเบดเบ—เบตเบเบฒเบ™เปƒเบŠเป‰เป‚เบกเบ”เบนเบ™ PAM เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบžเบดเบชเบนเบ”เบขเบทเบ™เบขเบฑเบ™เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เปƒเบ™ Linux เป‚เบ”เบเปƒเบŠเป‰เบ›เบธเปˆเบก GOST-2012 เปƒเบ™ Rutoken

เบšเบฑเบ™เบ—เบถเบเป„เบŸเบฅเปŒ, เบซเบผเบฑเบ‡เบˆเบฒเบเบ™เบฑเป‰เบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™
$ sudo pam-auth-update
เบขเบนเปˆเปƒเบ™เบ›เปˆเบญเบ‡เบขเป‰เบฝเบกเบ—เบตเปˆเบ›เบฒเบเบปเบ”, เปƒเบซเป‰เปƒเบชเปˆเบ”เบฒเบงเบ‚เป‰เบฒเบ‡เบกเบฑเบ™ Rutoken PAM GOST เปเบฅเบฐเบเบปเบ” OK

เบงเบดเบ—เบตเบเบฒเบ™เปƒเบŠเป‰เป‚เบกเบ”เบนเบ™ PAM เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบžเบดเบชเบนเบ”เบขเบทเบ™เบขเบฑเบ™เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เปƒเบ™ Linux เป‚เบ”เบเปƒเบŠเป‰เบ›เบธเปˆเบก GOST-2012 เปƒเบ™ Rutoken

8) เบเบงเบ”เป€เบšเบดเปˆเบ‡เบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ

เป€เบžเบทเปˆเบญเป€เบ‚เบปเป‰เบฒเปƒเบˆเบงเปˆเบฒเบ—เบธเบเบชเบดเปˆเบ‡เบ—เบธเบเบขเปˆเบฒเบ‡เบ–เบทเบเบ•เบฑเป‰เบ‡เบ„เปˆเบฒ, เปเบ•เปˆเปƒเบ™เป€เบงเบฅเบฒเบ”เบฝเบงเบเบฑเบ™เบšเปเปˆเบชเบนเบ™เป€เบชเบเบ„เบงเบฒเบกเบชเบฒเบกเบฒเบ”เปƒเบ™เบเบฒเบ™เป€เบ‚เบปเป‰เบฒเบชเบนเปˆเบฅเบฐเบšเบปเบš, เปƒเบชเปˆเบ„เปเบฒเบชเบฑเปˆเบ‡.
$ sudo login
เปƒเบชเปˆเบŠเบทเปˆเบœเบนเป‰เปƒเบŠเป‰เบ‚เบญเบ‡เบ—เปˆเบฒเบ™. เบ—เบธเบเบขเปˆเบฒเบ‡เบ–เบทเบเบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบขเปˆเบฒเบ‡เบ–เบทเบเบ•เป‰เบญเบ‡เบ–เป‰เบฒเบฅเบฐเบšเบปเบšเบ•เป‰เบญเบ‡เบเบฒเบ™เบฅเบฐเบซเบฑเบ” PIN เบ‚เบญเบ‡เบญเบธเบ›เบฐเบเบญเบ™.

เบงเบดเบ—เบตเบเบฒเบ™เปƒเบŠเป‰เป‚เบกเบ”เบนเบ™ PAM เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบžเบดเบชเบนเบ”เบขเบทเบ™เบขเบฑเบ™เบ—เป‰เบญเบ‡เบ–เบดเปˆเบ™เปƒเบ™ Linux เป‚เบ”เบเปƒเบŠเป‰เบ›เบธเปˆเบก GOST-2012 เปƒเบ™ Rutoken

9) เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบ„เบญเบกเบžเบดเบงเป€เบ•เบตเบ—เบตเปˆเบˆเบฐเบ–เบทเบเบ›เบดเบ”เบเบฑเป‰เบ™เป€เบกเบทเปˆเบญ token เบ–เบทเบเบชเบฐเบเบฑเบ”เบญเบญเบ

เบฅเบงเบกเบขเบนเปˆเปƒเบ™เบŠเบธเบ” libpam-pkcs11 เบฅเบงเบกเบœเบปเบ™เบ›เบฐเป‚เบซเบเบ” pkcs11_eventmgr, เป€เบŠเบดเปˆเบ‡เบญเบฐเบ™เบธเบเบฒเบ”เปƒเบซเป‰เบ—เปˆเบฒเบ™เบ›เบฐเบ•เบดเบšเบฑเบ”เบเบฒเบ™เบ”เปเบฒเป€เบ™เบตเบ™เบเบฒเบ™เบ•เปˆเบฒเบ‡เป†เปƒเบ™เป€เบงเบฅเบฒเบ—เบตเปˆเป€เบซเบ”เบเบฒเบ™ PKCS#11 เป€เบเบตเบ”เบ‚เบถเป‰เบ™.
เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ pkcs11_eventmgr เป€เบฎเบฑเบ”เปœเป‰เบฒเบ—เบตเปˆเป€เบ›เบฑเบ™เป„เบŸเบฅเปŒเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒ: /etc/pam_pkcs11/pkcs11_eventmgr.conf
เบชเปเบฒเบฅเบฑเบšเบเบฒเบ™เปเบˆเบเบขเบฒเบ Linux เบ—เบตเปˆเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™, เบ„เปเบฒเบชเบฑเปˆเบ‡เบ—เบตเปˆเป€เบฎเบฑเบ”เปƒเบซเป‰เบšเบฑเบ™เบŠเบตเบ–เบทเบเบฅเบฑเบญเบเป€เบกเบทเปˆเบญเบšเบฑเบ”เบญเบฑเบ”เบชเบฐเบฅเบดเบเบฐเบซเบผเบท token เบ–เบทเบเบฅเบถเบšเบญเบญเบเบˆเบฐเปเบ•เบเบ•เปˆเบฒเบ‡เบเบฑเบ™. เบŠเบฑเบ‡โ€‹เบ•เบตโ€‹เปเบกเบฑเบ”. 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 เป‚เบ”เบเปƒเบŠเป‰เบ›เบธเปˆเบก GOST-2012 เปƒเบ™ Rutoken

เบชเบฐเบซเบฅเบธเบš

Linux PCs เบเปเบฒเบฅเบฑเบ‡เป€เบ›เบฑเบ™เบ—เบตเปˆเบ™เบดเบเบปเบกเบเบฑเบ™เบซเบผเบฒเบเบ‚เบถเป‰เบ™เปƒเบ™เบญเบปเบ‡เบเบฒเบ™เบ‚เบญเบ‡เบฅเบฑเบ”เบ–เบฐเบšเบฒเบ™เบฅเบฑเบ”เป€เบŠเบ, เปเบฅเบฐเบเบฒเบ™เบ•เบฑเป‰เบ‡เบ„เปˆเบฒเบเบฒเบ™เบเบงเบ”เบชเบญเบšเบชเบญเบ‡เบ›เบฑเบ”เป„เบˆเบ—เบตเปˆเป€เบŠเบทเปˆเบญเบ–เบทเป„เบ”เป‰เปƒเบ™ OS เบ™เบตเป‰เบšเปเปˆเปเบกเปˆเบ™เป€เบฅเบทเปˆเบญเบ‡เบ‡เปˆเบฒเบเบชเบฐเป€เปเบตเป„เบ›. เบžเบงเบโ€‹เป€เบฎเบปเบฒโ€‹เบเบดเบ™โ€‹เบ”เบตโ€‹เบ—เบตเปˆโ€‹เบˆเบฐโ€‹เบŠเปˆเบงเบโ€‹เปƒเบซเป‰โ€‹เบ—เปˆเบฒเบ™โ€‹เปเบเป‰โ€‹เป„เบ‚ "เบšเบฑเบ™โ€‹เบซเบฒโ€‹เบฅเบฐโ€‹เบซเบฑเบ”โ€‹เบœเปˆเบฒเบ™โ€‹" เบเบฑเบšโ€‹เบ„เบนเปˆโ€‹เบกเบทโ€‹เบ™เบตเป‰โ€‹เปเบฅเบฐโ€‹เบ„เบงเบฒเบกโ€‹เป€เบŠเบทเปˆเบญโ€‹เบ–เบทโ€‹เป„เบ”เป‰โ€‹เบ›เบปเบโ€‹เบ›เบฑเบโ€‹เบฎเบฑเบโ€‹เบชเบฒโ€‹เบเบฒเบ™โ€‹เป€เบ‚เบปเป‰เบฒโ€‹เป€เบ–เบดเบ‡ PC เบ‚เบญเบ‡โ€‹เบ—เปˆเบฒเบ™โ€‹เป‚เบ”เบโ€‹เบšเปเปˆโ€‹เบกเบตโ€‹เบเบฒเบ™โ€‹เปƒเบŠเป‰โ€‹เป€เบงโ€‹เบฅเบฒโ€‹เบซเบผเบฒเบโ€‹เปƒเบ™โ€‹เบกเบฑเบ™โ€‹.

เปเบซเบผเปˆเบ‡เบ‚เปเป‰เบกเบนเบ™: www.habr.com

เป€เบžเบตเปˆเบกเบ„เบงเบฒเบกเบ„เบดเบ”เป€เบซเบฑเบ™