OpenSSL: ലളിതമായ പൊതു കീ എൻക്രിപ്ഷൻ. OpenSSL ഉപയോഗിച്ച് ഫയലുകൾ എൻക്രിപ്റ്റ് ചെയ്യുന്നത് എങ്ങനെ: ഒരു ഫയൽ ഡീക്രിപ്റ്റ് ചെയ്യുക

ഈ ലേഖനങ്ങളിൽ നിന്ന് നിങ്ങൾ മനസ്സിലാക്കുന്നതുപോലെ, ഫയലുകൾ എൻക്രിപ്റ്റ് ചെയ്യുമെന്ന് വാഗ്ദാനം ചെയ്യുന്ന എല്ലാ പ്രോഗ്രാമുകളും വിവരങ്ങളുടെ സുരക്ഷ ഉറപ്പാക്കുന്നില്ല. ബ്രൂസ് ഷ്‌നിയർ പറയുന്നതുപോലെ, “രണ്ട് തരം ക്രിപ്‌റ്റോഗ്രഫി ഉണ്ട്: നിങ്ങളുടെ ചെറിയ സഹോദരിയെ നിങ്ങളുടെ ഫയലുകൾ വായിക്കുന്നതിൽ നിന്ന് തടയുന്ന ക്രിപ്‌റ്റോഗ്രഫി, കൂടാതെ ഗവൺമെൻ്റിലെ നിങ്ങളുടെ അമ്മാവന്മാരെ നിങ്ങളുടെ ഫയലുകൾ വായിക്കുന്നതിൽ നിന്ന് തടയുന്ന ക്രിപ്‌റ്റോഗ്രഫി.” ക്രിപ്‌റ്റോഗ്രാഫിക്കായി പലരും ഉപയോഗിക്കുന്ന വളരെ ജനപ്രിയമായ ഒരു ലൈബ്രറിയാണ് OpenSSL - പണമടച്ചതും സൗജന്യ പ്രോഗ്രാമുകൾ. ഓപ്പൺഎസ്എസ്എൽ ധാരാളം അൽഗോരിതങ്ങളും എൻക്രിപ്ഷൻ മോഡുകളും നടപ്പിലാക്കുന്നു, അത് സ്വയം തിരഞ്ഞെടുക്കാൻ നിങ്ങളെ അനുവദിക്കുന്നു, അല്ലാതെ പ്രോഗ്രാം ഡെവലപ്പർ അല്ല.
ലൈബ്രറിക്ക് പുറമേ, OpenSSL പാക്കേജിൽ ഒരു സെറ്റ് ഉൾപ്പെടുന്നു കൺസോൾ യൂട്ടിലിറ്റികൾ. ഈ ലേഖനം സമമിതി അൽഗോരിതങ്ങൾ ഉപയോഗിച്ച് ഫയലുകൾ എൻക്രിപ്റ്റ് ചെയ്യുന്നതിലാണ് ശ്രദ്ധ കേന്ദ്രീകരിക്കുന്നത്.
OpenSSL ഉപയോഗിച്ച് ഒരു ഫയൽ എൻക്രിപ്റ്റ് ചെയ്യുന്നതിന്, നിങ്ങൾ openssl enc കമാൻഡ് ഉപയോഗിക്കേണ്ടതുണ്ട്. ഇതിനായി ലഭ്യമാണ് വിശാലമായ തിരഞ്ഞെടുപ്പ് OpenSSL പിന്തുണയ്ക്കുന്ന എൻക്രിപ്ഷൻ അൽഗോരിതങ്ങൾ - Blowfish, Camellia, DES, RC2, RC4, RC5, IDEA, AES എന്നിവയും മറ്റുള്ളവയും. വിവിധ അൽഗോരിതങ്ങൾ കൂടാതെ, വ്യത്യസ്ത എൻക്രിപ്ഷൻ മോഡുകളും ലഭ്യമാണ് - ECB, CBC, CFB, OFB. ചില എൻക്രിപ്ഷൻ മോഡുകൾ വ്യത്യസ്ത ബിറ്റ് ഡെപ്ത് ഉപയോഗിച്ച് ഉപയോഗിക്കാം.
Openssl enc കമാൻഡിനായുള്ള ഓപ്ഷനുകളുടെ ലിസ്റ്റ് കാണുന്നതിന്, ടൈപ്പ് ചെയ്യുക:

$ openssl enc --help
ഓപ്ഷനുകൾ ആകുന്നു
ഇൻപുട്ട് ഫയൽ
ഔട്ട്പുട്ട് ഫയൽ
-പാസ് പാസ് വാക്യത്തിൻ്റെ ഉറവിടം
-ഇ എൻക്രിപ്റ്റ്
-d ഡീക്രിപ്റ്റ് ചെയ്യുക
-a/-base64 base64 എൻകോഡ്/ഡീകോഡ്, എൻക്രിപ്ഷൻ ഫ്ലാഗ് അനുസരിച്ച്
-k പാസ്‌ഫ്രെയ്‌സ് ആണ് അടുത്ത ആർഗ്യുമെൻ്റ്
-kfile പാസ്‌ഫ്രെയ്സ് ഫയൽ ആർഗ്യുമെൻ്റിൻ്റെ ആദ്യ വരിയാണ്
-md ഒരു കീ സൃഷ്ടിക്കാൻ ഉപയോഗിക്കേണ്ട md ആണ് അടുത്ത ആർഗ്യുമെൻ്റ്
ഒരു പാസ്‌ഫ്രെയ്‌സിൽ നിന്ന്. md2, md5, sha അല്ലെങ്കിൽ sha1 എന്നിവയിൽ ഒന്ന്
ഹെക്സിലെ എസ് ഉപ്പ് എന്നതാണ് അടുത്ത വാദം
ഹെക്സിലെ -K/-iv കീ/iv ആണ് അടുത്ത ആർഗ്യുമെൻ്റ്
- iv/കീ പ്രിൻ്റ് ചെയ്യുക (പിന്നെ -P ആണെങ്കിൽ പുറത്തുകടക്കുക)
-ബഫ്സൈസ് ബഫർ വലുപ്പം
-നോപാഡ് സ്റ്റാൻഡേർഡ് ബ്ലോക്ക് പാഡിംഗ് പ്രവർത്തനരഹിതമാക്കുക
-എഞ്ചിൻ, എഞ്ചിൻ ഇ ഉപയോഗിക്കുക, ഒരുപക്ഷേ ഒരു ഹാർഡ്‌വെയർ ഉപകരണം.
സിഫർ തരങ്ങൾ
-aes-128-cbc -aes-128-cfb -aes-128-cfb1
-aes-128-cfb8 -aes-128-ecb -aes-128-ofb
-aes-192-cbc -aes-192-cfb -aes-192-cfb1
-aes-192-cfb8 -aes-192-ecb -aes-192-ofb
-aes-256-cbc -aes-256-cfb -aes-256-cfb1
-aes-256-cfb8 -aes-256-ecb -aes-256-ofb
-aes128 -aes192 -aes256
-bf -bf-cbc -bf-cfb
-bf-ecb -bf-ofb -blowfish
-camellia-128-cbc -camellia-128-cfb -camellia-128-cfb1
-camellia-128-cfb8 -camellia-128-ecb -camellia-128-ofb
-camellia-192-cbc -camellia-192-cfb -camellia-192-cfb1
-camellia-192-cfb8 -camellia-192-ecb -camellia-192-ofb
-camellia-256-cbc -camellia-256-cfb -camellia-256-cfb1
-camellia-256-cfb8 -camellia-256-ecb -camellia-256-ofb
-camellia128 -camellia192 -camellia256
-cast -cast-cbc -cast5-cbc
-cast5-cfb -cast5-ecb -cast5-ofb
-des -des-cbc -des-cfb
-des-cfb1 -des-cfb8 -des-ecb
-des-ede -des-ede-cbc -des-ede-cfb
-des-ede-ofb -des-ede3 -des-ede3-cbc
-des-ede3-cfb -des-ede3-cfb1 -des-ede3-cfb8
-des-ede3-ofb -des-ofb -des3
-desx -desx-cbc - ആശയം
-idea-cbc -idea-cfb -idea-ecb
-idea-ofb -rc2 -rc2-40-cbc
-rc2-64-cbc -rc2-cbc -rc2-cfb
-rc2-ecb -rc2-ofb -rc4
-rc4-40 -rc5 -rc5-cbc
-rc5-cfb -rc5-ecb -rc5-ofb
-സീഡ് -സീഡ്-സിബിസി -സീഡ്-സിഎഫ്ബി
-seed-ecb -seed-ofb

സൈഫർ തരങ്ങൾ ബ്ലോക്കിന് ശേഷം, ലഭ്യമായ അൽഗോരിതങ്ങൾ മോഡുകൾക്കൊപ്പം ലിസ്റ്റ് ചെയ്യുന്നു. DES എൻക്രിപ്ഷൻ അൽഗോരിതം നിരവധി ഓപ്ഷനുകളിൽ ലഭ്യമാണ്. സ്റ്റാൻഡേർഡ് DES- ന് പുറമേ, ട്രിപ്പിൾ 3DES (ഇത് നിരവധി പതിപ്പുകളിലും വരുന്നു), DESX എന്നിവയും ഉണ്ട്. ഇനി നമുക്ക് എന്തെങ്കിലും എൻക്രിപ്റ്റ് ചെയ്യാൻ ശ്രമിക്കാം.

$ openssl enc -e -in infile.txt -out outfile.bf_cbc -bf-cbc

