Жөнөкөй сырсөздөр коопсуз эмес, ал эми татаал сырсөздөрдү эстеп калуу мүмкүн эмес. Ошондуктан алар көбүнчө клавиатуранын же монитордун астындагы жабышчаак кагазга түшүп калышат. Сырсөздөрдүн "унутуучу" колдонуучулардын эсинде сакталышы жана коргоонун ишенимдүүлүгү жоголбоосу үчүн эки факторлуу аутентификация (2FA) бар.
Түзмөккө ээ болуу жана анын PIN кодун билүү айкалышынан улам, PIN коддун өзү жөнөкөй жана эстеп калууга оңой болот. PIN-коддун узундугунун же кокустуктун кемчиликтери физикалык ээлик кылуу талабы жана PIN коддун катаал күчү боюнча чектөөлөр менен жабылат.
Мындан тышкары, мамлекеттик органдарда баары ГОСТ боюнча иштешин каалашат. Бул Linux кирүү үчүн 2FA параметри талкууланат. Мен алыстан баштайм.
PAM модулдары
Pluggable Authentication Modules (PAM) стандарттык API менен модулдар жана колдонмолордо ар кандай аутентификация механизмдерин ишке ашыруу.
PAM менен иштей турган бардык утилиталар жана тиркемелер аларды алып, колдонуучунун аутентификациясы үчүн колдоно алышат.
Иш жүзүндө ал мындай иштейт: кирүү буйругу PAMды чакырат, ал конфигурация файлында көрсөтүлгөн модулдарды колдонуу менен бардык керектүү текшерүүлөрдү жүргүзөт жана натыйжаны кайра кирүү буйругуна кайтарат.
librtpam
Aktiv компаниясы тарабынан иштелип чыккан модулда ата мекендик криптографиянын акыркы стандарттарына ылайык асимметриялык ачкычтарды колдонуу менен смарт-карталарды же USB токендерди колдонуу менен колдонуучулардын эки факторлуу аутентификациясын кошот.
Анын иштөө принцибин карап көрөлү:
- Токен колдонуучунун сертификатын жана анын купуя ачкычын сактайт;
- Сертификат колдонуучунун үй каталогунда ишенимдүү катары сакталат.
Аутентификация процесси төмөнкүдөй ишке ашат:
- Rutoken колдонуучунун жеке сертификатын издейт.
- Токендин PIN коду суралат.
- Кокус маалыматтар жеке ачкычка түздөн-түз Rutoken чипинде кол коюлат.
- Алынган кол колдонуучунун сертификатындагы ачык ачкычтын жардамы менен текшерилет.
- Модуль колтамга текшерүү жыйынтыгын чакырып жаткан колдонмого кайтарат.
Сиз GOST R 34.10-2012 ачкычтарын (узундугу 256 же 512 бит) же эскирген ГОСТ Р 34.10-2001 аркылуу ырастасаңыз болот.
Ачкычтардын коопсуздугу жөнүндө кабатырлануунун кереги жок - алар түздөн-түз Rutokenде түзүлөт жана криптографиялык операциялар учурунда анын эсинен эч качан кетпейт.
Rutoken EDS 2.0 NDV 4 боюнча FSB жана FSTEC тарабынан тастыкталган, ошондуктан аны купуя маалыматты иштеткен маалыматтык системаларда колдонсо болот.
Практикалык колдонуу
Дээрлик бардык заманбап Linux жасайт, мисалы, биз xUbuntu 18.10 колдонобуз.
1) Керектүү пакеттерди орнотуу
sudo apt-get install libccid pcscd opensc
Эгер сиз экран сактагычы менен иш тактасынын кулпусун кошкуңуз келсе, пакетти кошумча орнотуңуз libpam-pkcs11
.
2) ГОСТ колдоосу менен PAM модулун кошуу
китепкана жүктөлүүдө
PAM папкасынын мазмунун librtpam.so.1.0.0 тутумдук папкага көчүрүңүз
/usr/lib/
же /usr/lib/x86_64-linux-gnu/
же /usr/lib64
3) librtpkcs11ecp.so менен пакетти орнотуңуз
DEB же RPM пакетин шилтемеден жүктөп алып, орнотуңуз:
4) Rutoken EDS 2.0 тутумда иштешин текшериңиз
Терминалда биз аткарабыз
$ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -T
Эгерде сиз линияны көрсөңүз Rutoken ECP <no label>
- бул баары жакшы дегенди билдирет.
5) Сертификатты окуу
Аппараттын сертификаты бар экендигин текшерүү
$ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -O
Эгерде саптан кийин:
Using slot 0 with a present token (0x0)
- маалымат көрсөтүлөт ачкычтар жана сертификаттар жөнүндө, сиз сертификатты окуп, аны дискке сакташыңыз керек. Бул үчүн, төмөнкү буйрукту аткарыңыз, анда {id} ордуна мурунку буйруктун жыйынтыгында көргөн сертификаттын идентификаторун алмаштыруу керек:
$ pkcs11-tool --module /usr/lib/librtpkcs11ecp.so -r -y cert --id {id} --output-file cert.crt
Эгерде cert.crt файлы түзүлгөн болсо, 6-кадамга өтүңүз). - эч нерсе жок, анда аппарат бош. Кийинки кадамды аткаруу менен администраторуңуз менен байланышыңыз же ачкычтарды жана сертификатты өзүңүз түзүңүз.
5.1) Сыноо сертификатын түзүү
Көңүл бургула! Ачкычтарды жана сертификаттарды түзүүнүн сүрөттөлгөн ыкмалары сыноо үчүн ылайыктуу жана согуштук режимде колдонууга арналбайт. Бул үчүн, сиз уюмуңуздун ишенимдүү тастыктоочу органы же аккредиттелген тастыктоочу орган тарабынан берилген ачкычтарды жана сертификаттарды колдонушуңуз керек.
PAM модулу жергиликтүү компьютерлерди коргоо үчүн иштелип чыккан жана чакан уюмдарда иштөө үчүн иштелип чыккан. Колдонуучулар аз болгондуктан, Администратор сертификаттардын жокко чыгарылышын көзөмөлдөп, эсептерди кол менен бөгөттөй алат, ошондой эле сертификаттардын жарактуу мөөнөтү. PAM модулу CRL аркылуу сертификаттарды кантип текшерүүнү жана ишеним чынжырларын курууну азырынча билбейт.
Жеңил жол (браузер аркылуу)
Сыноо сертификатын алуу үчүн колдонуңуз
Гектин жолу (консол жана мүмкүн компилятор аркылуу)
OpenSC версиясын текшериңиз
$ opensc-tool --version
Эгерде версия 0.20дан аз болсо, анда жаңыртыңыз же түзүңүз
Төмөнкү параметрлер менен ачкыч жупту жаратыңыз:
--key-type: GOSTR3410-2012-512:А (ГОСТ-2012 512 бит c парамсетом А), GOSTR3410-2012-256:A (ГОСТ-2012 256 бит с парамсетом A)
--id:
объектинин идентификатору (CKA_ID) ASCII таблицасындагы эки орундуу он алтылык символдор катары. Басылып чыга турган символдор үчүн ASCII коддорун гана колдонуңуз, анткени... id OpenSSLге сап катары берилиши керек. Мисалы, ASCII коду "3132" "12" сабына туура келет. Ыңгайлуулук үчүн, сиз колдоно аласыз
$ ./pkcs11-tool --module /usr/lib/librtpkcs11ecp.so --keypairgen --key-type GOSTR3410-2012-512:A -l --id 3132
Андан кийин биз күбөлүк түзөбүз. Төмөндө эки жол сүрөттөлөт: биринчиси CA аркылуу (биз тесттик CAларды колдонобуз), экинчиси - өз алдынча кол коюу. Бул үчүн, адегенде OpenSSL 1.1 же андан кийинки нускасын орнотуп, конфигурациялашыңыз керек, колдонмону колдонуу менен атайын rtengine модулу аркылуу Rutoken менен иштөө
Мисалы: '- үчүн-id 3132
' OpenSSLде сиз көрсөтүшүңүз керек "pkcs11:id=12
".
Сиз тесттик CA кызматтарын колдоно аласыз, алардын ичинен көп, мисалы,
Дагы бир вариант - жалкоолукка берилип, өз алдынча кол коюу
$ openssl req -utf8 -new -keyform engine -key "pkcs11:id=12" -engine rtengine -out req.csr
Сертификат түзмөккө жүктөлүүдө
$ openssl req -utf8 -x509 -keyform engine -key "pkcs11:id=12" -engine rtengine -out cert.cer
6) Сертификатты системада каттаңыз
Сертификатыңыз base64 файлына окшош экенин текшериңиз:
Эгерде сиздин сертификатыңыз мындай көрүнсө:
анда сертификатты DER форматынан PEM форматына (base64) айландыруу керек.
$ openssl x509 -in cert.crt -out cert.pem -inform DER -outform PEM
Азыр баары жайында экенин дагы бир жолу текшеребиз.
Сертификатты ишенимдүү сертификаттардын тизмесине кошуңуз
$ mkdir ~/.eid
$ chmod 0755 ~/.eid
$ cat cert.pem >> ~/.eid/authorized_certificates
$ chmod 0644 ~/.eid/authorized_certificates
Акыркы сап ишенимдүү сертификаттардын тизмесин башка колдонуучулар тарабынан кокустан же атайылап өзгөртүүдөн коргойт. Бул кимдир бирөөнүн сертификатын бул жерге кошуп, сиздин атыңыздан кире албайт.
7) аутентификацияны орнотуу
PAM модулубузду орнотуу толугу менен стандарттуу жана башка модулдарды орнотуу сыяктуу эле жасалат. Файлга түзүү /usr/share/pam-configs/rutoken-gost-pam
модулдун толук аталышын, ал демейки боюнча иштетилгенби же жокпу, модулдун артыкчылыктуулугун жана аутентификация параметрлерин камтыйт.
Аутентификациянын параметрлери операциянын ийгилиги үчүн талаптарды камтыйт:
- талап кылынат: Мындай модулдар оң жооп кайтарышы керек. Модул чалуусунун натыйжасы терс жоопту камтыса, бул аутентификация катасына алып келет. Сурам четке кагылат, бирок калган модулдар чакырылат.
- зарыл: Талапка окшош, бирок дароо аутентификациядан өтпөйт жана башка модулдарды этибарга албайт.
- жетиштүү: Эгерде мындай модулдун алдында талап кылынган же жетиштүү модулдардын бири да терс натыйжа бербесе, анда модуль оң жооп кайтарат. Калган модулдар этибарга алынбайт.
- кошумча: Стекте талап кылынган модулдар жок болсо жана жетиштүү модулдардын бири да оң натыйжа бербесе, анда кошумча модулдардын жок дегенде бири оң натыйжаны кайтарышы керек.
Толук файл мазмуну /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
файлды сактап, андан кийин аткарыңыз
$ sudo pam-auth-update
пайда болгон терезеде анын жанына жылдызча коюңуз Rutoken PAM ГОСТ жана пресс-релиздер OK
8) орнотууларды текшерүү
Баары конфигурацияланган, бирок ошол эле учурда системага кирүү мүмкүнчүлүгүн жоготпоо үчүн, буйрукту киргизиңиз
$ sudo login
Колдонуучу атыңызды киргизиңиз. Система аппараттын PIN кодун талап кылса, баары туура конфигурацияланган.
9) Токен чыгарылганда компьютерди бөгөттөө үчүн конфигурациялаңыз
Пакетке киргизилген libpam-pkcs11
коммуналдык камтылган pkcs11_eventmgr,
PKCS#11 окуялары пайда болгондо ар кандай аракеттерди жасоого мүмкүндүк берет.
Жөндөөлөр үчүн pkcs11_eventmgr
конфигурация файлы катары кызмат кылат: /etc/pam_pkcs11/pkcs11_eventmgr.conf
Ар кандай Linux дистрибьюторлору үчүн смарт-карта же токен алынып салынганда эсептин кулпуланышына алып келүүчү буйрук ар кандай болот. См. event card_remove
.
Мисал конфигурация файлы төмөндө көрсөтүлгөн:
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";
}
}
Андан кийин колдонмону кошуу pkcs11_eventmgr
баштоого. Бул үчүн, .bash_profile файлын түзөтүңүз:
$ nano /home/<имя_пользователя>/.bash_profile
Файлдын аягына pkcs11_eventmgr сабын кошуп, кайра жүктөңүз.
Операциялык системаны орнотуу боюнча сүрөттөлгөн кадамдар ар кандай заманбап Linux дистрибьюторунда, анын ичинде ата мекендик дистрибуцияда нускама катары колдонулушу мүмкүн.
жыйынтыктоо
Linux компьютерлери Орусиянын мамлекеттик мекемелеринде барган сайын популярдуу болуп баратат жана бул ОСто ишенимдүү эки факторлуу аутентификацияны орнотуу дайыма эле оңой боло бербейт. Биз сизге бул колдонмо менен "сырсөз маселесин" чечүүгө жардам берүүгө жана ага көп убакыт коротпостон компьютериңизге кирүү мүмкүнчүлүгүн ишенимдүү коргоого кубанычтабыз.
Source: www.habr.com