સ્વ-સહી કરેલું 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નું પોતાનું જારી અને રદ કરવાનું જીવનચક્ર છે. જો ખાનગી કી લીક થાય, તો એ જ પ્રમાણપત્રની નકલ પર ફરી ભરોસો કરવાથી કંઈ સુધરતું નથી; ઓળખ બદલવી પડશે.
જો ચેતવણી પાંચેય તપાસમાંથી પસાર થાય, તો ઉપયોગી પ્રશ્ન એ નથી કે કયું બટન તેને શાંત કરે છે, પણ એ કે ક્લાયન્ટ ખરેખર કઈ સ્ટોર વાંચે છે અને તે રૂટ ક્યાંથી આવ્યું. તેનો જવાબ આપો, અને તમે કરવા જઈ રહ્યા છો તે ઇમ્પોર્ટ પ્રતિક્રિયાને બદલે નિર્ણય બની જશે.