לפני התקנת קובץ APK, השוואת גיבוב SHA-256 יכולה להראות שהקובץ שלכם זהה לגרסה שיש בידיכם גיבוב מהימן שלה. הבדיקה מועילה, אך אינה מוכיחה לבדה שהיישום נקי מחולשות אבטחה או מנוזקות.
בהורדה בטוחה יש שלוש שאלות נפרדות: מה מקור הקובץ, האם השתנה בדרך ואילו ראיות קיימות לגבי הקוד שבתוכו? שום ערך גיבוב לבדו אינו עונה על כל שלוש השאלות.
מה עושה גיבוב של קובץ?
SHA-256 מפיק מתוכן הקובץ ערך באורך קבוע. אם הקובץ משתנה, צפוי שגם הגיבוב שלו ישתנה. לכן השוואת שני ערכי גיבוב היא דרך מעשית לבדוק שהבתים בקובץ זהים.
התוצאה אמינה רק במידת האמינות של מקור ההשוואה. אם תוקף יכול להחליף גם את ה-APK וגם את הגיבוב שמוצג לצדו, ההתאמה בין הערכים לא תחשוף את הבעיה. מודל האיומים של Livara מסביר גם הוא מגבלה זו של בדיקת קבצים.
כיצד לבדוק לפני ההתקנה
זהו את הגרסה הרצויה. השוו את שם המוצר, מספר הגרסה וסוג החבילה לדף ההפצה. קבצים משתי גרסאות שונות בדרך כלל אינם בעלי אותו גיבוב.
קבלו את הגיבוב הצפוי ממקור מהימן. אל תסתפקו בהודעה אנונימית ששולחת יחד את הקובץ ואת הגיבוב. בדקו את כתובת האתר הרשמי באופן עצמאי.
חשבו את הגיבוב של הקובץ שהורדתם. Proof Lab של Livara מספק כלי להשוואת גיבובי APK. אל תבלבלו בין כלי זה לבין בדיקת אבטחה מלאה של היישום.
השוו את הערך בשלמותו. התווים הראשונים או האחרונים בלבד אינם מספיקים להתאמה. בדקו גם אם נפלה טעות בשם הגרסה או בבחירת הקובץ.
אם יש הבדל, עצרו את ההתקנה. ההבדל עשוי לנבוע מגרסה אחרת, מהורדה חלקית או משינוי בקובץ; הוא אינו מוכיח לבדו שיש נוזקה. אל תתקינו את הקובץ עד לבירור הסיבה ובדקו שוב דרך הערוץ הרשמי.
מדריך זה אינו מציג גיבוב לדוגמה של ״גרסה בטוחה״, משום שהערך הנכון תלוי בקובץ ההפצה המסוים.
מה ההבדל בין גיבוב, חתימה ובנייה ניתנת לשחזור?
| בדיקה | מסקנה שהיא יכולה לתמוך בה | מה אינה מוכיחה לבדה |
|---|---|---|
| גיבוב SHA-256 | הקובץ זהה למקור ההשוואה | הקוד בטוח או שהמפרסם מהימן |
| חתימת APK | הקובץ נחתם במפתח מסוים ובדיקת החתימה תקינה | בעל המפתח לעולם אינו מפרסם קוד זדוני |
| בנייה ניתנת לשחזור | ניתן להפיק את אותם בתים בעזרת קוד מקור, סביבה והוראות מוגדרים | קוד המקור נקי מליקויי אבטחה |
| סקירת אבטחת קוד | התגלו או הוערכו בעיות בתחום ובגרסה שנבדקו | לא נותר שום ליקוי בלתי ידוע |
כלי apksigner הרשמי של Android משמש לבדיקת חתימות APK ופרטי תעודות. גם התקנה חדשה ועדכון של יישום קיים אינם אותו דבר; בעת עדכון, Android בודק את התאימות של הגורם החותם. חתימה תקינה של מפרסם לא מוכר אינה סיבה מספקת לתת בו אמון.
ההגדרה של בנייה ניתנת לשחזור מחייבת גם קוד מקור וסביבת בנייה מוגדרים. השוואת גיבוב ההורדה אינה מחליפה את התהליך הזה.
מהו תחום הפעולה של Proof Lab?
מלבד גיבוב קבצים, דף Proof Lab כולל הדגמה קריפטוגרפית בדפדפן. הדגמה מוצלחת של פעולה קריפטוגרפית אינה ביקורת מלאה של היישום המותקן או הרצה מלאה של פרוטוקולי ההודעות. גם את הכלי צריך להריץ בסביבה מהימנה; מכשיר או דף נגועים יכולים להציג תוצאה מטעה.
גם לאחר ההתקנה חשובים העדכונים, הרשאות היישום ואבטחת המכשיר. אימות הקובץ של היום אינו אימות אוטומטי של גרסה עתידית.
השוואת גיבוב היא בדיקה מוגדרת בשרשרת האמון; ערכה גדל כשמכירים גם את מקור ההפצה, הגורם החותם ומגבלות התוצאה.



