Rutoken-də GOST-2012 açarlarından istifadə edərək Linux-da yerli identifikasiya üçün PAM modullarından necə istifadə etmək olar

Rutoken-də GOST-2012 açarlarından istifadə edərək Linux-da yerli identifikasiya üçün PAM modullarından necə istifadə etmək olar

Sadə parollar təhlükəsiz deyil və mürəkkəb olanları yadda saxlamaq mümkün deyil. Buna görə də onlar tez-tez klaviaturanın və ya monitorun altındakı yapışqan qeydlərə düşürlər. Parolların “unudulmuş” istifadəçilərin beynində qalmasını və qorunmanın etibarlılığının itirilməməsini təmin etmək üçün iki faktorlu autentifikasiya (2FA) mövcuddur.

Cihaza sahib olmaq və onun PIN kodunu bilmək birləşməsi sayəsində PİN kodun özü daha sadə və yadda saxlamaq asan ola bilər. PIN uzunluğu və ya təsadüfi çatışmazlıqlar fiziki sahiblik tələbi və PIN kobud qüvvəsinə qoyulan məhdudiyyətlər ilə kompensasiya edilir.

Bundan əlavə, dövlət qurumlarında olur ki, onlar hər şeyin QOST-a uyğun işləməsini istəyirlər. Linux-a daxil olmaq üçün bu 2FA seçimi müzakirə olunacaq. Uzaqdan başlayacağam.

PAM modulları

Pluggable Authentication Modules (PAM) standart API-yə və tətbiqlərdə müxtəlif autentifikasiya mexanizmlərinin tətbiqinə malik modullardır.
PAM ilə işləyə bilən bütün kommunal proqramlar və proqramlar onları götürür və istifadəçinin autentifikasiyası üçün istifadə edə bilər.
Praktikada bu, belə işləyir: giriş əmri PAM-a zəng edir, o, konfiqurasiya faylında göstərilən modullardan istifadə edərək bütün lazımi yoxlamaları həyata keçirir və nəticəni yenidən giriş əmrinə qaytarır.

librtpam

Aktiv şirkəti tərəfindən hazırlanmış modul yerli kriptoqrafiyanın ən son standartlarına uyğun olaraq asimmetrik açarlardan istifadə etməklə smart-kartlardan və ya USB tokenlərdən istifadə edən istifadəçilərin iki faktorlu autentifikasiyasını əlavə edir.

Onun fəaliyyət prinsipinə baxaq:

  • Token istifadəçinin sertifikatını və onun şəxsi açarını saxlayır;
  • Sertifikat etibarlı olaraq istifadəçinin ev kataloqunda saxlanılır.

Doğrulama prosesi aşağıdakı kimi baş verir:

  1. Rutoken istifadəçinin şəxsi sertifikatını axtarır.
  2. Token PIN kodu tələb olunur.
  3. Təsadüfi məlumatlar birbaşa Rutoken çipində şəxsi açarda imzalanır.
  4. Nəticə imza istifadəçi sertifikatından açıq açardan istifadə etməklə yoxlanılır.
  5. Modul imzanın yoxlanılması nəticəsini zəng edən tətbiqə qaytarır.

Siz GOST R 34.10-2012 açarlarından (uzunluq 256 və ya 512 bit) və ya köhnəlmiş GOST R 34.10-2001-dən istifadə edərək autentifikasiya edə bilərsiniz.

Açarların təhlükəsizliyindən narahat olmaq lazım deyil - onlar birbaşa Rutoken-də yaradılır və kriptoqrafik əməliyyatlar zamanı yaddaşını heç vaxt tərk etmir.

Rutoken-də GOST-2012 açarlarından istifadə edərək Linux-da yerli identifikasiya üçün PAM modullarından necə istifadə etmək olar

Rutoken EDS 2.0 NDV 4-ə uyğun olaraq FSB və FSTEC tərəfindən sertifikatlaşdırılıb, ona görə də o, məxfi məlumatları emal edən informasiya sistemlərində istifadə oluna bilər.

Praktik istifadə

Demək olar ki, hər hansı bir müasir Linux bunu edəcək, məsələn, biz xUbuntu 18.10 istifadə edəcəyik.

1) Lazımi paketləri quraşdırın

sudo apt-get install libccid pcscd opensc
Ekran qoruyucusu ilə iş masası kilidi əlavə etmək istəyirsinizsə, paketi əlavə olaraq quraşdırın libpam-pkcs11.

