సిస్టమ్‌లో వినియోగదారులను నమోదు చేయడానికి మరియు అధికారం ఇవ్వడానికి రుటోకెన్ సాంకేతికతను ఉపయోగించడంలో అనుభవం (పార్ట్ 2)

శుభ మద్యాహ్నం ఈ అంశాన్ని కొనసాగిద్దాంమునుపటి భాగాన్ని లింక్‌లో చూడవచ్చు).

ఈ రోజు మనం ఆచరణాత్మక భాగానికి వెళ్తాము. పూర్తి స్థాయి ఓపెన్ సోర్స్ క్రిప్టోగ్రాఫిక్ లైబ్రరీ openSSL ఆధారంగా మన CAని సెటప్ చేయడం ద్వారా ప్రారంభిద్దాం. ఈ అల్గోరిథం విండోస్ 7 ఉపయోగించి పరీక్షించబడింది.

ఓపెన్‌ఎస్‌ఎస్‌ఎల్ ఇన్‌స్టాల్ చేయడంతో, మేము కమాండ్ లైన్ ద్వారా వివిధ క్రిప్టోగ్రాఫిక్ ఆపరేషన్‌లను (కీలు మరియు సర్టిఫికేట్‌లను సృష్టించడం వంటివి) చేయవచ్చు.

చర్యల అల్గోరిథం క్రింది విధంగా ఉంటుంది:

  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 నిల్వ చేయబడిన ఫోల్డర్‌కు వెళ్లి, ఈ ఫైల్‌ను ఉదాహరణకు, నోట్‌ప్యాడ్ ++ ఉపయోగించి తెరవండి.
  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లో పేర్కొన్న మార్గంలో ఉంచండి (నా వద్ద /యూజర్‌లు/యూజర్‌నేమ్/బిన్/openSSLca/demoCA ఉంది).

    dir సరిగ్గా వ్రాయడం చాలా ముఖ్యం - ఇది మా ధృవీకరణ కేంద్రం ఉన్న డైరెక్టరీకి మార్గం. ఈ డైరెక్టరీ తప్పనిసరిగా /యూజర్స్‌లో ఉండాలి (అంటే కొంతమంది వినియోగదారు ఖాతాలో). మీరు ఈ డైరెక్టరీని ఉంచినట్లయితే, ఉదాహరణకు, C: ప్రోగ్రామ్ ఫైల్స్‌లో, సిస్టమ్ openssl.cfg సెట్టింగ్‌లతో ఫైల్‌ను చూడదు (కనీసం అది నాకు అలాంటిదే).

    $dir - dirలో పేర్కొన్న మార్గం ఇక్కడ భర్తీ చేయబడింది.

    మరో ముఖ్యమైన విషయం ఏమిటంటే, ఖాళీ index.txt ఫైల్‌ని సృష్టించడం, ఈ ఫైల్ లేకుండా “openSSL ca ...” ఆదేశాలు పనిచేయవు.

    మీరు సీరియల్ ఫైల్, రూట్ ప్రైవేట్ కీ (ca.key), రూట్ సర్టిఫికేట్ (ca.crt) కూడా కలిగి ఉండాలి. ఈ ఫైళ్లను పొందే ప్రక్రియ క్రింద వివరించబడుతుంది.

  6. మేము Rutoken అందించిన ఎన్క్రిప్షన్ అల్గారిథమ్‌లను కనెక్ట్ చేస్తాము.
    ఈ కనెక్షన్ openssl.cfg ఫైల్‌లో జరుగుతుంది.

    • అన్నింటిలో మొదటిది, మీరు అవసరమైన రుటోకెన్ అల్గారిథమ్‌లను డౌన్‌లోడ్ చేసుకోవాలి. ఇవి rtengine.dll, rtpkcs11ecp.dll ఫైల్‌లు.
      దీన్ని చేయడానికి, Rutoken SDKని డౌన్‌లోడ్ చేయండి: www.rutoken.ru/developers/sdk.

      రుటోకెన్‌ని ప్రయత్నించాలనుకునే డెవలపర్‌ల కోసం రుటోకెన్ SDK మాత్రమే ఉంది. వివిధ ప్రోగ్రామింగ్ భాషలలో రుటోకెన్‌తో పనిచేయడానికి రెండు వేర్వేరు ఉదాహరణలు ఉన్నాయి మరియు కొన్ని లైబ్రరీలు ప్రదర్శించబడ్డాయి. మా లైబ్రరీలు 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 పని చేయవు. అలాగే రూటోకెన్‌ను కంప్యూటర్‌కు కనెక్ట్ చేయాలి. (రూటోకెన్ కోసం మీకు అవసరమైన ప్రతిదాన్ని ఇన్‌స్టాల్ చేయడానికి, కథనం యొక్క మునుపటి భాగాన్ని చూడండి 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

ఒక వ్యాఖ్యను జోడించండి