స్వయం-సంతకం చేసిన VPN సర్టిఫికేట్: దాని అర్థం ఏమిటి మరియు అది ఏదాన్ని నమ్ముతుంది
స్వయం-సంతకం చేసిన VPN సర్టిఫికేట్ ఇప్పటికీ ట్రాఫిక్ను ఎన్క్రిప్ట్ చేస్తుంది. మారేది ఏమిటంటే, దాన్ని నమ్మమని మీరు ఎవరికి చెప్పారు, ఏ నిల్వ ఆ నమ్మకాన్ని పొందుతుంది మరియు ఏ తనిఖీలు మిగులుతాయి.
ఇక్కడ ఎక్కువ హాని చేసేది రెండు నమ్మకాలు: స్వయం-సంతకం చేసిన VPN సర్టిఫికేట్ అంటే సొరంగం ఎన్క్రిప్ట్ చేయబడలేదు అని, మరియు VPN క్లయింట్ అడిగిన ఏదైనా ఇన్స్టాల్ చేయడం VPN పైనే ప్రభావం చూపుతుంది అని. రెండూ నిజమైన అమలుతో సంబంధం పెట్టుకున్నప్పుడు నిలబడవు. స్వయం-సంతకం చేసిన సర్టిఫికేట్ సంతకం సంబంధాన్ని వివరిస్తుంది, భద్రతా తీర్పును కాదు, మరియు మీరు జోడించే నమ్మకం పరిధి అది ఏ నిల్వలో పడుతుంది అనేదానిపై ఆధారపడి ఉంటుంది. ఒక సహాయ కేంద్రం ఒక హెచ్చరికను నిశ్శబ్దం చేయడానికి ప్రొవైడర్ మూలాన్ని Windows యంత్రంలోకి దిగుమతి చేసి, తర్వాత బ్రౌజర్ సంబంధం లేని పోర్టల్ గురించి ఫిర్యాదు చేయడం ఎందుకు ఆపిందో వివరిస్తూ మధ్యాహ్నం గడిపినట్టు నేను చూశాను. ఈ ప్రశ్నలోని రెండు భాగాలు కలిసే ఉంటాయి, కాబట్టి వాటిని ఒకటిగా పరిగణించండి.
సర్టిఫికేట్ నమ్మక నిల్వ కాదు
సర్వర్ అందించే ఫైల్ పబ్లిక్ కీ, సబ్జెక్ట్ పేరు, జారీచేసినవారి పేరు, చెల్లుబాటు తేదీలు మరియు పొడిగింపులను కలిగి ఉంటుంది. స్వయం-సంతకం అంటే సబ్జెక్ట్ మరియు జారీచేసినవారు ఒకే సంస్థ, మరియు సంతకం సర్టిఫికేట్ సొంత కీతో ధృవీకరించబడుతుంది. ఆ నిర్వచనంలో ఏదీ కనెక్షన్ బలహీనం అని చెప్పదు, క్లయింట్ దాన్ని అంగీకరిస్తుందని కూడా ఏదీ చెప్పదు.
అంగీకారం మరో చోటి నుండి వస్తుంది: మీరు క్లయింట్ను చూపించే CA ఫైల్, మీరు చేతితో పోల్చే వేలిముద్ర, లేదా క్లయింట్ చదివే నిల్వలో ఇప్పటికే ఉన్న మూలం. అమలు పూర్తిగా ఆరోగ్యకరంగా ఉండవచ్చు, కానీ దాని సర్టిఫికేట్ ప్రతి పబ్లిక్ పరీక్షలో విఫలమవుతుంది. openssl verify సిస్టమ్ బండిల్పై తెలియని జారీచేసినవారిని నివేదిస్తుంది, ఆ నివేదిక లోపం కాదు, సరైనది.
OpenVPN యొక్క ca ఎంపిక యాప్-పరిమిత నమ్మకానికి అత్యంత స్పష్టమైన సందర్భం. ఆ ఫైల్ క్లయింట్ అంగీకరించే యాంకర్లను పేర్కొంటుంది, మరియు అందులో ఒక ప్రైవేట్ CA లేదా చిన్న అమలులో సర్వర్ సొంత స్వయం-సంతకం సర్టిఫికేట్ ఉండవచ్చు. వెర్షన్ 2.6 CA ఫైల్ను పంపిణీ చేయడానికి బదులుగా SHA-256 వేలిముద్రను పిన్ చేయడానికి --peer-fingerprint ను కూడా అంగీకరిస్తుంది. WireGuard ఇంకా దూరంగా ఉంది: అందులో సర్టిఫికేట్లే లేవు, ప్రతి భాగస్వామికి ఒక స్థిర పబ్లిక్ కీ మాత్రమే, కాబట్టి స్వయం-సంతకం ప్రశ్న దానికి వర్తించదు.
మీరు నమ్మకాన్ని ఎక్కడ ఇన్స్టాల్ చేస్తారో అది ఎవరు వారసత్వంగా పొందుతారో నిర్ణయిస్తుంది
ఒకే సర్టిఫికేట్ను మూడు చోట్ల ఉంచండి, మూడు వేర్వేరు పేలుడు వ్యాసార్థాలు లభిస్తాయి. VPN క్లయింట్ మాత్రమే చదివే బండిల్ ఆ క్లయింట్పై ప్రభావం చూపుతుంది. ఆపరేటింగ్ సిస్టమ్ నిల్వలోని మూలం ఆ నిల్వను సంప్రదించే ప్రతి ప్రోగ్రామ్పై ప్రభావం చూపుతుంది. సొంత నమ్మక డేటాబేస్ ఉన్న బ్రౌజర్ రెండింటినీ పట్టించుకోకపోవచ్చు, అందుకే పని చేసినట్టు అనిపించిన దిగుమతి తర్వాత కూడా హెచ్చరిక నిలిచి ఉండవచ్చు.
Debian లేదా Ubuntu లో, /usr/local/share/ca-certificates/ లో ఫైల్ వేయడం మరియు update-ca-certificates అమలు చేయడం సిస్టమ్-వ్యాప్త బండిల్ను మారుస్తాయి. Windows లో, certutil -addstore -f Root యంత్ర నిల్వకు వ్రాస్తుంది మరియు ఎలివేటెడ్ ప్రాంప్ట్ అవసరం, అయితే -user జోడించడం బదులుగా ప్రస్తుత వినియోగదారు నిల్వను లక్ష్యంగా చేసుకుంటుంది; రెండూ పరస్పరం మార్చుకోలేనివి. Firefox తన సొంత NSS డేటాబేస్ను ఉంచుతుంది, కాబట్టి OS స్థాయి దిగుమతి అక్కడ ఎప్పటికీ కనిపించకపోవచ్చు.
పరిధి ముఖ్యం, ఒక అధికారం ఏమి చేయగలదు అనే దాని వల్ల. జారీ చేసే CA తనకు సంబంధం లేని పేర్లకు సంతకం చేయగలదు, కాబట్టి ఆ నిల్వను నమ్మే ఏదైనా ఆ సంతకాలను అంగీకరిస్తుంది. ఒకే పిన్ చేసిన ఆకు అలా చేయలేదు; అది సరిగ్గా ఒక భాగస్వామి గుర్తింపును ధృవీకరిస్తుంది. లక్ష్యం ఒక VPN కనెక్ట్ అవ్వడం అయితే, యాప్-పరిమిత CA లేదా పిన్ చేసిన ఆకు దాన్ని చేరుతుంది, అయితే యంత్రం మొత్తానికి మూలం లక్షణం అడిగే దానికంటే చాలా పెద్ద రాయితీ.
పబ్లిక్ CA లేకుండా మీరు ఇప్పటికీ ఎన్క్రిప్ట్ చేస్తున్నారు
TLS చేతులు కలపడం సెషన్ కీలను పొందుతుంది, భాగస్వామి సర్టిఫికేట్ మీరు ఇప్పటికే నమ్మే దానితో గొలుసుగా కలిసినా కలవకపోయినా. స్వయం-సంతకం అంటే సాదా పాఠ్యం కాదు, ట్రాఫిక్ ఎగురుతున్నప్పుడు చదవగలిగేది అని కూడా కాదు. అర్థం ఏమిటంటే, కీ తాను అడిగిన సర్వర్కు చెందుతుందని నమ్మడానికి క్లయింట్కు ముందుగానే కారణం లేదు.
ఆ ఖాళీలోనే నిజమైన దాడులు నివసిస్తాయి. ఏ సర్టిఫికేట్నైనా అంగీకరించేలా కాన్ఫిగర్ చేయబడిన క్లయింట్, నిలిపివేసిన ధృవీకరణ సెట్టింగ్ ద్వారా లేదా ఒకసారి నొక్కి మరచిపోయిన “అయినా నమ్ము” బటన్ ద్వారా, సమాధానం చెప్పే ఎవరికైనా సంతోషంగా ఎన్క్రిప్ట్ చేస్తుంది. అడ్డగింపు ప్రామాణీకరణ దశలో, యాప్ డేటా కదలకముందే జరుగుతుంది. గుర్తింపు తనిఖీ లేని ఎన్క్రిప్షన్ నిష్క్రియ పర్యవేక్షకుడిని బయట ఉంచుతుంది మరియు ఎక్కువేమీ చేయదు.
జారీచేసినవారిని నమ్మడం పేరు తనిఖీని దాటించదు
గొలుసు ధృవీకరణ, పేరు సరిపోలిక మరియు సర్టిఫికేట్ ఉద్దేశ్యం వేర్వేరు నిర్ణయాలు. గొలుసు చెల్లుబాటు అయినప్పటికీ పేరు తప్పు ఉండవచ్చు, పేరు సరిపోలినప్పటికీ సర్టిఫికేట్ వేరే పాత్ర కోసం జారీ చేయబడి ఉండవచ్చు. RFC 5280 ఆ పరిమితులను మోసే ఫీల్డ్లను నిర్వచిస్తుంది, మరియు క్లయింట్ వాటిని ఎంత కఠినంగా అమలు చేస్తుంది అనేది ప్రతి యాప్లికేషన్ విషయం.
OpenVPN విభజనను కనిపించేలా చేస్తుంది. verify-x509-name name, name-prefix లేదా subject సరిపోలిక ద్వారా ఆశించిన సబ్జెక్ట్ను పిన్ చేస్తుంది. remote-cert-tls server భాగస్వామి సర్టిఫికేట్ సర్వర్ సర్టిఫికేట్గా ఉపయోగించగలిగి ఉండాలని కోరుతుంది, ఇది జారీచేసినవారిని నమ్మినా క్లయింట్-మాత్ర సర్టిఫికేట్ను తిరస్కరిస్తుంది. రెండు సెట్టింగ్లలో ఏదీ CA ఫైల్ పంపడం ద్వారా భర్తీ చేయబడదు.
ఏదైనా నిర్ణయించే ముందు సర్టిఫికేట్ను పరిశీలించండి:
openssl x509 -in server.crt -noout -subject -issuer -dates -ext subjectAltNameఎవరు, ఏ పేర్ల కోసం, ఎప్పటివరకు జారీ చేశారో చూపుతుంది.openssl verify -CAfile ca.crt server.crtమీరు పంపబోయే గొలుసు ఆకును నిజంగా ధృవీకరిస్తుందా అని తనిఖీ చేస్తుంది.openssl s_client -connect vpn.example.net:443 -servername vpn.example.net -CAfile ca.crt -verify_return_errorవెబ్ పోర్టల్ వంటి TLS ముగింపు బిందువులకు పనిచేస్తుంది; 1194 పై OpenVPN ప్రోటోకాల్ సాధారణ TLS స్ట్రీమ్ కాదు, కాబట్టి ఆ పరీక్ష అక్కడ వర్తించదు.
గడువు ముగిసిన తేదీ, మీరు కనెక్ట్ అయ్యే పేరుకు subjectAltName లేకపోవడం, లేదా serverAuth వినియోగం లేకపోవడం ఉన్న సర్టిఫికేట్ యాంకర్ ఎంత జాగ్రత్తగా ఇన్స్టాల్ చేసినా విఫలమవుతుంది.
ఒకటి అంగీకరించే ముందు ఐదు తనిఖీలు
మీరు సరిచేయడానికి ప్రయత్నిస్తున్న కనెక్షన్ కాని ఛానెల్ ద్వారా వేలిముద్రను పోల్చండి: కన్సోల్, మీ దగ్గర ఇప్పటికే ఉన్న ఇన్స్టాలర్, సంతకం చేసిన కాన్ఫిగరేషన్ ఫైల్. సర్వర్పై openssl x509 -in server.crt -noout -fingerprint -sha256 మరియు క్లయింట్ లాగ్లో అదే విలువ ఒకే వస్తువును చూస్తున్నారని తెలుసుకోవడానికి సరిపోతాయి.
తర్వాత, మీరు ఏమి ఇన్స్టాల్ చేస్తున్నారో నిర్ణయించండి: ఒక ఆకు, లేదా మరిన్ని తయారు చేయగల అధికారం. అప్పుడు అది ఎక్కడికి వెళ్తుందో నిర్ణయించి, ఆ నిల్వను చదివే యాప్లికేషన్లను పేర్కొనండి. తొలగింపు మార్గాన్ని ఇంకా గుర్తుండగానే రాయండి, ఎందుకంటే నమ్మి-ముందుకు-సాగు అనేది తాత్కాలిక దిగుమతి శాశ్వతం అయ్యే మార్గం.
చివరగా, మార్పును ప్రణాళిక చేయండి. పిన్ చేసిన సర్టిఫికేట్ లేదా వేలిముద్ర సర్టిఫికేట్ తిరిగినప్పుడు అదే విశ్వసనీయ ఛానెల్ ద్వారా నవీకరించబడాలి, మరియు ప్రైవేట్ CA కి దాని సొంత జారీ మరియు రద్దు జీవిత చక్రం ఉంటుంది. ప్రైవేట్ కీ లీక్ అయితే, అదే సర్టిఫికేట్ కాపీపై మళ్లీ నమ్మకం పెట్టడం ఏమీ సరిచేయదు; గుర్తింపు మార్చాలి.
ఒక హెచ్చరిక ఐదు తనిఖీలన్నింటినీ దాటి నిలిచినట్టయితే, ఉపయోగకరమైన ప్రశ్న ఏ బటన్ దాన్ని నిశ్శబ్దం చేస్తుంది అనేది కాదు, క్లయింట్ నిజంగా ఏ నిల్వను చదువుతుంది మరియు ఆ మూలం ఎక్కడి నుండి వచ్చింది అనేది. దానికి సమాధానం చెప్పండి, మీరు చేయబోయే దిగుమతి ప్రతిచర్యకు బదులు నిర్ణయం అవుతుంది.