ഈ കമാൻഡ് CBC മോഡിൽ ബ്ലോഫിഷ് അൽഗോരിതം ഉപയോഗിച്ച് infile.txt ഫയൽ എൻക്രിപ്റ്റ് ചെയ്യുകയും ഫലം outfile.bf_cbc ഫയലിലേക്ക് എഴുതുകയും ചെയ്യും. എൻക്രിപ്റ്റ് ചെയ്യുന്നതിന് മുമ്പ്, നിങ്ങളോട് ഒരു എൻക്രിപ്ഷൻ കീ ആവശ്യപ്പെടും. ഈ ഫയൽ ഡീക്രിപ്റ്റ് ചെയ്യുന്നതിന് നിങ്ങൾ ഇനിപ്പറയുന്ന കമാൻഡ് ഉപയോഗിക്കേണ്ടതുണ്ട്:

$ openssl enc -d -in outfile.bf_cbc -out dec_file.txt -bf-cbc

ഒരു കീ നൽകാൻ ആവശ്യപ്പെടുമ്പോൾ, എൻക്രിപ്ഷൻ സമയത്ത് നൽകിയ കീ നിങ്ങൾ നൽകണം.
നിങ്ങൾക്ക് ഡാറ്റ കംപ്രസ് ചെയ്യണമെങ്കിൽ, എൻക്രിപ്ഷന് മുമ്പ് വ്യക്തമായ കാരണങ്ങളാൽ ഇത് ചെയ്യണം.
ഇനി നമുക്ക് ഓപ്ഷനുകൾ നോക്കാം കമാൻഡ് ലൈൻ. ഫയൽ എൻക്രിപ്റ്റ് ചെയ്യണമെന്ന് -e ഓപ്‌ഷൻ വ്യക്തമാക്കുന്നു (ഡിഫോൾട്ടായി ഈ ഓപ്‌ഷൻ പ്രവർത്തനക്ഷമമാക്കിയിരിക്കുന്നു), കൂടാതെ -d ഓപ്ഷൻ ഡീക്രിപ്റ്റ് ചെയ്യണം. -k ഓപ്ഷൻ ഉപയോഗിച്ച് openssl enc-ലേക്ക് വിളിക്കുമ്പോൾ അല്ലെങ്കിൽ -kfile ഓപ്ഷൻ ഉപയോഗിച്ച് ഒരു ഫയലിൽ എൻക്രിപ്ഷൻ കീ നൽകാം.
-nosalt ഓപ്ഷൻ ഉപയോഗിച്ച്, നിങ്ങൾക്ക് എൻക്രിപ്ഷൻ സമയത്ത് ഉപ്പ് ഉപയോഗിക്കുന്നത് പ്രവർത്തനരഹിതമാക്കാം (സൈഫറിൻ്റെ സുരക്ഷ കുറയ്ക്കുന്നതിനാൽ ഇത് ശുപാർശ ചെയ്യുന്നില്ല).
ഈ യൂട്ടിലിറ്റി ഉപയോഗിച്ച് നിങ്ങൾക്ക് base64 ലേക്ക് പരിവർത്തനം ചെയ്യാം, എന്നാൽ ഈ പരിവർത്തനം എൻക്രിപ്ഷൻ അല്ല. പ്രോജക്റ്റ് വെബ്‌സൈറ്റിൽ കൂടുതൽ വായിക്കുക - http://www.openssl.org/docs/apps/enc.html. നിങ്ങൾക്ക് എന്തെങ്കിലും ചോദ്യങ്ങളുണ്ടെങ്കിൽ ദയവായി ചോദിക്കുക.

പി.എസ്.വിവരങ്ങൾ എൻക്രിപ്റ്റ് ചെയ്ത ശേഷം, യഥാർത്ഥ ഫയൽ ശരിയായി ഇല്ലാതാക്കേണ്ടത് ആവശ്യമാണ്, അങ്ങനെ ബാക്കിയുള്ള വിവരങ്ങൾ അവശേഷിക്കുന്നില്ല. ഇത് ചെയ്യുന്നതിന്, നിങ്ങൾക്ക് ഗട്ട്മാൻ രീതി നടപ്പിലാക്കുന്ന ചില പ്രോഗ്രാം ഉപയോഗിക്കാം. കൂടാതെ, നിങ്ങൾ കമാൻഡ് ലൈനിൽ ഒരു പാസ്‌വേഡ് നൽകിയാൽ, അത് ചരിത്രത്തിൽ സംരക്ഷിച്ചിട്ടില്ലെന്ന് ഉറപ്പാക്കുക, കൂടാതെ അത് ഒരു ഫയലിൽ നിന്ന് വായിക്കുകയാണെങ്കിൽ, അത് പൂർണ്ണമായും ഇല്ലാതാക്കി.

നിങ്ങൾക്ക് ഒരു നിർദ്ദിഷ്ട ഫയലോ ഫോൾഡറോ എൻക്രിപ്റ്റ് ചെയ്യേണ്ട സാഹചര്യങ്ങൾ ധാരാളം ഉണ്ട്. ഉദാഹരണത്തിന്, തുറന്ന ചാനലുകളിലൂടെയോ സംഭരിച്ചിരിക്കുന്നതോ ആയ ഡാറ്റ കൈമാറുകയാണെങ്കിൽ ബാഹ്യ മാധ്യമങ്ങൾ. പലരും (ഞാനടക്കം) truecrypt ഉപയോഗിക്കുന്നു, എന്നാൽ ഈ പ്രോഗ്രാമിൻ്റെ പ്രധാന ലക്ഷ്യം എൻക്രിപ്റ്റ് ചെയ്ത പാർട്ടീഷനുകളിൽ പ്രവർത്തിക്കുക എന്നതാണ്, അതിനാൽ ഈ സാഹചര്യത്തിൽ ഇത് വളരെ നല്ലതല്ല.

അത്തരം ജോലികൾക്ക് OpenSSL തികച്ചും അനുയോജ്യമാണ് - ഒരു വിശ്വസനീയമായ ക്രോസ്-പ്ലാറ്റ്ഫോം പരിഹാരം. ഓപ്പൺഎസ്എസ്എൽ വൈവിധ്യമാർന്ന എൻക്രിപ്ഷൻ അൽഗോരിതങ്ങളെ പിന്തുണയ്ക്കുന്നു, കൂടാതെ പലതിലും ഇത് സ്ഥിരസ്ഥിതിയായി ഇൻസ്റ്റാൾ ചെയ്യപ്പെടുന്നു. ഓപ്പറേറ്റിങ് സിസ്റ്റങ്ങൾ, ബാക്കിയുള്ളവയിൽ ഇൻസ്റ്റലേഷൻ ബുദ്ധിമുട്ടുള്ള കാര്യമല്ല.

OpenSSL-ൽ സിമെട്രിക്, അസമമിതി എൻക്രിപ്ഷൻ ഉപയോഗിക്കുന്നതിൻ്റെ അടിസ്ഥാനകാര്യങ്ങളും ഒറ്റത്തവണ കീ ഉപയോഗിച്ച് അസമമിതി എൻക്രിപ്ഷൻ ലളിതമാക്കുന്ന രണ്ട് സ്ക്രിപ്റ്റുകളും ചുവടെയുണ്ട്.

OpenSSL ഉപയോഗിച്ച് ഡാറ്റ പരിരക്ഷിക്കുന്നതിനുള്ള ഏറ്റവും ലളിതമായ മാർഗ്ഗം സിമ്മട്രിക് എൻക്രിപ്ഷൻ ആണ്. ഇനിപ്പറയുന്ന കമാൻഡുകൾ 256-ബിറ്റ് കീ ദൈർഘ്യമുള്ള AES അൽഗോരിതം ഉപയോഗിച്ച് documents.zip ഫയൽ എൻക്രിപ്റ്റ് ചെയ്യുകയും ഡീക്രിപ്റ്റ് ചെയ്യുകയും ചെയ്യുന്നു:

Openssl enc -aes-256-cbc -salt -in documents.zip -out documents.enc
openssl enc -d -aes-256-cbc -in documents.enc -out documents.zip

ഈ കമാൻഡുകളുടെ പ്രശ്നം അവയ്ക്ക് ഒരു പാസ്വേഡ് ആവശ്യമായിരിക്കാം. ഇത് അഭികാമ്യമല്ലാത്ത സാഹചര്യങ്ങളുണ്ട്. ഉദാഹരണത്തിന്, ഒരു ഷെഡ്യൂളിലെ ഡാറ്റയുടെ യാന്ത്രിക ബാക്കപ്പ്/എൻക്രിപ്ഷൻ, അല്ലെങ്കിൽ ഡാറ്റ ഒരു വ്യക്തി എൻക്രിപ്റ്റ് ചെയ്യുകയും മറ്റൊരാൾ ഡീക്രിപ്റ്റ് ചെയ്യുകയും ചെയ്താൽ.

ഇത്തരം കേസുകൾക്കാണ് പബ്ലിക് കീ എൻക്രിപ്ഷൻ കണ്ടുപിടിച്ചത്. പൊതുവേ, നിങ്ങൾ ഒരു തുറന്നതും സൃഷ്ടിക്കേണ്ടതുണ്ട് സ്വകാര്യ കീഒപ്പം. ആദ്യ കമാൻഡ് സ്വകാര്യ കീ private.pem സൃഷ്ടിക്കും, രണ്ടാമത്തേത് സൃഷ്ടിക്കും പൊതു കീ public.pem:

Openssl genrsa -out private.pem -aes256 2048
openssl rsa -in private.pem -pubout -out public.pem

