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

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

~The_Sultan~ 16-07-10 13:13

הצפנה כלשהי
 
שלום, בניתי הצפנה מסויימת שעובדות גם עם פונקציות הצפנה בסיסיות של PHP,
בסופו של דבר זה מה שיצא לי:
PHP קוד:

74529ff6c119309865a2f9657d51083ab333fc8db101b9a9b336716e1f97e718f4e221fe6bc3704c 

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

תודה :)

Erez | TrustMedia.co.il 16-07-10 13:59

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

~The_Sultan~ 16-07-10 14:18

אוקיי, אז הנה העלתי את זה:
http://flap.co.il/flap/encrypt.php?value=123
תודה! :)
בבקשה לא לעשות שימוש לרעה בקישור.. זה סה"כ משהו ניסיוני קטן..

HagaiA 16-07-10 14:51

MD5,SHA1 וכנראה ערך משלך שהוספת,
אתה חייב להסביר להם שזו הצפנה חד כיוונית שלא ינסו סתם.

~The_Sultan~ 16-07-10 14:52

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

Erez | TrustMedia.co.il 16-07-10 15:21

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

~The_Sultan~ 16-07-10 15:28

נחמד לשמוע.. תודה!

RS324 16-07-10 18:38

אני לא מבין מה כל הסיפור הזה סביב הצפנות

PHP קוד:

