הרשאות ב-Android

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

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

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

כדי לראות רשימה מלאה של הרשאות לאפליקציות ל-Android, אפשר לעיין בדף ההפניה של ה-API להרשאות.

כדי לראות כמה אפליקציות לדוגמה שמדגימות את תהליך העבודה של ההרשאות, אפשר להיכנס למאגר לדוגמה של הרשאות ל-Android ב-GitHub.

תהליך העבודה לשימוש בהרשאות

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

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

איור 1 מדגים את תהליך העבודה לשימוש בהרשאות הניתנות לאפליקציה:

איור 1. תהליך עבודה כללי לשימוש בהרשאות ב-Android.

סוגי הרשאות

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

הרשאות בזמן ההתקנה

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

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

ב-Android יש כמה סוגים משניים של הרשאות בזמן ההתקנה, כולל הרשאות רגילות והרשאות חתימה.

הרשאות רגילות

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

המערכת מקצה את רמת ההגנה normal להרשאות רגילות.

הרשאות חתימה

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

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

המערכת מקצה את רמת ההגנה signature להרשאות החתימה.

הרשאות זמן ריצה

תיבת דו-שיח קופצת שמכילה 2 אפשרויות: אישור ודחייה.
איור 3. ההודעה במערכת שמופיעה כשהאפליקציה מבקשת הרשאה לכל משך זמן הפעילות.

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

כשהאפליקציה מבקשת הרשאה בחירת זמן ריצה, המערכת מציגה בקשה להרשאה בחירת זמן ריצה, כפי שמתואר באיור 3.

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

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

המערכת מקצה את רמת ההגנה dangerous להרשאות בסביבת זמן הריצה.

הרשאות מיוחדות

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

הדף Special app access (גישה מיוחדת לאפליקציות) בהגדרות המערכת מכיל קבוצה של פעולות שהמשתמשים יכולים להפעיל או להשבית. רבות מהפעולות האלה מיושמות כהרשאות מיוחדות.

איך מבקשים הרשאות מיוחדות

המערכת מקצה את רמת ההגנה appop להרשאות מיוחדות.

קבוצות של הרשאות

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

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

שיטות מומלצות

הרשאות הניתנות לאפליקציה מתבססות על תכונות אבטחת המערכת ועוזרות ל-Android לתמוך ביעדים הבאים שקשורים לפרטיות המשתמשים:

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

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

בקשה למספר מינימלי של הרשאות

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

שיוך הרשאות בסביבת זמן ריצה לפעולות ספציפיות

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

מביאים בחשבון את יחסי התלות של האפליקציה

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

שקיפות

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

הרשאות גישה מפורשות למערכת

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

הרשאות ברכיבי המערכת

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