ב-Android 5.1 הוצג מנגנון למתן הרשאות מיוחדות לממשקי API שרלוונטיים לבעלים של אפליקציות בכרטיס מעגל משולב אוניברסלי (UICC). פלטפורמת Android טוענת אישורים שמאוחסנים ב-UICC ומעניקה הרשאה לאפליקציות שנחתמו על ידי האישורים האלה לבצע קריאות למספר קטן של ממשקי API מיוחדים.
ב-Android 7.0, התכונה הזו הורחבה כדי לתמוך במקורות אחסון אחרים לכללי הרשאות של ספקי UICC, וכך גדל באופן משמעותי מספר הספקים שיכולים להשתמש בממשקי ה-API. הפניית API, במאמר CarrierConfigManager. הוראות, במאמר Carrier Configuration.
לספקי הסלולר יש שליטה מלאה ב-UICC, ולכן המנגנון הזה מספק דרך בטוחה וגמישה לניהול אפליקציות של מפעיל רשת סלולרית (MNO) שמתארחות בערוצים כלליים להפצת אפליקציות (כמו Google Play), תוך שמירה על הרשאות מיוחדות במכשירים וללא צורך בחתימה על אפליקציות באמצעות אישור פלטפורמה לכל מכשיר או בהתקנה מראש כאפליקציית מערכת.
כללים לגבי כרטיסי UICC
האחסון ב-UICC תואם ל
מפרט בקרת הגישה לרכיב המאובטח של GlobalPlatform. מזהה האפליקציה (AID) בכרטיס הוא A00000015141434C00
, והפקודה
GET DATA
משמשת לאחזור כללים שמאוחסנים בכרטיס. אפשר לעדכן את הכללים האלה באמצעות עדכונים של כרטיסים דרך האוויר (OTA).
היררכיית נתונים
בכללי UICC נעשה שימוש בהיררכיית הנתונים הבאה (האות בת שני התווים והשילוב המספרי בסוגריים הם תג האובייקט). כל כלל הוא REF-AR-DO
(E2
) ומורכב משרשור של REF-DO
ושל AR-DO
:
-
REF-DO
(E1
) מכיל אתDeviceAppID-REF-DO
או שרשור שלDeviceAppID-REF-DO
ו-PKG-REF-DO
.-
DeviceAppID-REF-DO
(C1
) מאחסן את החתימה של האישור מסוג SHA-1 (20 בתים) או SHA-256 (32 בתים). -
PKG-REF-DO
(CA
) הוא שם החבילה המלא שמוגדר במניפסט, בקידוד ASCII, אורך מקסימלי של 127 בייט.
-
- הערך
AR-DO
(E3
) מורחב וכולל את הערךPERM-AR-DO
(DB
), שהוא מסכת ביטים של 8 בייטים שמייצגת 64 הרשאות נפרדות.
אם PKG-REF-DO
לא מופיע, כל אפליקציה שנחתמה על ידי האישור מקבלת גישה. אחרת, האישור ושם החבילה צריכים להיות זהים.
דוגמה לכלל
שם האפליקציה הוא com.google.android.apps.myapp
ואישור ה-SHA-1 במחרוזת הקסדצימלית הוא:
AB:CD:92:CB:B1:56:B2:80:FA:4E:14:29:A6:EC:EE:B6:E5:C1:BF:E4
הכלל ב-UICC במחרוזת הקסדצימלית הוא:
E243 <= 43 is value length in hex E135 C114 ABCD92CBB156B280FA4E1429A6ECEEB6E5C1BFE4 CA1D 636F6D2E676F6F676C652E616E64726F69642E617070732E6D79617070 E30A DB08 0000000000000001
תמיכה בקבצים של כללי גישה
ב-Android 7.0 נוספה תמיכה בקריאת כללי הרשאות של ספקי סלולר מקובץ כללי הגישה (ARF).
פלטפורמת Android מנסה קודם לבחור את מזהה היישום (AID) של כלל הגישה ליישום (ARA) A00000015141434C00
. אם המערכת לא מוצאת את ה-AID ב-UICC, היא חוזרת ל-ARF על ידי בחירת ה-AID של PKCS15 A000000063504B43532D3135
. מערכת Android קוראת את קובץ הכללים של בקרת הגישה (ACRF) בנתיב 0x4300
ומחפשת רשומות עם AID FFFFFFFFFFFF
. מערכת AdSense מתעלמת מכללים עם מזהי כללים שונים, כך שכללים לתרחישי שימוש אחרים יכולים להתקיים במקביל.
דוגמה לתוכן ACRF במחרוזת הקסדצימלית:
30 10 A0 08 04 06 FF FF FF FF FF FF 30 04 04 02 43 10
תוכן של קובץ תנאים לשליטה בגישה (ACCF) לדוגמה:
30 16 04 14 61 ED 37 7E 85 D3 86 A8 DF EE 6B 86 4B D8 5B 0B FA A5 AF 81
בדוגמה שלמעלה, 0x4310
היא הכתובת של ACCF, שמכילה את הגיבוב של האישור 61:ED:37:7E:85:D3:86:A8:DF:EE:6B:86:4B:D8:5B:0B:FA:A5:AF:81
. לאפליקציות
שנחתמו על ידי האישור הזה מוענקות הרשאות של ספק סלולר.
ממשקי API מופעלים
Android תומך בממשקי ה-API הבאים.
TelephonyManager
- שיטה שמאפשרת לאפליקציית הספק לבקש מ-UICC אתגר/תגובה:
getIccAuthentication
. - שיטה לבדיקה אם לאפליקציה שמבצעת את הקריאה הוענקו הרשאות של ספק:
hasCarrierPrivileges
. - שיטות לביטול ברירת המחדל של המותג והמספר:
- שיטות לתקשורת ישירה עם כרטיס ה-UICC:
- השיטה להגדרת מצב המכשיר לגלובלי:
setPreferredNetworkTypeToGlobal
. - שיטות לקבלת זהויות המכשיר או הרשת:
- מזהה בינלאומי של ציוד נייד (IMEI):
getImei
- מזהה ציוד נייד (MEID):
getMeid
- מזהה גישה לרשת (NAI):
getNai
- המספר הסידורי של כרטיס ה-SIM:
getSimSerialNumber
- מזהה בינלאומי של ציוד נייד (IMEI):
- השיטה לקבלת הגדרות הספק:
getCarrierConfig
- השיטה לקבלת סוג הרשת להעברת נתונים:
getDataNetworkType
- השיטה לקבלת סוג הרשת לשירות קולי:
getVoiceNetworkType
- שיטות לקבלת מידע על אפליקציית UICC SIM (USIM):
- המספר הסידורי של כרטיס ה-SIM:
getSimSerialNumber
- פרטי הכרטיס:
getUiccCardsInfo
- GID1 (מזהה קבוצה ברמה 1):
getGroupIdLevel1
- מחרוזת מספר הטלפון לשורה 1:
getLine1Number
- רשת סלולרית ציבורית (PLMN) אסורה:
getForbiddenPlmns
- PLMN לבית כשווה-ערך ל-SP:
getEquivalentHomePlmns
- המספר הסידורי של כרטיס ה-SIM:
- שיטות לקבלת מספר התא הקולי או להגדרתו:
- השיטה לשליחת קוד מיוחד בחייגן:
sendDialerSpecialCode
- שיטה לאיפוס מודם הרדיו:
rebootModem
- שיטות לקבלת או להגדרת מצבי בחירת רשת:
- השיטה לבקשת סריקת רשת:
requestNetworkScan
- שיטות לקבלת סוגי הרשתות המותרים או המועדפים או להגדרתם:
- שיטות לבדיקה אם חבילת הגלישה או הנדידה מופעלות בהגדרות של כל משתמש:
- שיטות לבדיקה או להגדרה של חיבור נתונים עם סיבה:
- השיטה לקבלת רשימת מספרי החירום:
getEmergencyNumberList
- שיטות לשליטה ברשתות אד-הוק:
- שיטות להגדרת בקשה לעדכון עוצמת האות הסלולרי או לביטול הבקשה:
TelephonyCallback
ל-TelephonyCallback
יש ממשקי API עם שיטת קריאה חוזרת כדי להודיע לאפליקציה ששולחת את הקריאה כשמצבי הרישום משתנים:
- השתנה הסימון להודעה בהמתנה:
onMessageWaitingIndicatorChanged
- האינדיקטור להעברת שיחות השתנה:
onCallForwardingIndicatorChanged
- הסיבה לניתוק השיחה במערכת מולטימדיה מבוססת-IP (IMS) השתנתה:
onImsCallDisconnectCauseChanged
- השתנה המצב המדויק של חיבור הנתונים:
onPreciseDataConnectionStateChanged
- רשימת מספרי החירום הנוכחית השתנתה:
onEmergencyNumberListChanged
- מזהה המינוי הפעיל לנתונים השתנה:
onActiveDataSubscriptionIdChanged
- רשת הספק השתנתה:
onCarrierNetworkChange
- הרישום ברשת או עדכון של מיקום/ניתוב/אזור מעקב
נכשלו:
onRegistrationFailed
- שינוי פרטי החסימה:
onBarringInfoChanged
- ההגדרה הנוכחית של הערוץ הפיזי השתנתה:
onPhysicalChannelConfigChanged
SubscriptionManager
- שיטות לקבלת מידע שונה על מינויים:
- השיטה לקבלת מספר המינויים הפעילים:
getActiveSubscriptionInfoCount
- שיטות לניהול קבוצות מינויים:
- שיטות לקבלת או להגדרת תיאור של תוכנית הקשר לחיוב בין ספק לבין מנוי ספציפי:
- שיטה לביטול זמני של תוכנית הקשר לחיוב בין חברת תובלה לבין מנוי ספציפי, כך שהשימוש לא יחושב:
setSubscriptionOverrideUnmetered
- שיטה לעקיפה זמנית של תוכנית הקשר לחיוב בין חברת תובלה לבין מנוי ספציפי, כדי שהמנוי ייחשב כמי שמשתמש ברשת עמוסה:
setSubscriptionOverrideCongested
- Method לבדיקה אם לאפליקציה עם ההקשר הנתון יש הרשאה לנהל את המינוי הנתון בהתאם למטא-נתונים שלו:
canManageSubscription
SmsManager
- השיטה שמאפשרת למתקשר ליצור הודעות SMS חדשות:
injectSmsPdu
. - שיטה לשליחת הודעת SMS מבוססת-טקסט בלי לכתוב לספק ה-SMS:
sendTextMessageWithoutPersisting
CarrierConfigManager
- השיטה להודעה על שינוי בהגדרות:
notifyConfigChangedForSubId
. - השיטה לקבלת הגדרות ספק למינוי ברירת המחדל:
getConfig
- השיטה לקבלת הגדרות הספק עבור המינוי שצוין:
getConfigForSubId
הוראות מופיעות במאמר הגדרת ספק.
BugreportManager
שיטה להתחלת דוח על באג בקישוריות, שהיא גרסה מיוחדת של הדוח על באג שכוללת רק מידע לניפוי שגיאות שקשורות לבעיות בקישוריות:
startConnectivityBugreport
NetworkStatsManager
- שיטה לשאילתת סיכום השימוש ברשת:
querySummary
- שיטה לשאילתת היסטוריית השימוש ברשת:
queryDetails
- שיטות לרישום או לביטול הרישום של קריאה חוזרת לשימוש ברשת:
ImsMmTelManager
- שיטות לרישום או לביטול הרישום של קריאה חוזרת לרישום IMS MmTel:
ImsRcsManager
- שיטות לרישום או לביטול הרישום של קריאה חוזרת לרישום IMS RCS:
- שיטות לקבלת סטטוס הרשמה ל-IMS או סוג העברה:
ProvisioningManager
- שיטות לרישום ולביטול רישום של עדכונים להקצאת תכונות IMS callback:
- שיטות שקשורות לסטטוס ההקצאה של יכולות IMS MmTel או RCS:
EuiccManager
השיטה להחלפה למינוי הנתון (הפעלה שלו):
switchToSubscription
CarrierMessagingService
שירות שמקבל שיחות מהמערכת כששולחים או מקבלים הודעות SMS ו-MMS חדשות. כדי להרחיב את המחלקה הזו, צריך להצהיר על השירות בקובץ המניפסט עם ההרשאה android.Manifest.permission#BIND_CARRIER_MESSAGING_SERVICE
ולכלול מסנן Intent עם הפעולה #SERVICE_INTERFACE
. דרכים אפשריות:
- שיטה לסינון הודעות SMS נכנסות:
onFilterSms
- שיטה ליירוט הודעות טקסט ב-SMS שנשלחות מהמכשיר:
onSendTextSms
- שיטה ליירוט הודעות SMS בינאריות שנשלחות מהמכשיר:
onSendDataSms
- שיטה ליירוט הודעות SMS ארוכות שנשלחות מהמכשיר:
onSendMultipartTextSms
- שיטה ליירוט הודעות MMS שנשלחות מהמכשיר:
onSendMms
- שיטה להורדת הודעות MMS שהתקבלו:
onDownloadMms
CarrierService
שירות שחושף פונקציות ספציפיות לספק למערכת. כדי להרחיב את המחלקה הזו, צריך להצהיר על השירות בקובץ המניפסט של האפליקציה עם ההרשאה android.Manifest.permission#BIND_CARRIER_SERVICES
ולכלול מסנן Intent עם הפעולה CARRIER_SERVICE_INTERFACE
.
אם לשירות יש קשר ארוך טווח, צריך להגדיר את android.service.carrier.LONG_LIVED_BINDING
לערך true
במטא-נתונים של השירות.
הפלטפורמה קושרת את CarrierService
עם דגלים מיוחדים כדי לאפשר לשירות של הספק לפעול ב
דלי מיוחד של אפליקציות במצב המתנה. הפעולה הזו פוטרת את אפליקציית שירות הספק מ
הגבלת מצב המתנה של האפליקציה, ומגדילה את הסיכוי שהאפליקציה תמשיך לפעול כשזיכרון המכשיר נמוך. עם זאת, אם אפליקציית שירות הספק קורסת מסיבה כלשהי, היא מאבדת את כל ההרשאות שצוינו למעלה עד שהאפליקציה מופעלת מחדש והקישור נוצר מחדש. לכן חשוב מאוד לשמור על יציבות של אפליקציית שירותי הספק.
השיטות ב-CarrierService
כוללות:
- כדי לשנות את ההגדרות שנקבעו כברירת מחדל ולהגדיר הגדרות ספציפיות לספק:
onLoadConfig
- כדי ליידע את המערכת על שינוי מכוון ברשת הספק שצפוי להתבצע על ידי
אפליקציית הספק:
notifyCarrierNetworkChange
ספק טלפוניה
ממשקי API של ספקי תוכן שמאפשרים לבצע שינויים (הוספה, מחיקה, עדכון, שאילתה) במסד הנתונים של הטלפוניה. השדות של הערכים מוגדרים בכתובת
Telephony.Carriers
. פרטים נוספים זמינים ב
הפניה למחלקה Telephony
WifiNetworkSuggestion
כשיוצרים אובייקט WifiNetworkSuggestion
, משתמשים בשיטות הבאות כדי להגדיר מזהה מינוי או קבוצת מינויים:
- שיטה להגדרת מזהה מינוי:
setSubscriptionId
- שיטה להגדרת קבוצת מינויים:
setSubscriptionGroup
פלטפורמת Android
בכרטיס UICC שזוהה, הפלטפורמה יוצרת אובייקטים פנימיים של UICC שכוללים כללים של הרשאות ספק כחלק מה-UICC.
UiccCarrierPrivilegeRules.java
טוען את הכללים, מנתח אותם מכרטיס ה-UICC ומאחסן אותם במטמון בזיכרון. כשנדרשת בדיקת הרשאות, UiccCarrierPrivilegeRules
משווה את האישור של המתקשר עם הכללים שלו אחד אחד. אם כרטיס ה-UICC מוסר, הכללים נמחקים יחד עם אובייקט ה-UICC.
אימות
כדי לאמת את ההטמעה באמצעות
Compatibility Test Suite (CTS) באמצעות CtsCarrierApiTestCases.apk
,
צריך שיהיה לכם כרטיס UICC למפתחים עם כללי ה-UICC הנכונים או תמיכה ב-ARF.
מבקשים מספק כרטיסי ה-SIM שבחרתם להכין כרטיס UICC למפתחים עם ה-ARF הנכון, כפי שמתואר בקטע הזה, ומשתמשים בכרטיס ה-UICC הזה כדי להריץ את הבדיקות. UICC לא דורש שירות סלולרי פעיל כדי לעבור בדיקות CTS.
הכנת כרטיס ה-UICC
ב-Android מגרסה 11 ומטה, CtsCarrierApiTestCases.apk
חתום על ידי aosp-testkey
, עם ערך הגיבוב 61:ED:37:7E:85:D3:86:A8:DF:EE:6B:86:4B:D8:5B:0B:FA:A5:AF:81
.
החל מ-Android 12, הקובץ CtsCarrierApiTestCases.apk
חתום על ידי cts-uicc-2021-testkey
, ערך הגיבוב CE:7B:2B:47:AE:2B:75:52:C8:F9:2C:C2:91:24:27:98:83:04:1F:B6:23:A5:F1:94:A8:2C:9B:F1:5D:49:2A:A0
.
כדי להריץ בדיקות של CTS carrier API ב-Android 12, צריך להשתמש במכשיר עם כרטיס SIM עם הרשאות CTS carrier שעומד בדרישות שמפורטות בגרסה האחרונה של המפרט GSMA TS.48 Test Profile של צד שלישי.
אפשר להשתמש באותו כרטיס SIM גם בגרסאות קודמות ל-Android 12.
שינוי פרופיל ה-SIM של CTS
- הוספה: הרשאות של ספק CTS ב-access rule app master (ARA-M) או ב-ARF. שתי החתימות צריכות להיות מקודדות בכללי ההרשאות של הספק:
- Hash1(SHA1):
61:ED:37:7E:85:D3:86:A8:DF:EE:6B:86:4B:D8:5B:0B:FA:A5:AF:81
- Hash2(SHA256):
CE:7B:2B:47:AE:2B:75:52:C8:F9:2C:C2:91:24:27:98:83:04:1F:B6:23:A5:F1:94:A8:2C:9B:F1:5D:49:2A:A0
- Hash1(SHA1):
- יצירה: קבצים בסיסיים (EF) של ADF USIM שלא קיימים ב-TS.48 ונדרשים ל-CTS:
- EF_MBDN (6FC7), record size: 28, record number: 4
- תוכן
- Rec1: 566F696365204D61696CFFFFFFFF06915155555555FF…FF
- Rec2-n: FF…FF
- תוכן
- EF_EXT6 (6FC8), גודל הרשומה:13, מספר הרשומה: 1
- תוכן: 00FF…FF
- EF_MBI (6FC9), גודל הרשומה: 4, מספר הרשומה: 1
- תוכן: Rec1: 01010101
- EF_MWIS (6FCA), גודל הרשומה: 5, מספר הרשומה: 1
- תוכן: 0000000000
- תוכן: 00FF…FF
- EF_MBDN (6FC7), record size: 28, record number: 4
- שינוי: טבלת שירות USIM: הפעלת שירותים מס' 47, מס' 48
- EF_UST (6F38)
- תוכן:
9EFFBF1DFFFE0083410310010400406E01
- תוכן:
- EF_UST (6F38)
- שינוי: קובצי DF-5GS ו-DF-SAIP
- DF-5GS - EF_5GS3GPPLOCI (USIM/5FC0/4F01)
- תוכן:
FFFFFFFFFFFFFFFFFFFFFFFFFF42F618FFFFFE01
- תוכן:
- DF-5GS - EF_5GSN3GPPLOCI (USIM/5FC0/4F02)
- תוכן:
FFFFFFFFFFFFFFFFFFFFFFFFFF42F618FFFFFE01
- תוכן:
- DF-5GS - EF SUCI_Calc_Info (USIM/5FC0/4F07)
- תוכן:
A0020000FF…FF
- תוכן:
- DF-SAIP - EF SUCI_Calc_Info_USIM (USIM/5FD0/4F01)
- תוכן:
A0020000FF…FF
- תוכן:
- DF-5GS - EF_5GS3GPPLOCI (USIM/5FC0/4F01)
- שינוי: צריך להשתמש במחרוזת שם הספק Android CTS
ב-EF המתאימים שמכילים את הסימון הזה:
- EF_SPN (USIM/6F46)
- תוכן:
01416E64726F696420435453FF..FF
- תוכן:
- EF_PNN (USIM/6FC5)
- תוכן:
Rec1 430B83413759FE4E934143EA14FF..FF
- תוכן:
- EF_SPN (USIM/6F46)
התאמה למבנה של פרופיל הבדיקה
מורידים את הגרסה העדכנית של המבנים הבאים של פרופילי בדיקה כלליים ומתאימים אותם. בפרופילים האלה לא יחולו התאמה אישית של כלל ההרשאות של CTS Carrier או שינויים אחרים שצוינו למעלה.
הרצת בדיקות
לנוחותכם, CTS תומך בטוקן מכשיר שמגביל את ההרצה של הבדיקות רק במכשירים שהוגדרו עם אותו טוקן. בדיקות Carrier API CTS
תומכות באסימון המכשיר sim-card-with-certs
. לדוגמה, טוקן המכשיר הבא מגביל את ההרצה של בדיקות API של ספקי סלולר למכשיר abcd1234
בלבד:
cts-tradefed run cts --device-token abcd1234:sim-card-with-certs
כשמריצים בדיקה בלי להשתמש באסימון מכשיר, הבדיקה מופעלת בכל המכשירים.
שאלות נפוצות
איך אפשר לעדכן את האישורים ב-UICC?
תשובה: משתמשים במנגנון הקיים לעדכון כרטיס OTA.
האם כללי UICC יכולים להתקיים לצד כללים אחרים?
תשובה: אין בעיה להגדיר כללי אבטחה אחרים ב-UICC עם אותו AID. הפלטפורמה מסננת אותם באופן אוטומטי.
מה קורה כשמסירים את כרטיס ה-UICC מאפליקציה שמסתמכת על האישורים שמופיעים בו?
תשובה: האפליקציה מאבדת את ההרשאות שלה כי הכללים שמשויכים ל-UICC נהרסים כשמוציאים את ה-UICC.
האם יש הגבלה על מספר האישורים ב-UICC?
ת: הפלטפורמה לא מגבילה את מספר האישורים, אבל בגלל שהבדיקה היא ליניארית, יותר מדי כללים עלולים לגרום להשהיה בבדיקה.
האם יש מגבלה על מספר ממשקי ה-API שאפשר לתמוך בהם באמצעות השיטה הזו?
תשובה: לא, אבל אנחנו מגבילים את ההיקף לממשקי API שקשורים לספקי סלולר.
האם יש ממשקי API שאסור להשתמש בהם בשיטה הזו? אם כן, איך אתם אוכפים אותם? (כלומר, האם יש לך בדיקות לאימות ממשקי ה-API שנתמכים בשיטה הזו?)
תשובה: אפשר לעיין בקטע תאימות התנהגותית של API במסמך ההגדרה של תאימות (CDD) של Android. יש לנו כמה בדיקות CTS כדי לוודא שמודל ההרשאות של ממשקי ה-API לא השתנה.
איך זה עובד עם תכונת ה-Multi-SIM?
תשובה: נעשה שימוש ב-SIM שמוגדר כברירת מחדל על ידי המשתמש.
האם יש אינטראקציה או חפיפה כלשהי בין הטכנולוגיה הזו לבין טכנולוגיות אחרות של גישה ל-SE, למשל SEEK?
תשובה: לדוגמה, SEEK משתמש באותו מזהה אפליקציה כמו ב-UICC. לכן הכללים
מתקיימים יחד ומסוננים לפי SEEK או
UiccCarrierPrivileges
.
מתי כדאי לבדוק את ההרשאות של הספק?
תשובה: אחרי שהשידור של מצב כרטיס ה-SIM נטען.
האם יצרני ציוד מקורי יכולים להשבית חלק מממשקי ה-API של הספק?
תשובה: לא. אנחנו מאמינים שממשקי ה-API הנוכחיים הם קבוצת המינימום, ואנחנו מתכננים להשתמש במסכת הביטים כדי לשלוט ברמת פירוט גבוהה יותר בעתיד.
האם setOperatorBrandOverride
מבטל את כל המחרוזות האחרות של שמות האופרטורים? לדוגמה, SE13, UICC SPN או NITZ מבוסס-רשת?
כן, לביטול המותג של הספק יש את העדיפות הכי גבוהה. אם מגדירים את הערך הזה, הוא מבטל את כל המחרוזות האחרות של שמות המפעילים.
מה עושה הקריאה ל-method injectSmsPdu
?
תשובה: השיטה הזו מאפשרת גיבוי ושחזור של הודעות SMS בענן. הקריאה
injectSmsPdu
מאפשרת את פונקציית השחזור.
בסינון SMS, האם הקריאה onFilterSms
מבוססת על סינון יציאות של UDH ב-SMS? או שאפליקציות של ספקים מקבלות גישה לכל הודעות ה-SMS הנכנסות?
תשובה: לספקי הסלולר יש גישה לכל נתוני ה-SMS.
נראה שההרחבה של DeviceAppID-REF-DO
לתמיכה ב-32 בייט לא תואמת למפרט הנוכחי של GP (שמאפשר רק 0 או 20 בייט), אז למה אתם מבצעים את השינוי הזה? האם SHA-1 לא מספיק כדי למנוע התנגשויות? האם כבר הצעת את השינוי הזה ל-GP, כי יכול להיות שהוא לא תואם לגרסאות קודמות של ARA-M/ARF?
תשובה: כדי לספק אבטחה שתהיה רלוונטית גם בעתיד, התוסף הזה מציג SHA-256 עבור DeviceAppID-REF-DO
בנוסף ל-SHA-1, שהוא כרגע האפשרות היחידה בתקן GP SEAC. מומלץ מאוד להשתמש ב-SHA-256.
אם DeviceAppID
הוא 0 (ריק), האם הכלל חל על כל האפליקציות במכשיר שלא מכוסות על ידי כלל ספציפי?
תשובה: ממשקי API של ספקי סלולר דורשים מילוי של DeviceAppID-REF-DO
.
השדה הזה יכול להיות ריק למטרות בדיקה, אבל לא מומלץ להשתמש בו כך בהטמעות תפעוליות.
לפי המפרט שלך, PKG-REF-DO
שמשמש לבד, בלי DeviceAppID-REF-DO
, לא אמור להתקבל. אבל
הוא עדיין מתואר בטבלה 6-4 במפרט כהרחבה של
ההגדרה של REF-DO
. האם זה קורה בכוונה? איך הקוד מתנהג כשמשתמשים רק ב-PKG-REF-DO
ב-REF-DO
?
תשובה: האפשרות להציג את PKG-REF-DO
כפריט עם ערך יחיד ב-REF-DO
הוסרה בגרסה האחרונה.
השגיאה PKG-REF-DO
צריכה להתרחש רק בשילוב עם DeviceAppID-REF-DO
.
אנחנו מניחים שאנחנו יכולים להעניק גישה לכל ההרשאות שמבוססות על ספק הסלולר או שיש לנו שליטה מדויקת יותר. אם כן, מה מגדיר את המיפוי בין מסכת הביטים לבין ההרשאות בפועל? הרשאה אחת לכל כיתה? הרשאה אחת לכל שיטה? האם 64 הרשאות נפרדות יספיקו בטווח הארוך?
ת: הנושא הזה שמור לעתיד, ונשמח לקבל הצעות.
תוכל להגדיר את DeviceAppID
עבור Android באופן ספציפי? זהו ערך הגיבוב (hash) של אישור בעל האפליקציה (20 בייט) בפורמט SHA-1 שמשמש לחתימה על האפליקציה הנתונה, אז לא צריך להיות שיקוף של המטרה הזו בשם? (השם עלול לבלבל הרבה קוראים כי הכלל חל על כל האפליקציות שנחתמו באותו אישור של מפרסם).
תשובה: DeviceAppID
אחסון האישורים נתמך במפרט הקיים. ניסינו לצמצם את השינויים במפרט כדי להקל על ההטמעה. פרטים נוספים זמינים במאמר בנושא כללים ב-UICC.