Pengalaman menggunakan teknologi Rutoken untuk mendaftarkan dan mengotorisasi pengguna dalam sistem (bagian 2)

Selamat siang Mari kita lanjutkan topik iniBagian sebelumnya dapat ditemukan di tautan).

Hari ini kita beralih ke bagian praktis. Mari kita mulai dengan menyiapkan CA kita berdasarkan perpustakaan kriptografi open source openSSL yang lengkap. Algoritma ini telah diuji menggunakan windows 7.

Dengan menginstal openSSL, kita dapat melakukan berbagai operasi kriptografi (seperti membuat kunci dan sertifikat) melalui baris perintah.

Algoritma tindakannya adalah sebagai berikut:

  1. Unduh distribusi instalasi openssl-1.1.1g.
    openSSL memiliki versi yang berbeda. Dokumentasi untuk Rutoken menyatakan bahwa openSSL versi 1.1.0 atau lebih baru diperlukan. Saya menggunakan versi openssl-1.1.1g. Anda dapat mengunduh openSSL dari situs resminya, tetapi untuk instalasi yang lebih mudah, Anda perlu mencari file instalasi untuk windows di internet. Saya melakukan ini untuk Anda: slproweb.com/products/Win32OpenSSL.html
    Gulir ke bawah halaman dan unduh Penginstal Win64 OpenSSL v1.1.1g EXE 63MB.
  2. Instal openssl-1.1.1g di komputer.
    Instalasi harus dilakukan sesuai jalur standar, yang secara otomatis ditunjukkan di folder C: Program Files. Program ini akan diinstal di folder OpenSSL-Win64.
  3. Untuk mengatur openSSL sesuai kebutuhan Anda, ada file openssl.cfg. File ini terletak di jalur C:\Program Files\OpenSSL-Win64bin jika Anda menginstal openSSL seperti yang dijelaskan pada paragraf sebelumnya. Buka folder tempat openssl.cfg disimpan dan buka file ini menggunakan, misalnya, Notepad++.
  4. Anda mungkin menebak bahwa otoritas sertifikasi akan dikonfigurasi dengan mengubah konten file openssl.cfg, dan Anda memang benar. Ini memerlukan penyesuaian perintah [ ca ]. Pada file openssl.cfg, awal teks yang akan kita ubah dapat ditemukan sebagai: [ ca ].
  5. Sekarang saya akan memberikan contoh setting beserta uraiannya:
    [ 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
    

    Sekarang kita perlu membuat direktori dan subdirektori demoCA seperti yang ditunjukkan pada contoh di atas. Dan letakkan di direktori ini di sepanjang jalur yang ditentukan dalam dir (Saya punya /Pengguna/nama pengguna/bin/openSSLca/demoCA).

    Sangat penting untuk mengeja dir dengan benar - ini adalah jalur ke direktori tempat pusat sertifikasi kami akan berlokasi. Direktori ini harus berlokasi di /Users (yaitu, di akun beberapa pengguna). Jika Anda menempatkan direktori ini, misalnya, di C: Program Files, sistem tidak akan melihat file dengan pengaturan openssl.cfg (setidaknya bagi saya seperti itu).

    $dir - jalur yang ditentukan dalam dir diganti di sini.

    Poin penting lainnya adalah membuat file index.txt kosong, tanpa file ini perintah β€œopenSSL ca…” tidak akan berfungsi.

    Anda juga harus memiliki file serial, kunci pribadi root (ca.key), sertifikat root (ca.crt). Proses mendapatkan file-file tersebut akan dijelaskan di bawah ini.

  6. Kami menghubungkan algoritma enkripsi yang disediakan oleh Rutoken.
    Koneksi ini terjadi di file openssl.cfg.

    • Pertama-tama, Anda perlu mengunduh algoritma Rutoken yang diperlukan. Ini adalah file rtengine.dll, rtpkcs11ecp.dll.
      Untuk melakukan ini, unduh Rutoken SDK: www.rutoken.ru/developers/sdk.

      Hanya SDK Rutoken yang tersedia bagi pengembang yang ingin mencoba Rutoken. Ada contoh terpisah untuk bekerja dengan Rutoken dalam bahasa pemrograman yang berbeda, dan beberapa perpustakaan disajikan. Perpustakaan kami rtengine.dll dan rtpkcs11ecp.dll masing-masing terletak di SDK Rutoken, di lokasi:

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

      Poin yang sangat penting. Perpustakaan rtengine.dll, rtpkcs11ecp.dll tidak berfungsi tanpa driver yang diinstal untuk Rutoken. Rutoken juga harus terhubung ke komputer. (untuk menginstal semua yang Anda perlukan untuk Rutoken, lihat bagian artikel sebelumnya habr.com/en/post/506450)

    • Pustaka rtengine.dll dan rtpkcs11ecp.dll dapat disimpan di mana saja di akun pengguna.
    • Kami menulis jalur ke perpustakaan ini di openssl.cfg. Untuk melakukan ini, buka file openssl.cfg, letakkan baris di awal file ini:
      openssl_conf = openssl_def

      Di akhir file Anda perlu menambahkan:

      [ 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 - Anda harus menentukan jalur Anda ke perpustakaan rtengine.dll.
      MODULE_PATH - Anda perlu menulis jalur Anda ke perpustakaan rtpkcs11ecp.dll.

  7. Menambahkan variabel lingkungan.

    Pastikan untuk menambahkan variabel lingkungan yang menentukan jalur ke file konfigurasi openssl.cfg. Dalam kasus saya, variabel OPENSSL_CONF dibuat dengan jalur C:Program FilesOpenSSL-Win64binopenssl.cfg.

    Dalam variabel path, Anda harus menentukan path ke folder tempat openssl.exe berada, dalam kasus saya ini adalah: C: Program FilesOpenSSL-Win64bin.

  8. Sekarang Anda dapat kembali ke langkah 5 dan membuat file yang hilang untuk direktori demoCA.
    1. File penting pertama yang tanpanya tidak ada yang berfungsi adalah serial. Ini adalah file tanpa ekstensi, yang nilainya harus 01. Anda dapat membuat file ini sendiri dan menulis 01 di dalamnya. Anda juga dapat mendownloadnya dari Rutoken SDK di sepanjang jalur sdk/openssl/rtengine/samples/tool/demoCA /.
      Direktori demoCA berisi file serial, yang persis seperti yang kita perlukan.
    2. Buat kunci pribadi root.
      Untuk melakukan ini, kita akan menggunakan perintah perpustakaan openSSL, yang harus dijalankan langsung pada baris perintah:

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

    3. Kami membuat sertifikat root.
      Untuk melakukannya, gunakan perintah perpustakaan openSSL berikut:

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

      Harap perhatikan bahwa kunci pribadi root, yang dibuat pada langkah sebelumnya, diperlukan untuk membuat sertifikat root. Oleh karena itu, baris perintah harus diluncurkan di direktori yang sama.

    Semuanya sekarang memiliki semua file yang hilang untuk konfigurasi lengkap direktori demoCA. Tempatkan file yang dibuat di direktori yang ditunjukkan pada langkah 5.

Kami berasumsi bahwa setelah menyelesaikan semua 8 poin, pusat sertifikasi kami telah dikonfigurasi sepenuhnya.

Di bagian selanjutnya, saya akan menjelaskan bagaimana kami akan bekerja dengan otoritas sertifikasi untuk mencapai apa yang dijelaskan di atas bagian artikel sebelumnya.

Sumber: www.habr.com

Tambah komentar