Rutoken මත GOST-2012 යතුරු භාවිතයෙන් Linux හි දේශීය සත්‍යාපනය සඳහා PAM මොඩියුල භාවිතා කරන්නේ කෙසේද?

Rutoken මත GOST-2012 යතුරු භාවිතයෙන් Linux හි දේශීය සත්‍යාපනය සඳහා PAM මොඩියුල භාවිතා කරන්නේ කෙසේද?

සරල මුරපද ආරක්ෂිත නොවන අතර සංකීර්ණ ඒවා මතක තබා ගත නොහැක. යතුරුපුවරුව යට හෝ මොනිටරය මත ඒවා බොහෝ විට ඇලෙන සුළු නෝට්ටුවකින් අවසන් වන්නේ එබැවිනි. මුරපද "අමතක වූ" පරිශීලකයින්ගේ මනසෙහි පවතින බව සහතික කිරීම සහ ආරක්ෂාවේ විශ්වසනීයත්වය නැති නොවන බව සහතික කිරීම සඳහා, ද්වි-සාධක සත්‍යාපනය (2FA) ඇත.

උපාංගයක් හිමිකර ගැනීම සහ එහි PIN අංකය දැනගැනීමේ සංයෝජනය හේතුවෙන්, PIN එක සරල සහ මතක තබා ගැනීමට පහසු විය හැක. PIN හි දිග හෝ අහඹු බවෙහි අවාසි භෞතික සන්තකයේ අවශ්‍යතාවය සහ PIN තිරිසන් බලයට ඇති සීමාවන් මගින් පියවනු ලැබේ.

මීට අමතරව, GOST අනුව සෑම දෙයක්ම වැඩ කිරීමට අවශ්ය බව රාජ්ය ආයතනවල සිදු වේ. ලිනක්ස් වෙත පිවිසීම සඳහා මෙම 2FA විකල්පය සාකච්ඡා කරනු ඇත. මම ඈතින් පටන් ගන්නම්.

PAM මොඩියුල

Pluggable Authentication Modules (PAM) යනු සම්මත API සහිත මොඩියුල සහ යෙදුම්වල විවිධ සත්‍යාපන යාන්ත්‍රණ ක්‍රියාත්මක කිරීමයි.
PAM සමඟ වැඩ කළ හැකි සියලුම උපයෝගිතා සහ යෙදුම් ඒවා ලබා ගන්නා අතර පරිශීලක සත්‍යාපනය සඳහා ඒවා භාවිතා කළ හැකිය.
ප්‍රායෝගිකව, එය ක්‍රියා කරන්නේ මෙවන් දෙයකි: පිවිසුම් විධානය PAM අමතයි, එය වින්‍යාස ගොනුවේ දක්වා ඇති මොඩියුල භාවිතා කර අවශ්‍ය සියලුම චෙක්පත් සිදු කරන අතර ප්‍රති result ලය නැවත පිවිසුම් විධානයට ලබා දෙයි.

librtpam

Aktiv සමාගම විසින් සංවර්ධනය කරන ලද මොඩියුලය ගෘහස්ථ ගුප්තකේතනයේ නවතම ප්‍රමිතීන්ට අනුව අසමමිතික යතුරු භාවිතයෙන් ස්මාර්ට් කාඩ්පත් හෝ USB ටෝකන භාවිතා කරන පරිශීලකයින්ගේ ද්වි-සාධක සත්‍යාපනය එක් කරයි.

එහි ක්රියාකාරිත්වයේ මූලධර්මය දෙස බලමු:

  • ටෝකනය පරිශීලකයාගේ සහතිකය සහ එහි පුද්ගලික යතුර ගබඩා කරයි;
  • සහතිකය පරිශීලකයාගේ මුල් නාමාවලියෙහි විශ්වාසදායක ලෙස සුරකිනු ලැබේ.

සත්‍යාපනය කිරීමේ ක්‍රියාවලිය පහත පරිදි සිදු වේ:

  1. Rutoken පරිශීලකයාගේ පුද්ගලික සහතිකය සොයයි.
  2. සංකේත රහස් අංකය ඉල්ලා ඇත.
  3. අහඹු දත්ත සෘජුවම Rutoken චිපයේ පුද්ගලික යතුරක් මත අත්සන් කර ඇත.
  4. ප්‍රතිඵලයක් ලෙස අත්සන පරිශීලකගේ සහතිකයේ ඇති පොදු යතුර භාවිතයෙන් සත්‍යාපනය කෙරේ.
  5. මොඩියුලය ඇමතුම් යෙදුම වෙත අත්සන් සත්‍යාපන ප්‍රතිඵලය ලබා දෙයි.

ඔබට GOST R 34.10-2012 යතුරු (දිග 256 හෝ 512 බිටු) හෝ යල් පැන ගිය GOST R 34.10-2001 භාවිතයෙන් සත්‍යාපනය කළ හැක.

