OAuth — תקן להרשאת-גישה, נולד ב-2006 אצל מפתחי טוויטר

יסודות דיגיטליים

הגדרה

OAuth הוא תקן פתוח להרשאת-גישה ברשת, שמאפשר לאתר או אפליקציה אחת לקבל הרשאה מוגבלת-בזמן לחשבון שלכם באתר אחר — בלי לחשוף להם את הסיסמה עצמה, כמו בכפתור "התחבר עם Google".

מה הבעיה ש-OAuth פותר: גישה מוגבלת בלי למסור סיסמה

OAuth (ראשי-תיבות של Open Authorization) הוא תקן פתוח לאבטחת-הרשאות ברשת. הוא מנפיק "אסימון-גישה" (Access Token) חתום, מוגבל-בזמן ומוגבל-בהיקף, שמעניק בדיוק את ההרשאה הנדרשת — למשל קריאה בלבד מיומן-Google, בלי גישה לדוא"ל — בלי שהאתר-המקבל יראה את הסיסמה שלכם בכלל. תהליך-ההרשאה הנפוץ ביותר, "קוד-הרשאה" (Authorization Code Grant), מעביר את המשתמש לדף-הכניסה של השירות המקורי עצמו, ולא של האפליקציה המבקשת, כדי שהסיסמה תוקלד רק במקום המהימן ביותר. ברגע שהאסימון פג-תוקף או מבוטל, הגישה נחסמת מייד, בלי צורך לשנות שום סיסמה.

נובמבר 2006: טוויטר, Ma.gnolia וארבעה מפתחים שזיהו את החור בתקנים

התקן נולד בנובמבר 2006, כשבליין קוק ממפתחי טוויטר, כריס מסינה, לארי האלף מהשירות Ma.gnolia ודייוויד רקורדון נפגשו כדי לפתור בעיה משותפת: אף תקן פתוח לא איפשר לאתר אחד להעניק לאתר אחר גישה מוגבלת לחשבון בלי לחשוף סיסמה. קבוצת-דיון פתוחה לפתרון הבעיה התכנסה כבר באפריל 2007, ומהנדס מגוגל בשם דה-וויט קלינטון הצטרף אליה בהמשך.

מטיוטת-קהילה לתקן IETF רשמי: אראן חמר ו-RFC 5849 (2010)

אראן חמר הצטרף לקבוצת-הפיתוח וריכז את הניסוח הפורמלי של התקן. טיוטת "OAuth Core 1.0" הסופית פורסמה ב-3 באוקטובר 2007 כמסמך-קהילה בלתי-רשמי, וגרסה זו הפכה מאוחר יותר לתקן ה-IETF הרשמי, RFC 5849, באפריל 2010 — כשנתיים וחצי אחרי הטיוטה המקורית.

OAuth 2.0: RFC 6749 ב-2012, ולמה זה לא היה שדרוג-פשוט

הגרסה הנפוצה היום, OAuth 2.0, פורסמה באוקטובר 2012 כתקן IETF רשמי (RFC 6749), ומגדירה ארבעה תפקידים: בעל-המשאב (המשתמש), שרת-המשאב, האפליקציה המבקשת גישה, ושרת-ההרשאה שמנפיק את האסימון. בניגוד ל-1.0, הגרסה החדשה אינה תואמת-לאחור כלל ומוותרת על חתימה קריפטוגרפית ברמת-הפרוטוקול לטובת גמישות — שינוי-כיוון כה שנוי-במחלוקת שאראן חמר עצמו, שריכז את כתיבת התקן, הודיע ב-26 ביולי 2012 על התפטרותו מתפקיד-העורך-הראשי במסגרת רשומת-בלוג מפורסמת בשם "OAuth 2.0 and the Road to Hell".

בשימוש היום: 'התחבר עם Google' וכלי-AI שמתחברים לשירותים שלכם

בפועל, OAuth עומד מאחורי כל כפתור "התחבר עם Google/Apple/Microsoft" באינטרנט, ומאז 2012 כמעט כל חברות-הטכנולוגיה הגדולות אימצו אותו. כלי-AI כמו Claude מסתמכים על אותו עיקרון בדיוק כדי להתחבר לשירותי-צד-שלישי — יומן, דרייב, דוא"ל — בלי לראות שום סיסמה, ורק עם ההרשאות הספציפיות שאישרתם מראש.

הבחנה חשובה: הרשאה זה לא אימות-זהות, ומהו 'פישינג-בהסכמה'

חשוב להבין: OAuth הוא פרוטוקול-הרשאה (Authorization), לא פרוטוקול-אימות-זהות (Authentication) — הוא לא מוכיח מי אתם, רק מה מותר לאפליקציה מסוימת לעשות בשמכם. חולשה מוכרת שנוצרה סביבו נקראת "פישינג-בהסכמה" (Consent Phishing): אפליקציה זדונית מבקשת הרשאות-OAuth רחבות-מדי, והמשתמש מאשר אותן בטעות בלי לקרוא בעיון מה בדיוק הוא מרשה.

שאלות נפוצות ❓

מה ההבדל בין OAuth 1.0 ל-OAuth 2.0?

OAuth 1.0 (פורסם 2007, לתקן IETF רשמי כ-RFC 5849 ב-2010) השתמש בחתימה קריפטוגרפית מורכבת. OAuth 2.0 (RFC 6749, 2012) פשוט יותר לשימוש אך אינו תואם-לאחור, ומוותר על החתימה ברמת-הפרוטוקול לטובת גמישות.

האם OAuth מחליף את הסיסמה שלי?

לא. OAuth הוא פרוטוקול-הרשאה, לא אימות-זהות — הוא נותן לאפליקציה "אישור-כניסה" חתום ומוגבל-בזמן ובהיקף, בלי לחשוף לה את הסיסמה שלכם בכלל.

מי המציא את OAuth ולמה?

בליין קוק, כריס מסינה, לארי האלף ודייוויד רקורדון, בנובמבר 2006 — אחרי שזיהו שאין תקן פתוח שמאפשר לאתר אחד להעניק לאתר אחר גישה מוגבלת לחשבון בלי לחשוף סיסמה.

מה זה "פישינג בהסכמה" (Consent Phishing)?

התקפה שבה אפליקציה זדונית מבקשת הרשאות-OAuth רחבות מדי, והמשתמש מאשר אותן בטעות בלי לקרוא — כך שהתוקף מקבל גישה לגיטימית-למראית-עין לחשבון, בלי לגנוב סיסמה בכלל.