OAuth ਦਾ ਇਤਿਹਾਸ: ਪਾਸਵਰਡਾਂ ਤੋਂ ਲੈ ਕੇ ਗਲੋਬਲ ਸਟੈਂਡਰਡ ਤੱਕ
ਤੁਸੀਂ ਇਸਨੂੰ ਰੋਜ਼ਾਨਾ ਦੇਖਦੇ ਹੋ। ਤੁਸੀਂ "Login with Google" ਜਾਂ "Login with GitHub" 'ਤੇ ਕਲਿੱਕ ਕਰਦੇ ਹੋ। ਤੁਸੀਂ ਪਾਸਵਰਡ ਟਾਈਪ ਨਹੀਂ ਕਰਦੇ। ਤੁਸੀਂ ਤੁਰੰਤ ਸਾਈਟ ਵਿੱਚ ਦਾਖਲ ਹੋ ਜਾਂਦੇ ਹੋ।
ਇਹ OAuth ਕਰਕੇ ਕੰਮ ਕਰਦਾ ਹੈ। ਇਹ ਸੁਰੱਖਿਆ ਲਈ ਗਲੋਬਲ ਸਟੈਂਡਰਡ ਹੈ। ਪਰ ਇਸਦੀ ਸ਼ੁਰੂਆਤ ਇਸ ਤਰ੍ਹਾਂ ਨਹੀਂ ਹੋਈ ਸੀ। ਇਹ ਵੱਡੀਆਂ ਸਮੱਸਿਆਵਾਂ ਨੂੰ ਹੱਲ ਕਰਨ ਲਈ ਵਿਕਸਿਤ ਹੋਇਆ ਹੈ।
ਪਾਸਵਰਡਾਂ ਨਾਲ ਸਬੰਧਤ ਸਮੱਸਿਆ
ਸ਼ੁਰੂਆਤੀ ਦਿਨਾਂ ਵਿੱਚ, ਤੁਸੀਂ ਹਰ ਵੈੱਬਸਾਈਟ ਲਈ ਇੱਕ ਨਵਾਂ ਪਾਸਵਰਡ ਬਣਾਉਂਦੇ ਸੀ। ਇਸ ਨਾਲ ਤਿੰਨ ਵੱਡੀਆਂ ਸਮੱਸਿਆਵਾਂ ਪੈਦਾ ਹੋਈਆਂ:
- ਲੋਕ ਹਰ ਜਗ੍ਹਾ ਇੱਕੋ ਪਾਸਵਰਡ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਸਨ। ਜੇਕਰ ਇੱਕ ਸਾਈਟ ਤੋਂ ਡਾਟਾ ਲੀਕ ਹੋ ਜਾਂਦਾ, ਤਾਂ ਹਰ ਖਾਤਾ ਖਤਰੇ ਵਿੱਚ ਪੈ ਜਾਂਦਾ ਸੀ।
- ਲੋਕ ਪਾਸਵਰਡ ਭੁੱਲ ਜਾਂਦੇ ਸਨ। ਉਹ ਵੈੱਬ ਦੀ ਵਰਤੋਂ ਕਰਨ ਨਾਲੋਂ "forgot password" 'ਤੇ ਕਲਿੱਕ ਕਰਨ ਵਿੱਚ ਜ਼ਿਆਦਾ ਸਮਾਂ ਬਿਤਾਉਂਦੇ ਸਨ।
- ਵੈੱਬਸਾਈਟਾਂ ਤੁਹਾਡਾ ਅਸਲੀ (raw) ਪਾਸਵਰਡ ਦੇਖ ਸਕਦੀਆਂ ਸਨ। ਜੇਕਰ ਕੋਈ ਸਾਈਟ ਹੈਕ ਹੋ ਜਾਂਦੀ, ਤਾਂ ਤੁਹਾਡਾ ਪਾਸਵਰਡ ਚਲਾ ਜਾਂਦਾ ਸੀ।
ਸੁਰੱਖਿਆ ਦਾ ਵਿਕਾਸ
Basic Auth: ਤੁਸੀਂ ਹਰ ਰਿਕਵੈਸਟ ਦੇ ਨਾਲ ਆਪਣਾ ਯੂਜ਼ਰਨੇਮ ਅਤੇ ਪਾਸਵਰਡ ਭੇਜਦੇ ਸੀ। ਜੇਕਰ ਤੁਸੀਂ HTTPS ਦੀ ਵਰਤੋਂ ਨਹੀਂ ਕਰਦੇ ਸੀ, ਤਾਂ ਹੈਕਰ ਸਭ ਕੁਝ ਦੇਖ ਸਕਦੇ ਸਨ।
Session Cookies: ਤੁਸੀਂ ਇੱਕ ਵਾਰ ਲੌਗਇਨ ਕਰਦੇ ਸੀ ਅਤੇ ਤੁਹਾਨੂੰ ਇੱਕ session ID ਮਿਲ ਜਾਂਦੀ ਸੀ। ਇਹ ਬਿਹਤਰ ਸੀ, ਪਰ XSS ਜਾਂ CSRF ਵਰਗੇ ਹਮਲਿਆਂ ਰਾਹੀਂ ਕੁਕੀਜ਼ (cookies) ਚੋਰੀ ਕੀਤੀਆਂ ਜਾ ਸਕਦੀਆਂ ਹਨ। ਇਸ ਤੋਂ ਇਲਾਵਾ, ਇੱਕ ਸਾਈਟ ਤੁਹਾਡੇ ਲੌਗਇਨ ਦੀ ਵਰਤੋਂ ਦੂਜੀ ਸਾਈਟ ਨਾਲ ਗੱਲਬਾਤ ਕਰਨ ਲਈ ਨਹੀਂ ਕਰ ਸਕਦੀ ਸੀ।
API Keys: ਤੁਸੀਂ ਇੱਕ ਵੈੱਬਸਾਈਟ ਨੂੰ ਇੱਕ ਖਾਸ ਕੀ (key) ਦਿੱਤੀ। ਇਹ ਬਿਹਤਰ ਸੀ ਕਿਉਂਕਿ ਤੁਸੀਂ ਆਪਣਾ ਪਾਸਵਰਡ ਨਹੀਂ ਭੇਜਦੇ ਸੀ। ਹਾਲਾਂਕਿ, API keys ਕੋਲ ਅਕਸਰ ਬਹੁਤ ਜ਼ਿਆਦਾ ਸ਼ਕਤੀ ਹੁੰਦੀ ਹੈ। ਜੇਕਰ ਤੁਸੀਂ ਕਿਸੇ ਐਪ ਨੂੰ API key ਦਿੰਦੇ ਹੋ, ਤਾਂ ਉਸ ਐਪ ਕੋਲ ਤੁਹਾਡੇ ਈਮੇਲ ਪੜ੍ਹਨ, ਸੁਨੇਹੇ ਭੇਜਣ ਅਤੇ ਤੁਹਾਡਾ ਖਾਤਾ ਡਿਲੀਟ ਕਰਨ ਦੀ ਸ਼ਕਤੀ ਹੋ ਸਕਦੀ ਹੈ। ਇਹ ਇੱਕ ਹੋਟਲ ਵੈਲੇਟ (valet) ਨੂੰ ਆਪਣੀ ਕਾਰ ਦੀ ਚਾਬੀ ਦੇਣ ਵਰਗਾ ਹੈ, ਪਰ ਉਹ ਚਾਬੀ ਤੁਹਾਡੇ ਘਰ ਨੂੰ ਵੀ ਖੋਲ੍ਹ ਸਕਦੀ ਹੈ।
OAuth ਦਾ ਹੱਲ: ਵੈਲੇਟ ਕੀ (Valet Key)
OAuth ਨੇ ਖੇਡ ਬਦਲ ਦਿੱਤੀ। ਆਪਣਾ ਪਾਸਵਰਡ ਦੇਣ ਦੀ ਬਜਾਏ, ਤੁਸੀਂ ਇੱਕ "token" ਦਿੰਦੇ ਹੋ। ਇਸਨੂੰ ਇੱਕ ਵੈਲੇਟ ਕੀ ਵਾਂਗ ਸਮਝੋ। ਇੱਕ ਵੈਲੇਟ ਕੀ ਡਰਾਈਵਰ ਨੂੰ ਤੁਹਾਡੀ ਕਾਰ ਪਾਰਕ ਕਰਨ ਦੀ ਇਜਾਜ਼ਤ ਦਿੰਦੀ ਹੈ, ਪਰ ਇਹ ਉਨ੍ਹਾਂ ਨੂੰ ਤੁਹਾਡੀ ਡਿੱਗੀ ਖੋਲ੍ਹਣ ਜਾਂ ਤੁਹਾਡੇ ਘਰ ਤੱਕ ਪਹੁੰਚਣ ਦੀ ਇਜਾਜ਼ਤ ਨਹੀਂ ਦਿੰਦੀ।
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): ਨਵਾਂ ਗੋਲਡ ਸਟੈਂਡਰਡ। ਇਹ ਪੁਰਾਣੇ, ਅਸੁਰੱਖਿਅਤ ਤਰੀਕਿਆਂ ਨੂੰ ਹਟਾਉਂਦਾ ਹੈ।
ਮੁੱਖ ਸਬਕ: ਕਦੇ ਵੀ ਆਪਣਾ ਪਾਸਵਰਡ ਕਿਸੇ ਹੋਰ ਐਪ ਨੂੰ ਨਾ ਦਿਓ। ਉਨ੍ਹਾਂ ਨੂੰ ਇੱਕ ਸੀਮਤ ਟਿਕਟ ਦਿਓ ਜੋ ਦੀ ਸਮੇਂ ਤੋਂ ਬਾਅਦ ਖਤਮ ਹੋ ਜਾਂਦੀ ਹੈ। ਤੁਸੀਂ ਕੰਟਰੋਲ ਵਿੱਚ ਰਹਿੰਦੇ ਹੋ।
ਸਰੋਤ: https://dev.to/gophernment/oauth-elaaaebbprawatisaastr-cchaakrhasphaan-suumaatrthaanolk-16b4
