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 üçü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.
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,
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:
- Müştəri serverə avtorizasiya sorğusu göndərir.
- Server təsadüfi sətir göndərməklə müştərinin sorğusuna cavab verir.
- Müştəri bu sətri təsadüfi 32 bitlə doldurur.
- Müştəri qəbul edilmiş sətri öz sertifikatı ilə imzalayır.
- Müştəri qəbul edilmiş şifrəli mesajı serverə göndərir.
- Server orijinal şifrələnməmiş mesajı almaqla imzanı yoxlayır.
- Server qəbul edilmiş şifrələnməmiş mesajdan son 32 biti silir.
- Server alınan nəticəni avtorizasiya sorğusu zamanı göndərilən mesajla müqayisə edir.
- 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 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.
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
1.7 - PKCS#10 versiyasından istifadə edəcəyik.
Rutoken-də sertifikat yaratmaq alqoritmini təsvir edək (orijinal mənbə:
- 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)
- Müştəridə sertifikat sorğusu yaradırıq.
- Müştəridən biz bu sorğunu serverə göndəririk.
- Serverdə sertifikat üçün sorğu aldıqda, sertifikatlaşdırma orqanımızdan sertifikat veririk.
- Bu sertifikatı müştəriyə göndəririk.
- Rutoken sertifikatını müştəridə saxlayırıq.
- 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