යතුරු වල ආරක්ෂාව ගැන ඔබට කරදර විය යුතු නැත - ඒවා කෙලින්ම Rutoken හි ජනනය වන අතර ගුප්ත ලේඛන මෙහෙයුම් වලදී කිසි විටෙකත් එහි මතකය අත් නොහරින්න.

Rutoken මත GOST-2012 යතුරු භාවිතයෙන් Linux හි දේශීය සත්‍යාපනය සඳහා PAM මොඩියුල භාවිතා කරන්නේ කෙසේද?

Rutoken EDS 2.0 NDV 4 අනුව FSB සහ FSTEC විසින් සහතික කර ඇත, එබැවින් එය රහස්‍ය තොරතුරු සකසන තොරතුරු පද්ධතිවල භාවිතා කළ හැක.

ප්රායෝගික භාවිතය

ඕනෑම නවීන Linux එකක්ම පාහේ කරනු ඇත, උදාහරණයක් ලෙස අපි xUbuntu 18.10 භාවිතා කරන්නෙමු.

1) අවශ්‍ය පැකේජ ස්ථාපනය කරන්න

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} වෙනුවට ඔබ පෙර විධානයේ ප්‍රතිදානයේ දුටු සහතික හැඳුනුම්පත ආදේශ කළ යුතුය:
    $ 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 ට වඩා අඩු නම්, යාවත්කාලීන කිරීම හෝ ගොඩනැගීම 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 භාවිතා කරමු), දෙවැන්න ස්වයං-අත්සන් කර ඇත. මෙය සිදු කිරීම සඳහා, අත්පොත භාවිතයෙන් විශේෂ rtengine මොඩියුලයක් හරහා Rutoken සමඟ වැඩ කිරීමට ඔබ මුලින්ම OpenSSL අනුවාදය 1.1 හෝ පසුව ස්ථාපනය කර වින්‍යාසගත කළ යුතුය. 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 ගොනුවක් මෙන් දිස්වන බවට වග බලා ගන්න:

Rutoken මත GOST-2012 යතුරු භාවිතයෙන් Linux හි දේශීය සත්‍යාපනය සඳහා PAM මොඩියුල භාවිතා කරන්නේ කෙසේද?

ඔබේ සහතිකය මේ වගේ නම්:

Rutoken මත GOST-2012 යතුරු භාවිතයෙන් Linux හි දේශීය සත්‍යාපනය සඳහා 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 යතුරු භාවිතයෙන් Linux හි දේශීය සත්‍යාපනය සඳහා PAM මොඩියුල භාවිතා කරන්නේ කෙසේද?

ගොනුව සුරකින්න, පසුව ක්රියාත්මක කරන්න
$ sudo pam-auth-update
දිස්වන කවුළුව තුළ, එය අසල තරු ලකුණක් තබන්න Rutoken PAM GOST ක්ලික් කරන්න OK

Rutoken මත GOST-2012 යතුරු භාවිතයෙන් Linux හි දේශීය සත්‍යාපනය සඳහා PAM මොඩියුල භාවිතා කරන්නේ කෙසේද?

8) සැකසුම් පරීක්ෂා කරන්න

සෑම දෙයක්ම වින්‍යාස කර ඇති බව තේරුම් ගැනීමට, නමුත් ඒ සමඟම පද්ධතියට ඇතුළු වීමේ හැකියාව නැති කර නොගන්න, විධානය ඇතුළත් කරන්න
$ sudo login
ඔබගේ පරිශීලක නාමය ඇතුලත් කරන්න. පද්ධතියට උපාංග PIN කේතයක් අවශ්‍ය නම් සියල්ල නිවැරදිව වින්‍යාස කර ඇත.

Rutoken මත GOST-2012 යතුරු භාවිතයෙන් Linux හි දේශීය සත්‍යාපනය සඳහා PAM මොඩියුල භාවිතා කරන්නේ කෙසේද?

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 රේඛාව එකතු කර නැවත ආරම්භ කරන්න.

මෙහෙයුම් පද්ධතිය සැකසීම සඳහා විස්තර කර ඇති පියවර ගෘහස්ථ ඒවා ඇතුළුව ඕනෑම නවීන ලිනක්ස් බෙදාහැරීමක උපදෙස් ලෙස භාවිතා කළ හැක.

Rutoken මත GOST-2012 යතුරු භාවිතයෙන් Linux හි දේශීය සත්‍යාපනය සඳහා PAM මොඩියුල භාවිතා කරන්නේ කෙසේද?

නිගමනය

Linux PCs රුසියානු රාජ්‍ය ආයතනවල වැඩි වැඩියෙන් ජනප්‍රිය වෙමින් පවතින අතර, මෙම OS හි විශ්වාසදායක ද්වි-සාධක සත්‍යාපනය සැකසීම සැමවිටම පහසු නොවේ. මෙම මාර්ගෝපදේශය සමඟ "මුරපද ගැටළුව" විසඳීමට සහ ඔබේ පරිගණකයට වැඩි කාලයක් වැය නොකර විශ්වාසනීය ලෙස ආරක්ෂා කිරීමට ඔබට උපකාර කිරීමට අපි සතුටු වන්නෙමු.

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න