2) GOST dəstəyi ilə PAM modulu əlavə edin

Kitabxana buradan yüklənir https://download.rutoken.ru/Rutoken/PAM/
librtpam.so.1.0.0 PAM qovluğunun məzmununu sistem qovluğuna köçürün
/usr/lib/ və ya /usr/lib/x86_64-linux-gnu/və ya /usr/lib64

3) Paketi librtpkcs11ecp.so ilə quraşdırın

DEB və ya RPM paketini linkdən yükləyin və quraşdırın: https://www.rutoken.ru/support/download/pkcs/

4) Rutoken EDS 2.0-ın sistemdə işlədiyini yoxlayın

Terminalda biz icra edirik
$ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -T
Xətti görürsənsə Rutoken ECP <no label> - bu o deməkdir ki, hər şey qaydasındadır.

5) Sertifikatı oxuyun

Cihazın sertifikatının olması yoxlanılır
$ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -O
Əgər sətirdən sonra:
Using slot 0 with a present token (0x0)

  • məlumat göstərilir açarlar və sertifikatlar haqqında, sertifikatı oxumaq və diskdə saxlamaq lazımdır. Bunu etmək üçün aşağıdakı əmri yerinə yetirin, burada {id} əvəzinə əvvəlki əmrin çıxışında gördüyünüz sertifikat identifikatorunu əvəz etməlisiniz:
    $ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -r -y cert --id {id} --output-file cert.crt
    cert.crt faylı yaradılıbsa, 6-cı addıma keçin).
  • heç nə yoxdur, onda cihaz boşdur. Administratorunuzla əlaqə saxlayın və ya növbəti addımı izləməklə açarları və sertifikatı özünüz yaradın.

5.1) Test sertifikatı yaradın

Diqqət! Açarların və sertifikatların yaradılması üçün təsvir edilən üsullar sınaq üçün uyğundur və döyüş rejimində istifadə üçün nəzərdə tutulmur. Bunun üçün siz təşkilatınızın etibarlı sertifikatlaşdırma orqanı və ya akkreditə olunmuş sertifikatlaşdırma orqanı tərəfindən verilmiş açar və sertifikatlardan istifadə etməlisiniz.
PAM modulu yerli kompüterləri qorumaq üçün nəzərdə tutulub və kiçik təşkilatlarda işləmək üçün nəzərdə tutulub. İstifadəçilərin sayı az olduğundan, Administrator sertifikatların ləğvinə nəzarət edə və hesabları əl ilə bloklaya bilər, eləcə də sertifikatların etibarlılıq müddəti. PAM modulu CRL-lərdən istifadə edərək sertifikatların necə yoxlanılacağını və etibar zəncirlərinin qurulmasını hələ bilmir.

Asan yol (brauzer vasitəsilə)

Test sertifikatı əldə etmək üçün istifadə edin "Rutoken Qeydiyyat Mərkəzi" veb xidməti. Proses 5 dəqiqədən çox olmayacaq.

Geek yolu (konsol və bəlkə də tərtibçi vasitəsilə)

OpenSC versiyasını yoxlayın
$ opensc-tool --version
Versiya 0.20-dən azdırsa, yeniləyin və ya qurun QOST-11 dəstəyi ilə pkcs2012-alət şöbəsi GitHub-dan (bu məqalənin dərc edildiyi vaxt 0.20 buraxılışı hələ buraxılmayıb) və ya əsas OpenSC layihəsinin master filialından gec olmayaraq 8cf1e6f edin

Aşağıdakı parametrlərlə açar cütü yaradın:
--key-type: GOSTR3410-2012-512:А (ГОСТ-2012 512 бит c парамсетом А), GOSTR3410-2012-256:A (ГОСТ-2012 256 бит с парамсетом A)

--id: obyekt identifikatoru (CKA_ID) ASCII cədvəlindən iki rəqəmli altıbucaqlı simvol nömrələri kimi. Çap edilə bilən simvollar üçün yalnız ASCII kodlarından istifadə edin, çünki... id sətir kimi OpenSSL-ə ötürülməlidir. Məsələn, “3132” ASCII kodu “12” sətrinə uyğundur. Rahatlıq üçün istifadə edə bilərsiniz sətirləri ASCII kodlarına çevirmək üçün onlayn xidmət.