തൽഫലമായി, നിങ്ങൾക്ക് 2048 ബിറ്റുകൾ നീളമുള്ള ഒരു ജോടി RSA കീകൾ ലഭിക്കും. നിർഭാഗ്യവശാൽ, RSA സിസ്റ്റത്തിൽ, എൻക്രിപ്റ്റ് ചെയ്ത ഡാറ്റയുടെ വലുപ്പം കീ വലുപ്പത്താൽ പരിമിതപ്പെടുത്തിയിരിക്കുന്നു, അതിനാൽ 2Kb-യിൽ കൂടുതൽ ഡാറ്റ എൻക്രിപ്റ്റ് ചെയ്യാൻ കഴിയില്ല. ഇതിന് ഒരു വഴിയുണ്ട് - ഒറ്റത്തവണ കീ ഉപയോഗിച്ച് ഒരു സമമിതി അൽഗോരിതം (മുകളിൽ ഉപയോഗിച്ചതിന് സമാനമായത്) ഉപയോഗിച്ച് വിവരങ്ങൾ ആദ്യം എൻക്രിപ്റ്റ് ചെയ്യുന്നു. ഈ ഒറ്റത്തവണ കീ പിന്നീട് പൊതു കീ ഉപയോഗിച്ച് എൻക്രിപ്റ്റ് ചെയ്യപ്പെടും. ഡീക്രിപ്ഷൻ സമയത്ത്, സ്വകാര്യ കീ ഉപയോഗിച്ച് ഒറ്റത്തവണ കീ ഡീക്രിപ്റ്റ് ചെയ്യപ്പെടും. ഇതിനെക്കുറിച്ചുള്ള കൂടുതൽ വിശദാംശങ്ങൾ ഇതിനകം നന്നായി എഴുതിയിട്ടുണ്ട്.

ഇനിപ്പറയുന്ന സ്ക്രിപ്റ്റ് എൻക്രിപ്ഷൻ ഓട്ടോമേറ്റ് ചെയ്യാൻ സഹായിക്കും, അതിൻ്റെ ഔട്ട്പുട്ട് നിങ്ങൾക്ക് എൻക്രിപ്റ്റ് ചെയ്ത രൂപത്തിൽ ഒരു ഒറ്റത്തവണ കീയും ഡാറ്റയും (encrypt.sh) ലഭിക്കും:

FILENAME="$1"
പ്രസിദ്ധീകരിക്കുക="$2"
സെഷൻകീ="$3"
ഫലം="$4"

# ക്രമരഹിതമായ സമമിതി-കീ സൃഷ്ടിക്കുക
പാസ്സൈസ്=30
എങ്കിൽ [ -c /dev/urandom ] ; പിന്നെ
KEY=`head -c 30 /dev/urandom | openssl enc -base64`
വേറെ
KEY=`openssl rand -base64 30`
fi
KEY കയറ്റുമതി ചെയ്യുക

# പൊതു കീ ഉപയോഗിച്ച് സമമിതി കീ എൻക്രിപ്റ്റ് ചെയ്യുക
openssl rsautl -encrypt -inkey "$PUBLICKEY" -ഔട്ട് "$SESSIONKEY" -pubin<$KEY
EOF

# ഫയൽ എൻക്രിപ്റ്റ് ചെയ്യുക
openssl enc -aes-256-cbc -pass env:KEY -in "$FILENAME" -out "$RESULT"

documents.zip ഫയൽ എൻക്രിപ്റ്റ് ചെയ്യാൻ താഴെ പറയുന്ന കമാൻഡ് public.pem എന്ന പബ്ലിക് കീ ഉപയോഗിക്കുന്നു. ഇത് എൻക്രിപ്റ്റ് ചെയ്ത ഒറ്റത്തവണ കീ സെഷൻ.കീയും എൻക്രിപ്റ്റ് ചെയ്ത ഡാറ്റ ഡോക്യുമെൻ്റ് ഡോക്യുമെൻ്റ്.എൻസിയും സൃഷ്ടിക്കും:

./encrypt.sh documents.zip public.pem session.key documents.enc

ഡീക്രിപ്ഷൻ സ്ക്രിപ്റ്റ് (decrypt.sh):

പ്രൈവറ്റ്കീ="$1"
സെഷൻകീ="$2"
എൻക്രിപ്റ്റഡ്="$3"
ഡീക്രിപ്റ്റ് ചെയ്‌തു="$4"

# സ്വകാര്യ കീ ഉപയോഗിച്ച് സമമിതി കീ ഡീക്രിപ്റ്റ് ചെയ്യുക
KEY=` openssl rsautl -decrypt -inkey "$PRIVATEKEY" -ഇൻ "$SESSIONKEY" `
KEY കയറ്റുമതി ചെയ്യുക

# ഫയൽ ഡീക്രിപ്റ്റ് ചെയ്യുക
openssl enc -aes-256-cbc -d -pass env:KEY -in "$ENCRYPTED" -out "$DECRYPTED"

documents.enc ഫയൽ ഡീക്രിപ്റ്റ് ചെയ്യുന്നതിന് ഡീക്രിപ്ഷൻ കമാൻഡ് സ്വകാര്യ കീ private.pem ഉം ഒറ്റത്തവണ കീ സെഷൻ.കീയും ഉപയോഗിക്കുന്നു. ഇത് ഒരു documents.zip ഫയൽ സൃഷ്ടിക്കും:

./decrypt.sh private.pem session.key documents.enc documents.zip

നിങ്ങൾക്ക് കാണാനാകുന്നതുപോലെ, പബ്ലിക് കീ എൻക്രിപ്ഷൻ സിമ്മട്രിക് എൻക്രിപ്ഷൻ പോലെ തന്നെ ലളിതമായിരിക്കും. എന്നാൽ അതിലും ലളിതമായ ഒരു വഴിയുണ്ട്. ഈ പോസ്റ്റ് എഴുതാൻ എന്നെ പ്രേരിപ്പിച്ചത് SbF₅ ബ്ലോഗാണ്. അതിൻ്റെ രചയിതാവ് (എന്നേക്കാൾ ബാഷിൽ കൂടുതൽ പരിചയസമ്പന്നനാണ്) ഒരു ഫോൾഡർ ആർക്കൈവ് ചെയ്യുന്ന ഒരു സ്ക്രിപ്റ്റ് എഴുതി, ഒരു പൊതു കീ ഉപയോഗിച്ച് അത് എൻക്രിപ്റ്റ് ചെയ്യുകയും ആവശ്യമായ എല്ലാം ഉൾക്കൊള്ളുന്ന മറ്റൊരു സ്ക്രിപ്റ്റ് സൃഷ്ടിക്കുകയും ചെയ്യുന്നു: ഒറ്റത്തവണ കീ, ഡാറ്റ, ഡീക്രിപ്ഷനുള്ള യഥാർത്ഥ കമാൻഡുകൾ. കൂടാതെ, സ്ക്രിപ്റ്റിന് നിങ്ങൾക്കായി ഒരു RSA കീ ജോഡി സൃഷ്ടിക്കാൻ കഴിയും:

./encrypt-file.sh -keys public.pem private.pem
./encrypt-file.sh ഫോൾഡർ public.pem > decrypt-folder.sh
chmod +x decrypt-folder.sh
./decrypt-folder.sh private.pem > folder.tar

ഈ ഉദാഹരണത്തിൽ, ഞങ്ങൾ ആദ്യം ഒരു കീ ജോഡി സൃഷ്ടിച്ചു. ഇതിനുശേഷം, ഫോൾഡർ ഫോൾഡർ decrypt-folder.sh സ്ക്രിപ്റ്റിലേക്ക് എൻക്രിപ്റ്റ് ചെയ്യുകയും തുടർന്ന് folder.tar ആർക്കൈവിലേക്ക് ഡീക്രിപ്റ്റ് ചെയ്യുകയും ചെയ്തു. ഈ രീതിയുടെ സാധ്യമായ ഒരു പോരായ്മ, decrypt-folder.sh-ലെ ഡാറ്റ BASE64 ഫോർമാറ്റിൽ സംഭരിച്ചിരിക്കുന്നു, അതിനാൽ അതിൻ്റെ വലുപ്പം വർദ്ധിക്കുന്നു.

UPDവിവര സുരക്ഷാ ബ്ലോഗിലേക്ക് നീക്കി.

നിങ്ങൾക്ക് ഒരു നിർദ്ദിഷ്ട ഫയലോ ഫോൾഡറോ എൻക്രിപ്റ്റ് ചെയ്യേണ്ട സാഹചര്യങ്ങൾ ധാരാളം ഉണ്ട്. ഉദാഹരണത്തിന്, തുറന്ന ചാനലുകളിലൂടെ ഡാറ്റ കൈമാറ്റം ചെയ്യപ്പെടുകയോ അല്ലെങ്കിൽ ബാഹ്യ മീഡിയയിൽ സംഭരിക്കുകയോ ചെയ്താൽ. പലരും (ഞാനടക്കം) truecrypt ഉപയോഗിക്കുന്നു, എന്നാൽ ഈ പ്രോഗ്രാമിൻ്റെ പ്രധാന ലക്ഷ്യം എൻക്രിപ്റ്റ് ചെയ്ത പാർട്ടീഷനുകളിൽ പ്രവർത്തിക്കുക എന്നതാണ്, അതിനാൽ ഈ സാഹചര്യത്തിൽ ഇത് വളരെ നല്ലതല്ല.

അത്തരം ജോലികൾക്ക് OpenSSL തികച്ചും അനുയോജ്യമാണ് - ഒരു വിശ്വസനീയമായ ക്രോസ്-പ്ലാറ്റ്ഫോം പരിഹാരം. ഓപ്പൺഎസ്എസ്എൽ വിവിധ എൻക്രിപ്ഷൻ അൽഗോരിതങ്ങളെ പിന്തുണയ്ക്കുന്നു, കൂടാതെ ഇത് പല ഓപ്പറേറ്റിംഗ് സിസ്റ്റങ്ങളിലും സ്ഥിരസ്ഥിതിയായി ഇൻസ്റ്റാൾ ചെയ്യപ്പെടുന്നു, മറ്റുള്ളവയിൽ ഇൻസ്റ്റാളുചെയ്യുന്നത് എളുപ്പമാണ്.

OpenSSL-ൽ സിമെട്രിക്, അസമമിതി എൻക്രിപ്ഷൻ ഉപയോഗിക്കുന്നതിൻ്റെ അടിസ്ഥാനകാര്യങ്ങളും ഒറ്റത്തവണ കീ ഉപയോഗിച്ച് അസമമിതി എൻക്രിപ്ഷൻ ലളിതമാക്കുന്ന രണ്ട് സ്ക്രിപ്റ്റുകളും ചുവടെയുണ്ട്.

