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 ഡിസൈൻ രേഖ വസ്തുക്കളെയും അവ വരയ്ക്കുന്ന അതിരിനെയും വിവരിക്കുന്നു, അവ നടപ്പാക്കുന്നത് ഓപ്പറേറ്ററിൽ തന്നെ തുടരുന്നു.