md5($SitePrivateKey md5($userPassWord md5($user_register_time)) . md5($SitePrivateKey); 

אם תעשו משהו כזה יהיה קשה מאד לפצח אותו

לכל אתר יש KEY שונה שמוגדר בקבצים של האתר
לכל יוזר יש תאריך הרשמה שונה (ברמת השניות מה ש TIME)( נותן
וכמובן לכל אחד יש סיסמא שונה

כלומר , גם אם יש 5 יוזרים שהסיסמא שלהם היא 1234 ההצפנה עבור הסיסמא שלהם תהיה שונה כי התאריך הרשמה שלהם שונה..

אז בצורה הזאת גם אם יעשו BROUTE FORCE זה ייקח כמה שנים ואני בספק אם יצליחו.

Kernel 16-07-10 18:49

אגב,

מומלץ להצפין את הקובץ עצמו עם Zend/ioncube/sourcegurdian.

Shay Ben Moshe 17-07-10 01:02

RS324, הגזמת עם הmd5 לחלוטין, way over. הצפנה על הצפנה על הצפנה זה לא הכי טוב.
Kernel, זה לא נכון שמומלץ להצפין, גם לא נכון שלא מומלץ להצפין - הכל תלוי מה אתה רוצה.

בגדול לדעתי השיטה הכי פשוטה ויעילה זה להשתמש בhmac כשלכל אתר יש key ייחודי. מאוד פשוט ומאוד מאוד חזק.

HOLD 17-07-10 05:02

ציטוט:

נכתב במקור על ידי Shay Falador (פרסם 771515)
בגדול לדעתי השיטה הכי פשוטה ויעילה זה להשתמש בhmac כשלכל אתר יש key ייחודי. מאוד פשוט ומאוד מאוד חזק.

אשמח אם תפרט יותר.

תודה.

Shay Ben Moshe 17-07-10 11:44

http://en.wikipedia.org/wiki/HMAC
http://www.php.net/manual/en/function.hash-hmac.php

בגדול השיטה מיועדת למקרים שאתה מתכנן להצפין עם salt ואני מאמין שsha1(pass.salt) חלש מhmac_sha1(pass, salt) באופן משמעותי. זו שיטה מאוד שימושית והמימוש שלה די קטן.
עם זאת בכדי למצות את הפוטנציאל המלא שלה בד"כ הsalt נשמר בנפרד לכל משתמש. אני משתמש בsalt 1 לכל המשתמשים שלי, זה עדיין חזק מאוד.

~The_Sultan~ 17-07-10 19:53

תודה על כל הרעיונות, עזרו לי ובטח יעזרו להרבה אחרים :)

AlmogBaku 20-07-10 23:06

ציטוט:

נכתב במקור על ידי Kernel (פרסם 771491)
אגב,

מומלץ להצפין את הקובץ עצמו עם Zend/ioncube/sourcegurdian.

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

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

~The_Sultan~ 20-07-10 23:36

ציטוט:

נכתב במקור על ידי Baku (פרסם 772116)
טוב מה זה הבולשיט הזה?!
קודם כל זה לא הצפנה משוכללת שבנית! זה בסה"כ MD5 עם תוספת שלך או האש מסוג אחר..
קוראים לזה SLAT: הרעיון הוא להוסיף ערך משלך כך שיהיה מאוד קשה לאמוד את הקוד המקורי עם כוח ברוטאלי, וגם אם תגיע לתוצאה אמיתית סביר להניח שתסתבך.

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

אם סתם תוסיף ערך משלך לסיסמאות של המשתמשים שלך, גם אם הוא יהיה קשה, עדיין תהיה סבירות גבוהה שמשתמשים בעלי אמצעים יפענחו אותו. בגלל זה יש כל מיני שיטות ועקיפות שצריך להשתמש גם בהן, כמו למשל שימוש ב-MD5+SHA1+UNIQID+מפתח שלך (שכדאי שיכלול תווים כמו ☺╚♀♫ ואותיות בעברית, פשוט כי בדר"כ לא מכלילים תווים כאלו בקבצי ענק).

AlmogBaku 21-07-10 02:07

ציטוט:

נכתב במקור על ידי ~The_Sultan~ (פרסם 772125)
אם סתם תוסיף ערך משלך לסיסמאות של המשתמשים שלך, גם אם הוא יהיה קשה, עדיין תהיה סבירות גבוהה שמשתמשים בעלי אמצעים יפענחו אותו. בגלל זה יש כל מיני שיטות ועקיפות שצריך להשתמש גם בהן, כמו למשל שימוש ב-MD5+SHA1+UNIQID+מפתח שלך (שכדאי שיכלול תווים כמו ☺╚♀♫ ואותיות בעברית, פשוט כי בדר"כ לא מכלילים תווים כאלו בקבצי ענק).

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

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


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

~The_Sultan~ 21-07-10 02:15

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

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

AlmogBaku 21-07-10 02:24

ציטוט:

נכתב במקור על ידי ~The_Sultan~ (פרסם 772161)
אני גם מדבר על כוח ברוטאלי כלשהו, אחרת מה חשבת?
בקשר לדוגמה בקוד שלי, זה לא מגניב, זה שימושי ונחוץ - אני אפילו אריץ את הקוד של SHA1 עד 1000 פעמים כדי להגן על הסיסמה. יש טבלאות מספיק גדולות שמוצאות המון המון סיסמאות, והעניין הוא להאט ככל שיותר את השיחזור של הסיסמה שלך, כי לבטל אותו לגמרי בחיים לא תוכל, וככל שהשיחזור יהיה יותר איטי, ככה להאקר יהיה יותר מבאס לשחזר והוא בסופו של דבר יאבד עניין.
בקשר ל-UNIQID זה לא בזבוז משאבים לחינם, שהרי מדובר פה באבטחה. בנוסף, אם אתה רוצה עדיין לחסוך את זה, אתה יכול להשתמש בשיטה שהביאו פה אני חושב שכוללת במקום UNIQID שימוש בפונקציה TIME של תאריך ההרשמה של המשתמש (ברוב המערכות זה שמור בכל מקרה, והנה אתה לא "מבזבז משאבים לחינם"..).

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

טוב, אני רואה שאני מדבר עם עצמי.

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

~The_Sultan~ 21-07-10 04:26

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

Kernel 21-07-10 10:22

ציטוט:

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

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


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

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

RS324 21-07-10 17:34

קרנל , בפעם האחרונה שבדקתי (בערך לפני שנתיים +/-) היו DECODERS להצפנות של IONCUBE ושל ZEND

Baku - הרעיון של להוסיף את הזמן הרשמה לאתר לתוך ההצפנה של הסיסמא נועד בעיקר בשביל למנוע שיהיה 2 משתמשים עם אותה סיסמא מוצפנת , לצורך העניין אם אני ואתה בעלי הסיסמא 1234 אז התוצאה של ההצפנה שלנו תהיה שונה בגלל שזמן ההרשמה שלנו לאתר שונה, לא הייתי קורא לזה בזבוז משאבים כי אתה גם ככה מביא את כל ה USERINFO מה DB אז לבחור שדה אחד יותר או פחות זה כבר פחות קריטי בגלל זה אמרתי
שלעשות HASH(USERPASS . SECRECT_KEY . REGISTER_TIME) תמיד ייתן ערך שונה ובגלל זה לפי דעתי זה השיטה הכי טובה שעולה הכי פחות מבחינת משאבים.

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

~The_Sultan~ 21-07-10 17:58

מסכים עם כל מילה שלך


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

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