OpenSSL ഉപയോഗിച്ച് ഡാറ്റ പരിരക്ഷിക്കുന്നതിനുള്ള ഏറ്റവും ലളിതമായ മാർഗ്ഗം സിമ്മട്രിക് എൻക്രിപ്ഷൻ ആണ്. ഇനിപ്പറയുന്ന കമാൻഡുകൾ 256-ബിറ്റ് കീ ദൈർഘ്യമുള്ള AES അൽഗോരിതം ഉപയോഗിച്ച് documents.zip ഫയൽ എൻക്രിപ്റ്റ് ചെയ്യുകയും ഡീക്രിപ്റ്റ് ചെയ്യുകയും ചെയ്യുന്നു:

Openssl enc -aes-256-cbc -salt -in documents.zip -out documents.enc
openssl enc -d -aes-256-cbc -in documents.enc -out documents.zip

ഈ കമാൻഡുകളുടെ പ്രശ്നം അവയ്ക്ക് ഒരു പാസ്വേഡ് ആവശ്യമായിരിക്കാം. ഇത് അഭികാമ്യമല്ലാത്ത സാഹചര്യങ്ങളുണ്ട്. ഉദാഹരണത്തിന്, ഒരു ഷെഡ്യൂളിലെ ഡാറ്റയുടെ യാന്ത്രിക ബാക്കപ്പ്/എൻക്രിപ്ഷൻ, അല്ലെങ്കിൽ ഡാറ്റ ഒരു വ്യക്തി എൻക്രിപ്റ്റ് ചെയ്യുകയും മറ്റൊരാൾ ഡീക്രിപ്റ്റ് ചെയ്യുകയും ചെയ്താൽ.

ഇത്തരം കേസുകൾക്കാണ് പബ്ലിക് കീ എൻക്രിപ്ഷൻ കണ്ടുപിടിച്ചത്. പൊതുവേ, നിങ്ങൾ ഒരു പൊതു, സ്വകാര്യ കീ സൃഷ്ടിക്കേണ്ടതുണ്ട്. ആദ്യത്തെ കമാൻഡ് private.pem എന്ന സ്വകാര്യ കീ ജനറേറ്റ് ചെയ്യും, രണ്ടാമത്തേത് public.pem എന്ന പബ്ലിക് കീ ജനറേറ്റ് ചെയ്യും:

Openssl genrsa -out private.pem -aes256 2048
openssl rsa -in private.pem -pubout -out public.pem

ഫലമായി, നിങ്ങൾക്ക് 2048 ബിറ്റുകൾ നീളമുള്ള ഒരു ജോടി RSA കീകൾ ലഭിക്കും. നിർഭാഗ്യവശാൽ, RSA സിസ്റ്റത്തിൽ, എൻക്രിപ്റ്റ് ചെയ്ത ഡാറ്റയുടെ വലുപ്പം കീ വലുപ്പത്താൽ പരിമിതപ്പെടുത്തിയിരിക്കുന്നു, അതിനാൽ 2Kb-യിൽ കൂടുതൽ ഡാറ്റ എൻക്രിപ്റ്റ് ചെയ്യാൻ കഴിയില്ല. ഇതിന് ഒരു വഴിയുണ്ട് - ഒറ്റത്തവണ കീ ഉപയോഗിച്ച് ഒരു സമമിതി അൽഗോരിതം (മുകളിൽ ഉപയോഗിച്ചതിന് സമാനമായത്) ഉപയോഗിച്ച് വിവരങ്ങൾ ആദ്യം എൻക്രിപ്റ്റ് ചെയ്യുന്നു. ഈ ഒറ്റത്തവണ കീ പിന്നീട് പൊതു കീ ഉപയോഗിച്ച് എൻക്രിപ്റ്റ് ചെയ്യപ്പെടും. ഡീക്രിപ്ഷൻ സമയത്ത്, സ്വകാര്യ കീ ഉപയോഗിച്ച് ഒറ്റത്തവണ കീ ഡീക്രിപ്റ്റ് ചെയ്യപ്പെടും. ഇതിനെക്കുറിച്ചുള്ള കൂടുതൽ വിശദാംശങ്ങൾ ഹബ്രെയെക്കുറിച്ചുള്ള ഒരു ലേഖനത്തിൽ ഇതിനകം നന്നായി എഴുതിയിട്ടുണ്ട്.

ഇനിപ്പറയുന്ന സ്ക്രിപ്റ്റ് എൻക്രിപ്ഷൻ ഓട്ടോമേറ്റ് ചെയ്യാൻ സഹായിക്കും, അതിൻ്റെ ഔട്ട്പുട്ട് നിങ്ങൾക്ക് എൻക്രിപ്റ്റ് ചെയ്ത രൂപത്തിൽ ഒരു ഒറ്റത്തവണ കീയും ഡാറ്റയും (encrypt.sh) ലഭിക്കും:

FILENAME="$1"
പ്രസിദ്ധീകരിക്കുക="$2"
സെഷൻകീ="$3"
ഫലം="$4"

# ക്രമരഹിതമായ സമമിതി-കീ സൃഷ്ടിക്കുക
പാസ്സൈസ്=30
എങ്കിൽ [ -c /dev/urandom ] ; പിന്നെ
KEY=`head -c 30 /dev/urandom | openssl enc -base64`
വേറെ
KEY=`openssl rand -base64 30`
fi
KEY കയറ്റുമതി ചെയ്യുക

# പൊതു കീ ഉപയോഗിച്ച് സമമിതി കീ എൻക്രിപ്റ്റ് ചെയ്യുക
openssl rsautl -encrypt -inkey "$PUBLICKEY" -ഔട്ട് "$SESSIONKEY" -pubin<$KEY
EOF

# ഫയൽ എൻക്രിപ്റ്റ് ചെയ്യുക
openssl enc -aes-256-cbc -pass env:KEY -in "$FILENAME" -out "$RESULT"

documents.zip ഫയൽ എൻക്രിപ്റ്റ് ചെയ്യാൻ താഴെ പറയുന്ന കമാൻഡ് public.pem എന്ന പബ്ലിക് കീ ഉപയോഗിക്കുന്നു. ഇത് എൻക്രിപ്റ്റ് ചെയ്ത ഒറ്റത്തവണ കീ സെഷൻ.കീയും എൻക്രിപ്റ്റ് ചെയ്ത ഡാറ്റ ഡോക്യുമെൻ്റ് ഡോക്യുമെൻ്റ്.എൻസിയും സൃഷ്ടിക്കും:

./encrypt.sh documents.zip public.pem session.key documents.enc

ഡീക്രിപ്ഷൻ സ്ക്രിപ്റ്റ് (decrypt.sh):

പ്രൈവറ്റ്കീ="$1"
സെഷൻകീ="$2"
എൻക്രിപ്റ്റഡ്="$3"
ഡീക്രിപ്റ്റ് ചെയ്‌തു="$4"

# സ്വകാര്യ കീ ഉപയോഗിച്ച് സമമിതി കീ ഡീക്രിപ്റ്റ് ചെയ്യുക
KEY=` openssl rsautl -decrypt -inkey "$PRIVATEKEY" -ഇൻ "$SESSIONKEY" `
KEY കയറ്റുമതി ചെയ്യുക

# ഫയൽ ഡീക്രിപ്റ്റ് ചെയ്യുക
openssl enc -aes-256-cbc -d -pass env:KEY -in "$ENCRYPTED" -out "$DECRYPTED"

documents.enc ഫയൽ ഡീക്രിപ്റ്റ് ചെയ്യുന്നതിന് ഡീക്രിപ്ഷൻ കമാൻഡ് സ്വകാര്യ കീ private.pem ഉം ഒറ്റത്തവണ കീ സെഷൻ.കീയും ഉപയോഗിക്കുന്നു. ഇത് ഒരു documents.zip ഫയൽ സൃഷ്ടിക്കും:

./decrypt.sh private.pem session.key documents.enc documents.zip

നിങ്ങൾക്ക് കാണാനാകുന്നതുപോലെ, പബ്ലിക് കീ എൻക്രിപ്ഷൻ സിമ്മട്രിക് എൻക്രിപ്ഷൻ പോലെ തന്നെ ലളിതമായിരിക്കും. എന്നാൽ അതിലും ലളിതമായ ഒരു വഴിയുണ്ട്. ഈ പോസ്റ്റ് എഴുതാൻ എന്നെ പ്രേരിപ്പിച്ചത് SbF₅ ബ്ലോഗാണ്. അതിൻ്റെ രചയിതാവ് (എന്നേക്കാൾ ബാഷിൽ കൂടുതൽ പരിചയസമ്പന്നനാണ്) ഒരു ഫോൾഡർ ആർക്കൈവ് ചെയ്യുന്ന ഒരു സ്ക്രിപ്റ്റ് എഴുതി, ഒരു പൊതു കീ ഉപയോഗിച്ച് അത് എൻക്രിപ്റ്റ് ചെയ്യുകയും ആവശ്യമായ എല്ലാം ഉൾക്കൊള്ളുന്ന മറ്റൊരു സ്ക്രിപ്റ്റ് സൃഷ്ടിക്കുകയും ചെയ്യുന്നു: ഒറ്റത്തവണ കീ, ഡാറ്റ, ഡീക്രിപ്ഷനുള്ള യഥാർത്ഥ കമാൻഡുകൾ. കൂടാതെ, സ്ക്രിപ്റ്റിന് നിങ്ങൾക്കായി ഒരു RSA കീ ജോഡി സൃഷ്ടിക്കാൻ കഴിയും:

./encrypt-file.sh -keys public.pem private.pem
./encrypt-file.sh ഫോൾഡർ public.pem > decrypt-folder.sh
chmod +x decrypt-folder.sh
./decrypt-folder.sh private.pem > folder.tar

