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
Ачык ачкычты салыштыргандан кийин жупту колдонгон жолду басып өтүңүз: туннелди көтөрүңүз, сертификаттын сунушталып, кабыл алынарын ырастаңыз жана дарбаза кайсы инсандыкты жазганын текшериңиз. Эгер ачкыч менен сертификат дал келип, аутентификация дагы эле ишке ашпаса, кемчилик жупта эмес, ишенимде, инсандыкты чагылдырууда же кирүү саясатында.
Кайтаруу үчүн мурунку ачкыч менен сертификатты даталуу каталогдо кармап, экөөнү бирге калыбына келтириңиз, эч качан бирин гана эмес. Сертификаты жок ачкыч жана ачкычы жок сертификат тыштан бирдей иштебейт, бул жарым калыбына келтирилген жуптарды түнү саат экиде чечүүнү кымбат кылат.