תרגיל מתמטי של הסתרת מזהה רץ
-
@קומפיונט אמר בתרגיל מתמטי של הסתרת מזהה רץ:
במקרה שלך אין צורך. אבל לפעמים מצפינים בצד לקוח פרטים אישיים של המשתמש ושולחים אותם כבר מוצפנים, בכזה מקרה משתמשים עם הצפנה אסימטרית.
אז בבקשה אל תיקח את הבמה של שאלתי לכתוב מה אפשר לעשות במקרים אחרים!
@קומפיונט אמר בתרגיל מתמטי של הסתרת מזהה רץ:
ומה זה הצפנה אם לא תרגיל מתמטי?!
תסביר מה אתה צריךאני מסביר רק שיש פה ניקים שיותר כותבים מאשר קוראים (לפעמים זה קורה גם לי).
ביקשתי חשבון פשוט. הצפנה זה חשבון מתמטי סבוך. כתבתי שחור על גבי לבן בשאלה הראשונית שהפתרון המקובל הוא הצפנה, וזה ידוע לי.
למה אני רוצה חשבון פשוט? כי זול למחשב. שלוש פעלות חיבור וכפל לוקחים למחשב משאבים כנראה לפחות פי מאה פחות מהצפנה כל שהיא שמבוססת על המון המון פעולות. זה אמנם עדיין ממש פשוט למחשב (גם ככה כל בקשה מוצפנת בתשובה בגלל הSSL), אבל אין סיבה שאעזור למתקפת DDOS ואתן לה עוד בשר, רק משיקול כה פשוט של הסתרת מזהה כשיש אלטרנטיבות פשוטות יותר כמו הXOR שהזכרת רק טיפה משוכלל יותר (וזה מה שבסוף מצאתי אבל לא הבנתי בדיוק איך ליישם). -
btoa(x * 20e20)
מספיק פשוט? המספרים יהיו גבוהים מידי מכדי לתת לחוליגנים שרוצים לדעת כמה תורמים כבר יש ללקוח שלך מלהגיע למידע הזה, אבל תלוי כמה הם מוכנים להשקיע בכך.
אם אתה רוצה להוסיף שכבת אובפוסקציה, תעשה הצפנת קיסר עם מפתח בסדר עולה למחרוזת בסיס 64 (להזיז בתו 1, אחרי זה ב-2 וכו')
-
@חגי אמר בתרגיל מתמטי של הסתרת מזהה רץ:
btoa(x * 20e20)
מספיק פשוט? המספרים יהיו גבוהים מידי מכדי לתת לחוליגנים שרוצים לדעת כמה תורמים כבר יש ללקוח שלך מלהגיע למידע הזה, אבל תלוי כמה הם מוכנים להשקיע בכך.
זה לא נותן עוד כלום. לא אכפת לי שיידעו רק את המספר, מפריע לי גם ההסטה, בודקים מה יש כעת ומה יש מחר ויודעים בדיוק את מספר המבקרים אחרי שיודעים שזה base64.
אם אתה רוצה להוסיף שכבת אובפוסקציה, תעשה הצפנת קיסר עם מפתח בסדר עולה למחרוזת בסיס 64 (להזיז בתו 1, אחרי זה ב-2 וכו')
אתה צודק, זה די פשוט וזה מה שעושות כנראה ספריות בהם השתמשתי (למשל https://hashids.org/javascript/).
אבל אני תהיתי האם אין איזה שלוש ארבע פעולות חשבוניות של כפל/חילוק/חיבור/שארית/xor/חזקה שמסתירה באופן יעיל לגמרי (מה שהבאת לא יעיל ברמה גבוהה בכלל למרות שזה מספיק לחלוטין לצרכי, אבל השאלה שלי נותרת לתיאוריה). -
@dovid אמר בתרגיל מתמטי של הסתרת מזהה רץ:
אני מעוניין שלא יוכלו לדעת את המספר הרץ של הנתונים, כדי לא להסיק מזה סדרי גודל של תרומות
בהנחה שמישהו מעוניין לדעת את היקף הכניסות / התרומות (חשש מוצדק, בהחלט יש כאלו)
ובהנחה שאנחנו מדברים על מישהו שבאמת יודע מה הוא מחפש ומפניו אתה רוצה להסתירלמה שלא ישקיע עשר אגורות בתרומה למטרה החשובה
ואז הוא יקבל 'קבלה מוכרת' עם ?...
מספר רץ .... (0012)
כעבור יומיים יתרום שוב עשר אגורות ויקבל קבלה מספר 0017.....(או שהקבלות המוכרות לצורכי מס מופקות לפי סדר רץ בכל הארגון
ואז שוב ניתן לקבל סדר גודל של פעילות כמותית
[כספית, לא ניתן לדעת גם אם יודעים את המידע לעיל])
נ.ב.
הנ"ל כמובן לא מתייחס לכניסות -
@dovid לא הצלחתי להבין מדוע אתה זקוק לשלוח לקליינט את המזהה כניסה, אם זה שמור במסד פר סשן, ואתה מזהה את התרומה לפי הסשן, תוכל לשלוף באותה הזדמנות גם את המזהה כניסה
-
@יוסף-בן-שמעון צודק. ככה אני עושה עכשיו. אבל זה בדיוק אחד מהפתרונות שלא רציתי.
@dovid אמר בתרגיל מתמטי של הסתרת מזהה רץ:
אז יש לי כמובן את האפשרויות הקלאסיות: מזהה גלובלי במקום מספר רץ, או מזהה גלובלי במקביל למספר הרץ שגם יאוחסן בכל שורה ולפי זה אוכל לשלוף את השורה הנכונה. ויש אפשרות של ערפול ע"י הצפנה אפילו חלשה של המזהה.
העוגיה היא מזהה גלובלי לא רץ, ואני יכול לשלוף את השורה המתאימה לפיה. אבל למה לי? יש לי את המזהה, ואני רוצה להמשיך לדעת אותו בלי לשלוף שום דבר...
-
@nigun אמר בתרגיל מתמטי של הסתרת מזהה רץ:
@dovid
אתה יכול לדחוף תווים רנדומליים באמצע המספר הסידור ולהתעלם מהם בפיענוח, ולמשתמש אין דרך לדעת את המיקום של המספרים האמיתיים בתוך המחרוזת.אני חושב שאתה לא הקדשת הרבה מחשבה לפתרון שלך,
אני חושש שהתוקף יקדיש יותר מחשבה ממך...
התוקף יודע על שעות שהאתר שלנו בטוח לא פעיל (למשל בליל יום כיפור).
הוא יריץ שלושים כניסות רצופות בשניה אחת, והוא יחייך חיוך רחב על הרעיון שלך.אגב סתם להמחיש כמה הפתרונות פה "בורחים" מהשאלה המקורית, לערבב מספר ספרות לא קשורות זה הרבה יותר פעולות מאשר כמה פעולות חשבון, וזה גם הרבה יותר קשה להסתיר.
-
@dovid
היות ואתה לא מחפש להונות את הפורץ החפרן שתרמו לך הרבה
אלא רק לגרום לו לחוסר ידע בפיענוחהאם ניתן לשרשר את התאריך/שעה/דקות/שניות/מילישניות (לחלק למספרים ולעשות ++ ברמת מספר בודד)
ואז בתוצאות יהיה רמת אי אחידות מספיק גבוהה(בתרגיל מתמטי של כפל/חילוק וכו, תמיד ככל שהמספור שלך יעלה כך יהיה תוצאה בהנ"ל גבוהה יותר,
ואילו כאן המספור עולה ויורד כל הזמן) -
@mekev אמר בתרגיל מתמטי של הסתרת מזהה רץ:
האם ניתן לשרשר את התאריך/שעה/דקות/שניות/מילישניות (לחלק למספרים ולעשות ++ ברמת מספר בודד)
איך אני אשחזר את המספר המקורי?
@mekev אמר בתרגיל מתמטי של הסתרת מזהה רץ:
(בתרגיל מתמטי של כפל/חילוק וכו, תמיד ככל שהמספור שלך יעלה כך יהיה תוצאה בהנ"ל גבוהה יותר,
אני לא חושב ככה, הבאתי בהודעה השניה שלי פה כבר מאמר שמשתמש נטו עם כפל ושארית, והוא לא עולה ולא יורד, ממש תוצאות אקראיות.
-
@dovid אמר בתרגיל מתמטי של הסתרת מזהה רץ:
אני חושב שאתה לא הקדשת הרבה מחשבה לפתרון שלך,
אני חושש שהתוקף יקדיש יותר מחשבה ממך...
התוקף יודע על שעות שהאתר שלנו בטוח לא פעיל (למשל בליל יום כיפור).
הוא יריץ שלושים כניסות רצופות בשניה אחת, והוא יחייך חיוך רחב על הרעיון שלך.אפשר להגדיר את המספר הראשון כהיסט למיקום של המספרים
זה יראה משהו כזה
123 = 356913523479653286272326583666899739
124 = 465661562668776693796762568882628834 -
@nigun אתה משפר יפה את האלוגריתם על הגב של הנושא.
אשמח לתשובה בשלה לשאלה הפשוטה הזאת:@dovid אמר בתרגיל מתמטי של הסתרת מזהה רץ:
אולם אני תוהה, לכאורה חייבת להיות דרך מתמטית פשוטה להסתיר מספר ע"י תרגיל הפיך (שניתן לשחזק את המספר ע"י תרגיל הפוך). הרי מדובר ב"הצפנה סימטרית" כי אני הוא המפענח והמצפין, אני ממש טיפש בחשבון אבל נראה לי הגיוני שיש חשבון פשוט של "תוסיף 14 ותחלק לחמש ותוסיף את השארית" שהוא מצד אחד הפיך ומצד שני קשה לניחוש, ופה אני שואל האם אתם מכירים או חושבים על רעיון מתאים לזה? כי מהאינטרנט אני מתרשם שהבודדים (למה?) שמנסים להסתיר מזהה רץ עושים זאת באמצעות הצפנה פשוטה או רצינית.
-
@dovid אמר בתרגיל מתמטי של הסתרת מזהה רץ:
איך אני אשחזר את המספר המקורי?
@dovid אמר בתרגיל מתמטי של הסתרת מזהה רץ:
בעת כל ביקור בדף התרומה נרשמת שורה לטבלת ביקורים,
עד כמה שאתה מתעד את הביקורים
אתה בכוונה שומר את זה ללא תיעוד על התאריך כניסה?
זה לא מהווה אינדיקציה ומקור מידע בפני עצמו לפילוח נתונים?וגם אם זה לא נשמר בנפרד
אתה יכול להצמיד אותו למזהה כניסה לאחר השרשוררק שבשונה מסתם שרבוב תווים שאותם בכניסות רצופות ניתן בקלות להבחין ולפענח את הנותר
כאן סה"כ המספר יותר מורכב לפעינוחובסה"כ זה תרגיל מתמטי של חיבור וחיסור פשוט של מידע זמין
מקווה שאתה אח"כ מוחק את כל השרשור
אחרת התוקף יעשה גוגל ויגיע לפה..... -
@mekev זה נשמר עם התאריך והכל. יש גם מזהה שלפיו אני יכול לשלוף. אבל אני מעדיף לא לגשת בכלל שוב לטבלה הזו.
@mekev אמר בתרגיל מתמטי של הסתרת מזהה רץ:
מקווה שאתה אח"כ מוחק את כל השרשור
אחרת התוקף יעשה גוגל ויגיע לפה.....הנוסחה צריכה לעמוד גם בפני מי שיודע בדיוק מה היא.
-
@nigun אמר בתרגיל מתמטי של הסתרת מזהה רץ:
@dovid
לא הבנתי שאתה מחפש דווקא נוסחה מתמטית
חשבתי שאתה מחפש פתרון לחסוך גישה למסד נתוניםחיפשתי דוקא מתמטי (יותר נכון פעולה אריתמטית) כי זה הכי מהר עבוד המעבד.
הייתי מקבל ממך גם פתרון אחר שעבדת עליו, לא פתרון שאתה חושב עליו בקול עוד לפני שהוא מבושל. סליחה על החריפות אבל חוץ מכיווני מחשבה גסים לא ראיתי נוסחה סגורה לערבול + שחזור יעיל שא"א לגלות אותו ע"י הפלט בלי מאמצים קיצוניים.