APK Signature Scheme v3 מגיע עם תמיכה בסיבוב מפתח

APK Signature Scheme v3 זוהתה בפרויקט הקוד הפתוח של אנדרואיד, ונראה שהיא מביאה תמיכה בסיבוב מפתחות.

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

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


APK Signature Scheme v1 ו-v2

לא עבר זמן רב מדי מאז גרסת ה-APK Signature Scheme הנוכחית, v2,

שוחרר למפתחים. אחרי הכל, זה בקושי הוצג לנו עם השקת אנדרואיד 7.0 נוגט, בסוף 2016. השימוש בסכימת החתימה v2 באפליקציות אנדרואיד 7.0+ עודד מאוד מכיוון שהוא הביא סדרה של תיקונים חיוניים ו שיפורי אבטחה: בעוד v1 חתם רק על ה-JAR, v2 נוקט בצעדים נוספים להגנה על שלמות הכלל קוֹבֶץ. עם זאת, סכימות חתימות אינן תואמות לאחור, ו-Android Marshmallow ומטה דורש חתימות v1 עבור אפליקציות.

תהליך אימות APK. מקור: גוגל.

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

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

בדיקת גרסאות החתימה של APK של אפליקציות מדיה חברתית/תשלום פופולריות.

סכימת חתימות APK v3

תכונת הכותרת הגדולה ביותר של v3, שנועדה להיות גרסה של v2, תהיה תמיכה בסיבוב מפתח. ה ערכת חתימות v3 מציג את שושלת ה-APK Signer Lineage, שלפי אחד המתחייבים, "מכיל היסטוריה של חתימה על תעודות כאשר כל אב קדמון מעיד על תוקף צאצאיו. כל צאצא נוסף מייצג זהות חדשה שניתן להשתמש בה כדי לחתום על APK. בדרך זו, השושלת מכילה הוכחת סיבוב שבאמצעותה ה-APK המכיל אותו יכול להדגים, בפני אחרים הצדדים, יכולתו לסמוך על תעודת החתימה הנוכחית שלו, כאילו היא נחתם על ידי אחד המבוגרים יחידות."

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

יתר על כן, זה יכול להיות שימושי גם במקרה של מפתח החתימה שלו נגנב/אובד, אשר בדרך כלל זה אומר שהאפליקציה תצטרך להיות מועלית מחדש לחנות Play בחבילה אחרת שֵׁם. זה לא מקרה נדיר בכלל, שכן לפני זמן רב אפילו גוגל כנראה איבדה את מפתח החתימה של אפליקציית Google Authenticator מה שהוביל לפרסום מחדש בשם חבילה אחר. מאז גוגל סיפקה אמצעים לאחסן בבטחה את מפתחות החתימה שלך בענן חתימת אפליקציות Google Play, אבל סיבוב מפתח יאפשר לך להמשיך לעדכן את האפליקציה שלך במקרה של בלגן היפותטי.

מתי זה מתגלגל?

למרות שאתה אולי להוט לנסות את זה בשביל הנוחות הנוספת, סכימת החתימות v3 נצפתה מרחפת ברחבי ה-AOSP אתר Gerrit Code Review, וה-commits עצמם לא מוזגו לסניף הראשי כרגע, אז הוא לא מוכן רק עדיין. אנחנו צריכים לצפות שסכימת החתימה v3 תגיע לידי המפתחים עם השחרור הקרוב של אנדרואיד P אם מהדורת v2 הקודמת עם אנדרואיד נוגט תגיד לנו משהו.

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