SSH కోసం రెండు-కారకాల ప్రమాణీకరణ

“సెక్యూర్ షెల్” SSH అనేది హోస్ట్‌ల మధ్య సురక్షిత కనెక్షన్‌ని ఏర్పాటు చేయడానికి నెట్‌వర్క్ ప్రోటోకాల్, ప్రామాణికంగా పోర్ట్ 22 (దీనిని మార్చడం మంచిది). చాలా ఆపరేటింగ్ సిస్టమ్‌లకు SSH క్లయింట్లు మరియు SSH సర్వర్లు అందుబాటులో ఉన్నాయి. దాదాపు ఏదైనా ఇతర నెట్‌వర్క్ ప్రోటోకాల్ SSH లోపల పని చేస్తుంది, అంటే, మీరు మరొక కంప్యూటర్‌లో రిమోట్‌గా పని చేయవచ్చు, గుప్తీకరించిన ఛానెల్ ద్వారా ఆడియో లేదా వీడియో స్ట్రీమ్‌ను ప్రసారం చేయవచ్చు, మొదలైనవి. అంతేకాకుండా, రిమోట్ హోస్ట్‌లో SOCKS ప్రాక్సీ ద్వారా మీరు ఈ రిమోట్ హోస్ట్ తరపున ఇతర హోస్ట్‌లకు కనెక్ట్ చేయవచ్చు.

పాస్‌వర్డ్‌ని ఉపయోగించి ప్రామాణీకరణ జరుగుతుంది, అయితే డెవలపర్‌లు మరియు సిస్టమ్ అడ్మినిస్ట్రేటర్‌లు సాంప్రదాయకంగా SSH కీలను ఉపయోగిస్తారు. సమస్య ఏమిటంటే ప్రైవేట్ కీ దొంగిలించబడవచ్చు. రహస్య పదబంధాన్ని జోడించడం అనేది ప్రైవేట్ కీ దొంగతనం నుండి సిద్ధాంతపరంగా రక్షిస్తుంది, కానీ ఆచరణలో, కీలను ఫార్వార్డ్ చేసేటప్పుడు మరియు కాషింగ్ చేసేటప్పుడు, అవి నిర్ధారణ లేకుండా ఇప్పటికీ ఉపయోగించవచ్చు. రెండు-కారకాల ప్రమాణీకరణ ఈ సమస్యను పరిష్కరిస్తుంది.

రెండు-కారకాల ప్రమాణీకరణను ఎలా అమలు చేయాలి

తేనెగూడు నుండి డెవలపర్లు ఇటీవల ప్రచురించారు వివరణాత్మక సూచనలు, క్లయింట్ మరియు సర్వర్‌లో తగిన మౌలిక సదుపాయాలను ఎలా అమలు చేయాలి.

మీరు ఇంటర్నెట్‌కు (బురుజు) ఒక నిర్దిష్ట ప్రాథమిక హోస్ట్‌ని తెరిచినట్లు సూచనలు ఊహిస్తాయి. మీరు ఇంటర్నెట్ ద్వారా ల్యాప్‌టాప్‌లు లేదా కంప్యూటర్‌ల నుండి ఈ హోస్ట్‌కి కనెక్ట్ చేయాలనుకుంటున్నారు మరియు దాని వెనుక ఉన్న అన్ని ఇతర పరికరాలను యాక్సెస్ చేయాలనుకుంటున్నారు. దాడి చేసేవారు మీ ల్యాప్‌టాప్‌కి యాక్సెస్‌ని పొందినప్పటికీ, ఉదాహరణకు మాల్వేర్‌ని ఇన్‌స్టాల్ చేయడం ద్వారా కూడా అదే పని చేయలేరని 2FA నిర్ధారిస్తుంది.

మొదటి ఎంపిక OTP