ഈ ഉദാഹരണത്തിൽ, ഞങ്ങൾ ആദ്യം ഒരു കീ ജോഡി സൃഷ്ടിച്ചു. ഇതിനുശേഷം, ഫോൾഡർ ഫോൾഡർ decrypt-folder.sh സ്ക്രിപ്റ്റിലേക്ക് എൻക്രിപ്റ്റ് ചെയ്യുകയും തുടർന്ന് folder.tar ആർക്കൈവിലേക്ക് ഡീക്രിപ്റ്റ് ചെയ്യുകയും ചെയ്തു. ഈ രീതിയുടെ സാധ്യമായ ഒരു പോരായ്മ, decrypt-folder.sh-ലെ ഡാറ്റ BASE64 ഫോർമാറ്റിൽ സംഭരിച്ചിരിക്കുന്നു, അതിനാൽ അതിൻ്റെ വലുപ്പം വർദ്ധിക്കുന്നു.

UPDവിവര സുരക്ഷാ ബ്ലോഗിലേക്ക് നീക്കി.

ഓപ്പൺഎസ്എസ്എൽഉപയോഗിക്കാവുന്ന ഒരു ശക്തമായ ഉപകരണമാണ് ഫയലുകളുടെയും സന്ദേശങ്ങളുടെയും എൻക്രിപ്ഷൻ.

രണ്ടിനും ഒരേ പാസ്‌വേഡ് ഉപയോഗിക്കണമെങ്കിൽ പ്ലെയിൻടെക്സ്റ്റ് എൻക്രിപ്ഷൻ, അതിൻ്റെ തുടർന്നുള്ള കാര്യങ്ങൾക്കും ഡീക്രിപ്ഷൻ, അപ്പോൾ നിങ്ങൾ ഉപയോഗിക്കേണ്ടതുണ്ട് സമമിതി എൻക്രിപ്ഷൻ അൽഗോരിതം.

എങ്ങനെയെന്ന് ഈ ലേഖനത്തിൽ നിന്ന് നിങ്ങൾ പഠിക്കും ഫയലുകളും സന്ദേശങ്ങളും എൻക്രിപ്റ്റ് ചെയ്യുകയും ഡീക്രിപ്റ്റ് ചെയ്യുകയും ചെയ്യുക OpenSSL ഉപയോഗിച്ച് Linux-ലെ കമാൻഡ് ലൈനിൽ നിന്നുള്ള ഒരു രഹസ്യവാക്ക് ഉപയോഗിക്കുന്നു.

എങ്ങനെ: ഒരു ഫയൽ എൻക്രിപ്റ്റ് ചെയ്യുക

$ openssl enc -aes-256-cbc -salt -in file.txt-പുറത്ത് file.txt.enc

ഏറ്റവും സെൻസിറ്റീവ് തലത്തിൽ വിവരങ്ങൾ എൻക്രിപ്റ്റ് ചെയ്യാൻ യുണൈറ്റഡ് സ്റ്റേറ്റ്സ് സർക്കാർ ഉപയോഗിക്കുന്ന ഒരു ക്രിപ്റ്റോഗ്രാഫിക് അൽഗോരിതം ആണ് 256bit AES.

ഓപ്ഷൻ - ഉപ്പ്(ഉപ്പ്) ഉപയോഗിക്കണം എപ്പോഴും, രഹസ്യ കീ സൃഷ്ടിക്കുന്നത് രഹസ്യവാക്ക് അടിസ്ഥാനമാക്കിയാണെങ്കിൽ.

ഓപ്ഷൻ ഉപയോഗിക്കാതെ - ഉപ്പ്, എൻക്രിപ്റ്റ് ചെയ്ത ഡാറ്റ വെളിപ്പെടുത്തുന്നതിലേക്ക് നയിക്കുന്ന വളരെ ഫലപ്രദമായ ഒരു നിഘണ്ടു ആക്രമണം നടത്തുന്നത് സാധ്യമാണ്. ഇതിന് കാരണം, ഒരു 'ഉപ്പ്' ചേർക്കാതെ, ഒരേ രഹസ്യവാക്ക് എല്ലായ്പ്പോഴും ഒരേ രഹസ്യ കീ സൃഷ്ടിക്കും.

ഒരു ഉപ്പ് ഉപയോഗിക്കുമ്പോൾ, ആദ്യത്തെ 8 ബൈറ്റുകൾ അതിനായി നീക്കിവച്ചിരിക്കുന്നു. ഒരു ഫയൽ എൻക്രിപ്റ്റ് ചെയ്യുകയും ഡീക്രിപ്ഷൻ സമയത്ത് എൻക്രിപ്റ്റ് ചെയ്ത ഫയലിൽ നിന്ന് വായിക്കുകയും ചെയ്യുമ്പോൾ അത് ക്രമരഹിതമായി ജനറേറ്റുചെയ്യുന്നു.

എങ്ങനെ: ഒരു ഫയൽ ഡീക്രിപ്റ്റ് ചെയ്യുക

$ openssl enc -aes-256-cbc -ഡി-ഇൻ file.txt.enc-പുറത്ത് file.txt

Base64 എൻകോഡിംഗും ഡീകോഡിംഗും

Base64 എൻകോഡിംഗ് ആണ് സ്റ്റാൻഡേർഡ് രീതി 8-ബിറ്റ് ഫോർമാറ്റിനെ പിന്തുണയ്ക്കാത്ത ഇമെയിലിലൂടെയും മറ്റ് സിസ്റ്റങ്ങളിലൂടെയും സുരക്ഷിതമായ ഗതാഗതത്തിനായി 8-ബിറ്റ് ബൈനറി വിവരങ്ങൾ ASCII പ്രതീകങ്ങളുടെ പരിമിതമായ ഉപസെറ്റാക്കി മാറ്റുന്നതിന്.

സ്ഥിരസ്ഥിതിയായി, എൻക്രിപ്റ്റ് ചെയ്ത ഫയൽ ബൈനറി ഫോർമാറ്റിൽ സൃഷ്ടിക്കപ്പെടുന്നു. നിങ്ങൾ അത് അയയ്ക്കാൻ പോകുകയാണെങ്കിൽ ഇ-മെയിൽ, IRC മുതലായവ, നിങ്ങൾ ഇത് Base64 എൻകോഡിംഗിൽ സംരക്ഷിക്കണം. Base64 എൻകോഡിംഗിൽ ഒരു ഫയൽ എൻക്രിപ്റ്റ് ചെയ്യാൻ, നിങ്ങൾ ഓപ്ഷൻ ചേർക്കേണ്ടതുണ്ട് -എ:

$ openssl enc -aes-256-cbc -salt -എ-ഇൻ file.txt-പുറത്ത് file.txt.enc

ഓപ്ഷനുകൾ വിവരണം
-എ എൻക്രിപ്റ്റ് ചെയ്ത ഡാറ്റ Base64 എൻകോഡ് ചെയ്തതാണെന്ന് OpenSSL-നോട് പറയുന്നു.

കൂടാതെ, ഓപ്ഷൻ -എ, ഡീക്രിപ്ഷൻ സമയത്ത് സൂചിപ്പിക്കണം:

$ openssl enc -aes-256-cbc -ഡി -എ-ഇൻ file.txt.enc-പുറത്ത് file.txt

പാസ്‌വേഡ് ആവശ്യപ്പെടാതെയുള്ള എൻക്രിപ്ഷൻ/ഡീക്രിപ്ഷൻ

പാസ്‌വേഡ് ദൃശ്യമാക്കിയതിനാൽ, ഈ രീതി എവിടെയാണ് ഉപയോഗിക്കേണ്ടത് സുരക്ഷ പ്രധാനമല്ല.

സ്ഥിരസ്ഥിതിയായി, പാസ്‌വേഡ് ഇൻ്ററാക്ടീവ് ആയി നൽകാൻ ഉപയോക്താവിനോട് ആവശ്യപ്പെടും.

എഴുതുമ്പോൾ ബാഷ് സ്ക്രിപ്റ്റ്ഓപ്‌ഷൻ ഉപയോഗിച്ച് പാസ്‌വേഡ് ഇൻ്ററാക്ടീവ് ആയി നൽകുന്നതിന് നിങ്ങൾ ക്രമീകരിക്കാൻ ആഗ്രഹിച്ചേക്കാം -കെ.

ഇത്തരം കേസുകൾക്കാണ് പബ്ലിക് കീ എൻക്രിപ്ഷൻ കണ്ടുപിടിച്ചത്.

നൽകിയിരിക്കുന്ന പാസ്‌വേഡ് ഉപയോഗിച്ച് ഫയൽ എൻക്രിപ്റ്റ് ചെയ്യുക:

$ openssl enc -aes-256-cbc -salt -in file.txt -out file.txt.enc -കെ പാസ്

നൽകിയിരിക്കുന്ന പാസ്‌വേഡ് ഉപയോഗിച്ച് ഫയൽ ഡീക്രിപ്റ്റ് ചെയ്യുക:

$ openssl enc -aes-256-cbc -d -in file.txt.enc -out file.txt -കെ പാസ്

OpenSSH, OpenSSL പോലുള്ള ഉപകരണങ്ങൾക്ക് ആമുഖം ആവശ്യമില്ല. ഏതൊരു സിസ്റ്റം അഡ്മിനിസ്ട്രേറ്ററുടെയും നിരവധി നൂതന ഉപയോക്താക്കളുടെയും നിത്യ സുഹൃത്തുക്കളാണ് ഇവർ. എന്നിരുന്നാലും, വികസനത്തിൻ്റെ വർഷങ്ങളായി ശേഖരിച്ച അവരുടെ യഥാർത്ഥ ശക്തിയെയും കഴിവുകളെയും കുറിച്ച് എല്ലാവർക്കും അറിയില്ല. ഈ പ്രോഗ്രാമുകൾ ഉപയോഗിക്കുന്നതിനുള്ള രസകരമായ നിരവധി മാർഗങ്ങൾ ഇന്ന് നിങ്ങൾ കണ്ടെത്തും.

