VPN కీ ఫైల్లో RSA యొక్క n, e, d, p మరియు q ఎక్కడ ఉన్నాయి
n, e, d, p మరియు q ఫైల్ పేర్లలో కాదు, ఒకే నిర్మాణం లోపల ఉన్నాయి. OpenSSL తో RSA VPN కీని చదివి రహస్యాలను ముద్రించకుండా దాన్ని దాని ధృవపత్రంతో జత చేయండి.
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
బహిరంగ కీ పోలిక తర్వాత జతను వినియోగించే మార్గాన్ని నడపండి: సొరంగాన్ని పైకి లేపండి, ధృవపత్రం సమర్పించబడి అంగీకరించబడుతుందని నిర్ధారించండి, మరియు గేట్వే ఏ గుర్తింపును నమోదు చేసిందో చూడండి. కీ మరియు ధృవపత్రం సరిపోలినా ధృవీకరణ ఇప్పటికీ విఫలమైతే, లోపం జతలో కాదు, విశ్వాసం, గుర్తింపు మ్యాపింగ్ లేదా యాక్సెస్ విధానంలో ఉంది.
తిరిగి మారడానికి మునుపటి కీ మరియు ధృవపత్రాన్ని తేదీ ఉన్న డైరెక్టరీలో ఉంచి రెండింటినీ కలిసి పునరుద్ధరించండి, ఎప్పుడూ ఒకటి మాత్రమే కాదు. ధృవపత్రం లేని కీ మరియు కీ లేని ధృవపత్రం బయటినుండి ఒకేలా విఫలమవుతాయి, ఇది సగం పునరుద్ధరించిన జతలను రాత్రి రెండు గంటలకు విప్పడానికి ఖరీదైనదిగా చేస్తుంది.