OAuth చరిత్ర: పాస్‌వర్డ్‌ల నుండి గ్లోబల్ స్టాండర్డ్స్ వరకు

మీరు దీన్ని ప్రతిరోజూ చూస్తుంటారు. మీరు "Login with Google" లేదా "Login with GitHub" పై క్లిక్ చేస్తారు. మీరు పాస్‌వర్డ్ టైప్ చేయరు. మీరు వెంటనే సైట్‌లోకి ప్రవేశించగలరు.

ఇది OAuth వల్ల సాధ్యమవుతుంది. ఇది భద్రత కోసం ప్రపంచవ్యాప్త ప్రమాణం (global standard). కానీ ఇది మొదట్లో ఇలా లేదు. భారీ సమస్యలను పరిష్కరించడానికి ఇది పరిణామం చెందింది.

పాస్‌వర్డ్‌లతో ఉన్న సమస్యలు

ప్రారంభ రోజుల్లో, మీరు ప్రతి వెబ్‌సైట్ కోసం ఒక కొత్త పాస్‌వర్డ్‌ను సృష్టించేవారు. దీనివల్ల మూడు ప్రధాన సమస్యలు తలెత్తాయి:

  • ప్రజలు ప్రతిచోటా ఒకే పాస్‌వర్డ్‌ను ఉపయోగించేవారు. ఒక సైట్ నుండి డేటా లీక్ అయితే, ప్రతి ఖాతా ప్రమాదంలో పడేది.
  • ప్రజలు పాస్‌వర్డ్‌లను మర్చిపోయేవారు. వెబ్‌ను ఉపయోగించడం కంటే "forgot password" పై క్లిక్ చేయడానికే ఎక్కువ సమయం వెచ్చించేవారు.
  • వెబ్‌సైట్‌లు మీ అసలు పాస్‌వర్డ్‌ను చూసేవి. ఒక సైట్ హ్యాక్ చేయబడితే, మీ పాస్‌వర్డ్ దొంగిలించబడేది.

భద్రత యొక్క పరిణామం

  1. Basic Auth: మీరు ప్రతి రిక్వెస్ట్‌తో పాటు మీ యూజర్‌నేమ్ మరియు పాస్‌వర్డ్‌ను పంపేవారు. మీరు HTTPS ఉపయోగించకపోతే, హ్యాకర్లు ప్రతిదీ చూడగలిగేవారు.

  2. Session Cookies: మీరు ఒకసారి లాగిన్ అయ్యి సెషన్ IDని పొందేవారు. ఇది మెరుగైనది, కానీ XSS లేదా CSRF వంటి దాడుల ద్వారా కుకీలను దొంగిలించవచ్చు. అంతేకాకుండా, ఒక సైట్ మీ లాగిన్‌ను ఉపయోగించి మరొక సైట్‌తో మాట్లాడలేకపోయేది.

  3. API Keys: మీరు వెబ్‌సైట్‌కు ఒక ప్రత్యేక కీని ఇచ్చేవారు. మీరు పాస్‌వర్డ్‌ను పంపనందున ఇది మెరుగైనది. అయితే, API కీలకు తరచుగా అధిక అధికారాలు ఉంటాయి. మీరు ఒక యాప్‌కు API కీని ఇస్తే, ఆ యాప్‌కు మీ ఈమెయిల్స్ చదవడానికి, మెసేజ్‌లు పంపడానికి మరియు మీ ఖాతాను తొలగించడానికి కూడా అధికారం ఉండవచ్చు. ఇది హోటల్ వాలెట్‌కు మీ కారు కీని ఇవ్వడం వంటిది, కానీ ఆ కీ మీ ఇంటిని కూడా తెరిచేస్తుంది.

OAuth పరిష్కారం: వాలెట్ కీ (The Valet Key)

OAuth ఆటను మార్చేసింది. మీ పాస్‌వర్డ్‌ను ఇవ్వడానికి బదులుగా, మీరు ఒక "token"ను ఇస్తారు. దీనిని ఒక వాలెట్ కీగా భావించండి. వాలెట్ కీ డ్రైవర్‌కు మీ కారును పార్క్ చేయడానికి అనుమతిస్తుంది, కానీ మీ ట్రంక్ తెరవడానికి లేదా మీ ఇంటిని యాక్సెస్ చేయడానికి అనుమతించదు.

OAuth ఆచరణలో ఎలా పనిచేస్తుంది:

  • మీరు Canva ఉపయోగించి Google నుండి ఫోటోలను పొందాలనుకుంటున్నారు.
  • Canva, Google నుండి అనుమతి కోరుతుంది.
  • Google మిమ్మల్ని అడుగుతుంది: "Canva మీ ఫోటోలను చూడవచ్చా?"
  • మీరు ఇలా అంటారు: "అవును, కానీ కేవలం చూడటానికి మాత్రమే. ఏదీ తొలగించనివ్వకండి."
  • Google, Canvaకు ఒక నిర్దిష్టమైన tokenను ఇస్తుంది.

Canva మీ Google పాస్‌వర్డ్‌ను ఎప్పుడూ చూడదు. ఒక హ్యాకర్ ఆ tokenను దొంగిలించినప్పటికీ, వారు స్వల్ప కాలం పాటు మాత్రమే ఫోటోలను చూడగలరు. వారు మీ పాస్‌వర్డ్‌ను మార్చలేరు లేదా మీ డబ్బును తరలించలేరు.

ఆధునిక భద్రత: PKCE

మొబైల్ యాప్‌లు మరియు వెబ్ యాప్‌లకు ఒక బలహీనత ఉంది. అవి రహస్యాలను సరిగ్గా దాచలేవు. దీనిని పరిష్కరించడానికి, మనం PKCE (Proof Key for Code Exchange)ని ఉపయోగిస్తాము.

ఇది రిజర్వేషన్ సిస్టమ్ లాగా పనిచేస్తుంది:

  • యాప్ ఒక రహస్య కోడ్‌ను (the verifier) సృష్టిస్తుంది.
  • యాప్ ఆ కోడ్‌ యొక్క హాష్ చేయబడిన వెర్షన్‌ను (the challenge) Googleకు పంపుతుంది.
  • యాప్ token కోసం అడిగినప్పుడు, అది అసలు రహస్య కోడ్‌ను పంపుతుంది.
  • కోడ్, challengeతో సరిపోలుతుందో లేదో Google తనిఖీ చేస్తుంది.

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

OAuth రోడ్‌మ్యాప్

  • 2007 (OAuth 1.0): చాలా సంక్లిష్టమైనది మరియు భారీ గణితాన్ని ఉపయోగించేది.
  • 2012 (OAuth 2.0): వేగవంతమైనది మరియు సులభమైనది. ఇది tokensను ఉపయోగించింది మరియు HTTPS అవసరం.
  • 2016 (OAuth 2.0 + PKCE): మొబైల్ మరియు ఆధునిక వెబ్ యాప్‌ల కోసం భద్రతను జోడించింది.
  • 2023 (OAuth 2.1): కొత్త గోల్డ్ స్టాండర్డ్. ఇది పాత, సురక్షితం కాని పద్ధతులను తొలగిస్తుంది.

ప్రధాన పాఠం: మీ పాస్‌వర్డ్‌ను ఎప్పుడూ మరొక యాప్‌కు ఇవ్వకండి. గడువు ముగిసేలా పరిమితమైన టికెట్‌ను మాత్రమే ఇవ్వండి. మీరు నియంత్రణలో ఉంటారు.

మూలం: https://dev.to/gophernment/oauth-elaaaebbprawatisaastr-cchaakrhasphaan-suumaatrthaanolk-16b4