הסבר על מצב האבטחה

securityPosture הוא הערכת האבטחה של מכשיר, שמתבססת על סטטוס המכשיר הנוכחי. סטטוס המכשיר הנוכחי נקבע על סמך גורמים כמו אם המכשיר עבר תהליך רוט (Root), אם הוא פועל עם ROM בהתאמה אישית ועוד.

השדה securityPosture מפורט בתגובה כ-devicePosture ורשימה נוספת של postureDetails שמכילה את השדה securityRisk.

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

 {
  "devicePosture": "POTENTIALLY_COMPROMISED",
  "postureDetails": [
    {
      "securityRisk": "UNKNOWN_OS",
      "advice": [
        {
          "defaultMessage": "The user should lock their device's bootloader."
        }
      ]
    },
    {
      "securityRisk": "HARDWARE_BACKED_EVALUATION_FAILED"
    }
  ]
}

הערכת מצב האבטחה

כברירת מחדל, הערך של securityPosture נבדק באמצעות אימות מפתחות, ובמיוחד באמצעות אימות מפתחות מבוסס-חומרה (HBKA) אם רלוונטי. כך מתקבלת תוצאת אבטחה מהימנה, כי האימות נוצר ונחתם בחומרה מאובטחת.

לפעמים לא ניתן להשתמש ב-HBKA לצורך ההערכה הזו. כדי לשקף זאת, הערך שיוחזר על ידי securityRisk יהיה 'HARDWARE_BACKED_EVALUATION_FAILED'. המשמעות היא שאפשר להעריך את securityPosture, אבל לא באמצעות HBKA. כלומר, מצב תקינות האתחול של המכשיר עלול להיות מושחת (למשל, יכול להיות שהמכשיר עבר תהליך root) ולא ניתן יהיה לזהות אותו באמצעות זיהוי מבוסס-תוכנה.

הסבר על תוצאות הבדיקה של מצב האבטחה

אפשר לפרש שילובים שונים של devicePosture ו-securityRisk כדי להבין את רמת האבטחה הכוללת של המכשיר. חשוב לזכור שהרשימה הבאה היא חלקית בלבד:

  • אם הערך המוחזר על ידי devicePosture הוא SECURE והערך המוחזר על ידי securityRisk הוא HARDWARE_BACKED_EVALUATION_FAILED, התקינות של המכשיר מאובטחת, אבל לא ניתן היה לאמת זאת באמצעות HBKA.
  • אם הפונקציה devicePosture מחזירה את הערך POTENTIALLY_COMPROMISED ולא מוחזר ערך של securityRisk, המערכת משתמשת ב-HBKA במסגרת ההערכה ומתייחסת למכשיר כאל מכשיר שנפרץ.
  • אם הערך המוחזר של devicePosture הוא POTENTIALLY_COMPROMISED והערך המוחזר של securityRisk הוא HARDWARE_BACKED_EVALUATION_FAILED, ניתן לבצע רק בדיקות מבוססות-תוכנה, אבל אותות האיום על תקינות המכשיר חזקים מספיק כדי להחשיב אותו כמכשיר שנפרץ.
  • אם הערך המוחזר של devicePosture הוא POSTURE_UNSPECIFIED, לא ניתן היה להשלים את הערכת האבטחה. מומלץ להמתין להנפקה מחדש של ה-HBKA, שמתרחשת כשמתקבלת תוצאה חדשה, כדי לראות אם הוא יכול להחזיר ערך ספציפי. עם זאת, הערך POSTURE_UNSPECIFIED צפוי להופיע בהתקנה הראשונית למשך פרק זמן קצר.

מיפויים של Android Management API ל-Play Integrity API

בטבלה הבאה מפורטת ההתאמה בין התוצאה של AM API לתשובה של Play Integrity API.

AM API DevicePosture AM API Posture.Detail.SecurityRisk הקביעה המקבילה של Play Integrity API
SECURE SECURITY_RISK_UNSPECIFIED MEETS_STRONG_INTEGRITY
SECURE מכיל: HARDWARE_BACKED_EVALUATION_FAILED MEETS_DEVICE_INTEGRITY
POTENTIALLY_COMPROMISED מכיל: UNKNOWN_OS MEETS_BASIC_INTEGRITY
POTENTIALLY_COMPROMISED מכיל: COMPROMISED_OS <unset>
POSTURE_UNSPECIFIED <any> <unset>