Sistemdə istifadəçilərin qeydiyyatı və avtorizasiyası üçün Rutoken texnologiyasından istifadə təcrübəsi (2-ci hissə)

Günortanız Xeyir Bu mövzuya davam edəkƏvvəlki hissə ilə linkdə tanış olmaq olar).

Bu gün biz praktiki hissəyə keçirik. Tam hüquqlu açıq mənbəli kriptoqrafik kitabxana openSSL əsasında CA-nı qurmaqla başlayaq. Bu alqoritm Windows 7 istifadə edərək sınaqdan keçirilmişdir.

Quraşdırılmış openSSL ilə biz əmr xətti vasitəsilə müxtəlif kriptoqrafik əməliyyatları (məsələn, açarlar və sertifikatlar yaratmaq) yerinə yetirə bilərik.

Fəaliyyət alqoritmi aşağıdakı kimidir:

  1. Openssl-1.1.1g quraşdırma paylanmasını yükləyin.
    openSSL-in müxtəlif versiyaları var. Rutoken üçün sənədlərdə deyilir ki, openSSL 1.1.0 və ya daha yeni versiyası tələb olunur. Openssl-1.1.1g versiyasından istifadə etdim. OpenSSL-i rəsmi saytdan yükləyə bilərsiniz, lakin daha asan quraşdırma üçün şəbəkədə Windows üçün quraşdırma faylını tapmaq lazımdır. Bunu sizin üçün etdim: slproweb.com/products/Win32OpenSSL.html
    Səhifəni aşağı diyirləyin və Win64 OpenSSL v1.1.1g EXE 63MB Quraşdırıcısını endirin.
  2. Openssl-1.1.1g-ni kompüterə quraşdırın.
    Quraşdırma C: Proqram Faylları qovluğunda avtomatik olaraq göstərilən standart yola uyğun olaraq aparılmalıdır. Proqram OpenSSL-Win64 qovluğunda quraşdırılacaq.
  3. OpenSSL-i sizə lazım olan şəkildə qurmaq üçün openssl.cfg faylı var. Əvvəlki paraqrafda təsvir olunduğu kimi openSSL quraşdırmısınızsa, bu fayl C:\Program Files\OpenSSL-Win64bin yolunda yerləşir. openssl.cfg-nin saxlandığı qovluğa gedin və məsələn, Notepad++ istifadə edərək bu faylı açın.
  4. Yəqin ki, sertifikatlaşdırma orqanının openssl.cfg faylının məzmununu dəyişdirməklə hansısa şəkildə konfiqurasiya olunacağını təxmin etdiniz və siz tamamilə haqlısınız. Bu, [ ca ] əmrinin fərdiləşdirilməsini tələb edir. openssl.cfg faylında dəyişiklik edəcəyimiz mətnin başlanğıcı aşağıdakı kimi ola bilər: [ ca ].
  5. İndi təsviri ilə bir parametrə bir nümunə verəcəyəm:
    [ 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
    

    İndi yuxarıdakı nümunədə göstərildiyi kimi demoCA kataloqu və alt kataloqları yaratmalıyıq. Və onu bu kataloqa dir-də göstərilən yol boyunca yerləşdirin (məndə /Users/username/bin/openSSLca/demoCA var).

    Diri düzgün yazmaq çox vacibdir - bu, sertifikatlaşdırma mərkəzimizin yerləşəcəyi kataloqa gedən yoldur. Bu qovluq /Users-də (yəni bəzi istifadəçinin hesabında) yerləşməlidir. Bu kataloqu, məsələn, C: Proqram Fayllarında yerləşdirsəniz, sistem openssl.cfg parametrləri olan faylı görməyəcək (ən azı mənim üçün belə idi).

    $dir - dir-də göstərilən yol burada əvəz olunur.

    Digər vacib məqam boş index.txt faylı yaratmaqdır, bu fayl olmadan “openSSL ca…” əmrləri işləməyəcək.

    Siz həmçinin serial fayla, kök şəxsi açara (ca.key), kök sertifikata (ca.crt) sahib olmalısınız. Bu faylların əldə edilməsi prosesi aşağıda təsvir olunacaq.

  6. Rutoken tərəfindən təmin edilən şifrələmə alqoritmlərini birləşdiririk.
    Bu əlaqə openssl.cfg faylında baş verir.

    • Əvvəlcə lazımi Rutoken alqoritmlərini yükləməlisiniz. Bunlar rtengine.dll, rtpkcs11ecp.dll fayllarıdır.
      Bunu etmək üçün Rutoken SDK-nı yükləyin: www.rutoken.ru/developers/sdk.

      Rutoken SDK, Rutoken-i sınamaq istəyən tərtibatçılar üçün hər şeydir. Müxtəlif proqramlaşdırma dillərində Rutoken ilə işləmək üçün həm ayrıca nümunələr var, həm də bəzi kitabxanalar təqdim olunur. Kitabxanalarımız rtengine.dll və rtpkcs11ecp.dll müvafiq olaraq Rutoken sdk-də yerləşir:

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

      Çox vacib bir məqam. Rtengine.dll, rtpkcs11ecp.dll kitabxanaları Rutoken üçün quraşdırılmış sürücü olmadan işləmir. Həmçinin Rutoken kompüterə qoşulmalıdır. (Rutoken üçün lazım olan hər şeyi quraşdırmaq üçün məqalənin əvvəlki hissəsinə baxın habr.com/en/post/506450)

    • Rtengine.dll və rtpkcs11ecp.dll kitabxanaları istifadəçi hesabının istənilən yerində saxlanıla bilər.
    • Bu kitabxanalara gedən yolları openssl.cfg-də yazırıq. Bunu etmək üçün openssl.cfg faylını açın, bu faylın əvvəlinə sətri qoyun:
      openssl_conf = openssl_def

      Faylın sonunda əlavə etməlisiniz:

      [ 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 kitabxanasına yolunuzu göstərməlisiniz.
      MODULE_PATH - rtpkcs11ecp.dll kitabxanasına yolunuzu təyin etməlisiniz.

  7. Ətraf mühit dəyişənlərinin əlavə edilməsi.

    openssl.cfg konfiqurasiya faylının yolunu müəyyən edən mühit dəyişənini əlavə etməyinizə əmin olun. Mənim vəziyyətimdə OPENSSL_CONF dəyişəni C:Program FilesOpenSSL-Win64binopenssl.cfg yolu ilə yaradılmışdır.

    Yol dəyişəndə, openssl.exe-nin yerləşdiyi qovluğa gedən yolu göstərməlisiniz, mənim vəziyyətimdə bu: C: Proqram FilesOpenSSL-Win64bin.

  8. İndi siz 5-ci addıma qayıda və demoCA kataloqu üçün çatışmayan faylları yarada bilərsiniz.
    1. Onsuz heç bir şey işləməyəcək ilk vacib fayl serialdır. Bu uzantısız fayldır, dəyəri 01 olmalıdır. Bu faylı özünüz yarada və içərisinə 01 yaza bilərsiniz. Siz onu Rutoken SDK-dan sdk/openssl/rtengine/samples/tool/demoCA yolu ilə də endirə bilərsiniz. /.
      DemoCA qovluğunda serial faylı var ki, bu da bizə tam olaraq lazım olan şeydir.
    2. Şəxsi kök açarı yaradın.
      Bunu etmək üçün birbaşa əmr satırında işlədilməli olan openSSL kitabxana əmrindən istifadə edəcəyik:

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

    3. Kök sertifikatı yaradırıq.
      Bunu etmək üçün aşağıdakı openSSL kitabxana əmrindən istifadə edin:

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

      Nəzərə alın ki, kök sertifikatını yaratmaq üçün əvvəlki addımda yaradılan kök şəxsi açarı tələb olunur. Buna görə də, komanda xətti eyni kataloqda işə salınmalıdır.

    İndi hər şeydə demoCA kataloqunun tam konfiqurasiyası üçün bütün çatışmayan fayllar var. Yaradılmış faylları 5-ci bənddə göstərilən qovluqlara yerləşdirin.

Güman edirik ki, bütün 8 balları tamamladıqdan sonra sertifikatlaşdırma mərkəzimiz tam konfiqurasiya olunub.

Növbəti hissədə mən bənddə təsvir olunanları yerinə yetirmək üçün sertifikatlaşdırma orqanı ilə necə işləyəcəyimizi təsvir edəcəyəm. məqalənin əvvəlki hissəsi.

Mənbə: www.habr.com

Добавить комментарий