$ ./pkcs11-tool --module /usr/lib/librtpkcs11ecp.so --keypairgen --key-type GOSTR3410-2012-512:A -l --id 3132

Sonra sertifikat yaradacağıq. Aşağıda iki yol təsvir ediləcək: birincisi CA vasitəsilə (biz test CA-larından istifadə edəcəyik), ikincisi öz-özünə imzalanmışdır. Bunu etmək üçün əvvəlcə təlimatdan istifadə edərək xüsusi rtengine modulu vasitəsilə Rutoken ilə işləmək üçün OpenSSL 1.1 və ya daha sonrakı versiyasını quraşdırmalı və konfiqurasiya etməlisiniz. OpenSSL-in quraşdırılması və konfiqurasiyası.
Məsələn: '- üçün-id 3132' OpenSSL-də qeyd etməlisiniz "pkcs11:id=12".

Bir çoxu olan test CA xidmətlərindən istifadə edə bilərsiniz, məsələn, burada, burada и burada, bunun üçün sertifikat üçün sorğu yaradacağıq

Başqa bir seçim isə tənbəlliyə təslim olmaq və öz imzasını yaratmaqdır
$ openssl req -utf8 -new -keyform engine -key "pkcs11:id=12" -engine rtengine -out req.csr

Sertifikat cihaza yüklənir
$ openssl req -utf8 -x509 -keyform engine -key "pkcs11:id=12" -engine rtengine -out cert.cer

6) Sertifikatı sistemdə qeydiyyatdan keçirin

Sertifikatınızın base64 faylına bənzədiyinə əmin olun:

Rutoken-də GOST-2012 açarlarından istifadə edərək Linux-da yerli identifikasiya üçün PAM modullarından necə istifadə etmək olar

Sertifikatınız belə görünürsə:

Rutoken-də GOST-2012 açarlarından istifadə edərək Linux-da yerli identifikasiya üçün PAM modullarından necə istifadə etmək olar

sonra sertifikatı DER formatından PEM formatına çevirməlisiniz (base64)

$ openssl x509 -in cert.crt -out cert.pem -inform DER -outform PEM
İndi hər şeyin qaydasında olduğunu bir daha yoxlayırıq.

Sertifikatı etibarlı sertifikatlar siyahısına əlavə edin
$ mkdir ~/.eid
$ chmod 0755 ~/.eid
$ cat cert.pem >> ~/.eid/authorized_certificates
$ chmod 0644 ~/.eid/authorized_certificates

Son sətir etibarlı sertifikatların siyahısını digər istifadəçilər tərəfindən təsadüfən və ya qəsdən dəyişdirilməkdən qoruyur. Bu, kiminsə sertifikatını buraya əlavə etməsinə və sizin adınıza daxil ola bilməsinə mane olur.

7) Doğrulamanı qurun

PAM modulumuzun qurulması tamamilə standartdır və digər modulların qurulması ilə eyni şəkildə həyata keçirilir. Fayl üçün yaradın /usr/share/pam-configs/rutoken-gost-pam modulun tam adını, defolt olaraq aktiv olub olmadığını, modulun prioritetini və autentifikasiya parametrlərini ehtiva edir.
Doğrulama parametrləri əməliyyatın müvəffəqiyyəti üçün tələbləri ehtiva edir:

  • tələb olunur: Belə modullar müsbət cavab verməlidir. Modul çağırışının nəticəsi mənfi cavab verirsə, bu, autentifikasiya xətası ilə nəticələnəcək. Sorğu rədd ediləcək, lakin qalan modullar çağırılacaq.
  • tələb: Tələb olunana bənzəyir, lakin autentifikasiya dərhal uğursuz olur və digər modullara məhəl qoymur.
  • kafi: Əgər belə moduldan əvvəl tələb olunan və ya kifayət qədər modullardan heç biri mənfi nəticə vermədisə, modul müsbət cavab verəcək. Qalan modullar nəzərə alınmayacaq.
  • isteğe bağlı: Yığında tələb olunan modullar yoxdursa və kifayət qədər modullardan heç biri müsbət nəticə vermirsə, o zaman əlavə modullardan ən azı biri müsbət nəticə verməlidir.

Tam fayl məzmunu /usr/share/pam-configs/rutoken-gost-pam:
Name: Rutoken PAM GOST
Default: yes
Priority: 800
Auth-Type: Primary
Auth: sufficient /usr/lib/librtpam.so.1.0.0 /usr/lib/librtpkcs11ecp.so

