הכחשה סבירה באפליקציות: מה זה ולמה זה חשוב
הכחשה סבירה אומרת שאי-אפשר להוכיח קיום נתונים מוסתרים.
הכחשה סבירה בהצפנה היא מאפיין אחסון המאפשר למשתמש לחשוף מערך נתונים אחד מבלי להשאיר חפץ מבני המוכיח שקיים מערך נתונים אחר. התביעה חייבת למנות את מודל האיום שלה: תמונה סטטית של חנות מוצפנת מרופדת כהלכה שונה ממכשיר חי, נפרץ, מטא נתונים של שירותי ענן או עותקים המוחזקים במקומות אחרים. זה יותר מתכונת הסתרה. זה תלוי בהצפנה, בפריסה, בריפוד ובתכנון התפעולי שעובדים יחד.
מה הכחשה סבירה אומרת בהצפנה
הרעיון מקורו בהצפנת דיסק. TrueCrypt (ויורשו VeraCrypt) פיתחו את "כרך מוסתר": כרך מוצפן בתוך כרך מוצפן אחר. סיסמה אחת חושפת כרך חיצוני עם קבצים תמימים. סיסמה שונה חושפת כרך פנימי מוסתר עם קבצים רגישים. בודק פורנזי לא יכול לקבוע אם כרך מוסתר קיים כי השטח הלא מנוצל בכרך החיצוני מלא בנתונים אקראיים שאינם ניתנים להבחנה מנתונים מוצפנים.
לאפליקציות, הכחשה סבירה אומרת שאישורים שונים (סיסמאות, PIN, תבניות) פותחים מערכי נתונים שונים, ואין מטא-נתונים, רשם, דגל תצורה או ממצא מבני שחושפים קיום מערכי נתונים נוספים.
הכחשה אמיתית לעומת מצבי פיתיון קוסמטיים
זהו ההבחנה הקריטית שרוב האפליקציות מפספסות.
מצב פיתיון קוסמטי (לא הכחשה אמיתית)
אפליקציות כספת רבות מציעות תכונת "פיתיון" או "PIN מזויף". הבעיה: אפליקציות אלה בדרך כלל מאחסנות דגל boolean, ערך מסד נתונים או קובץ תצורה המציין שמצב פיתיון קיים ומוגדר.
בודק פורנזי שמבין את האפליקציה יכול למצוא את הדגל. מציאת מצב פיתיון מוגדר מוכיחה שנתונים מוסתרים קיימים. ההכחשה קוסמטית בלבד.
סימנים להכחשה קוסמטית:
- לאפליקציה יש כפתור "מצב פיתיון" בהגדרות
- קובץ תצורה שומר אם מצב פיתיון מופעל
- טבלת מסד נתונים מפרטת מזהי כספת עם מחווני סוג
- מבנה האחסון משתנה כשמצב הפיתיון מופעל
הכחשה קריפטוגרפית אמיתית
הכחשה אמיתית היא תכונה ארכיטקטורית, לא כפתור. האחסון המוצפן חייב להיות מעוצב כך שכל אישור פותח מערך נתונים תקף, לא קיים רשם כספות, לא קיימים דגלי תצורה שחושפים כספות מוסתרות, האחסון ממולא, ונתונים מוצפנים אינם ניתנים להבחנה מרעש אקראי.
| תכונה | פיתיון קוסמטי | הכחשה אמיתית |
|---|---|---|
| נתונים נפרדים לפי אישור | כן | כן |
| אין רשם כספות | לא (מסד נתונים עוקב) | כן |
| אין דגלי תצורה | לא (כפתור פיתיון מאוחסן) | כן |
| מילוי אחסון | לעיתים רחוקות | כן |
| מסתיר אחסון חלופי בתמונה סטטית | לא | כן, במסגרת מודל איום האחסון המוצהר |
| ארכיטקטורה לעומת תכונה | כפתור-תכונה | תכונה ארכיטקטורית |
תרחישים אמיתיים שבהם זה חשוב
מעברי גבול
במעבר גבול, בודק עשוי לבקש גישה למכשיר. במערכת שמספקת הכחשת אחסון אמיתית, אישור אחד יכול לחשוף תוכן תמים בלי שמבנה האחסון יוכיח שקיים תוכן נוסף. הפורמט הנוכחי של Vaultaire, הכולל קובץ אינדקס אחד לכל כספת, אינו מספק הבטחה זו לבודק שיש לו גישה למיכל האפליקציה.
אלימות במשפחה ויחסים כפויים
מישהו ביחסים פוגעניים עשוי להצטרך לאחסן ראיות (תמונות של פציעות, הודעות מאיימות, מסמכים משפטיים) במכשיר שהתוקף עוקב אחריו. אם התוקף דורש לראות את הכספת, המשתמש יכול לפתוח כספת עם תוכן לא רגיש.
הגנה משפטית ועיתונאית
עיתונאים המגנים על מקורות, עורכי דין המגנים על קבצי לקוחות ופעילים במשטרים רודניים מתמודדים עם תרחישים שבהם ניתן לכפות גילוי תוכן מכשיר. הכחשה סבירה מספקת הגנה אמינה.
מה Vaultaire מיישמת כיום
Vaultaire מפרידה גישה באמצעות תבניות ואינה מציגה רשימת כספות בממשק הרגיל. תכונות אלה עוזרות בשימוש רגיל, אך אינן עומדות בכל הדרישות להכחשת אחסון קריפטוגרפית חזקה.
הגישה מופרדת לפי תבנית. תבנית שהוגדרה גוזרת מפתח כספת באמצעות PBKDF2-HMAC-SHA512. מפתח הכספת מאמת את האינדקס המוצפן ופותח מפתח ראשי אקראי נפרד שמצפין את הקבצים והמטא-נתונים באמצעות AES-256-GCM.
הפורמט המקומי ניתן לספירה. Vaultaire שומרת קובץ vault_index_<fingerprint>.bin מוצפן אחד לכל כספת. טביעת האצבע אינה חושפת את התבנית, שם הכספת או התוכן הגלוי, אך בודק עם גישה למיכל האפליקציה יכול לספור את קובצי האינדקס.
האחסון המקומי אינו בגודל קבוע. תוכן הקבצים והמטא-נתונים מוצפנים, וגושי הגיבוי בענן משתמשים בריפוד וברשומות פיתיון. מיכל האפליקציה המקומי אינו שומר מאגר קבוע של משבצות אמת ופיתיון, ולכן הגודל הכולל ומספר האינדקסים יכולים לחשוף מבנה.
אפשר לבדוק ניחושים במצב לא מקוון. אימות AES-GCM והשם הדטרמיניסטי של קובץ האינדקס מאפשרים לבדוק מפתח מועמד בלי גיבוב סיסמה נפרד. PBKDF2 מייקר כל ניסיון, אך אינו מבטל את בדיקת ההצלחה או הכישלון.
מצב כפייה. משתמשים יכולים לייעד כספת אחת ככספת כפייה. פתיחתה מסירה אינדקסים מקומיים ומיפויי שחזור של כספות אחרות ומבודדת את המכשיר מסנכרון. הפעולה אינה מוחקת גיבויי ענן, עותקים במכשירים אחרים או כל עצם מוצפן שכבר שותף, וזמן ההשלמה תלוי בעבודה המקומית.
כיצד להעריך טענות הכחשה
- האם יש כפתור "מצב פיתיון"? אם כן, זה קוסמטי. בודק פורנזי יכול למצוא את הכפתור.
- האם לאפליקציה יש רשימת כספות או מסד נתונים? אם כן, קיום הכספת ניתן להוכחה.
- האם יש שגיאת "סיסמה שגויה"? אם כן, האפליקציה יכולה להבחין בין אישורים תקפים ולא תקפים, מה שאומר שהיא מאחסנת משהו שמאמת אישורים.
- האם צריכת האחסון משתנה עם ספירת כספות? אם כן, ניתוח דיסק יכול להעריך את ספירת הכספות.
- האם האפליקציה יכולה לפרט כספות? אם האפליקציה יכולה להציג לך רשימה של הכספות שלך, הרשימה קיימת במכשיר וניתנת לגילוי.
שאלות נפוצות
האם הכחשה סבירה חוקית?
שימוש בהצפנה עם הכחשה סבירה חוקי ברוב הדמוקרטיות. אין חוק נגד נתונים מוצפנים במכשיר שקיומם לא ניתן להוכחה. בחלק מהתחומים (בריטניה תחת RIPA, אוסטרליה תחת Assistance and Access Act), רשויות יכולות לכפות גילוי מפתחות. שאלת האכיפה של כפיית גילוי מפתח לנתונים שקיומם לא ניתן להוכחה היא תחום חוקי מתפתח.
האם כלים פורנזיים יכולים לגלות הכחשה סבירה?
לכן Vaultaire מספקת מידור ממשק ואחסון מוצפן, לא הוכחה תיאורטית של מידע לכך שלא קיימת כספת נוספת. יידרש קטלוג עתידי בעל קיבולת קבועה עם משבצות אמיתיות ודמויות שלא ניתן להבחין בהן כדי להסתיר את ספירת הכספות המקומית מתמונת מצב של מיכל אפליקציה לא מקוון.
מה ההבדל בין הכחשה סבירה לכספות מוסתרות?
כספות נסתרות הן כספות שאינן גלויות בממשק הרגיל של האפליקציה. הכחשה קריפטוגרפית חזקה היא המאפיין הנפרד שלא ניתן להבחין בין נתונים נסתרים לבין אחסון מרופד שלא נעשה בו שימוש. Vaultaire מספקת כרגע את הנכס הראשון. הפורמט של קובץ אחד לאינדקס לכל כספת אינו מספק את השני מול בוחן עם גישה למיכל אפליקציה.