கணினியில் பயனர்களைப் பதிவுசெய்து அங்கீகரிப்பதற்காக Rutoken தொழில்நுட்பத்தைப் பயன்படுத்திய அனுபவம் (பகுதி 2)

மதிய வணக்கம் இந்த தலைப்பை தொடர்வோம்முந்தைய பகுதியை இணைப்பில் காணலாம்).

இன்று நாம் நடைமுறை பகுதிக்கு செல்கிறோம். முழு அளவிலான ஓப்பன் சோர்ஸ் கிரிப்டோகிராஃபிக் லைப்ரரி openSSL ஐ அடிப்படையாகக் கொண்டு எங்கள் CA ஐ அமைப்பதன் மூலம் தொடங்குவோம். இந்த அல்காரிதம் விண்டோஸ் 7 ஐப் பயன்படுத்தி சோதிக்கப்பட்டது.

OpenSSL நிறுவப்பட்டவுடன், கட்டளை வரி வழியாக பல்வேறு கிரிப்டோகிராஃபிக் செயல்பாடுகளை (விசைகள் மற்றும் சான்றிதழ்களை உருவாக்குவது போன்றவை) செய்யலாம்.

செயல்களின் வழிமுறை பின்வருமாறு:

  1. நிறுவல் விநியோகம் openssl-1.1.1g ஐப் பதிவிறக்கவும்.
    openSSL வெவ்வேறு பதிப்புகளைக் கொண்டுள்ளது. Rutoken க்கான ஆவணங்கள் openSSL பதிப்பு 1.1.0 அல்லது புதியது தேவை என்று கூறியது. நான் openssl-1.1.1g பதிப்பைப் பயன்படுத்தினேன். நீங்கள் அதிகாரப்பூர்வ தளத்திலிருந்து openSSL ஐ பதிவிறக்கம் செய்யலாம், ஆனால் எளிதாக நிறுவுவதற்கு, நீங்கள் வலையில் சாளரங்களுக்கான நிறுவல் கோப்பைக் கண்டுபிடிக்க வேண்டும். நான் உங்களுக்காக இதைச் செய்தேன்: slproweb.com/products/Win32OpenSSL.html
    பக்கத்தை கீழே உருட்டி Win64 OpenSSL v1.1.1g EXE 63MB நிறுவியைப் பதிவிறக்கவும்.
  2. கணினியில் openssl-1.1.1g ஐ நிறுவவும்.
    நிலையான பாதையின் படி நிறுவல் மேற்கொள்ளப்பட வேண்டும், இது தானாகவே C: நிரல் கோப்புகள் கோப்புறையில் குறிக்கப்படுகிறது. நிரல் OpenSSL-Win64 கோப்புறையில் நிறுவப்படும்.
  3. openSSL உங்களுக்குத் தேவையான வழியில் அமைக்க, openssl.cfg கோப்பு உள்ளது. முந்தைய பத்தியில் விவரிக்கப்பட்டுள்ளபடி OpenSSL ஐ நிறுவியிருந்தால், இந்த கோப்பு C:\Program Files\OpenSSL-Win64bin பாதையில் அமைந்துள்ளது. openssl.cfg சேமிக்கப்பட்டுள்ள கோப்புறைக்குச் சென்று இந்தக் கோப்பைத் திறக்கவும், எடுத்துக்காட்டாக, Notepad++.
  4. openssl.cfg கோப்பின் உள்ளடக்கங்களை மாற்றுவதன் மூலம் சான்றிதழ் அதிகாரம் எப்படியாவது கட்டமைக்கப்படும் என்று நீங்கள் யூகித்திருக்கலாம், நீங்கள் சொல்வது முற்றிலும் சரி. இதற்கு [ca ] கட்டளையின் தனிப்பயனாக்கம் தேவைப்படுகிறது. openssl.cfg கோப்பில், நாம் மாற்றங்களைச் செய்யும் உரையின் தொடக்கத்தை இவ்வாறு காணலாம்: [ca ].
  5. இப்போது அதன் விளக்கத்துடன் ஒரு அமைப்பின் உதாரணத்தை தருகிறேன்:
    [ ca ]
    default_ca	= CA_default		
    
     [ CA_default ]
    dir		= /Users/username/bin/openSSLca/demoCA		 
    certs		= $dir/certs		
    crl_dir		= $dir/crl		
    database	= $dir/index.txt	
    new_certs_dir	= $dir/newcerts	
    certificate	= $dir/ca.crt 	
    serial		= $dir/private/serial 		
    crlnumber	= $dir/crlnumber	
    					
    crl		= $dir/crl.pem 		
    private_key	= $dir/private/ca.key
    x509_extensions	= usr_cert
    

    இப்போது மேலே உள்ள எடுத்துக்காட்டில் காட்டப்பட்டுள்ளபடி demoCA அடைவு மற்றும் துணை அடைவுகளை உருவாக்க வேண்டும். Dir இல் குறிப்பிடப்பட்டுள்ள பாதையில் அதை இந்த கோப்பகத்தில் வைக்கவும் (எனக்கு /Users/username/bin/openSSLca/demoCA உள்ளது).

    dir ஐ சரியாக உச்சரிப்பது மிகவும் முக்கியம் - இது எங்கள் சான்றிதழ் மையம் அமைந்துள்ள கோப்பகத்திற்கான பாதை. இந்தக் கோப்பகம் /பயனர்கள் (அதாவது சில பயனரின் கணக்கில்) இருக்க வேண்டும். இந்த கோப்பகத்தை நீங்கள் வைத்தால், எடுத்துக்காட்டாக, C: Program Files இல், openssl.cfg அமைப்புகளைக் கொண்ட கோப்பை கணினி பார்க்காது (குறைந்தபட்சம் அது எனக்கு அப்படித்தான் இருந்தது).

    $dir - dir இல் குறிப்பிடப்பட்டுள்ள பாதை இங்கே மாற்றியமைக்கப்பட்டுள்ளது.

    மற்றொரு முக்கியமான விஷயம் என்னவென்றால், ஒரு வெற்று index.txt கோப்பை உருவாக்குவது, இந்த கோப்பு இல்லாமல் "openSSL ca ..." கட்டளைகள் இயங்காது.

    நீங்கள் ஒரு தொடர் கோப்பு, ஒரு ரூட் பிரைவேட் கீ (ca.key), ஒரு ரூட் சான்றிதழ் (ca.crt) ஆகியவற்றையும் வைத்திருக்க வேண்டும். இந்த கோப்புகளைப் பெறுவதற்கான செயல்முறை கீழே விவரிக்கப்படும்.

  6. Rutoken வழங்கிய குறியாக்க அல்காரிதம்களை இணைக்கிறோம்.
    இந்த இணைப்பு openssl.cfg கோப்பில் நடைபெறுகிறது.

    • முதலில், நீங்கள் தேவையான Rutoken அல்காரிதங்களைப் பதிவிறக்க வேண்டும். இவை rtengine.dll, rtpkcs11ecp.dll கோப்புகள்.
      இதைச் செய்ய, Rutoken SDK ஐப் பதிவிறக்கவும்: www.rutoken.ru/developers/sdk.

      Rutoken ஐ முயற்சிக்க விரும்பும் டெவலப்பர்களுக்கு Rutoken SDK உள்ளது. வெவ்வேறு நிரலாக்க மொழிகளில் Rutoken உடன் வேலை செய்வதற்கு தனித்தனி எடுத்துக்காட்டுகள் உள்ளன, மேலும் சில நூலகங்கள் வழங்கப்படுகின்றன. எங்கள் நூலகங்கள் rtengine.dll மற்றும் rtpkcs11ecp.dll ஆகியவை முறையே Rutoken sdk இல் அமைந்துள்ள இடத்தில்:

      sdk/openssl/rtengine/bin/windows-x86_64/lib/rtengine.dll
      sdk/pkcs11/lib/windows-x86_64/rtpkcs11ecp.dll

      ஒரு மிக முக்கியமான புள்ளி. Rutoken இன் நிறுவப்பட்ட இயக்கி இல்லாமல் rtengine.dll, rtpkcs11ecp.dll நூலகங்கள் இயங்காது. மேலும் Rutoken கணினியுடன் இணைக்கப்பட வேண்டும். (ருடோக்கனுக்கு தேவையான அனைத்தையும் நிறுவ, கட்டுரையின் முந்தைய பகுதியைப் பார்க்கவும் habr.com/en/post/506450)

    • rtengine.dll மற்றும் rtpkcs11ecp.dll நூலகங்களை பயனர் கணக்கில் எங்கு வேண்டுமானாலும் வைத்திருக்கலாம்.
    • இந்த நூலகங்களுக்கான பாதைகளை openssl.cfg இல் எழுதுகிறோம். இதைச் செய்ய, openssl.cfg கோப்பைத் திறந்து, கோப்பின் தொடக்கத்தில் வரியை வைக்கவும்:
      openssl_conf = openssl_def

      கோப்பின் முடிவில் நீங்கள் சேர்க்க வேண்டும்:

      [ openssl_def ]
      engines = engine_section
      [ engine_section ]
      rtengine = gost_section
      [ gost_section ]
      dynamic_path = /Users/username/bin/sdk-rutoken/openssl/rtengine/bin/windows-x86_64/lib/rtengine.dll
      MODULE_PATH = /Users/username/bin/sdk-rutoken/pkcs11/lib/windows-x86_64/rtpkcs11ecp.dll
      RAND_TOKEN = pkcs11:manufacturer=Aktiv%20Co.;model=Rutoken%20ECP
      default_algorithms = CIPHERS, DIGEST, PKEY, RAND
      

      dynamic_path - உங்கள் பாதையை rtengine.dll நூலகத்திற்குக் குறிப்பிட வேண்டும்.
      MODULE_PATH - உங்கள் பாதையை rtpkcs11ecp.dll நூலகத்திற்கு அமைக்க வேண்டும்.

  7. சூழல் மாறிகளைச் சேர்த்தல்.

    openssl.cfg உள்ளமைவு கோப்பிற்கான பாதையைக் குறிப்பிடும் சூழல் மாறியைச் சேர்க்க மறக்காதீர்கள். என் விஷயத்தில், OPENSSL_CONF மாறியானது C:Program FilesOpenSSL-Win64binopenssl.cfg என்ற பாதையில் உருவாக்கப்பட்டது.

    பாதை மாறியில், openssl.exe அமைந்துள்ள கோப்புறைக்கான பாதையை நீங்கள் குறிப்பிட வேண்டும், என் விஷயத்தில் இது: C: Program FilesOpenSSL-Win64bin.

  8. இப்போது நீங்கள் படி 5 க்குச் சென்று demoCA கோப்பகத்திற்கான விடுபட்ட கோப்புகளை உருவாக்கலாம்.
    1. எதுவும் இயங்காத முதல் முக்கியமான கோப்பு சீரியல் ஆகும். இது நீட்டிப்பு இல்லாத கோப்பாகும், இதன் மதிப்பு 01 ஆக இருக்க வேண்டும். இந்தக் கோப்பை நீங்களே உருவாக்கி உள்ளே 01ஐ எழுதலாம். Rutoken SDK இலிருந்து sdk/openssl/rtengine/samples/tool/demoCA பாதையில் பதிவிறக்கம் செய்யலாம். /.
      demoCA கோப்பகத்தில் சீரியல் கோப்பு உள்ளது, இது நமக்குத் தேவையானது.
    2. ரூட் தனிப்பட்ட விசையை உருவாக்கவும்.
      இதைச் செய்ய, நாம் openSSL நூலகக் கட்டளையைப் பயன்படுத்துவோம், இது கட்டளை வரியில் நேரடியாக இயக்கப்பட வேண்டும்:

      openssl genpkey -algorithm gost2012_256 -pkeyopt paramset:A -out ca.key

    3. நாங்கள் ரூட் சான்றிதழை உருவாக்குகிறோம்.
      இதைச் செய்ய, பின்வரும் openSSL நூலக கட்டளையைப் பயன்படுத்தவும்:

      openssl req -utf8 -x509 -key ca.key -out ca.crt

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

    டெமோசிஏ கோப்பகத்தின் முழுமையான உள்ளமைவுக்கான அனைத்து காணாமல் போன கோப்புகளும் இப்போது உள்ளன. உருவாக்கப்பட்ட கோப்புகளை புள்ளி 5 இல் சுட்டிக்காட்டப்பட்ட கோப்பகங்களில் வைக்கவும்.

அனைத்து 8 புள்ளிகளையும் முடித்த பிறகு, எங்கள் சான்றிதழ் மையம் முழுமையாக உள்ளமைக்கப்பட்டுள்ளது என்று கருதுவோம்.

அடுத்த பகுதியில், விவரிக்கப்பட்டுள்ளதை நிறைவேற்ற, சான்றிதழ் அதிகாரியுடன் எவ்வாறு செயல்படுவோம் என்பதை விவரிக்கிறேன். கட்டுரையின் முந்தைய பகுதி.

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

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