ഓപ്പൺഎസ്എസ്എച്ച്

ചോർന്നൊലിക്കുന്ന ടെൽനെറ്റിന് പകരമായി ഓപ്പൺഎസ്എസ്എച്ച്, ഇപ്പോഴും സിസ്റ്റങ്ങളിൽ ഒന്നാം സ്ഥാനത്താണ് റിമോട്ട് കൺട്രോൾഅതിൻ്റെ സുരക്ഷയ്ക്കും ഉപയോഗ എളുപ്പത്തിനും നന്ദി. എല്ലാവർക്കും ഇത് മനസിലാക്കാൻ കഴിയും, ഏറ്റവും ക്രോം പൂശിയ ടീപ്പോട്ടുകൾ പോലും, എന്നാൽ ഭൂരിഭാഗം ഉപയോക്താക്കളും അതിൻ്റെ ഏറ്റവും കുറഞ്ഞ കഴിവുകൾ ഉപയോഗിക്കുന്നു. കീകൾ, പോർട്ട് ഫോർവേഡിംഗ്, പ്രോക്സിയിംഗ്, മറ്റ് ഉപയോഗപ്രദവും എന്നാൽ അറിയപ്പെടുന്നതുമായ സാങ്കേതികതകൾ എന്നിവയെ കുറിച്ചുള്ള സ്റ്റോറികൾ ഒഴിവാക്കി ഈ ടൂൾ ഉപയോഗിക്കുന്നതിനുള്ള യഥാർത്ഥത്തിൽ രസകരവും വളരെ സാധാരണമല്ലാത്തതുമായ വഴികൾ നോക്കാം.

വിവരം

കൂടെ മുഴുവൻ പട്ടികഉപയോഗിച്ച് OpenSSL കമാൻഡുകൾ കണ്ടെത്താം ഇനിപ്പറയുന്ന പാരാമീറ്ററുകൾ: ലിസ്റ്റ്-സ്റ്റാൻഡേർഡ്-കമാൻഡുകൾ, ലിസ്റ്റ്-സന്ദേശം-ഡൈജസ്റ്റ്-കമാൻഡുകൾ, ലിസ്റ്റ്-സിഫർ-കമാൻഡുകൾ.

അതിനാൽ, ട്രിക്ക് നമ്പർ വൺ ഒന്നിലധികം കണക്ഷനുകളാണ്. ഒരേ മെഷീനിലേക്ക് ഒരേസമയം നിരവധി കണക്ഷനുകൾ നൽകാൻ OpenSSH-ന് കഴിയും. സാധാരണഗതിയിൽ, ഉപയോക്താക്കൾ ഒരു കമാൻഡ് പ്രവർത്തിപ്പിച്ച് അടുത്തത് പ്രവർത്തിപ്പിക്കുന്നതിന് മുമ്പ് അത് പൂർത്തിയാകുന്നതുവരെ കാത്തിരിക്കുക. ഭാഗ്യവശാൽ, ഒരൊറ്റ കണക്ഷൻ ഒന്നിലധികം സെഷനുകളായി വിഭജിച്ച് ഈ പ്രശ്നം എളുപ്പത്തിൽ മറികടക്കാൻ കഴിയും. നിങ്ങളുടെ ssh കോൺഫിഗറിലേക്ക് (~/.ssh/config) ഇനിപ്പറയുന്ന വരികൾ ചേർക്കുക:

കൺട്രോൾമാസ്റ്റർ ഓട്ടോ കൺട്രോൾപാത്ത് ~/.ssh/mux_%h_%p_%r

നിങ്ങൾക്ക് ആവശ്യമെന്ന് തോന്നുന്നത്രയും ഒരേ സെർവറിലേക്ക് നിങ്ങൾക്ക് നിരവധി കണക്ഷനുകൾ സൃഷ്‌ടിക്കാൻ കഴിയും, കൂടാതെ വീണ്ടും പ്രാമാണീകരണത്തിനായി സമയം പാഴാക്കേണ്ടതില്ല.


ട്രിക്ക് നമ്പർ രണ്ട് കണക്ഷനുകൾ പ്രോക്സി ചെയ്യുന്നു. നിങ്ങൾക്ക് SSH സെർവറിലേക്ക് നേരിട്ട് ഒരു കണക്ഷൻ സൃഷ്ടിക്കാൻ കഴിയില്ലെന്ന് പറയാം, എന്നാൽ ഇതിനായി നിങ്ങൾക്ക് മറ്റൊരു ഹോസ്റ്റ് ഉപയോഗിക്കാം, അതിലേക്ക് നിങ്ങൾക്ക് SSH ആക്സസ്സും ഉണ്ട്. നിങ്ങളുടെ കോൺഫിഗറേഷനിലേക്ക് ഇനിപ്പറയുന്ന വരികൾ ചേർക്കുക:

ForwardAgent അതെ Host host HostName host.com ProxyCommand ssh proxy-host.com \ netcat -q 600 %h %p

proxy-host.com സെർവർ വഴി ssh ഹോസ്റ്റ് കമാൻഡ് host.com സെർവറിലേക്ക് ഒരു കണക്ഷൻ സൃഷ്ടിക്കും.

ട്രിക്ക് നമ്പർ മൂന്ന് HTTP ഒറ്റപ്പെടലിന് അപ്പുറത്തേക്ക് പോകുന്നു. പല ഓർഗനൈസേഷനുകളും അനാവശ്യ ട്രാഫിക്കുകൾ വെട്ടിക്കുറയ്ക്കുക മാത്രമല്ല, HTTP പ്രോട്ടോക്കോൾ ഉപയോഗിച്ച് മാത്രം ഇൻ്റർനെറ്റ് ആക്സസ് ചെയ്യാൻ ഉപയോക്താക്കളെ നിർബന്ധിക്കുകയും ചെയ്യുന്നു. HTTP വഴി SSH ട്രാഫിക്ക് തുരങ്കം വയ്ക്കാൻ കഴിയുന്ന corkscrew (www.agroman.net/corkscrew/) ഉപയോഗിച്ച് ഈ അനീതി എളുപ്പത്തിൽ മറികടക്കാൻ കഴിയും. ഇത് നിങ്ങളുടെ മെഷീനിൽ ഇൻസ്റ്റാൾ ചെയ്ത് കോൺഫിഗറിലേക്ക് ഇനിപ്പറയുന്ന വരികൾ ചേർക്കുക (ഇവിടെ proxy.com ഉം 80 ഉം ബാഹ്യ HTTP പ്രോക്സിയുടെയും അതിൻ്റെ പോർട്ടിൻ്റെയും വിലാസമാണ്):

ഹോസ്റ്റ് * ProxyCommand corkscrew proxy.com 80 %h %p

ഇപ്പോൾ എല്ലാ കണക്ഷനുകളും നിർദ്ദിഷ്ട HTTP പ്രോക്സി വഴി പോകും.

ട്രിക്ക് നമ്പർ നാല് - ടെസ്റ്റ് ബാൻഡ്വിഡ്ത്ത്നെറ്റ്വർക്കുകൾ. കണക്ഷൻ വേഗത പരിശോധിക്കുന്നതിന്, പ്രത്യേക സോഫ്റ്റ്വെയർ ഇൻസ്റ്റാൾ ചെയ്യേണ്ട ആവശ്യമില്ല, നല്ല പഴയ എസ്എസ്എച്ച് മതി:

$ sudo apt-get install pv $ അതെ | pv | ssh host.com "cat > /dev/null"

ട്രിക്ക് നമ്പർ അഞ്ച് - വിദൂര വിശകലനംനെറ്റ്‌വർക്ക് ട്രാഫിക്. മിക്കവാറും എല്ലാ UNIX സിസ്റ്റത്തിലും tcpdump നെറ്റ്‌വർക്ക് സ്നിഫർ ഉണ്ട്, എന്നാൽ അതിൻ്റെ ലോഗുകൾ വായിക്കുന്നത് വളരെ മടുപ്പിക്കുന്നതാണ്. ട്രാഫിക് വിശകലനം ലളിതമാക്കാൻ OpenSSH കഴിവുകൾ സഹായിക്കും:

$ssh [ഇമെയിൽ പരിരക്ഷിതം] tcpdump -w – "port !22" \ | വയർഷാർക്ക് -k -i -

ഇപ്പോൾ host.com വഴി കടന്നുപോകുന്ന എല്ലാ ട്രാഫിക്കും നിങ്ങളുടെ മെഷീനിലെ വയർഷാർക്ക് ഗ്രാഫിക്കൽ വിൻഡോയിൽ ദൃശ്യമാകും.

ട്രിക്ക് നമ്പർ ആറ് - കുറഞ്ഞ വേഗതയിൽ ഫയലുകൾ കൈമാറുക. ചിലപ്പോൾ ഒരു റിമോട്ട് മെഷീനിലേക്ക് ഒരു വലിയ സംഖ്യ ഫയലുകൾ കൈമാറേണ്ടത് ആവശ്യമാണ്, എന്നാൽ ഈ പ്രക്രിയ നെറ്റ്വർക്കിൽ ഇടപെടാത്ത വിധത്തിൽ ഇത് ചെയ്യുക. ഈ സാഹചര്യത്തിൽ, നിങ്ങൾക്ക് cstream ടൂൾ ഉപയോഗിക്കാം:

$ sudo apt-get install cstream $ tar -cj /backup | cstream -t 512k | \ssh ഹോസ്റ്റ് "tar -xj -C /backup"