OTP - వన్-టైమ్ డిజిటల్ పాస్‌వర్డ్‌లు, ఈ సందర్భంలో కీతో పాటు SSH ప్రమాణీకరణ కోసం ఉపయోగించబడుతుంది. డెవలపర్‌లు ఇది సరైన ఎంపిక కాదని వ్రాశారు, ఎందుకంటే దాడి చేసే వ్యక్తి నకిలీ బురుజును పెంచుకోవచ్చు, మీ OTPని అడ్డగించి దానిని ఉపయోగించవచ్చు. కానీ అది ఏమీ కంటే ఉత్తమం.

ఈ సందర్భంలో, సర్వర్ వైపు, కింది పంక్తులు చెఫ్ కాన్ఫిగరేషన్‌లో వ్రాయబడతాయి:

  • metadata.rb
  • attributes/default.rb (యొక్క attributes.rb)
  • files/sshd
  • recipes/default.rb (కాపీ నుండి recipe.rb)
  • templates/default/users.oath.erb

ఏదైనా OTP అప్లికేషన్ క్లయింట్ వైపు ఇన్‌స్టాల్ చేయబడింది: Google Authenticator, Authy, Duo, Lastpass, ఇన్‌స్టాల్ చేయబడింది brew install oath-toolkit లేదా apt install oathtool openssl, అప్పుడు యాదృచ్ఛిక బేస్16 స్ట్రింగ్ (కీ) ఉత్పత్తి చేయబడుతుంది. ఇది మొబైల్ ప్రామాణీకరణదారులు ఉపయోగించే Base32 ఆకృతికి మార్చబడుతుంది మరియు నేరుగా అప్లికేషన్‌లోకి దిగుమతి చేయబడుతుంది.

ఫలితంగా, మీరు బాస్షన్‌కి కనెక్ట్ అవ్వవచ్చు మరియు దానికి ఇప్పుడు పాస్‌ఫ్రేజ్ మాత్రమే కాకుండా, ప్రామాణీకరణ కోసం OTP కోడ్ కూడా అవసరమని చూడవచ్చు:

➜ ssh -A bastion
Enter passphrase for key '[snip]': 
One-time password (OATH) for '[user]': 
Welcome to Ubuntu 18.04.1 LTS...

రెండవ ఎంపిక హార్డ్‌వేర్ ప్రమాణీకరణ

ఈ సందర్భంలో, వినియోగదారు ప్రతిసారీ OTP కోడ్‌ను నమోదు చేయవలసిన అవసరం లేదు, ఎందుకంటే రెండవ అంశం హార్డ్‌వేర్ పరికరం లేదా బయోమెట్రిక్‌గా మారుతుంది.

ఇక్కడ చెఫ్ కాన్ఫిగరేషన్ కొంచెం క్లిష్టంగా ఉంటుంది మరియు క్లయింట్ కాన్ఫిగరేషన్ OS పై ఆధారపడి ఉంటుంది. కానీ అన్ని దశలను పూర్తి చేసిన తర్వాత, MacOSలోని క్లయింట్లు పాస్‌ఫ్రేజ్‌ని ఉపయోగించి SSHలో ప్రామాణీకరణను నిర్ధారించవచ్చు మరియు సెన్సార్‌పై వేలును ఉంచవచ్చు (రెండవ అంశం).

iOS మరియు Android యజమానులు లాగిన్‌ని నిర్ధారిస్తారు మీ స్మార్ట్‌ఫోన్‌లో ఒక బటన్‌ను నొక్కడం ద్వారా. ఇది Krypt.co నుండి వచ్చిన ప్రత్యేక సాంకేతికత, ఇది OTP కంటే మరింత సురక్షితమైనది.

Linux/ChromeOSలో YubiKey USB టోకెన్‌లతో పని చేయడానికి ఒక ఎంపిక ఉంది. అయితే, దాడి చేసే వ్యక్తి మీ టోకెన్‌ను దొంగిలించవచ్చు, కానీ అతనికి ఇప్పటికీ పాస్‌ఫ్రేజ్ తెలియదు.

మూలం: www.habr.com

ఒక వ్యాఖ్యను జోడించండి