Εμπειρία στη χρήση της τεχνολογίας Rutoken για εγγραφή και εξουσιοδότηση χρηστών στο σύστημα (μέρος 2)

Καλό απόγευμα Ας συνεχίσουμε με αυτό το θέμαΤο προηγούμενο μέρος μπορείτε να το βρείτε στον σύνδεσμο).

Σήμερα περνάμε στο πρακτικό μέρος. Ας ξεκινήσουμε με τη ρύθμιση της ΑΠ μας με βάση την πλήρη ανοιχτού κώδικα κρυπτογραφική βιβλιοθήκη openSSL. Αυτός ο αλγόριθμος έχει δοκιμαστεί με χρήση των Windows 7.

Με εγκατεστημένο το openSSL, μπορούμε να εκτελέσουμε διάφορες κρυπτογραφικές λειτουργίες (όπως δημιουργία κλειδιών και πιστοποιητικών) μέσω της γραμμής εντολών.

Ο αλγόριθμος ενεργειών έχει ως εξής:

  1. Κατεβάστε τη διανομή εγκατάστασης openssl-1.1.1g.
    Το openSSL έχει διαφορετικές εκδόσεις. Η τεκμηρίωση για το Rutoken είπε ότι απαιτείται openSSL έκδοση 1.1.0 ή νεότερη. Χρησιμοποίησα την έκδοση openssl-1.1.1g. Μπορείτε να κατεβάσετε το openSSL από τον επίσημο ιστότοπο, αλλά για ευκολότερη εγκατάσταση, πρέπει να βρείτε το αρχείο εγκατάστασης για τα windows στο δίκτυο. Έκανα αυτό για σένα: slproweb.com/products/Win32OpenSSL.html
    Κάντε κύλιση προς τα κάτω στη σελίδα και πραγματοποιήστε λήψη του προγράμματος εγκατάστασης Win64 OpenSSL v1.1.1g EXE 63MB.
  2. Εγκαταστήστε το openssl-1.1.1g στον υπολογιστή.
    Η εγκατάσταση πρέπει να πραγματοποιηθεί σύμφωνα με την τυπική διαδρομή, η οποία υποδεικνύεται αυτόματα στο φάκελο C: Program Files. Το πρόγραμμα θα εγκατασταθεί στο φάκελο OpenSSL-Win64.
  3. Για να ρυθμίσετε το openSSL όπως το χρειάζεστε, υπάρχει το αρχείο openssl.cfg. Αυτό το αρχείο βρίσκεται στη διαδρομή C:\Program Files\OpenSSL-Win64bin εάν εγκαταστήσατε το openSSL όπως περιγράφεται στην προηγούμενη παράγραφο. Μεταβείτε στο φάκελο όπου είναι αποθηκευμένο το 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 - αυτή είναι η διαδρομή προς τον κατάλογο όπου θα βρίσκεται το κέντρο πιστοποίησης μας. Αυτός ο κατάλογος πρέπει να βρίσκεται στο /Users (δηλαδή στο λογαριασμό κάποιου χρήστη). Εάν τοποθετήσετε αυτόν τον κατάλογο, για παράδειγμα, στο 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 SDK είναι ό,τι υπάρχει για προγραμματιστές που θέλουν να δοκιμάσουν το Rutoken. Υπάρχουν και τα δύο ξεχωριστά παραδείγματα για την εργασία με το 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

      Ένα πολύ σημαντικό σημείο. Οι βιβλιοθήκες rtengine.dll, rtpkcs11ecp.dll δεν λειτουργούν χωρίς το εγκατεστημένο πρόγραμμα οδήγησης για το Rutoken. Επίσης το Rutoken πρέπει να είναι συνδεδεμένο στον υπολογιστή. (για να εγκαταστήσετε όλα όσα χρειάζεστε για το 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 library, η οποία πρέπει να εκτελεστεί απευθείας στη γραμμή εντολών:

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

    3. Δημιουργούμε ένα πιστοποιητικό ρίζας.
      Για να το κάνετε αυτό, χρησιμοποιήστε την ακόλουθη εντολή βιβλιοθήκης openSSL:

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

      Λάβετε υπόψη ότι το ριζικό ιδιωτικό κλειδί, το οποίο δημιουργήθηκε στο προηγούμενο βήμα, απαιτείται για τη δημιουργία του πιστοποιητικού ρίζας. Επομένως, η γραμμή εντολών πρέπει να εκκινηθεί στον ίδιο κατάλογο.

    Όλα έχουν τώρα όλα τα αρχεία που λείπουν για την πλήρη διαμόρφωση του καταλόγου demoCA. Τοποθετήστε τα αρχεία που δημιουργήσατε στους καταλόγους που υποδεικνύονται στο σημείο 5.

Θα υποθέσουμε ότι αφού συμπληρώσουμε και τα 8 σημεία, το κέντρο πιστοποίησης μας έχει διαμορφωθεί πλήρως.

Στο επόμενο μέρος, θα περιγράψω πώς θα συνεργαστούμε με την αρχή πιστοποίησης προκειμένου να επιτύχουμε αυτό που περιγράφεται στο το προηγούμενο μέρος του άρθρου.

Πηγή: www.habr.com

Προσθέστε ένα σχόλιο