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

Günortanız Xeyir Bu mövzuda öz təcrübəmi bölüşmək istəyirəm.

Rutoken autentifikasiya, informasiya təhlükəsizliyi və elektron imza sahəsində aparat və proqram təminatı həlləridir. Əslində, bu, istifadəçinin sistemə daxil olmaq üçün istifadə etdiyi identifikasiya məlumatlarını saxlaya bilən bir flash sürücüdür.

Bu nümunədə Rutoken EDS 2.0 istifadə olunur.

Bu Rutoken ilə işləmək üçün sizə lazımdır windows-a sürücü quraşdırın.

Windows üçün yalnız bir sürücü quraşdırmaq lazım olan hər şeyin quraşdırıldığını təmin edir ki, ƏS sizin Rutokeninizi görsün və onunla işləyə bilsin.

Rutoken ilə müxtəlif yollarla əlaqə saxlaya bilərsiniz. Siz ona proqramın server tərəfindən və ya birbaşa müştəri tərəfindən daxil ola bilərsiniz. Bu nümunə tətbiqin müştəri tərəfindən Rutoken ilə qarşılıqlı əlaqəyə baxacaq.

Tətbiqin müştəri hissəsi rutoken plagini vasitəsilə rutoken ilə qarşılıqlı əlaqədə olur. Bu, hər bir brauzerdə ayrıca quraşdırılmış bir proqramdır. Windows üçün sadəcə plaqini endirib quraşdırmaq lazımdır, bu linkdə yerləşir.

Budur, indi tətbiqin müştəri tərəfindən Rutoken ilə qarşılıqlı əlaqə qura bilərik.

Bu nümunə, problem-cavab sxemindən istifadə edərək sistemdə istifadəçinin icazə alqoritminin tətbiqi ideyasını müzakirə edir.

İdeyanın mahiyyəti belədir:

  1. Müştəri serverə avtorizasiya sorğusu göndərir.
  2. Server təsadüfi sətir göndərməklə müştərinin sorğusuna cavab verir.
  3. Müştəri bu sətri təsadüfi 32 bitlə doldurur.
  4. Müştəri qəbul edilmiş sətri öz sertifikatı ilə imzalayır.
  5. Müştəri qəbul edilmiş şifrəli mesajı serverə göndərir.
  6. Server orijinal şifrələnməmiş mesajı almaqla imzanı yoxlayır.
  7. Server qəbul edilmiş şifrələnməmiş mesajdan son 32 biti silir.
  8. Server alınan nəticəni avtorizasiya sorğusu zamanı göndərilən mesajla müqayisə edir.
  9. Mesajlar eynidirsə, avtorizasiya uğurlu sayılır.

Yuxarıdakı alqoritmdə sertifikat kimi bir şey var. Bu nümunə üçün bəzi kriptoqrafik nəzəriyyəni başa düşməlisiniz. Habré-də var bu mövzuda əla məqalə.

Bu nümunədə biz asimmetrik şifrələmə alqoritmlərindən istifadə edəcəyik. Asimmetrik alqoritmləri həyata keçirmək üçün açar cütü və sertifikatınız olmalıdır.

Açar cütü iki hissədən ibarətdir: şəxsi açar və açıq açar. Şəxsi açar, adından da göründüyü kimi, gizli olmalıdır. Məlumatın şifrəsini açmaq üçün istifadə edirik. Açıq açar hər kəsə paylana bilər. Bu açar məlumatları şifrələmək üçün istifadə olunur. Beləliklə, istənilən istifadəçi açıq açardan istifadə edərək məlumatları şifrələyə bilər, lakin yalnız şəxsi açarın sahibi bu məlumatı deşifrə edə bilər.

Sertifikat, sertifikatın sahibi olan istifadəçi haqqında məlumatları, habelə açıq açarı ehtiva edən elektron sənəddir. Sertifikatla istifadəçi istənilən məlumatı imzalaya və serverə göndərə bilər ki, bu da imzanı yoxlaya və verilənlərin şifrəsini aça bilər.

Sertifikatla mesajı düzgün imzalamaq üçün onu düzgün yaratmalısınız. Bunun üçün əvvəlcə Rutoken-də açar cütü yaradılır və sonra sertifikat bu açar cütünün açıq açarı ilə əlaqələndirilməlidir. Sertifikatın tam olaraq Rutoken-də yerləşən açıq açarı olmalıdır, bu vacibdir. Tətbiqin müştəri tərəfində sadəcə bir açar cütü və sertifikat yaratsaq, onda server bu şifrələnmiş mesajı necə deşifrə edə bilər? Axı o, nə açar cütü, nə də sertifikat haqqında heç nə bilmir.

Bu mövzuya daha dərindən girsəniz, internetdə maraqlı məlumatlar tapa bilərsiniz. Bizim açıqca etibar etdiyimiz müəyyən sertifikatlaşdırma orqanları var. Bu sertifikatlaşdırma orqanları istifadəçilərə sertifikatlar verə bilər; onlar bu sertifikatları öz serverlərində quraşdırırlar. Bundan sonra, müştəri bu serverə daxil olduqda, o, bu sertifikatı görür və onun sertifikatlaşdırma orqanı tərəfindən verildiyini görür, yəni bu serverə etibar etmək olar. İnternetdə hər şeyi necə düzgün qurmaq barədə çoxlu məlumat var. Məsələn, bununla başlaya bilərsiniz.

Problemimizə qayıtsaq, həll yolu açıq görünür. Bir şəkildə öz sertifikatlaşdırma mərkəzinizi yaratmalısınız. Ancaq bundan əvvəl, sertifikatlaşdırma mərkəzinin istifadəçiyə hansı əsasla sertifikat verməli olduğunu başa düşməlisiniz, çünki o, bu barədə heç nə bilmir. (Məsələn, onun adı, soyadı və s.) Sertifikat sorğusu deyilən bir şey var. Bu standart haqqında daha çox məlumatı, məsələn, Vikipediyada tapmaq olar ru.wikipedia.org/wiki/PKCS
1.7 - PKCS#10 versiyasından istifadə edəcəyik.

Rutoken-də sertifikat yaratmaq alqoritmini təsvir edək (orijinal mənbə: sənədlər):

  1. Biz müştəridə açar cütü yaradırıq və onu Rutoken-də saxlayırıq. (qənaət avtomatik olaraq baş verir)
  2. Müştəridə sertifikat sorğusu yaradırıq.
  3. Müştəridən biz bu sorğunu serverə göndəririk.
  4. Serverdə sertifikat üçün sorğu aldıqda, sertifikatlaşdırma orqanımızdan sertifikat veririk.
  5. Bu sertifikatı müştəriyə göndəririk.
  6. Rutoken sertifikatını müştəridə saxlayırıq.
  7. Sertifikat ilk addımda yaradılmış açar cütlüyünə bağlanmalıdır.

İndi məlum olur ki, server müştərinin imzasını necə deşifrə edə bilər, çünki özü ona sertifikat verib.

Növbəti hissədə tam hüquqlu açıq mənbəli kriptoqrafiya kitabxanası openSSL əsasında sertifikat səlahiyyətinizi necə quracağınıza daha yaxından nəzər salacağıq.

Mənbə: www.habr.com

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