יישום אישור מוגן

שיקולים

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

שיקולי ליבת לינוקס

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

שיקולי קושחה

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

שיקולי קלט

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

חומרה פיזית

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

שיקולי בקר מגע

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

התנהגות מצופה

הפרעות

אם המערכת קוטעת את הפעלת האישור בגלל שיחת טלפון נכנסת או אירוע הפעלה, ה-HAL חייב לדווח על ResponseCode::Aborted . אפליקציות מקבלים את ההתקשרות חזרה של onCanceled() ויודעים שהמשתמש לא בחר פעולה. אזעקות אינן צריכות לבטל את ההפעלה, אך הן צריכות להודיע ​​למשתמש. שכבות-על של התראות מכל סוג אינן מותרות כאשר תיבת הדו-שיח פעילה.

תקופת חסד לקלט

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

סיבוב מסך

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

כשלים בעיבוד טקסט גוף

יש גבול קשיח של 6144 (0x1800) בתים לגוף הטקסט כולל נתונים נוספים שאינם מוצגים ומידע כותרות CBOR. בנוסף, יש גבול רך שיש לאכוף. אם ההודעה המעובדת אינה מתאימה לחלוטין לשטח המסך הזמין, ודא שהאישור המוגן מבוטל והעסקה מבוטלת. אם MessageSize חורג מהגודל המרבי המותר, היישום שלך חייב להחזיר UIErrorMessageTooLong ב- promptUserConfirmation .

השיטה הטובה ביותר היא לעצב את גוף הטקסט לאחר קבלת קריאת ה-API. יש להציג את גוף הטקסט למשתמש במלואו.

תצוגות משניות

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