VPN кілт файлында RSA-ның n, e, d, p және q қайда тұрады
n, e, d, p және q бір құрылымның ішінде, файл атауларында емес. RSA VPN кілтін OpenSSL-мен оқып, құпияларды баспай-ақ оны сертификатымен сәйкестендіріңіз.
RSA түсініктемесіндегі әріптер бір нысанның ішіндегі өрістерді атайды, PKI құралы беретін файлдарды емес. Жеке кілт файлы бірінші өрістері ашық, ал кейінгі өрістері туннельді аяқтайтын машинадан ешқашан шықпауы тиіс құрылымды ұстайды. Осы екі фактінің арасында қай файл қай сұраққа жауап беретіні туралы практикалық сұрақтардың көбі жатыр. Бұл нұсқаулық алдымен құрылымды, содан кейін оны төкпей-ақ тексеретін командаларды оқиды.
Жай сандарды іздестіруден бұрын кілттің RSA екеніне көз жеткізіңіз
Сертификат қандай да бір кілттің бар екенін және қол қойылғанын дәлелдейді; ол кілттің RSA екенін дәлелдемейді. Жүйелерді эллиптикалық қисықтарға немесе Ed25519-ға құруға болады, және сол қалта құрылымы олардың барлығына қызмет етеді. Ешқашан болмаған жай көбейткіштерді іздеуді бастамас бұрын алгоритмді тексеріңіз.
Осы үш тек оқуға арналған команда сұраққа жауап береді және құралдың нұсқасын жазады.
openssl version
openssl x509 -in vpn-client.crt -noout -text
openssl pkey -in vpn-client.key -noout -text
Нұсқа маңызды, өйткені опция атаулары негізгі шығарылымдар арасында жылжыған. Сертификат шығысында ашық кілт алгоритмінің жолын және кілт өлшемін табыңыз; кілт шығысында RSA кілті модуль мен ашық дәрежені басып шығарады. Эллиптикалық қисық кілтінің орнына атаулы қисық басылады, және ешбір іздеу одан n немесе q шығармайды.
base64 орнына құрылымды оқыңыз
PEM — тақырып жолдарына оралған base64, ал оны декодтау DER береді, яғни алып бүтін сан емес, серияланған құрылым. RSA жеке кілттері екі кең тараған контейнерде жүреді, PKCS#1 және PKCS#8, және екеуі де бірдей сандар жиынына келеді.
Екі жай сан жағдайында жеке құрылым тоғыз өрісті алып жүреді: нұсқа, n модулі, e ашық дәрежесі, d жеке дәрежесі, p және q жай сандары, екі CRT дәрежесі және бір CRT коэффициенті. RFC 8017 A.1 бөлімі осы құрамдастар мен ASN.1 орналасуын анықтайды және екіден көп жай санға да жол береді, сондықтан жалпы талдағыш қосымша жай сан жазбаларын шығара алады. Ретіне назар аударыңыз, өйткені ол жиі кездесетін қатені түсіндіреді: ашық жартысы жеке файлдың ішінде сақталады, сондықтан ашық өрістің болуы бұл файлды бөлісуге қауіпсіз етпейді. Одан кейінгінің бәрі хостта қалуы тиіс материал.
Кодтау мазмұнмен шатастыруға оңай қабат қосады. openssl asn1parse құрылымды ағаш ретінде салады, сонда өрістердің реті көрінеді, және ол ештеңені дешифрламайды әрі кілттің жарамдылығын да айтпайды.
Кілтті баспай-ақ сертификатты кілтпен сәйкестендіріңіз
Келесі сұрақ әдетте сертификат пен кілттің бірге тиесілі екенін білу. Модульдерді салыстыру бұған жауап береді, бірақ ол жекеге жақын материалды терминал жазбасына да көшіреді, ол билетке түсуі мүмкін. Ашық жартыларды салыстыру сол сұраққа экранда сезімтал ештеңе қалдырмай жауап береді.
openssl pkey -in vpn-client.key -pubout -out /tmp/key.pub
openssl x509 -in vpn-client.crt -pubkey -noout > /tmp/cert.pub
cmp /tmp/key.pub /tmp/cert.pub && echo MATCH
Бірдей файлдар сертификаттың сол кілттің ашық жартысын алып жүргенін білдіреді, ал айырмашылық дұрыс емес жұп ұстағаныңызды білдіреді. Дәл осы сәйкессіздік көңілді келісіп, содан кейін аутентификацияны қабылдамайтын туннельдің ең жиі себебі. Содан кейін екі уақытша файлды жойыңыз; оларда құпия ештеңе жоқ, бірақ оқиғаның ортасында таза жұмыс қалтасы туралы ойлау жеңіл.
Көршілес файлдардың не еместігін біліңіз
Сертификат — қарсы тарап CA сертификатымен ашатын шифрланған ашық кілт емес; ол ашық кілт пен сәйкестендіру деректері арасындағы қол қойылған байланыс. CA-ның жеке қол қою кілті өз сертификатынан және әрбір клиент кілтінен бөлек қалады. Сұрау да сертификат емес: ол сұралған ақпаратты және ашық кілтті сұрауға қойылған қолмен бірге алып жүреді, бұл оны тіркеу кірісіне айналдырады, құқық дәлеліне емес.
| File | Answers | Does not prove |
|---|---|---|
| vpn-client.key | Possession of the private key | That the identity is enrolled |
| vpn-client.crt | A signed binding of public key to identity | That the client holds the matching key |
| vpn-client.csr | The requested binding and public key | That access was granted |
| dh2048.pem | Group parameters for key exchange | Any RSA component |
| crl.pem | Revocation status for certificates | Anything about a private key |
Осы жазбалардың екеуі RSA параметрлерімен жиі шатастырылатындықтан, оларды екі рет атау керек. Diffie-Hellman параметрлер файлы кілт орнату үшін топ параметрлерін ұстайды және бірде-бір RSA жай санын ұстамайды, ол үлкен жай сан ретінде де басылғанымен. Кері қайтару тізімі сертификаттардың күйін жариялайды және жеке дәреже жасырына алатын орын емес.
Сондықтан әрбір түгендеу жолы төрт нәрсені жазуы керек: нысан түрі, иесі, мақсаты және жеке материалдың қосылғаны. Соңғы баған файлды қайда көшіруге болатынын шешеді, ал адамдар дәл соны өткізіп жібереді.
Жұптастыруды жазып алыңыз, содан кейін қол алысуды тексеріңіз
Бірдеңені өзгертудің алдында тексеру шығысын күнмен және OpenSSL нұсқасымен бірге сақтаңыз. Содан кейін кейінгі айналдыруды жадымен емес, дәлелдермен салыстыруға болады.
openssl verify -CAfile ca.crt vpn-client.crt
openssl x509 -in vpn-client.crt -noout -subject -issuer -dates
Ашық кілтті салыстырғаннан кейін жұпты тұтынатын жолды өткізіңіз: туннельді көтеріңіз, сертификаттың ұсынылып, қабылданатынын растаңыз және қақпа қандай сәйкестікті жазғанын тексеріңіз. Егер кілт пен сертификат сәйкес келсе де аутентификация әлі сәтсіз болса, ақау жұпта емес, сенімде, сәйкестікті бейнелеуде немесе қатынау саясатында.
Қайтару үшін алдыңғы кілт пен сертификатты күні бар қалтада ұстап, екеуін бірге қалпына келтіріңіз, ешқашан біреуін ғана емес. Сертификаты жоқ кілт пен кілті жоқ сертификат сырттан бірдей сәтсіз болады, бұл жартылай қалпына келтірілген жұптарды түнде сағат екіде шешуді қымбат етеді.