PKCS12, PEM அல்லது DER: VPN வாடிக்கையாளருக்கு உண்மையில் தேவை என்ன
பொதி முறை உங்கள் வாடிக்கையாளர் அடையாளத்தை இறக்குமதி செய்கிறதா என்பதைத் தீர்மானிக்கிறது, அது நம்பகமானதா என்பதை அல்ல. PKCS12, PEM, DER ஆகியவற்றை ஒப்பிட்டு, பின்னர் சரிபார்க்கவும்.
சான்றிதழ் விவாதங்களில் இரண்டு கூற்றுகள் சுற்றி வருகின்றன. முதலாவது, .p12 வலுவான தேர்வு என்றும் .pem தளர்வானது என்றும்; இரண்டாவது, ஒரு உரைக் கோப்பை நீங்கள் படிக்க முடியும் என்பதால் அதை அனுப்புவது பாதுகாப்பானதாக இருக்க வேண்டும் என்றும். இவை இரண்டில் எதுவும் ஒரு நிமிட ஆய்வைக்கூட தாங்காது.
PKCS12, PEM, DER ஆகியவை சான்றிதழ் பொருட்கள் எவ்வாறு பொதி செய்யப்பட்டு குறியாக்கம் செய்யப்படுகின்றன என்பதை விவரிக்கின்றன. எதிர் தரப்பு யார், வழங்குநர் நம்பகமானவரா, கோப்புக்கு கடவுச்சொல் தேவையா என்பதை அவை தீர்மானிக்கவில்லை.
வாடிக்கையாளர் எதை ஏற்கிறார் என்பது இணக்கத்தன்மையின் கேள்வி. கோப்பில் என்ன இருக்கிறது என்பது அடையாளத்தின் கேள்வி. இவற்றைத் தனித்தனியாக வைத்தால், பெரும்பாலான இறக்குமதி பிழைகள் மர்மமாக இருக்காது.
மூன்று கொள்கலன்கள், ஒரே பொருள் மாதிரி
உண்மையில் உங்களிடம் இருப்பதிலிருந்து தொடங்குங்கள். சான்றிதழ் என்பது ஒரு பொது விசையைப் பற்றிய கையொப்பமிடப்பட்ட அறிக்கை. தனிப்பட்ட விசை என்பது அந்த விசையை நீங்கள் கட்டுப்படுத்துகிறீர்கள் என்பதை நிரூபிக்கும் தனி பொருள். சங்கிலி என்பது உங்கள் சான்றிதழை வாடிக்கையாளர் நம்பும் ஒரு மூலத்துடன் இணைக்கும் வழங்குநர்களின் தொகுப்பு. பொதி முறை எதுவாக இருந்தாலும் இம்மூன்றும் இருக்கும்.
PKCS12 கோப்பு, பொதுவாக .p12 அல்லது .pfx, RFC 7292 இல் வரையறுக்கப்பட்ட ஒரு கொள்கலன்; இது ஒரு தனிப்பட்ட விசை, ஒன்று அல்லது அதற்கு மேற்பட்ட சான்றிதழ்கள் மற்றும் சங்கிலியை ஒரே கடவுச்சொல் பாதுகாக்கப்பட்ட தொகுதியில், அடையாளத்தைக் குறிக்கும் மாற்றுப் பெயருடன் சுமக்க முடியும். PEM கோப்பு என்பது RFC 7468 இல் வரையறுக்கப்பட்ட உரை வடிவமைப்பு: BEGIN மற்றும் END வரிகளுக்கு இடையே ஒரு base64 உடல், ஒரு கோப்பில் தொடர்ச்சியாக பல தொகுதிகளை வைத்திருக்கலாம். DER என்பது அதே ASN.1 கட்டமைப்புகளின் இருமக் குறியாக்கம், PEM உடல் என்பது base64 ஆல் சுற்றப்பட்ட DER தான்.
கடைசி வாக்கியம் தான் நினைவில் வைத்திருக்கத் தகுந்தது. PEM ஐ DER ஆக மாற்றுவது உறையை மீண்டும் எழுதுகிறது, உள்ளடக்கத்தை அல்ல; திரும்ப மாற்றினால் அசல் பைட்டுகளே கிடைக்கும்.
| Container | Can hold | Does not decide |
|---|---|---|
| PKCS12 (.p12, .pfx) | Key, leaf certificate, chain, alias, password | Which root the client trusts |
| PEM (.pem, .crt, .cer) | Any number of base64 blocks | Whether the private key is present |
| DER (.der, .cer) | One binary structure | The object type, whatever the extension says |
குறியாக்கம் என்பது மறையாக்கம் அல்ல
Base64 ஒரு கடத்தல் எழுத்துக்கூட்டு. அது எதையும் மறைக்கவில்லை, யாரும் ஒரு ஷெல்லில் PEM தொகுதியைப் புரிந்துகொள்ள முடியும். DER கோப்பு இருமமானது மற்றும் சமமாக பொதுவானது. இந்த இரண்டு பண்புகளும் பாதுகாப்பு அல்ல, கடவுச்சொல் உள்ளது என்பதையும் அவை குறிக்கவில்லை.
உண்மையான பாதுகாப்பு விசைப் பொருளில் உள்ளது. PKCS12 தொகுப்பு அதன் உள்ளடக்கத்தை கடவுச்சொல்லிலிருந்து பெறப்பட்ட விசையால் மறையாக்கம் செய்ய முடியும். PEM தனிப்பட்ட விசையை பழைய தலைப்புத் தொகுதியால் மறையாக்கம் செய்யலாம் அல்லது PKCS#8 EncryptedPrivateKeyInfo க்குள் வைத்திருக்கலாம். ஒரு சான்றிதழ் தனியாக எந்த ரகசியத்தையும் கொண்டிருக்கவில்லை, அதனால்தான் சான்றிதழை மட்டும் உருவாக்கிய ஏற்றுமதி, எந்த வடிவத்தில் சுற்றினாலும் வாடிக்கையாளரை அங்கீகரிக்க முடியாமல் விட்டுவிடுகிறது.
நீட்டிப்பு ஒரு குறிப்பு, ஒரு ஒப்பந்தம் அல்ல. .cer மற்றும் .crt இல் முடியும் கோப்புகள் இரண்டு குறியாக்கங்களிலும் தோன்றும், மேலும் சாதனங்கள் DER சான்றிதழ்களை .pem பெயர்களில் ஏற்றுமதி செய்வது மிகவும் பொதுவானது, எனவே பின்னொட்டிலிருந்து ஊகிப்பது ஒரு மதியத்தை வீணாக்கும். அதற்குப் பதிலாக முதல் பைட்டுகளைப் படியுங்கள்: PEM கோப்பு BEGIN வரியுடன் தொடங்குகிறது, DER 0x30 உடன் தொடங்குகிறது, ஏனெனில் வெளிப்புற கட்டமைப்பு SEQUENCE.
இறக்குமதி உண்மையில் தோல்வியடைவதன் காரணம்
வாடிக்கையாளர் பிழைச் செய்திகள் பல வேறுபட்ட சிக்கல்களை செல்லாத சான்றிதழ் பற்றிய ஒரே வாக்கியமாக சுருக்குகின்றன, எனவே அவற்றை காரணத்தால் பிரிக்கவும். மிகவும் பொதுவானது குறியாக்கப் பொருந்தாமை: PEM ஐ பகுப்பாய்வு செய்யும் வாடிக்கையாளர் DER கோப்பில் பகுப்பாய்வு பிழையைத் திருப்பித் தருகிறார், தீர்வு புதிய சான்றிதழ் அல்ல, மாற்றம் தான். இரண்டாவது காணாமல் போன விசை; சான்றிதழ் சரியாக இருக்கும், ஆனால் அடையாளத்தை நிரூபிக்க முடியாது. மூன்றாவது சங்கிலி; இடைநிலை இல்லாத தொகுப்பு இறக்குமதி உரையாடலில் சரியாகத் தெரியும், ஆனால் கைக்குலுக்கலின் போது தோல்வியடையும்.
மறையாக்க அளவுருக்கள் நான்காவதை ஏற்படுத்துகின்றன, அது தவறான கடவுச்சொல் போலவே தெரிகிறது. பழைய சாதனங்கள் RC2-40 மற்றும் 3DES உடன் PKCS12 கோப்புகளை ஏற்றுமதி செய்தன; பழைய வழங்குநர் ஏற்றப்படாவிட்டால் OpenSSL 3 அவற்றை ஏற்காது. AES-256-CBC மற்றும் PBKDF2 உடன் சாதனத்திலிருந்து மீண்டும் ஏற்றுமதி செய்வதே நீடித்த தீர்வு. ஒரு கோப்புக்காக வாடிக்கையாளர் இயந்திரத்தில் பழைய மறைக்குறியீடுகளை நிரந்தரமாக இயக்குவது மோசமான பரிவர்த்தனை.
ஐந்தாவது தெளிவின்மை. இரண்டு விசைகளையும் இரண்டு சான்றிதழ்களையும் கொண்ட கொள்கலன், அல்லது மூன்று CERTIFICATE தொகுதிகளைக் கொண்ட PEM கோப்பு, வாடிக்கையாளரைத் தேர்ந்தெடுக்க வற்புறுத்துகிறது, அவரது தேர்வு பெரும்பாலும் முதல் உருப்படியாகவே இருக்கும். சுரங்கப்பாதை தவறான அடையாளத்துடன் எழும்பினால், அதுவே வழக்கமான காரணம்.
மாற்றுவதற்கு முன் ஆய்வு செய்யுங்கள்
ரகசியங்களை அச்சிடாமல் கட்டமைப்பைப் படியுங்கள். openssl pkcs12 -in bundle.p12 -info -noout விசை மற்றும் சான்றிதழ் வெளியீட்டை அடக்கி, மறையாக்க வழிமுறைகளையும் மாற்றுப் பெயர்களையும் தெரிவிக்கிறது, மேலும் openssl-pkcs12 கையேடு கொடிகளை விவரிக்கிறது. -noout ஐ நீக்கி -nodes ஐச் சேர்ப்பது நீங்கள் சேமிக்க நினைக்கும் கோப்புகளை உருவாக்குவதற்கே, விரைவாகப் பார்ப்பதற்கல்ல, ஏனெனில் அது தனிப்பட்ட விசையை வெளிப்படையாக எழுதுகிறது.
சான்றிதழுக்கு, openssl x509 -in cert.pem -noout -subject -issuer -dates இறக்குமதி உரையாடல் பதிலளிக்காததைப் பதிலளிக்கிறது, -ext subjectAltName சேர்ப்பது சான்றிதழ் உண்மையில் செல்லுபடியாகும் பெயர்களைக் காட்டுகிறது. கோப்பு DER ஆக இருந்தால், -inform DER சேர்க்கவும்; அந்த ஒரு கொடி பெரும்பாலான ஏற்ற முடியாத பிழைகளைத் தீர்க்கிறது.
ஒரு விசையை ஒரு சான்றிதழுடன் பொருத்துவது இயந்திரத்தனமானது, எந்த இறக்குமதிக்கும் முன் செய்வது மதிப்புள்ளது:
openssl x509 -in cert.pem -noout -pubkey | openssl sha256openssl pkey -in key.pem -pubout | openssl sha256
ஒரே மாதிரியான சுருக்கங்கள் அந்த ஜோடி ஒன்றுக்கொன்று சேர்ந்தது என்பதைக் குறிக்கின்றன. வேறுபட்ட சுருக்கங்கள் உங்களிடம் தவறான விசை உள்ளது என்பதைக் குறிக்கின்றன, எவ்வளவு வடிவ மாற்றமும் அதை மாற்றாது.
வடிவம் ஒருபோதும் மாற்றாதவை
நம்பிக்கை முடிவுகள் கொள்கலனுக்கு மேலே நடக்கின்றன. வாடிக்கையாளர் சங்கிலியை அதன் சேமிப்பகத்தில் உள்ள மூலம் வரை நடந்து, செல்லுபடியாகும் காலத்தைச் சரிபார்த்து, வாடிக்கையாளர் அங்கீகாரத்திற்கான நீட்டிக்கப்பட்ட விசைப் பயன்பாட்டைச் சரிபார்த்து, சேவையகப் பக்கத்தில் அது அழைத்த பெயர் சான்றிதழில் தோன்றுகிறதா என்பதைச் சரிபார்க்கிறது. அந்த படிகளில் எதுவும் கோப்பு நீட்டிப்பைப் படிக்கவில்லை.
அதனால்தான் பிழை மறையும் வரை கோப்பை மறுபெயரிடுவது நேரத்தை இழக்கும் நம்பகமான வழியாக இருக்கிறது. இறக்குமதி வெற்றியடைகிறது, அடையாளம் இன்னும் தவறாகவே உள்ளது, தோல்வி கைக்குலுக்கலின் போது மீண்டும் தோன்றுகிறது, அங்கு செய்தி குறைவாக உதவுகிறது. இரண்டு ஆண்டுகளுக்கு முன் ஏற்றுமதி செய்யப்பட்ட தொகுப்பு தூய்மையாக இறக்குமதியாகி இன்னும் நிராகரிக்கப்படுவதற்கும் இதுவே காரணம்: காலாவதி தேதி கோப்புப் பெயரில் அல்ல, சான்றிதழுக்குள் பயணித்தது.
மறுவேலை தவிர்க்கும் வரிசை
வாடிக்கையாளரின் ஆவணங்களில் எந்த குறியாக்கங்களை ஏற்கிறது, வாடிக்கையாளர் அடையாளத்திற்கு எந்த கொள்கலனை எதிர்பார்க்கிறது என்பதைக் கேட்டு, பின்னர் உங்களிடம் கொடுக்கப்பட்டதைப் பாருங்கள். வாடிக்கையாளருக்கு ஒரே இறக்குமதி செய்யக்கூடிய அடையாளம் தேவைப்பட்டு, உங்களிடம் தனித்தனி PEM கோப்புகள் இருந்தால், நீங்கள் கட்டுப்படுத்தும் கடவுச்சொல்லுடன் தொகுப்பை ஒருமுறை உருவாக்கி மூலங்களை வைத்திருங்கள். PEM தேவைப்பட்டால், விசையையும் சங்கிலியையும் பிரித்தெடுத்து, உங்கள் குழு ஏற்கனவே பயன்படுத்தும் எந்தவொரு சான்றுகள் கையாளும் செயல்முறை வழியாகவும் இடைநிலைக் கோப்புகளைப் பின்னர் அகற்றுங்கள்.
இறக்குமதிக்குப் பிறகு, உரையாடலை அல்ல, அடையாளத்தைச் சரிபார்க்கவும்: பொருள், வழங்குநர், காலாவதி, மற்றும் வாடிக்கையாளர் வழங்கும் பெயர். பட்டியலில் உள்ள நட்புப் பெயர் ஒரு லேபிள், சரிபார்க்கப்பட்ட அடையாளம் அல்ல. சுரங்கப்பாதை பின்னர் தோல்வியடைந்தால், நீங்கள் பொதி முறையை அல்ல, அங்கீகாரம் அல்லது வழியமைப்பை பிழைத்திருத்துகிறீர்கள், அது மிகக் குறுகிய உரையாடல்.