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