OAuth चा इतिहास: पासवर्डपासून जागतिक मानकांपर्यंत

तुम्ही हे दररोज पाहता. तुम्ही "Login with Google" किंवा "Login with GitHub" वर क्लिक करता. तुम्ही पासवर्ड टाईप करत नाही. तुम्ही त्वरित साइटमध्ये प्रवेश करता.

हे OAuth मुळे शक्य होते. हे सुरक्षेसाठीचे जागतिक मानक आहे. पण याची सुरुवात अशी नव्हती. प्रचंड समस्या सोडवण्यासाठी याचा विकास झाला.

पासवर्डसोबतची समस्या

सुरुवातीच्या काळात, तुम्ही प्रत्येक वेबसाइटसाठी एक नवीन पासवर्ड तयार करायचा. यामुळे तीन मोठ्या समस्या निर्माण झाल्या:

  • लोक सर्वत्र एकच पासवर्ड वापरत असत. जर एक साइट लीक झाली, तर प्रत्येक खाते धोक्यात आले असते.
  • लोक पासवर्ड विसरत असत. ते वेब वापरण्यापेक्षा "forgot password" वर क्लिक करण्यात जास्त वेळ घालवत असत.
  • वेबसाइट्स तुमचा मूळ (raw) पासवर्ड पाहू शकत असत. जर एखादी साइट हॅक झाली, तर तुमचा पासवर्ड चोरीला जात असे.

सुरक्षेचा विकास

  1. Basic Auth: तुम्ही प्रत्येक विनंतीसोबत (request) तुमचे युजरनेम आणि पासवर्ड पाठवत असे. जर तुम्ही HTTPS वापरले नाही, तर हॅकर्स सर्व काही पाहू शकत होते.

  2. Session Cookies: तुम्ही एकदा लॉग इन करायचे आणि तुम्हाला एक session ID मिळायचा. हे अधिक चांगले होते, परंतु XSS किंवा CSRF सारख्या हल्ल्यांद्वारे कुकीज चोरीला जाऊ शकतात. तसेच, एक साइट दुसऱ्या साइटशी संवाद साधण्यासाठी तुमच्या लॉगिनचा वापर करू शकत नव्हती.

  3. API Keys: तुम्ही वेबसाइटला एक विशेष की (key) द्यायचा. हे अधिक चांगले होते कारण तुम्ही तुमचा पासवर्ड पाठवत नसे. तथापि, API keys कडे अनेकदा खूप जास्त अधिकार असतात. जर तुम्ही एखाद्या ॲपला API key दिली, तर त्या ॲपला तुमचे ईमेल वाचणे, संदेश पाठवणे आणि तुमचे खाते हटवण्याचे अधिकार मिळू शकतात. हे एखाद्या हॉटेल व्हॅलेटला तुमच्या कारची चावी देण्यासारखे आहे, पण त्या चावीने तुमचे घरही उघडते.

OAuth उपाय: व्हॅलेट की (Valet Key)

OAuth ने सर्व काही बदलून टाकले. तुमचा पासवर्ड देण्याऐवजी, तुम्ही एक "token" देता. याला व्हॅलेट की (valet key) समजा. व्हॅलेट की ड्रायव्हरला तुमची कार पार्क करू देते, पण ती त्यांना तुमची डिकी (trunk) उघडण्याची किंवा तुमच्या घरात प्रवेश करण्याची परवानगी देत नाही.

OAuth प्रत्यक्षपणे कसे कार्य करते:

  • तुम्हाला Canva वापरायचे आहे आणि Google मधून फोटो घ्यायचे आहेत.
  • Canva Google कडे परवानगी मागतो.
  • Google तुम्हाला विचारते: "Canva तुमचे फोटो पाहू शकते का?"
  • तुम्ही म्हणता: "हो, पण फक्त पाहण्यासाठी. त्यांना काहीही हटवू देऊ नका."
  • Google Canva ला एक विशिष्ट token देते.

Canva तुमचा Google पासवर्ड कधीही पाहत नाही. जर एखाद्या हॅकरने तो token चोरला तरी, ते फक्त काही काळासाठी फोटो पाहू शकतात. ते तुमचा पासवर्ड बदलू शकत नाहीत किंवा तुमचे पैसे हलवू शकत नाहीत.

आधुनिक सुरक्षा: PKCE

मोबाईल ॲप्स आणि वेब ॲप्समध्ये एक त्रुटी असते. ते गुपिते (secrets) नीट लपवू शकत नाहीत. हे सुधारण्यासाठी, आपण PKCE (Proof Key for Code Exchange) वापरतो.

हे रिझर्व्हेशन सिस्टमप्रमाणे काम करते:

  • ॲप एक गुप्त कोड (verifier) तयार करते.
  • ॲप त्या कोडची एक hashed आवृत्ती (challenge) Google कडे पाठवते.
  • जेव्हा ॲप token साठी विनंती करते, तेव्हा ते मूळ गुप्त कोड पाठवते.
  • Google तपासते की कोड challenge शी जुळतो का.

जर ते जुळले, तर Google ला समजते की हे तेच ॲप आहे. जर ते जुळले नाहीत, तर Google विनंती ब्लॉक करते. यामुळे हॅकर्सना तुमचा authorization code चोरण्यापासून रोखता येते.

OAuth चा रोडमॅप

  • 2007 (OAuth 1.0): अत्यंत गुंतागुंतीचे आणि जड गणिती प्रक्रिया वापरणारे.
  • 2012 (OAuth 2.0): जलद आणि सोपे. यामध्ये tokens चा वापर केला गेला आणि HTTPS आवश्यक होते.
  • 2016 (OAuth 2.0 + PKCE): मोबाईल आणि आधुनिक वेब ॲप्ससाठी सुरक्षा वाढवली.
  • 2023 (OAuth 2.1): नवीन गोल्ड स्टँडर्ड. हे जुन्या, असुरक्षित पद्धती काढून टाकते.

मुख्य धडा: तुमचा पासवर्ड कधीही दुसऱ्या ॲपला देऊ नका. त्यांना एक मर्यादित तिकीट द्या जे काही काळानंतर संपेल (expires). तुम्ही नियंत्रणात राहाल.

स्रोत: https://dev.to/gophernment/oauth-elaaaebbprawatisaastr-cchaakrhasphaan-suumaatrthaanolk-16b4