എല്ലായ്‌പ്പോഴും ഒരു തുറന്ന SSH സെഷൻ ഉണ്ടായിരിക്കുക എന്നതാണ് ട്രിക്ക് നമ്പർ ഏഴ്. നെറ്റ്‌വർക്കിലേക്കുള്ള കണക്ഷൻ സ്ഥിരമായിരിക്കാനിടയില്ലാത്ത ലാപ്‌ടോപ്പ് ഉപയോക്താക്കൾ, ഓരോ നെറ്റ്‌വർക്ക് ദൃശ്യമാകുമ്പോഴും SSH ക്ലയൻ്റ് പുനരാരംഭിക്കുകയും കണക്ഷൻ നഷ്‌ടപ്പെടുമ്പോൾ അതിനെ നശിപ്പിക്കുകയും വേണം. മിഥ്യാധാരണ നിലനിർത്തുന്ന autossh ടൂൾ ഉപയോഗിച്ച് നിങ്ങൾക്ക് ഇത് ഒഴിവാക്കാം സ്ഥിരമായ കണക്ഷൻസെർവർ ഉപയോഗിച്ച്, നെറ്റ്‌വർക്ക് ലഭ്യമാകുമ്പോൾ ആശയവിനിമയം പുനഃസ്ഥാപിക്കുന്നു:

$ sudo apt-get install autossh $ autossh -M50000 -t server.example.com\"screen -raAd mysession"

ട്രിക്ക് നമ്പർ എട്ട് ഒരേ സമയം നിരവധി സെർവറുകളിൽ കമാൻഡ് പ്രവർത്തിപ്പിക്കുക എന്നതാണ്. അഭിപ്രായങ്ങൾ ആവശ്യമില്ല:

$ എക്കോ "അപ്‌ടൈം" | മൂത്രമൊഴിക്കുക "ssh host1" "ssh host2" \ "ssh host3"

ട്രിക്ക് നമ്പർ ഒമ്പത് - റിമോട്ട് ഫയൽ താരതമ്യം. കോൺഫിഗറിൻറെ ലോക്കൽ, റിമോട്ട് പതിപ്പുകൾ താരതമ്യം ചെയ്യേണ്ടത് പലപ്പോഴും ആവശ്യമാണ്, എന്നാൽ ഫയലുകൾ അങ്ങോട്ടും ഇങ്ങോട്ടും പകർത്തുന്നത് അസൗകര്യവും സമയമെടുക്കുന്നതുമാണ്. ഈ സാഹചര്യത്തിൽ, നിങ്ങൾക്ക് ഇനിപ്പറയുന്ന കമാൻഡ് ഉപയോഗിക്കാം:

$ ssh user@host cat /path/to/remote/file | \diff /path/to/local/file -

വ്യത്യസ്ത സെർവറുകളിൽ സ്ഥിതി ചെയ്യുന്ന രണ്ട് ഫയലുകൾക്കും ഇത് ചെയ്യാൻ കഴിയും:

$വ്യത്യാസം<(ssh host1 cat /etc/apt/sources.list) \ <(ssh host2 cat /etc/apt/sources.list)

cpu0: RNG AES

വിഐഎ ഈഡൻ പ്ലാറ്റ്‌ഫോമിൻ്റെ സിപിയുവിൽ ബിൽറ്റ് ചെയ്‌തിരിക്കുന്ന ക്രിപ്‌റ്റോഗ്രാഫിക് ടൂളുകളുടെ ബെഞ്ച്മാർക്ക് ഫലങ്ങൾ (എഇഎസ് ബ്ലോക്ക് സിമെട്രിക് എൻക്രിപ്ഷൻ അൽഗോരിതം ഉപയോഗിച്ച് പ്രവർത്തിക്കുന്നതിനുള്ള പ്രോസസർ നിർദ്ദേശങ്ങൾ):

% openssl സ്പീഡ് -ഇലാപ്സ്ഡ് -evp aes-256-cbc ടൈപ്പ് 16 ബൈറ്റുകൾ 64 ബൈറ്റുകൾ256 ബൈറ്റുകൾ 1024 ബൈറ്റുകൾ 8192 ബൈറ്റുകൾ aes-256-cbc 21780.33k79591.78k 198578.08k

ട്രിക്ക് നമ്പർ 10 - നിരവധി മെഷീനുകളിൽ നിന്നുള്ള ലോഗുകൾ ഒരേസമയം കാണൽ. മൾട്ടിടെയിൽ, എസ്എസ്എച്ച് എന്നിവ ഉപയോഗിച്ച്, നിങ്ങൾക്ക് ഒരേസമയം രണ്ട് സെർവറുകളിൽ നിന്നുള്ള ലോഗുകൾ എളുപ്പത്തിൽ കാണാൻ കഴിയും:

$ sudo apt-get install multitail $ multitail -l "ssh host1 "tail -f \ /var/log/apache2/error.log"" -l "ssh host2 \ "tail -f /var/log/apache2/error. ലോഗ് ""

ട്രിക്ക് നമ്പർ 11 - ഒരു റിമോട്ട് മെഷീനിൽ നിന്ന് മറ്റൊന്നിലേക്ക് ലോക്കൽ വഴി ഫയലുകൾ പകർത്തുന്നു. രണ്ട് റിമോട്ട് മെഷീനുകൾക്ക് പരസ്പരം ആശയവിനിമയം നടത്താൻ കഴിയുന്നില്ലെങ്കിൽ, ഒരു ഇൻ്റർമീഡിയറ്റ് ലിങ്കായി നിങ്ങളുടെ കമ്പ്യൂട്ടർ ഉപയോഗിച്ച് ഫയലുകൾ അവയ്ക്കിടയിൽ കൈമാറാൻ കഴിയും:

$ ssh root@host1 "cd /directory && tar -cf – ." |\ ssh root@host2 "cd /dir && tar -xf -"

ട്രിക്ക് നമ്പർ 12 - റിമോട്ട് കമാൻഡിൻ്റെ ഔട്ട്പുട്ട് ക്ലിപ്പ്ബോർഡിലേക്ക് പകർത്തുന്നു. ഒരു ഇമെയിൽ, ഫോറം പോസ്റ്റ് മുതലായവയിൽ ഒട്ടിക്കാൻ പലപ്പോഴും നിങ്ങൾ ഒരു റിമോട്ട് കമാൻഡിൻ്റെ ഔട്ട്‌പുട്ട് ക്ലിപ്പ്ബോർഡിലേക്ക് പകർത്തേണ്ടതുണ്ട്. ഇത് ചെയ്യാനുള്ള എളുപ്പവഴി xclip യൂട്ടിലിറ്റിയാണ്:

$ ssh user@host cat /file.txt | xclip

ട്രിക്ക് നമ്പർ 13 - SSH ഉപയോഗിച്ച് സമയ സമന്വയം. മെഷീന് NTP സെർവറിലേക്ക് ആക്‌സസ് ഇല്ലെങ്കിലോ അതിൽ ഒരു NTP ക്ലയൻ്റ് ഇൻസ്റ്റാൾ ചെയ്തിട്ടില്ലെങ്കിലോ, നിങ്ങൾക്ക് മെഷീനുകൾക്കിടയിലുള്ള സമയം ഇനിപ്പറയുന്ന രീതിയിൽ സമന്വയിപ്പിക്കാൻ കഴിയും:

# date --set="$(ssh user@server date)"

ട്രിക്ക് നമ്പർ 14 - ഒരു റിമോട്ട് മെഷീനിൽ നിന്ന് ലോക്കൽ ഒന്നിലേക്ക് പാക്കേജുകൾ ഇൻസ്റ്റാൾ ചെയ്യുന്നു. രണ്ട് മെഷീനുകൾ സിൻക്രൊണൈസ് ചെയ്യേണ്ടത് പലപ്പോഴും ആവശ്യമാണ്, അതിനാൽ അവയ്ക്ക് ഒരേ പാക്കേജുകൾ ഇൻസ്റ്റാൾ ചെയ്യപ്പെടും. സ്റ്റാൻഡേർഡ് രീതികൾ ഉപയോഗിച്ച് ഇത് ചെയ്യാൻ പ്രയാസമാണ്, എന്നാൽ SSH ഉപയോഗിക്കുന്നത് pears ഷെല്ലിംഗ് പോലെ എളുപ്പമാണ്:

# ssh remotehost "dpkg --get-selections" | \dpkg --set-selections && dselect install

ട്രിക്ക് നമ്പർ 15 - റിമോട്ട് സ്ക്രീൻഷോട്ട്. സ്റ്റാൻഡേർഡ് ഇമേജ് മാജിക്ക് ഗ്രാഫിക്സ് പാക്കേജ് ഉപയോഗിച്ച് നിങ്ങൾക്ക് ഒരു റിമോട്ട് മെഷീനിൽ നിന്ന് ഒരു എക്സ് സെർവറിൻ്റെ ഒരു ഇമേജ് വളരെ എളുപ്പത്തിൽ ലഭിക്കും:

# ssh user@host "DISPLAY=:0.0 import -window \ root -format png -" | ഡിസ്പ്ലേ ഫോർമാറ്റ് png -

ട്രിക്ക് നമ്പർ 16 - ഡാറ്റ കൈമാറ്റം വേഗത്തിലാക്കുക. കണക്ഷൻ സ്ഥാപിച്ചിട്ടുള്ള മെഷീനുകൾ അറിയപ്പെടുന്ന ഒരു സുരക്ഷിത നെറ്റ്‌വർക്കിനുള്ളിലാണെങ്കിൽ (ഉദാഹരണത്തിന്, ഒരു ഓഫീസ് അല്ലെങ്കിൽ വീട്), നിങ്ങൾ ശക്തി കുറഞ്ഞ എൻക്രിപ്ഷൻ അൽഗോരിതം ഉപയോഗിക്കുകയാണെങ്കിൽ SSH ഉപയോഗിച്ചുള്ള ഡാറ്റ കൈമാറ്റം കുറച്ച് വേഗത്തിലാകും. ഇത് ചെയ്യുന്നതിന്, കോൺഫിഗറേഷൻ ഫയലിലേക്ക് ഇനിപ്പറയുന്ന വരികൾ ചേർക്കുക:

