OAuth નો ઇતિહાસ: પાસવર્ડથી લઈને વૈશ્વિક ધોરણો સુધી
તમે આ દરરોજ જુઓ છો. તમે "Login with Google" અથવા "Login with GitHub" પર ક્લિક કરો છો. તમે પાસવર્ડ ટાઈપ નથી કરતા. તમે તરત જ સાઇટમાં પ્રવેશ કરો છો.
આ OAuth ને કારણે શક્ય બને છે. તે સુરક્ષા માટેનું વૈશ્વિક ધોરણ છે. પરંતુ તેની શરૂઆત આવી રીતે થઈ નહોતી. તે મોટી સમસ્યાઓના ઉકેલ માટે વિકસિત થયું છે.
પાસવર્ડ સાથેની સમસ્યા
શરૂઆતના દિવસોમાં, તમે દરેક વેબસાઇટ માટે નવો પાસવર્ડ બનાવતા હતા. આના કારણે ત્રણ મોટી સમસ્યાઓ ઊભી થતી હતી:
- લોકો દરેક જગ્યાએ એક જ પાસવર્ડનો ઉપયોગ કરતા હતા. જો એક સાઇટ લીક થાય, તો દરેક એકાઉન્ટ જોખમમાં રહેતું હતું.
- લોકો પાસવર્ડ ભૂલી જતા હતા. તેઓ વેબનો ઉપયોગ કરવા કરતાં "forgot password" પર ક્લિક કરવામાં વધુ સમય વિતાવતા હતા.
- વેબસાઇટ્સ તમારો અસલી (raw) પાસવર્ડ જોઈ શકતી હતી. જો કોઈ સાઇટ હેક થાય, તો તમારો પાસવર્ડ ચોરી જતો હતો.
સુરક્ષાનું ઉત્ક્રાંતિ
Basic Auth: તમે દરેક રિક્વેસ્ટ સાથે તમારું યુઝરનેમ અને પાસવર્ડ મોકલતા હતા. જો તમે HTTPS નો ઉપયોગ ન કરતા હોવ, તો હેકર્સ બધું જ જોઈ શકતા હતા.
Session Cookies: તમે એકવાર લોગિન કરતા અને તમને સેશન ID મળતું. તે વધુ સારું હતું, પરંતુ XSS અથવા CSRF જેવા હુમલાઓ દ્વારા કૂકીઝ ચોરી શકાય છે. વળી, એક સાઇટ તમારા લોગિનનો ઉપયોગ બીજી સાઇટ સાથે વાતચીત કરવા માટે કરી શકતી નહોતી.
API Keys: તમે વેબસાઇટને એક ખાસ કી (key) આપતા હતા. આ વધુ સારું હતું કારણ કે તમે તમારો પાસવર્ડ મોકલતા નહોતા. જોકે, API keys પાસે ઘણીવાર ખૂબ વધારે સત્તા હોય છે. જો તમે કોઈ એપને API key આપો છો, તો તે એપ પાસે તમારા ઈમેલ વાંચવા, મેસેજ મોકલવા અને તમારું એકાઉન્ટ ડિલીટ કરવાની સત્તા હોઈ શકે છે. તે હોટલના વેલેટને તમારી કારની ચાવી આપવા જેવું છે, પરંતુ તે ચાવી તમારા ઘરના દરવાજા પણ ખોલી શકે છે.
OAuth નો ઉકેલ: વેલેટ કી (Valet Key)
OAuth એ આખી રમત બદલી નાખી. તમારો પાસવર્ડ આપવાને બદલે, તમે "token" આપો છો. તેને વેલેટ કી તરીકે વિચારો. વેલેટ કી ડ્રાઇવરને તમારી કાર પાર્ક કરવા દે છે, પરંતુ તે તેમને તમારી ટ્રંક ખોલવા અથવા તમારા ઘરમાં પ્રવેશવા દેતી નથી.
OAuth વ્યવહારમાં કેવી રીતે કામ કરે છે:
- તમે Canva નો ઉપયોગ કરવા માંગો છો અને Google માંથી ફોટા લેવા માંગો છો.
- Canva, Google પાસે પરવાનગી માંગે છે.
- Google તમને પૂછે છે: "શું Canva તમારા ફોટા જોઈ શકે છે?"
- તમે કહો છો: "હા, પણ ફક્ત જોવા માટે જ. તેમને કંઈપણ ડિલીટ કરવા દેતા નહીં."
- Google, Canva ને એક ચોક્કસ token આપે છે.
Canva ક્યારેય તમારો Google પાસવર્ડ જોતું નથી. જો કોઈ હેકર તે token ચોરી પણ લે, તો તેઓ માત્ર થોડા સમય માટે જ ફોટા જોઈ શકે છે. તેઓ તમારો પાસવર્ડ બદલી શકતા નથી અથવા તમારા પૈસા હલાવી શકતા નથી.
આધુનિક સુરક્ષા: PKCE
મોબાઈલ એપ્સ અને વેબ એપ્સમાં એક નબળાઈ હોય છે. તેઓ રહસ્યોને સારી રીતે છુપાવી શકતા નથી. આને સુધારવા માટે, આપણે PKCE (Proof Key for Code Exchange) નો ઉપયોગ કરીએ છીએ.
તે રિઝર્વેશન સિસ્ટમ જેવું કામ કરે છે:
- એપ એક ગુપ્ત કોડ (verifier) બનાવે છે.
- એપ તે કોડનું હેશ્ડ વર્ઝન (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): નવું ગોલ્ડ સ્ટાન્ડર્ડ. તે જૂની, અસુરક્ષિત પદ્ધતિઓને દૂર કરે છે.
મુખ્ય પાઠ: ક્યારેય તમારો પાસવર્ડ બીજી કોઈ એપને આપશો નહીં. તેમને એક મર્યાદિત ટિકિટ આપો જેની અવધિ (expiry) હોય. તમે નિયંત્રણમાં રહેશો.
સ્ત્રોત: https://dev.to/gophernment/oauth-elaaaebbprawatisaastr-cchaakrhasphaan-suumaatrthaanolk-16b4