Rutoken-də GOST-2012 açarlarından istifadə edərək Linux-da yerli identifikasiya üçün PAM modullarından necə istifadə etmək olar

faylı saxla, sonra icra et
$ sudo pam-auth-update
görünən pəncərədə yanında ulduz işarəsi qoyun Rutoken PAM GOST və vurun OK

Rutoken-də GOST-2012 açarlarından istifadə edərək Linux-da yerli identifikasiya üçün PAM modullarından necə istifadə etmək olar

8) Parametrləri yoxlayın

Hər şeyin konfiqurasiya edildiyini, lakin eyni zamanda sistemə daxil olmaq qabiliyyətini itirmədiyini başa düşmək üçün əmri daxil edin.
$ sudo login
İstifadəçi adınızı daxil edin. Sistem cihazın PIN kodunu tələb edirsə, hər şey düzgün konfiqurasiya edilib.

Rutoken-də GOST-2012 açarlarından istifadə edərək Linux-da yerli identifikasiya üçün PAM modullarından necə istifadə etmək olar

9) Token çıxarıldıqda bloklanacaq kompüteri konfiqurasiya edin

Paketə daxildir libpam-pkcs11 kommunal daxildir pkcs11_eventmgr, PKCS#11 hadisələri baş verdikdə müxtəlif hərəkətləri yerinə yetirməyə imkan verir.
Ayarlar üçün pkcs11_eventmgr konfiqurasiya faylı kimi xidmət edir: /etc/pam_pkcs11/pkcs11_eventmgr.conf
Müxtəlif Linux paylamaları üçün smart kart və ya token çıxarıldıqda hesabın kilidlənməsinə səbəb olan əmr fərqli olacaq. Santimetr. event card_remove.
Aşağıda nümunə konfiqurasiya faylı göstərilir:

pkcs11_eventmgr
{
    # Запуск в бэкграунде
    daemon = true;
     
    # Настройка сообщений отладки
    debug = false;
 
    # Время опроса в секундах
    polling_time = 1;
 
    # Установка тайм-аута на удаление карты
    # По-умолчанию 0
    expire_time = 0;
 
    # Выбор pkcs11 библиотеки для работы с Рутокен
    pkcs11_module = usr/lib/librtpkcs11ecp.so;
 
    # Действия с картой
    # Карта вставлена:
    event card_insert {
        # Оставляем значения по умолчанию (ничего не происходит)
        on_error = ignore ;
 
        action = "/bin/false";
    }
 
    # Карта извлечена
    event card_remove {
        on_error = ignore;
         
        # Вызываем функцию блокировки экрана
        
        # Для GNOME 
        action = "dbus-send --type=method_call --dest=org.gnome.ScreenSaver /org/gnome/ScreenSaver org.gnome.ScreenSaver.Lock";
        
        # Для XFCE
        # action = "xflock4";
        
        # Для Astra Linux (FLY)
        # action = "fly-wmfunc FLYWM_LOCK";
    }
 
    # Карта долгое время извлечена
    event expire_time {
        # Оставляем значения по умолчанию (ничего не происходит)
        on_error = ignore;
 
        action = "/bin/false";
    }
}

Bundan sonra tətbiqi əlavə edin pkcs11_eventmgr işə salmaq üçün. Bunu etmək üçün .bash_profile faylını redaktə edin:
$ nano /home/<имя_пользователя>/.bash_profile
Faylın sonuna pkcs11_eventmgr sətri əlavə edin və yenidən başladın.

Əməliyyat sisteminin qurulması üçün təsvir olunan addımlar yerli olanlar da daxil olmaqla istənilən müasir Linux paylamasında təlimat kimi istifadə edilə bilər.

Rutoken-də GOST-2012 açarlarından istifadə edərək Linux-da yerli identifikasiya üçün PAM modullarından necə istifadə etmək olar

Nəticə

Linux kompüterləri Rusiya dövlət qurumlarında getdikcə populyarlaşır və bu OS-də etibarlı iki faktorlu autentifikasiyanı qurmaq həmişə asan olmur. Biz bu bələdçi ilə "parol problemini" həll etməyə və çox vaxt sərf etmədən kompüterinizə girişi etibarlı şəkildə qorumağa kömək etməkdən məmnun olarıq.

Mənbə: www.habr.com

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