MYSQL

coolel

New member
MYSQL

נאמר לי שיש לMYSQL משהו מובנה להצפנה של סיסמאות וכו'... הסתכלתי קצת במניואל שלהם ולא מצאתי. מישהו יודע משהו על זה?
 

תמר,

New member
אולי MD5?

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

coolel

New member
עד כמה זה מאובטח?

איך מצפינים חברות/אתרים גדולים שמשתמשים בMYSQL את הסיסמאות של המשתמשים שלהם?
 

gmorphus

New member
עד כמה שאני זוכר

יש פקודות שנקראות DECODE ENCODE ועוד כל מיני כאלה. לא נגעתי בזה הרבה זמן אבל לפני מספר חודשים כשתכנתתי פורום אז השתמשתי בפונקציה אחת שמצפינה את הסיסמא באמצעות "מסכה" או לצורך העניין שם משתמש. למשל, נניח שהשם משתמש שלי היה gmorphus והסיסמא 12345 (אל תנסו:)) אז ההצפנה היא ENCODE("gmorphus","12345") 1 והפענוח הוא DECODE(<password files from the SQL>, <password entered>) 2 מה שקורה זה כזה דבר: הפונקציה הראשונה מצפינה את השם משתמש באמצעות הסיסמא, והשנייה מפענחת את השדה מתוך הטבלה באמצעות הסיסמא שהמשתמש הקיש. המחרוזת שמתקבלת מהפונקציה השנייה אמורה להיות השם משתמש. אני לא יודע כמה זה בטוח אבל הרעיון שאם מישהו פורץ לDB שלך הוא לא יכול לגלות את הסיסמאות באמצעים קונבנציונלים. לא התעמקתי בזה יותר מידי כי זה לא היה לי קריטי לפורום שבניתי. בכל מקרה, גם אתה בתור, מנהל בסיס הנתונים לא תוכל לדעת את הסיסמאות שהמשתמשים יבחרו לבד. אני מקווה שהייתי ברור. אשמח להבהיר מה שלא ברור.
 

gmorphus

New member
אה ועוד משהו

מה שלא יהיה, הצפנת MD5 נחשבת אחת הבטוחות. אבל צריך לדעת מה לעשות...
 

אמיר ט

New member
טיפה סדר

MYSQL אכן משתמש במנגנון הצפנה פנימי של MD5, הטכנולוגיה הזאת של הצפנה היא 128 ביט, והיא חד כיוונית ועדיין לא פוצחה מעולם (אלא אם אני לא הכי מעודכן...) מה שזה אומר זה שאי אפשר לקחת משהו מוצפן ב MD5 ולהחזיר לטקסט רגיל, ולכן בשביל להשוות כדי לאמת מצפינים את הסיסמא שרוצים לבדוק ואם שני ההצפנות שוות אז אלו סיסמאות זהו (אין 2 טקסטים בעולם שייצרו אותו MD5). השימוש מתבצע ב MYSQL ע"י פונקציית PASSWORD שמקבלת STRING והופכת אותו ל MD5, הסיסמא נכנסת בתוך שדה טקסט רגיל, ואם אני לא טועה אורכה של MD5 הוא תמיד 26 תווים, לא משנה גודל הטקסט המוצפן. אלה היו 60 שניות על MD5 עם MYSQL.
 

php

New member
זה לא מספיק

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

orenphp

New member
ממש מספיק!

אני מאוד לראות כתבה בנושא "פענוח MD5 בשעה"... אם אני זוכר נכון - הרעיון של פענוח הצפנה ב-MD5 הוא שאתה צריך לדעת את המספרים הראשונים שהרכיבו את הקוד המוצפן. יש לך רק איזה כמה טריליונים של אפשרויות אבל זה באמת אפשרי ובטוח שבשעה... (אני ציני לחלוטין לאלו שלא מכירים אותי). לא מזמן הייתה כתבה בwalla computers על חבורה של 3 הודים שהמציאו אלגוריתם לפענוח של 128 ביט (שעל זה הMD5 מבוסס) וגם זה כמובן לא ב100%. אבל כמובן שזה עדיין לא נבדק ואושר כך שבינתיים זה באוויר בלבד.
 

תמר,

New member
פיענוח הצפנה

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