זהירות – oAuth

3 אוקטובר 2009

connect-securityoAuth (אוֹ-אוֹת') היא מילה מביכה לביטוי בשיחת סלון, אבל היא מתארת מתודולוגיה שכמעט כולנו כבר נתקלנו בה – אותנטיקציה ע"י API, או במילים אחרות – הזדהות ע"י צד שלישי.

זה התחיל עם OpenID לפני כ-3 שנים, והיה מופשט ומסובך מדי להסברה לקהל הרחב. אבל היום כבר פזורים ברשת כפתורי "התחבר באמצעות חשבון הפייסבוק/יאהו/טוויטר/גוגל שלך", וזה כבר יותר פשוט ויותר נעים. במקם ליצור עוד חשבון ברשת – נשתמש בחשבון קיים כדי "להירשם" לאתר.

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

אני אופטימי מטבעי, ומתייחס ל-oAuth כטכנולוגיה בטוחה מספיק כדי שלא תדאיג אותי. אבל משהו אחד כן מטריד אותי, והוא האפשרות הקלה כל כך להתחזות ולגנוב את החשבונות שלנו. הנה, למשל, בלוג שם את הכפתור המוכר הזה Connect with facebook ומי שילחץ עליו יראה את החלון המוכר הזה:

fbconnect

בקלות מפחידה ניתן לחקות את החלון הזה, כך שההבדל היחיד יהיה בכתובת האתר למעלה (מי מסתכל שם?). כל מי שירצה להגיב בבלוג שלי עם חשבון הפייסבוק שלו – למעשה ימסור לי את הסיסמה שלו בלי לדעת.

חשוב להבהיר – כאשר הכל עובר באופן חוקי – לבעלי האתרים המטמיעים oAuth אין את הסיסמה שלי, והשליטה העליונה נשארת שלי. לעומת זאת, כאשר נגנבת הסיסמה שלי – אני עשוי לאבד את השליטה בפייסבוק שלי באופן מוחלט.

אז המסר התחתון הוא פשוט – שימו לב ל-URL המופיע למעלה, וודאו שהוא באמת של פייסבוק/יאהו/טוויטר/גוגל…

תגובות

מאת ניצן:

שלא לדבר על אתרים שמטמיעים את הפתרון בלייטבוקס במקום בפופאפ ואז באמת אין לך סיכוי לדעת לאיפה אתה מגיע.
אבל בסופו של דבר זה נופל באותה אזהרה מוכרת וידועה – אל תיתן את הפרטים שלך למי שאתה לא מכיר ולא סומך עליו. בתכלס זו שיטה שדורשת הרבה מאוד מאמץ – הגנב צריך לייצר אתר שהוא מספיק אטרקטיבי כדי שאנשים יכנסו ויתפתו להגיב. זה יותר מדי עבודה, תביא לי מחשב וראוטר ותראה מה אפשר להרים בכמה דקות.

מאת איל שחר:

ניצן, אני לא חושב שזה בשליטתך אם לממש את זה בלייטבוקס או בפופאפ. פעם זה היה לייטבוקס, אבל פייסבוק שינו את זה.
בעיקרון אתה צודק עם האזהרה הכללית, אבל העניין הוא שב-oAuth אתה לא "מוסר פרטים", אלא רק מבצע אימות זהות. וזה, כאמור, בהנחה שמדובר באותנטיקציה אמיתית. ובעידן האפליקציות כזבובים ברשת, אנחנו נוטים להיות פזיזים ולא להתעכב עם שאלות קרדביליות של האתרים.

מאת ניצן:

הקוד שפייסבוק מספקת מממש בפופאפ, אבל ראיתי כבר יישומי לייטבוקס שיודעים לתפוס פופאפים ולהציג בשכבה שלהם.
אותו הליך אימות זהות הוא השם משתמש והסיסמא שלך, שזה לא שונה מהונאות פישינג רגילות שמציגות לך את עמוד הכניסה לבנק שלך ורק תעיז להכניס שם את הפרטים שלך. בטוויטר למשל אתה לא מקבל פופאפ אלא מועבר לעמוד של טוויטר, אותו כנ"ל גם לגבי פייפאל לצורך העיניין – אבל בסופו של דבר, אם המשתמש אינו זהיר הוא ייפול בפח וזו בדיוק הסיבה שהונאות פישינג מתבצעות בהיקפים של מליונים ולא על פרטים בודדים.

מאת Uzi:

What worries me is the fact you are using Internet Explorer.

מאת איל שחר:

חס ושלום… יש לי תירוץ לצילומסך…

מאת Majento:

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

מאת איל שחר:

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

מאת Majento:

יכול להיות סמלים, אני מעדיף פשוט לראות את השם שלי, אותו הנד-שייק + אינדיקטור, שפה משותפת לכל השרותים שאתה רשום אליהם.

מאת פלג:

השאלה כמה הגנה יש לך על מנגנון הסמל הזה?
כי סתם להטמיע אותו בקוקי לא תמיד מספיק, כי אם מישהו מבצע עליך פעולת XSS הלך עליך ושום סמל לא יעזור לך כי גם הפרטים שלך יישלפו.
באחרונה היה מאמר ב THEMARKER על אתרים שמכילים SSL לדוגמא, אבל גם כשהתמשתמש מקבל התראה שה SSL לא בתוקף או כל אזהרה אחרת אנשים מתעלמים וממשיכים הלאה (שזה אף חמור יותר מסתם להסתכל על שורת הכתובת ב FB)
יש דיון בנעיין זה באתר גל גיא מזרחי http://www.hacking.org.il/1132

מאת איל שחר:

הנה הפתרון של יאהו. גם סמל וגם טקסט.
https://protect.login.yahoo.com/
פלג – תודה על הלינק.