הוסטס - פורום אחסון האתרים הגדול בישראל

הוסטס - פורום אחסון האתרים הגדול בישראל (https://hosts.co.il/forums/index.php)
-   פורום תיכנות (https://hosts.co.il/forums/forumdisplay.php?f=14)
-   -   זיהוי משתמש לפי מאפיינים מיוחדים (https://hosts.co.il/forums/showthread.php?t=108014)

MAORBARI 29-11-14 16:26

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

ה HASH מורכב מ IP, USER AGENT ו SALT.
השאלה שלי היא, אני יודע שאיי פי ויוזר אג'נט אפשר לשנות, ואז אפשר להתחבר אל משתמש אחר על ידי גניבת ההאש שלו.
השאלה שלי היא אילו עוד מאפיינים מיוחדים אפשר לקחת, שלא יוכלו לזייף התחברות.

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

איך מונעים את זה? (אני משתמש בקוקיס ובמערכת סיישנים מבוססת מסד שאני יצרתי).

תודה.

אדיר 29-11-14 17:08

לא לגמרי הבנתי, למה שם משתמש וסיסמא לא מתאימים לך? מה אתה מנסה לעשות?

MAORBARI 29-11-14 17:22

ציטוט:

נכתב במקור על ידי אדיר (פרסם 892672)
לא לגמרי הבנתי, למה שם משתמש וסיסמא לא מתאימים לך? מה אתה מנסה לעשות?

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

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

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

ומכאן השאלה היא איך פותרים את הדבר הכל כך מחרפן הזה?

איציק ברבי 29-11-14 19:32

אתה מתכוון לinsecure handling cookie ?
פשוט בכל התחברות של גולש תעדכן את האייפי שלו במסד.
ואם פתאום מישהו צץ מחובר עם שם משתמש וסיסמא נכונים של החשבון עם אייפי אחר תנתק אותו ישירות.
כמו שאתה מבצע את השמירה של האייפי בכל פעם שהמשתמש מתחבר לאתר.

יש הרבה נקודות שאפשר לזהות חיבור מזוייף IP זה אחד מהם.

MAORBARI 29-11-14 23:50

ציטוט:

נכתב במקור על ידי איציק ברבי (פרסם 892686)
אתה מתכוון לinsecure handling cookie ?
פשוט בכל התחברות של גולש תעדכן את האייפי שלו במסד.
ואם פתאום מישהו צץ מחובר עם שם משתמש וסיסמא נכונים של החשבון עם אייפי אחר תנתק אותו ישירות.
כמו שאתה מבצע את השמירה של האייפי בכל פעם שהמשתמש מתחבר לאתר.

יש הרבה נקודות שאפשר לזהות חיבור מזוייף IP זה אחד מהם.

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

איציק ברבי 30-11-14 02:12

ציטוט:

נכתב במקור על ידי MAORBARI (פרסם 892706)
לא זה ממש לא מה שהתכוונתי אחי,
תקרא שוב את מה שכתבתי בתגובה מעל מה שהגבת יש שם הסבר יותר מעמיק.
ד"א הסיישן שקיים במסד זה כמו ההתחברות האחרונה, כך שבכל פעם שמתחברים נכנס איי פי המעודכן.
אבל מה שדברתי זה לא התחברות דרך האתר אלא זיוף על ידי העתקת קוקיס ושינוי USER AGENT לאותו USER AGENT של המשתמש, כאשר אני נמצא על אותה הרשת (כלומר אותו איי פי).

הבנתי,
אתה יכול לעשות בדיקה של מתי העוגייה נוצרה, אני יודע שהדפדפן יודע להגיד אבל PHP?
תסתכל על זה - http://stackoverflow.com/questions/2...as-set-created

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

בניה 30-11-14 09:20

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

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

איציק ברבי 30-11-14 15:34

ציטוט:

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

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

בניה, אבל כל הקטע כאן שהוא רוצה לחסום גישה מסויימת לאתר שלו ממחשב ברשת שלו שמחזיק את אותה כתובת IP

MAORBARI 01-12-14 00:38

היי תודה על העצה של התאריך. ומה הכוונה להצפין מפתח בפרטי?

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

אבי בר 01-12-14 17:45

תקרא על oauth, כל האתרים הגדולים משתמשים בזה.

MAORBARI 01-12-14 18:28

ציטוט:

נכתב במקור על ידי אבי בר (פרסם 892747)
תקרא על oauth, כל האתרים הגדולים משתמשים בזה.

אבל לא הבנתי איך זה קשור?
אני מנסה למנוע את זה ולא לתת גישה..

אבי בר 01-12-14 22:04

ציטוט:

נכתב במקור על ידי MAORBARI (פרסם 892748)
אבל לא הבנתי איך זה קשור?
אני מנסה למנוע את זה ולא לתת גישה..

אולי לא כל כך הבנת מה אתה בונה..
בעיקרון אתה מנסה לעשות מערכת התחברות שחסינה נגד man in the middle וxss וxcrf
oauth פותר את זה, תקרא על איך הם פתרו את כל הסוגיות שהעלת(או פשוט תשתמש בזה כמו כולם)

בניה 02-12-14 09:42

ציטוט:

נכתב במקור על ידי MAORBARI (פרסם 892737)
היי תודה על העצה של התאריך. ומה הכוונה להצפין מפתח בפרטי?

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

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

מה קורה אם הוא מתחבר משני דפדפנים שונים? מה קורה אם הip בבית שלו השתנה/גלש מבית קפה? אתה רוצה לנתק תשתמש?

יש מערכות התחברות שלוקחות בחשבון *גם* את הנתונים האלה אבל חבל על הזמן שלך. בלי להבין אותם טוב אתה רק תעשה באגים שימררו תחיים למשתמשים שלך.

תעשה עוגיות http only ותפעיל SSL וזה כבר יקשה על לגנוב תעוגיות

בניה 02-12-14 14:34

יצא שכל פעם שהגבתי זה היה מפלאפון ולא יכולתי להאריך.


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

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

(אני לא אומר שאין שום מקום לעשות הערכות על בסיס כתובת IP וdevice aware login/session כדי לשפר את האבטחה אבל אני לא אכנס לזה כרגע)

MAORBARI 03-12-14 19:06

ציטוט:

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


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

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

(אני לא אומר שאין שום מקום לעשות הערכות על בסיס כתובת IP וdevice aware login/session כדי לשפר את האבטחה אבל אני לא אכנס לזה כרגע)

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

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

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


כל הזמנים הם GMT +2. הזמן כעת הוא 22:37.

מופעל באמצעות VBulletin גרסה 3.8.6
כל הזכויות שמורות ©
כל הזכויות שמורות לסולל יבוא ורשתות (1997) בע"מ