OpenVPN tls-crypt-v2: క్లయింట్ కీ మరియు చుట్టిన blob ఏమి చేస్తాయి
tls-crypt-v2 ప్రొఫైల్లో క్లయింట్ నియంత్రణ కీ మరియు సర్వర్ మాత్రమే తెరవగల చుట్టిన ప్రతి ఉంటాయి. ప్రతి వస్తువును మరియు ప్రతి తొలగింపు దశను వేరుగా ఉంచండి.
tls-crypt-v2 ప్రొఫైల్ను టికెట్లో అతికించడం, ఫైల్లో ఏమి ఉందో లెక్కించే వరకు హానికరం కానిదిగా కనిపిస్తుంది. క్లయింట్ నియంత్రణ ఛానెల్ కీ అదే కీ యొక్క ఎన్క్రిప్ట్ చేసిన ప్రతి పక్కన ఉంటుంది, మూడవ వస్తువు అయిన చుట్టు కీ ఎప్పుడూ అంగీకరించే సర్వర్ను విడిచిపెట్టదు. ఈ మూడూ సంరక్షణ, భాగస్వామ్యం మరియు తొలగింపు గురించి వేర్వేరు ప్రశ్నలకు సమాధానం ఇస్తాయి. వాటిని వేరు చేయడం చాలా విధాన చర్చలను ప్రారంభం కాకముందే పరిష్కరిస్తుంది.
ప్రొఫైల్లో నిజంగా ఏమి ఉంది
tls-crypt-v2 యొక్క క్లయింట్ సగం ఒక కీ మరియు దాని చుట్టిన ప్రతి. క్లయింట్ నియంత్రణ ఛానెల్ రక్షణకు సాధారణ కీని ఉపయోగిస్తుంది మరియు సెటప్ సమయంలో చుట్టిన ప్రతిని సర్వర్కు అప్పగిస్తుంది, కాబట్టి సర్వర్ ప్రతి క్లయింట్కు స్పష్ట ప్రతిని నిల్వ చేయకుండా అదే కీని తిరిగి పొందుతుంది. చుట్టు కీ ఆ పునఃప్రాప్తిని సాధ్యం చేస్తుంది మరియు అంగీకరించే వైపుకు మాత్రమే చెందుతుంది. క్రింద ఉన్నవన్నీ ఆ మూడు వస్తువులు ఎక్కడ నివసిస్తాయి అనే దాని నుండి వస్తాయి.
| Object | Where it lives | What can open it | What a leak costs |
|---|---|---|---|
| Server wrapping key | accepting servers only | the unwrap step inside the server | every wrapped copy issued to that group becomes readable |
| Wrapped client key | inside the client profile | the server wrapping key | it names a client and exposes its metadata, but not the key inside |
| Client control key | inside the client profile, usable as-is | the client that owns it | someone can open handshakes as that client until the server refuses the key |
పట్టికను పేరుతో కాదు, సంరక్షణతో చదవండి, పరిణామాలు దానంతట అవే స్పష్టమవుతాయి. చుట్టు కీని కోల్పోవడం ఖరీదైన సంఘటన, ఎందుకంటే ప్రొఫైల్లో ఏదీ దాన్ని పునర్నిర్మించలేదు మరియు నిజాయితీ పునఃప్రాప్తి సమూహాన్ని మళ్లీ జారీ చేయడం. లీక్ అయిన ప్రొఫైల్ చవకైనది కానీ చాలా సాధారణం, ఎందుకంటే చుట్టిన ప్రతి ఫైల్ను పంచుకోవడానికి సురక్షితం చేస్తుందని నమ్మే వ్యక్తులు ప్రొఫైళ్లను టికెట్లలో అతికిస్తారు. రెండు వైఫల్యాలకు వేర్వేరు ప్రతిస్పందనలు అవసరం, అందుకే వస్తువులు వేరుగా ఉంచబడతాయి.
చుట్టిన ప్రతి మొత్తం కథ ఎందుకు కాదు
ప్రొఫైల్ ఉపయోగించగల క్లయింట్ పదార్థాన్ని దాని చుట్టిన జోడితో పాటు మోస్తుంది, కాబట్టి సర్వర్ కోసం ప్రతిని రక్షించడం ఫైల్ను రక్షించడం గురించి ఏమీ చెప్పదు. Blob పంపడానికి సురక్షితం, ప్రచురించడానికి అసురక్షితం. దానిలోని మెటాడేటా blob అందుకునే ప్రతి ఒక్కరికీ కనిపిస్తుంది, అది అతికించిన టికెట్ను తర్వాత చదివే వారికీ.
ప్రొఫైల్ను కాన్ఫిగరేషన్ నమూనాగా కాకుండా ఆధారంగా పరిగణించండి. లీక్ అయిన ఫైల్ దాని కలిగి ఉన్నవారికి సర్వర్ ఆ గుర్తింపును అంగీకరించడం ఆపే వరకు పని చేసే క్లయింట్ గుర్తింపును ఇస్తుంది, చుట్టడం ఆ విండో గురించి ఏమీ చేయదు. ప్రతి క్లయింట్కు ఒక ప్రొఫైల్ జారీ చేయండి, తద్వారా ఉపసంహరణ ఒక ఫైల్ నిర్ణయంగా ఉంటుంది, మరియు చుట్టు కీ బ్యాకప్ను అది సక్షమం చేసే సర్వర్ కాన్ఫిగరేషన్ నుండి వేరుగా ఉంచండి. రెండు అలవాట్లు రాజీకి గురైన ప్రొఫైల్ను బాగు చేయవు, కానీ రెండూ తదుపరిది ఎంత త్వరగా నియంత్రించబడుతుందో నిర్ణయిస్తాయి.
హ్యాండ్షేక్లో ధృవీకరణ హుక్ ఎక్కడ ఉంటుంది
ధృవీకరణ హుక్ TLS స్టాక్ బహిర్గతం కాకముందే నడుస్తుంది, దాని పని చుట్టిన blobలో తీసుకువెళ్లే మెటాడేటాను పరిశీలించడం. అది ఆ మెటాడేటా మరియు చిన్న, పత్రీకృత వాతావరణాన్ని పొందుతుంది, ప్రామాణీకరణ హుక్ కంటే దానికి పని చేయడానికి తక్కువ పదార్థం ఉంటుంది. వినియోగదారు పేర్లు, సెషన్ స్థితి లేదా ప్లగిన్ వేరియబుల్స్ చూస్తుందని ఊహించడం ఈ హుక్ను దురదృష్టకరంగా రాయడానికి సాధారణ మార్గం. మరో హుక్ నుండి ఆశలను అప్పు తీసుకోవడం బదులు హుక్ సొంత మాన్యువల్ విభాగాన్ని చదవండి.
దాని నిష్క్రమణ స్థితి నిర్ణయం: సున్నా కాని ఫలితం క్లయింట్ను తిరస్కరిస్తుంది, సున్నా ఫలితం హ్యాండ్షేక్ కొనసాగనిస్తుంది. అందుకే మెటాడేటా లేనప్పుడు, విశ్లేషించలేనప్పుడు లేదా ఊహించనప్పుడు ఏమి జరుగుతుందో విధానం చెప్పాలి. మొదట తిరస్కార మార్గాన్ని రాయండి, తర్వాత ఏ విలువలు ఆమోదయోగ్యమో నిర్ణయించండి.
tls-crypt-v2 /etc/openvpn/server/tcv2-server.key
tls-crypt-v2-verify /etc/openvpn/server/verify-client-metadata.shఆ రెండు పంక్తులు సర్వర్పై విధాన ఉపరితలం: ఒకటి చుట్టు కీని పేర్కొంటుంది, మరొకటి ప్రతి క్లయింట్ను నిర్ణయించే ప్రోగ్రామ్ను పేర్కొంటుంది. ఆసక్తికరమైనవన్నీ స్క్రిప్ట్లో నివసిస్తాయి, ఇది వెర్షన్ నియంత్రణ మరియు మరే ఇతర యాక్సెస్ నియమానికైనా సమాన సమీక్షకు అర్హమైనది.
ఖాతా, ధృవపత్రం మరియు నియంత్రణ కీ విడివిడిగా తొలగబడతాయి
నియంత్రణ ఛానెల్ ముందస్తు అంగీకారం ప్రామాణీకరణ కాదు, ఎందుకంటే ఇది TLS గుర్తింపు తనిఖీకి ముందు మరియు ఏ ఖాతా అధికారానికైనా ముందు జరుగుతుంది. ఖాతాను నిష్క్రియం చేయడం, ధృవపత్రాన్ని రద్దు చేయడం మరియు క్లయింట్ నియంత్రణ కీని తిరస్కరించడం మూడు యంత్రాంగాలతో మూడు చర్యలు. వాటిలో ఒకటి మాత్రమే చేసే అమరికలో విధానం కాదు, ఖాళీ ఉంటుంది. మూడింటినీ ఉద్దేశపూర్వకంగా సమన్వయపరచండి, మరియు ఏ దశ ఏ అధికారాన్ని వినియోగిస్తుందో నమోదు చేయండి.
సమయం రెండవ భేదం. మారిన అంగీకార జాబితా కొత్త హ్యాండ్షేక్లకు వర్తిస్తుంది, ఇప్పటికే ఏర్పాటైన సెషన్లు ఏదో వాటిని ముగించే వరకు కొనసాగుతాయి. కొత్త జాబితాలోని ఎంట్రీలను పాత సెషన్లు ముగిశాయనే రుజువుగా లెక్కించడమే తొలగించిన క్లయింట్ గంటల తరబడి కనెక్ట్ అయి ఉండే విధానం.
సమన్వయపరచని అధికారాలు ఆచరణలో సులభంగా కనుగొనగల రెండు రంధ్రాలను మిగులుస్తాయి. ఖాతా నిష్క్రియంగా ఉన్నప్పటికీ దాని నియంత్రణ కీ ఇంకా హ్యాండ్షేక్ తెరుస్తుంది, ధృవపత్రం రద్దైనప్పటికీ మెటాడేటా విధానం అదే క్లయింట్ను ఇంకా అంగీకరిస్తుంది. రెండూ వేర్వేరు ప్రదేశాల్లో ఒకే తప్పు, ఎందుకంటే నిర్వాహకుడు ఒక జాబితాను సంపూర్ణ అధికారంగా భావించాడు. తొలగించే సమయంలో మూడు జాబితాలను పక్కపక్కన ఉంచండి, తప్పు కనిపిస్తుంది.
ప్రొఫైల్ జారీ చేయడం మరియు ఉపసంహరించడం
జారీ చేయడం సులభమైన సగం: అంగీకరించే వైపు క్లయింట్ కీని సృష్టించండి, ప్రొఫైల్ను సరిగ్గా ఒక యజమానికి అప్పగించండి, చుట్టు పదార్థాన్ని పరిమితంగా ఉంచండి, మరియు ప్రతి అంగీకరించే సర్వర్లో అదే ధృవీకరణ ప్రోగ్రామ్ను అమలు చేయండి. చవకైన ప్రవేశం మొత్తం సమూహం యొక్క లక్షణం, కొత్త హోస్ట్ యొక్క కాదు. పాత లేదా వదులైన స్క్రిప్ట్ ఉన్న రెండవ సర్వర్ నిశ్శబ్దంగా అమరికలో బలహీనమైన మార్గంగా మారుతుంది.
ఉపసంహరణకు మూడు దశలు ఉద్దేశపూర్వక క్రమంలో అవసరం. కొత్త హ్యాండ్షేక్లు విఫలమయ్యేలా ధృవీకరణ హుక్లో క్లయింట్ను తిరస్కరించండి, PKI ఉపయోగిస్తే దాని ధృవపత్రాన్ని రద్దు చేయండి, మరియు తర్వాత అధికారం ఇవ్వడానికి ఏమీ లేకుండా ఖాతాను నిష్క్రియం చేయండి. తర్వాత పాత అంగీకారం అనుమతించిన సెషన్లను ముగించండి, ఎందుకంటే అవి మూడింటిలో దేనినీ గమనించవు. మీరు విరగ్గొట్టగల క్లయింట్పై క్రమాన్ని సాధన చేయండి.
ప్రొఫైల్లోని మెటాడేటా ఆ విధానానికి ఇన్పుట్, యాక్సెస్ నియంత్రణ ఇప్పటికే ఉందని రుజువు కాదు. OpenVPN 2.6 డిజైన్ పత్రం వస్తువులను మరియు అవి గీసే సరిహద్దును వివరిస్తుంది, వాటిని అమలు చేయడం నిర్వాహకుడి వద్దే ఉంటుంది.