CA లేకుండా OpenVPN: peer-fingerprint సహచరులను ఎలా ధృవీకరిస్తుంది
వేలిముద్ర ఒక ధృవపత్రాన్ని పిన్ చేస్తుంది, భాగస్వామ్య రహస్యాన్ని కాదు. డైజెస్ట్ ఏమి ఆవరిస్తుంది, ప్రతి వైపు తన అనుమతి జాబితాను ఎలా నిర్మిస్తుంది, పునరుద్ధరణకు ఏమి ఖర్చవుతుంది చూడండి.
చిన్న విస్తరణ వేలిముద్రల వైపు మొగ్గుతుంది, ఎందుకంటే ధృవపత్ర అధికారం ఎవరికీ నిర్వహించడానికి సమయం లేని మౌలిక సదుపాయంలా కనిపిస్తుంది. సహజ ప్రవృత్తి సమంజసం, కానీ దానికి బదులుగా ప్రజలు తీసుకునే చిన్న మార్గం—ఒక డేటా ఛానెల్ రహస్యాన్ని రెండు చివరలకూ కాపీ చేయడం—అలా కాదు. peer-fingerprint సెటప్ TLS నిర్మాణాన్ని చెక్కుచెదరకుండా ఉంచుతుంది: ప్రతి వైపు ఇప్పటికీ తన స్వంత ప్రైవేట్ కీ మరియు ధృవపత్రాన్ని కలిగి ఉంటుంది, ప్రతి వైపు ఇప్పటికీ మరొకరిని ధృవీకరిస్తుంది. మారేది ఏమిటంటే ధృవీకరణ ఎక్కడ లంగరు వేయబడింది: నమ్మదగిన జారీచేసేవాడి నుండి పిన్ చేసిన డైజెస్ట్ల చిన్న జాబితా వరకు. డైజెస్ట్ పేరును కాదు, మొత్తం ధృవపత్రాన్ని ఆవరిస్తుంది కాబట్టి, పునరుద్ధరణ నిజంగా సమయం తీసుకునే పని అవుతుంది.
వేలిముద్ర నిజంగా ఏమి ప్రతిజ్ఞ చేస్తుంది
ధృవపత్రం యొక్క వేలిముద్ర DER-ఎన్కోడ్ చేసిన మొత్తం ధృవపత్రం యొక్క డైజెస్ట్, దాని పబ్లిక్ కీది కాదు, దాని విషయ-నామం ది కాదు. అందువల్ల ఒకే పేర్లు, ఒకే కీ కానీ వేర్వేరు చెల్లుబాటు తేదీలు ఉన్న రెండు ధృవపత్రాలకు వేర్వేరు వేలిముద్రలు ఉంటాయి. అదే పిన్నింగ్ను ఖచ్చితమైనదిగా చేస్తుంది, అదే పునరుద్ధరణను అంతరాయకరంగా చేస్తుంది. పిన్నింగ్ సాధారణంగా కీపై నమ్మకం అని అర్థం కాదు, ఎందుకంటే అది ఒక వస్తువును దాని జీవితంలో ఒక క్షణంలో పేర్కొంటుంది. ఎవరైనా డైజెస్ట్ను తెలుసుకోవచ్చు, దాన్ని తెలుసుకోవడం తనంతట తానే ఏదీ నిరూపించదు.
openssl x509 -in server.crt -noout -fingerprint -sha256
openssl x509 -in client-07.crt -noout -fingerprint -sha256
సరిపోలే ప్రైవేట్ కీని కలిగి ఉండటమే సహచరుడి దగ్గర ఆ ధృవపత్రం ఉందని నిరూపిస్తుంది, డైజెస్ట్ అంటే మరొక వైపు ఆ ధృవపత్రాన్ని అసలు ఆశించిందా లేదా అని నిర్ణయించే మార్గం. ఈ విభజనే ఈ రూపకల్పన పాత భాగస్వామ్య-రహస్య ఏర్పాటు కాకపోవడానికి కారణం: భాగస్వామ్య కీ అదే బైట్లు తెలిసిన ఎవరినైనా ప్రామాణీకరిస్తుంది, పిన్నింగ్ ఒక ధృవపత్రాన్ని ప్రామాణీకరిస్తుంది. వేరే పరికరం అదే రహస్యం యొక్క కాపీ కాక తన సొంత నమోదును పొందుతుంది, ఇది ఫైళ్లలో చిన్న భేదం మరియు హాని పరిధిలో పెద్ద భేదం.
పటం పరస్పరం, సమమితి కాదు
ప్రతి ముగింపు బిందువుకు రెండు విషయాలు కావాలి: తన స్వంత ప్రైవేట్ కీ ధృవపత్రంతో, మరియు ఏ సహచర ధృవపత్రాలను అంగీకరిస్తుందనే ప్రకటన. క్లయింట్లో ఆ ప్రకటన సర్వర్ ధృవపత్రం యొక్క డైజెస్ట్; సర్వర్లో అది నమోదైన క్లయింట్ డైజెస్ట్ల జాబితా. Community 2.6 కోసం చిన్న సెటప్ యొక్క అధికారిక ఉదాహరణ peer-fingerprint తో ఏర్పాటును చూపుతుంది, మరియు నిజమైన విస్తరణకు ఈ నమ్మక నమూనాను ఎంచుకునే ముందు దాన్ని చదవడం విలువైనది. రెండు దిశలు ఒక తిరగబడిన జాబితా కాదు, అవి ఒకే క్షణంలో విఫలం కావు.
| Verification direction | What is pinned | What never leaves that endpoint | How a wrong pin shows up |
|---|---|---|---|
| Client checks the server | One digest, for the server certificate | The server private key | The client aborts during the TLS handshake |
| Server checks the client | A digest per enrolled client | Each client private key | The server rejects the peer before a tunnel exists |
పరికరాన్ని జోడించడం సర్వర్లో అనుమతి జాబితాను సవరిస్తుంది, ఉన్న క్లయింట్ యొక్క ప్రైవేట్ పదార్థాన్ని కాపీ చేయకుండా మరియు సర్వర్ కీని ఎక్కడికీ కదిలించకుండా. రెండు దిశలు స్వతంత్రంగానూ విఫలమవుతాయి, ఇది నిర్ధారణలో ఉపయోగకరం: ఏ వైపు చేతులు కలపడాన్ని మూస్తుందో అదే ఆశ నెరవేరని వైపు. క్లయింట్ సర్వర్ను తిరస్కరిస్తే, డైజెస్ట్ సమర్పించిన ధృవపత్రంతో సరిపోలదు. సర్వర్ క్లయింట్ను తిరస్కరిస్తే, ఆ క్లయింట్ డైజెస్ట్ జాబితాలో లేదు, లేదా క్లయింట్ నమోదైనది కాక వేరే ధృవపత్రాన్ని సమర్పిస్తోంది.
నమోదు: కొత్త పరికరం ఎలా చేరుతుంది
కొత్త పరికరం యొక్క కీ మరియు ధృవపత్రాన్ని ప్రైవేట్ కీ ఉండే చోటే సృష్టించి, తర్వాత పబ్లిక్ వస్తువును మాత్రమే దాన్ని పిన్ చేయాల్సిన వైపుకు తరలించండి. ఆశించిన డైజెస్ట్ను మీరు ఇప్పటికే నమ్మే ఛానెల్ ద్వారా పంపండి, మరియు పరిచయమైనట్లు కనిపించే పేరుకు బదులు మొత్తం ధృవపత్రాన్ని పోల్చండి. ధృవపత్రంతో అదే ధృవీకరించని డౌన్లోడ్ నుండి కాపీ చేసిన డైజెస్ట్ రెండు ఫైళ్లు ఒకదానితో ఒకటి సరిపోతాయని మాత్రమే నిరూపిస్తుంది. ఇది స్థిరత్వ తనిఖీ, గుర్తింపు తనిఖీ కాదు, మరియు ఈ రూపకల్పన బలహీనపడే అత్యంత నిశ్శబ్ద మార్గం ఇదే.
సర్వర్లో, డైజెస్ట్ను జోడించడం సాధారణ నిర్వాహకుడి ద్వారా వెళ్లే కాన్ఫిగరేషన్ మార్పు, దాని తర్వాత తిరిగి కనెక్ట్ అవుతుంది. కొత్త పరికరం కనెక్ట్ అవుతుందని మరియు డైజెస్ట్ తొలగించిన పరికరం ఇక కనెక్ట్ కాదని నిర్ధారించండి. సానుకూల సందర్భాన్ని మాత్రమే కవర్ చేసే పరీక్ష అనుమతి జాబితాను ధృవీకరించనిదిగా వదిలివేస్తుంది, మరియు ఆరు నెలల తర్వాత మీరు సరిగ్గా ఆ స్థితిలోనే ఉంటారు.
పునరుద్ధరణ ఖరీదైన క్షణం
ప్రతి ధృవపత్రం గడువు ముగుస్తుంది, కీ మరియు పేర్లు అలాగే ఉన్నా కొత్త ధృవపత్రానికి కొత్త డైజెస్ట్ ఉంటుంది. జారీచేసేవాడి కింద పునరుద్ధరణ ఆ జారీచేసేవాడిని నమ్మే సహచరులకు పారదర్శకం; పిన్నింగ్ కింద అది ధృవపత్రాన్ని పిన్ చేసే ప్రతి సహచరుడికి నమోదు సంఘటన.
గడువు తేదీ తర్వాత కాదు, ముందే క్రమాన్ని ప్రణాళిక చేయండి. కొత్త డైజెస్ట్ను దాన్ని ధృవీకరించే పక్షాలకు పంపిణీ చేయండి, మార్పును అమలు చేయండి, ఆ తర్వాత మాత్రమే ముగింపు బిందువు వద్ద ధృవపత్రాన్ని మార్చండి. ఆ క్రమం ఏ ధృవపత్రం ప్రస్తుతమనే దానిపై రెండు వైపులూ ఏకీభవించని విండోను వదిలిపెట్టదు. జాబితాను కూడా సమీక్షలో ఉంచండి, ఎందుకంటే పిన్ చేసిన జాబితా నెలల క్రితం తొలగించిన పరికరాల నమోదులను సేకరిస్తుంది. ప్రతి పాత నమోదు దాని కీ నిలిచినట్లయితే ఇప్పటికీ ప్రామాణీకరించబడే గుర్తింపు, కాబట్టి ఒకటి తొలగించడం శుభ్రత కాదు, భద్రతా చర్య.
నమ్మక పటం నిర్ణయించనిది
ప్రామాణీకరణ ఒక పొర, పిన్ చేసిన పటం చిరునామా పూల్, నెట్టబడిన మార్గాలు, మార్గం యొక్క MTU లేదా ఫైర్వాల్ విధానం గురించి ఏమీ చెప్పదు. అవి ప్రత్యేక కాన్ఫిగరేషన్ మరియు ప్రత్యేక వైఫల్య పద్ధతులతో కొనసాగుతాయి. ప్రామాణీకరణ జరిగి ఎలాంటి ట్రాఫిక్ పంపని సొరంగం ఎప్పుడూ లేవని సొరంగం కంటే భిన్నమైన దర్యాప్తు.
పటం కూడా అపరిమితంగా స్కేల్ అవ్వదు, మరియు పెద్ద విస్తరణలు జారీచేసేవాడి ఆధారిత PKI వద్దకు చేరుకుంటాయి. ఆ ప్రాధాన్యత క్రిప్టోగ్రఫీ గురించి కాదు, కార్యాచరణ గురించి, ఎందుకంటే దళం పెరిగే కొద్దీ ప్రతి సహచరుడి వద్ద జాబితాను సవరించడం కంటే ఒక అధికారం ద్వారా గుర్తింపులను జోడించడం, తొలగించడం చవక. క్లయింట్ అమలు ఈ ఎంపికకు మద్దతు ఇవ్వని చోట, సమాధానం ఆ క్లయింట్ నమోదు చేసే అనుకూల నమ్మక నమూనా, లేదా మద్దతు ఉన్న ప్రత్యామ్నాయం. ధృవీకరణ హెచ్చరికను అణచివేయడం ఆ మద్దతును జోడించదు, మరియు రూపకల్పన యొక్క మొత్తం విలువ ధృవీకరణ ఇప్పటికీ జరగడమే.