Kullanıcıları sisteme kaydetmek ve yetkilendirmek için Rutoken teknolojisini kullanma deneyimi (bölüm 2)

Tünaydın Bu konuya devam edelimÖnceki bölüme linkten ulaşabilirsiniz).

Bugün pratik kısma geçiyoruz. Tam teşekküllü açık kaynaklı şifreleme kitaplığı openSSL'i temel alarak CA'mızı kurarak başlayalım. Bu algoritma Windows 7 kullanılarak test edilmiştir.

OpenSSL kurulduğunda komut satırı üzerinden çeşitli şifreleme işlemlerini (anahtar ve sertifika oluşturma gibi) gerçekleştirebiliriz.

Eylemlerin algoritması aşağıdaki gibidir:

  1. Openssl-1.1.1g kurulum dağıtımını indirin.
    openSSL'in farklı sürümleri vardır. Rutoken belgelerinde openSSL 1.1.0 veya daha yeni bir sürümün gerekli olduğu belirtiliyor. Openssl-1.1.1g versiyonunu kullandım. OpenSSL'i resmi siteden indirebilirsiniz, ancak daha kolay kurulum için internette Windows kurulum dosyasını bulmanız gerekir. Bunu senin için yaptım: slproweb.com/products/Win32OpenSSL.html
    Sayfayı aşağı kaydırın ve Win64 OpenSSL v1.1.1g EXE 63MB Yükleyiciyi indirin.
  2. Openssl-1.1.1g'yi bilgisayara yükleyin.
    Kurulum, C: Program Dosyaları klasöründe otomatik olarak gösterilen standart yola göre yapılmalıdır. Program OpenSSL-Win64 klasörüne kurulacaktır.
  3. openSSL'i ihtiyacınız olan şekilde ayarlamak için bir openssl.cfg dosyası vardır. OpenSSL'i önceki paragrafta açıklandığı gibi yüklediyseniz, bu dosya C:Program FilesOpenSSL-Win64bin yolunda bulunur. openssl.cfg dosyasının depolandığı klasöre gidin ve bu dosyayı örneğin Notepad++ kullanarak açın.
  4. Muhtemelen openssl.cfg dosyasının içeriğini değiştirerek sertifika yetkilisinin bir şekilde yapılandırılacağını tahmin etmişsinizdir ve kesinlikle haklısınız. Bu, [ ca ] komutunun özelleştirilmesini gerektirir. Openssl.cfg dosyasında değişiklik yapacağımız metnin başlangıcını şu şekilde bulabilirsiniz: [ ca ].
  5. Şimdi açıklamasıyla birlikte bir ayar örneği vereceğim:
    [ 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
    

    Şimdi yukarıdaki örnekte gösterildiği gibi demoCA dizinini ve alt dizinlerini oluşturmamız gerekiyor. Ve dizinde belirtilen yol boyunca bu dizine yerleştirin (/Kullanıcılar/kullanıcı adı/bin/openSSLca/demoCA'ya sahibim).

    Dir'i doğru yazmak çok önemlidir - bu, sertifika merkezimizin bulunacağı dizine giden yoldur. Bu dizin /Users dizininde (yani bazı kullanıcıların hesaplarında) bulunmalıdır. Bu dizini örneğin C: Program Files içerisine yerleştirirseniz sistem openssl.cfg ayarlarının olduğu dosyayı görmeyecektir (en azından benim için öyleydi).

    $dir - dir'de belirtilen yol burada değiştirilir.

    Bir diğer önemli nokta ise boş bir index.txt dosyası oluşturmak, bu dosya olmadan “openSSL ca…” komutları çalışmayacaktır.

    Ayrıca bir seri dosyaya, bir kök özel anahtarına (ca.key), bir kök sertifikaya (ca.crt) sahip olmanız gerekir. Bu dosyaların elde edilme süreci aşağıda anlatılacaktır.

  6. Rutoken tarafından sağlanan şifreleme algoritmalarını birbirine bağlıyoruz.
    Bu bağlantı openssl.cfg dosyasında gerçekleşir.

    • Öncelikle gerekli Rutoken algoritmalarını indirmeniz gerekiyor. Bunlar rtengine.dll, rtpkcs11ecp.dll dosyalarıdır.
      Bunu yapmak için Rutoken SDK'yı indirin: www.rutoken.ru/developers/sdk.

      Rutoken SDK'sı, Rutoken'i denemek isteyen geliştiriciler için mevcut olan tek şeydir. Farklı programlama dillerinde Rutoken ile çalışmanın ayrı örnekleri mevcut ve bazı kütüphaneler sunuluyor. Kitaplıklarımız rtengine.dll ve rtpkcs11ecp.dll sırasıyla Rutoken sdk'sinde şu konumda bulunur:

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

      Çok önemli bir nokta. Rtengine.dll, rtpkcs11ecp.dll kütüphaneleri, Rutoken sürücüsü yüklü olmadan çalışmaz. Ayrıca Rutoken'in bilgisayara bağlı olması gerekir. (Rutoken için ihtiyacınız olan her şeyi yüklemek için makalenin önceki bölümüne bakın habr.com/en/post/506450)

    • Rtengine.dll ve rtpkcs11ecp.dll kitaplıkları kullanıcı hesabının herhangi bir yerinde tutulabilir.
    • Bu kütüphanelerin yollarını openssl.cfg dosyasına yazıyoruz. Bunu yapmak için openssl.cfg dosyasını açın, satırı bu dosyanın başına koyun:
      openssl_conf = openssl_def

      Dosyanın sonuna şunu eklemeniz gerekir:

      [ 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
      

      dinamik_yol - rtengine.dll kütüphanesine giden yolu belirtmeniz gerekir.
      MODULE_PATH - rtpkcs11ecp.dll kütüphanesinin yolunu ayarlamanız gerekir.

  7. Ortam değişkenleri ekleme.

    openssl.cfg yapılandırma dosyasının yolunu belirten bir ortam değişkeni eklediğinizden emin olun. Benim durumumda, OPENSSL_CONF değişkeni C:Program FilesOpenSSL-Win64binopenssl.cfg yolu ile oluşturuldu.

    Yol değişkeninde openssl.exe'nin bulunduğu klasörün yolunu belirtmelisiniz, benim durumumda bu: C: Program FilesOpenSSL-Win64bin.

  8. Artık 5. adıma geri dönebilir ve demoCA dizini için eksik dosyaları oluşturabilirsiniz.
    1. Onsuz hiçbir şeyin işe yaramayacağı ilk önemli dosya seridir. Bu, uzantısı olmayan bir dosyadır ve değeri 01 olmalıdır. Bu dosyayı kendiniz oluşturabilir ve içine 01 yazabilirsiniz. Ayrıca Rutoken SDK'sından sdk/openssl/rtengine/samples/tool/demoCA yolundan da indirebilirsiniz. /.
      DemoCA dizini tam olarak ihtiyacımız olan seri dosyayı içerir.
    2. Kök özel anahtarı oluşturun.
      Bunu yapmak için doğrudan komut satırında çalıştırılması gereken openSSL kütüphane komutunu kullanacağız:

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

    3. Bir kök sertifika oluşturuyoruz.
      Bunu yapmak için aşağıdaki openSSL kitaplığı komutunu kullanın:

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

      Kök sertifikayı oluşturmak için önceki adımda oluşturulan kök özel anahtarının gerekli olduğunu lütfen unutmayın. Bu nedenle komut satırının aynı dizinde başlatılması gerekir.

    DemoCA dizininin tam konfigürasyonu için artık her şeyde tüm eksik dosyalar bulunmaktadır. Oluşturulan dosyaları 5. maddede belirtilen dizinlere yerleştirin.

8 noktanın tamamını tamamladıktan sonra sertifika merkezimizin tamamen yapılandırıldığını varsayacağız.

Bir sonraki bölümde, yukarıda anlatılanları başarmak için sertifikasyon yetkilisi ile nasıl çalışacağımızı anlatacağım. makalenin önceki kısmı.

Kaynak: habr.com

Yorum ekle