ഹോസ്റ്റ് ഹോസ്റ്റ്.കോം സിഫറുകൾ ആർക്ക്ഫോർ256 മാക് [ഇമെയിൽ പരിരക്ഷിതം]

ട്രിക്ക് നമ്പർ 17 - റിമോട്ട് മെഷീനിൽ നിന്ന് ഒരു ലോക്കലിലേക്ക് ഓഡിയോ ഔട്ട്പുട്ട് ചെയ്യുന്നു. ചിലപ്പോൾ റിമോട്ട് മെഷീൻ്റെ ഡെസ്‌ക്‌ടോപ്പ് ചിത്രത്തിനൊപ്പം ശബ്ദം ലഭിക്കാൻ നിങ്ങൾ ആഗ്രഹിക്കുന്നു. ബാനൽ ഡിഡി ഉപയോഗിച്ചാണ് ഇത് ചെയ്യുന്നത്:

$ dd if=/dev/dsp | ssh -c arcfour -C \ user@host dd of=/dev/dsp

ട്രിക്ക് നമ്പർ 18 - ഒരു റിമോട്ട് മെഷീനിൽ ഒരു ലോക്കൽ സ്ക്രിപ്റ്റ് പ്രവർത്തിപ്പിക്കുന്നു. പലപ്പോഴും നിങ്ങൾ ഒരു റിമോട്ട് മെഷീനിൽ ഒരു സ്ക്രിപ്റ്റ് പ്രവർത്തിപ്പിക്കേണ്ടതുണ്ട്, പക്ഷേ അത് അവിടെ പകർത്തേണ്ട ആവശ്യമില്ല, ഇനിപ്പറയുന്ന ലളിതമായ കമാൻഡ് പ്രവർത്തിപ്പിക്കുക:

$ ssh -T user@host< script.sh

ഓപ്പൺഎസ്എസ്എൽ

നെറ്റ്‌സ്‌കേപ്പ് സെക്യുർ സോക്കറ്റ്‌സ് ലെയർ (എസ്എസ്എൽ) പ്രോട്ടോക്കോൾ സൃഷ്‌ടിക്കുന്നതിന് മറുപടിയായി വികസിപ്പിച്ചെടുത്ത ഒരു ഡാറ്റാ സുരക്ഷയും സർട്ടിഫിക്കേഷൻ സംവിധാനവുമാണ് ഓപ്പൺഎസ്എസ്എൽ. ജനകീയ വിശ്വാസത്തിന് വിരുദ്ധമായി, ഓപ്പൺഎസ്എസ്എൽ എസ്എസ്എൽ പ്രോട്ടോക്കോൾ നടപ്പിലാക്കുന്നതിനുള്ള ഒരു ഉപകരണമല്ല, കൂടാതെ കീകളും സർട്ടിഫിക്കറ്റുകളും കൈകാര്യം ചെയ്യൽ, ഹാഷുകൾ കണക്കുകൂട്ടൽ മുതലായവ ഉൾപ്പെടെ നിരവധി പ്രവർത്തനങ്ങൾ നിർവഹിക്കാൻ കഴിയും. ഈ ക്രിപ്റ്റോഗ്രാഫിക് സംയോജനത്തിൻ്റെ കഴിവുകളുടെ ഒരു ഭാഗിക ലിസ്റ്റ് ഇവിടെയുണ്ട്:

  • RSA, DSA കീകൾ (rsa, dsa, dsaparam കമാൻഡുകൾ) സൃഷ്ടിക്കുകയും കൈകാര്യം ചെയ്യുകയും ചെയ്യുന്നു;
  • x509 ഫോർമാറ്റ് സർട്ടിഫിക്കറ്റുകൾ സൃഷ്ടിക്കുന്നു, സർട്ടിഫിക്കേഷൻ അഭ്യർത്ഥനകൾ സൃഷ്ടിക്കുന്നു, വീണ്ടെടുക്കൽ (കമാൻഡുകൾ x509, req, verify, ca, crl, pks12, pks7);
  • സമമിതി, അസമമായ ഡാറ്റ എൻക്രിപ്ഷൻ (enc, rsautl കമാൻഡുകൾ);
  • ഹാഷുകളുടെ കണക്കുകൂട്ടൽ (dgst കമാൻഡ്);
  • S/MIME (s/mime കമാൻഡ്) ഉപയോഗിച്ച് പ്രവർത്തിക്കുന്നു.

ഓപ്പൺഎസ്എസ്എൽ പ്രത്യേക കമാൻഡുകൾ ഉപയോഗിച്ച് എസ്എസ്എൽ സെർവറുകളും ക്ലയൻ്റുകളും പരീക്ഷിക്കുന്നതിനും ഉപയോഗിക്കാം ക്ലയൻ്റ്/ങ്ങൾസെർവറിനും വിവിധ അൽഗോരിതങ്ങളുടെ വേഗത പരിശോധിക്കുന്നതിനും (സ്പീഡ് കമാൻഡ്).

ഓപ്പൺഎസ്എസ്എൽ പാക്കേജിനൊപ്പം പ്രവർത്തിക്കുന്നതിനെക്കുറിച്ച് ഞങ്ങൾ ഒന്നിലധികം തവണ എഴുതിയിട്ടുണ്ട്, അതിനാൽ ഹാഷുകളും സർട്ടിഫിക്കറ്റുകളും സൃഷ്ടിക്കുന്നത് പോലുള്ള അതിൻ്റെ ഉപയോഗത്തിൻ്റെ സാധാരണ ഉദാഹരണങ്ങൾ ഞങ്ങൾ പരിഗണിക്കില്ല, എന്നാൽ ഉടൻ തന്നെ കൂടുതൽ ഗുരുതരമായ തന്ത്രങ്ങളിലേക്ക് നീങ്ങും.


സമയമാണ് ധനം

ഓപ്പൺഎസ്എസ്എല്ലിൻ്റെ രസകരമായ ഒരു സവിശേഷത, ഉപയോഗിച്ച അൽഗോരിതങ്ങളും ഒരു എസ്എസ്എൽ കണക്ഷൻ സ്ഥാപിക്കുന്നതിനുള്ള വേഗതയും ബഞ്ച്മാർക്ക് ചെയ്യാൻ ഇതിന് കഴിയും എന്നതാണ്. സ്റ്റാൻഡേർഡ് s_time കമാൻഡ് ഇതിനായി ഉദ്ദേശിച്ചുള്ളതാണ്. ഒരു SSL കണക്ഷൻ സ്ഥാപിക്കുന്നതിൻ്റെ വേഗത വിലയിരുത്തുന്നതിന്, നിങ്ങൾ അത് openssl കമാൻഡിൽ പ്രയോഗിക്കേണ്ടതുണ്ട്:

$ openssl s_time -connect gmail.com:443 \ -www /test.html - 0.75 സെക്കൻഡിൽ പുതിയ 103 കണക്ഷനുകൾ; 137.33 കണക്ഷനുകൾ/ഉപയോക്തൃ സെക്കൻഡ്, ബൈറ്റുകൾ റീഡ് 42436 103 കണക്ഷനുകൾ 31 യഥാർത്ഥ സെക്കൻഡിൽ, 412 ബൈറ്റുകൾ ഓരോ കണക്ഷനും റീഡ് ചെയ്യുന്നു

ഏറ്റവും ശക്തമായ അൽഗോരിതങ്ങൾ ഉപയോഗിച്ച് ഇത് ചെയ്യാൻ കഴിയും:

$ openssl s_time -ssl3 -cipher HIGH \ -connect gmail.com:443 -www / -new 99 connections in 0.73s; 135.62 കണക്ഷനുകൾ/ഉപയോക്തൃ സെക്കൻഡ്, ബൈറ്റുകൾ റീഡ് 40788 99 കണക്ഷനുകൾ 31 യഥാർത്ഥ സെക്കൻഡിൽ, 412 ബൈറ്റുകൾ ഓരോ കണക്ഷനും റീഡ് ചെയ്യുന്നു

SSL സെർവറിൻ്റെ പരമാവധി ത്രൂപുട്ട് നിർണ്ണയിക്കാൻ ഈ രണ്ട് കമാൻഡുകൾ നിങ്ങളെ അനുവദിക്കുന്നു. എന്നാൽ പിന്തുണയ്‌ക്കുന്ന എല്ലാ അൽഗോരിതങ്ങളും പരീക്ഷിക്കുക എന്നതാണ് അതിലും രസകരമായ ഒരു മാർഗം. ഇത് ചെയ്യുന്നതിന്, ഞങ്ങൾ സ്ക്രിപ്റ്റിംഗ് അവലംബിക്കേണ്ടതുണ്ട്:

$(openssl ciphers -ssl3 RSA) എന്നതിലെ c എന്നതിനുള്ള IFS=":"; do echo $c openssl s_time -connect host:443 -www / -new \ -time 10 -cipher $c 2>&1 | grep ബൈറ്റുകൾ എക്കോ ചെയ്തു

വിവിധ എൻക്രിപ്ഷൻ അൽഗോരിതങ്ങൾ ഉപയോഗിച്ച് ഒരു എസ്എസ്എൽ കണക്ഷൻ സ്ഥാപിക്കുന്നതിനുള്ള വേഗത അളക്കാൻ ഈ കമാൻഡ് നിങ്ങളെ അനുവദിക്കുന്നു, ഉദാഹരണത്തിന്, ഒരു എസ്എസ്എൽ സെർവർ ട്യൂൺ ചെയ്യാൻ ഇത് ഉപയോഗിക്കാം. ഇതുവരെ ഒരു SSL സെർവർ ഇല്ലെങ്കിൽ, OpenSSL ഉപയോഗിച്ച് അത് എളുപ്പത്തിൽ അനുകരിക്കാവുന്നതാണ്. സെർവർ മെഷീനിൽ ഞങ്ങൾ OpenSSL സെർവർ സമാരംഭിക്കുന്നു: