Rutoken இல் GOST-2012 விசைகளைப் பயன்படுத்தி லினக்ஸில் உள்ளூர் அங்கீகாரத்திற்காக PAM தொகுதிகளை எவ்வாறு பயன்படுத்துவது

Rutoken இல் GOST-2012 விசைகளைப் பயன்படுத்தி லினக்ஸில் உள்ளூர் அங்கீகாரத்திற்காக PAM தொகுதிகளை எவ்வாறு பயன்படுத்துவது

எளிய கடவுச்சொற்கள் பாதுகாப்பானவை அல்ல, மேலும் சிக்கலானவை நினைவில் கொள்ள முடியாதவை. அதனால்தான் அவை பெரும்பாலும் விசைப்பலகையின் கீழ் அல்லது மானிட்டரில் ஒட்டும் குறிப்பில் முடிவடையும். "மறந்த" பயனர்களின் மனதில் கடவுச்சொற்கள் இருப்பதையும் பாதுகாப்பின் நம்பகத்தன்மை இழக்கப்படாமல் இருப்பதையும் உறுதிப்படுத்த, இரண்டு காரணி அங்கீகாரம் (2FA) உள்ளது.

ஒரு சாதனத்தை வைத்திருப்பதன் காரணமாகவும் அதன் பின்னை அறிந்துகொள்வதன் காரணமாகவும், பின்னையே எளிதாகவும் நினைவில் வைத்துக் கொள்ளவும் முடியும். PIN நீளம் அல்லது சீரற்ற தன்மையில் உள்ள குறைபாடுகள் உடல் உடைமை தேவை மற்றும் PIN ப்ரூட் ஃபோர்ஸ் மீதான கட்டுப்பாடுகளால் ஈடுசெய்யப்படுகின்றன.

கூடுதலாக, அரசாங்க நிறுவனங்களில் GOST இன் படி எல்லாம் செயல்பட வேண்டும் என்று அவர்கள் விரும்புகிறார்கள். லினக்ஸில் உள்நுழைவதற்கான இந்த 2FA விருப்பம் விவாதிக்கப்படும். நான் தூரத்திலிருந்து ஆரம்பிக்கிறேன்.

PAM தொகுதிகள்

செருகக்கூடிய அங்கீகார தொகுதிகள் (PAM) என்பது நிலையான API மற்றும் பயன்பாடுகளில் பல்வேறு அங்கீகார வழிமுறைகளை செயல்படுத்தும் தொகுதிகள் ஆகும்.
PAM உடன் வேலை செய்யக்கூடிய அனைத்து பயன்பாடுகளும் பயன்பாடுகளும் அவற்றைத் தேர்ந்தெடுத்து பயனர் அங்கீகாரத்திற்காக அவற்றைப் பயன்படுத்தலாம்.
நடைமுறையில், இது இதுபோன்று செயல்படுகிறது: உள்நுழைவு கட்டளை PAM ஐ அழைக்கிறது, இது உள்ளமைவு கோப்பில் குறிப்பிடப்பட்டுள்ள தொகுதிகளைப் பயன்படுத்தி தேவையான அனைத்து சோதனைகளையும் செய்கிறது மற்றும் முடிவை மீண்டும் உள்நுழைவு கட்டளைக்கு வழங்குகிறது.

librtpam

Aktiv நிறுவனம் உருவாக்கிய தொகுதியானது, உள்நாட்டு குறியாக்கவியலின் சமீபத்திய தரநிலைகளின்படி சமச்சீரற்ற விசைகளைப் பயன்படுத்தி ஸ்மார்ட் கார்டுகள் அல்லது USB டோக்கன்களைப் பயன்படுத்தும் பயனர்களின் இரு காரணி அங்கீகாரத்தைச் சேர்க்கிறது.

அதன் செயல்பாட்டின் கொள்கையைப் பார்ப்போம்:

  • டோக்கன் பயனரின் சான்றிதழையும் அதன் தனிப்பட்ட விசையையும் சேமிக்கிறது;
  • சான்றிதழ் பயனரின் முகப்பு கோப்பகத்தில் நம்பகமானதாகச் சேமிக்கப்படுகிறது.

அங்கீகார செயல்முறை பின்வருமாறு நிகழ்கிறது:

  1. Rutoken பயனரின் தனிப்பட்ட சான்றிதழைத் தேடுகிறது.
  2. டோக்கன் பின் கோரப்பட்டது.
  3. சீரற்ற தரவு நேரடியாக Rutoken சிப்பில் தனிப்பட்ட விசையில் கையொப்பமிடப்படுகிறது.
  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 ஐப் பயன்படுத்துவோம்.

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 தொகுதி உள்ளூர் கணினிகளைப் பாதுகாக்க வடிவமைக்கப்பட்டுள்ளது மற்றும் சிறிய நிறுவனங்களில் வேலை செய்ய வடிவமைக்கப்பட்டுள்ளது. சில பயனர்கள் இருப்பதால், நிர்வாகி சான்றிதழ்களை திரும்பப் பெறுவதைக் கண்காணிக்கலாம் மற்றும் கணக்குகளை கைமுறையாகத் தடுக்கலாம், அத்துடன் சான்றிதழ்களின் செல்லுபடியாகும் காலம். CRLகளைப் பயன்படுத்தி சான்றிதழ்களைச் சரிபார்ப்பது மற்றும் நம்பிக்கைச் சங்கிலியை உருவாக்குவது எப்படி என்பது PAM தொகுதிக்கு இன்னும் தெரியவில்லை.

எளிதான வழி (உலாவி வழியாக)

சோதனைச் சான்றிதழைப் பெற, பயன்படுத்தவும் இணைய சேவை "ருடோகன் பதிவு மையம்". செயல்முறை 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 குறியீடுகளை மட்டும் பயன்படுத்தவும், ஏனெனில்... ஐடியை OpenSSLக்கு ஒரு சரமாக அனுப்ப வேண்டும். எடுத்துக்காட்டாக, ASCII குறியீடு "3132" சரம் "12" உடன் ஒத்துள்ளது. வசதிக்காக, நீங்கள் பயன்படுத்தலாம் சரங்களை ASCII குறியீடுகளாக மாற்றுவதற்கான ஆன்லைன் சேவை.

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

அடுத்து ஒரு சான்றிதழை உருவாக்குவோம். இரண்டு வழிகள் கீழே விவரிக்கப்படும்: முதலாவது CA மூலம் (சோதனை CAகளைப் பயன்படுத்துவோம்), இரண்டாவது சுய கையொப்பமிடப்பட்டது. இதைச் செய்ய, கையேட்டைப் பயன்படுத்தி ஒரு சிறப்பு 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 விசைகளைப் பயன்படுத்தி லினக்ஸில் உள்ளூர் அங்கீகாரத்திற்காக 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 தொகுதியின் முழுப் பெயரையும், அது முன்னிருப்பாக இயக்கப்பட்டிருந்தாலும், தொகுதியின் முன்னுரிமை, மற்றும் அங்கீகார அளவுருக்கள் ஆகியவற்றைக் கொண்டுள்ளது.
அங்கீகார அளவுருக்கள் செயல்பாட்டின் வெற்றிக்கான தேவைகளைக் கொண்டுள்ளன:

  • தேவை: அத்தகைய தொகுதிகள் நேர்மறையான பதிலை அளிக்க வேண்டும். தொகுதி அழைப்பின் முடிவு எதிர்மறையான பதிலைக் கொண்டிருந்தால், இது அங்கீகாரப் பிழையை ஏற்படுத்தும். கோரிக்கை கைவிடப்படும், ஆனால் மீதமுள்ள தொகுதிகள் அழைக்கப்படும்.
  • requisite: தேவைப்படுவதைப் போன்றது, ஆனால் உடனடியாக அங்கீகாரம் தோல்வியடைந்து மற்ற தொகுதிகளை புறக்கணிக்கிறது.
  • போதுமானது: அத்தகைய தொகுதிக்கு முன் தேவையான அல்லது போதுமான தொகுதிகள் எதுவும் எதிர்மறையான முடிவை அளிக்கவில்லை என்றால், தொகுதி நேர்மறையான பதிலை வழங்கும். மீதமுள்ள தொகுதிகள் புறக்கணிக்கப்படும்.
  • விருப்பத்தேர்வு: ஸ்டேக்கில் தேவையான தொகுதிகள் எதுவும் இல்லை மற்றும் போதுமான தொகுதிகள் எதுவும் நேர்மறையான முடிவைத் தரவில்லை என்றால், விருப்பத் தொகுதிகளில் ஏதேனும் ஒரு நேர்மறையான முடிவை அளிக்க வேண்டும்.

முழு கோப்பு உள்ளடக்கம் /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
உங்கள் பயனர்பெயரை உள்ளிடவும். கணினிக்கு சாதன PIN குறியீடு தேவைப்பட்டால் அனைத்தும் சரியாக உள்ளமைக்கப்படும்.

Rutoken இல் GOST-2012 விசைகளைப் பயன்படுத்தி லினக்ஸில் உள்ளூர் அங்கீகாரத்திற்காக 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 விசைகளைப் பயன்படுத்தி லினக்ஸில் உள்ளூர் அங்கீகாரத்திற்காக PAM தொகுதிகளை எவ்வாறு பயன்படுத்துவது

முடிவுக்கு

லினக்ஸ் பிசிக்கள் ரஷ்ய அரசாங்க நிறுவனங்களில் பெருகிய முறையில் பிரபலமாகி வருகின்றன, மேலும் இந்த OS இல் நம்பகமான இரண்டு காரணி அங்கீகாரத்தை அமைப்பது எப்போதும் எளிதானது அல்ல. இந்த வழிகாட்டி மூலம் "கடவுச்சொல் சிக்கலை" தீர்க்க உங்களுக்கு உதவுவதில் நாங்கள் மகிழ்ச்சியடைவோம் மற்றும் அதிக நேரம் செலவழிக்காமல் உங்கள் கணினிக்கான அணுகலை நம்பகத்தன்மையுடன் பாதுகாப்போம்.

ஆதாரம்: www.habr.com

கருத்தைச் சேர்