הגדרת EncryptedSharedPreferences באפליקציות אנדרואיד

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

פיתוח ותמיכה בכל סוגי היישומים הניידים:

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

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

השירותים שאנו מציעים
מציג 1 מתוך 1כל 1734 השירותים
הגדרת EncryptedSharedPreferences באפליקציות אנדרואיד
פשוט
~1 יום

הכישורים שלנו:

שאלות נפוצות

העבודות האחרונות

  • פיתוח אפליקציית מובייל עבור FEEDME
    פיתוח אפליקציית מובייל עבור FEEDME
    971
  • פיתוח אפליקציית מובייל עבור XOOMER
    פיתוח אפליקציית מובייל עבור XOOMER
    869
  • פיתוח אפליקציית מובייל עבור RHL
    פיתוח אפליקציית מובייל עבור RHL
    1289
  • פיתוח אפליקציית מובייל עבור ZIPPY
    פיתוח אפליקציית מובייל עבור ZIPPY
    1143
  • פיתוח אפליקציית מובייל עבור Affhome
    פיתוח אפליקציית מובייל עבור Affhome
    1076
  • פיתוח אפליקציית מובייל עבור חברת FLAVORS
    פיתוח אפליקציית מובייל עבור חברת FLAVORS
    677

מדוע כדאי להצפין את SharedPreferences?

לאחרונה, בפרויקט של לקוח, התגלתה פרצת אבטחה: אסימון האימות אוחסן בטקסט רגיל. לאחר פריצה דרך ADB (ניפוי באגים היה מופעל בגרסת ה-release), תוקפים השיגו גישה ל-10,000 אסימונים תוך מספר דקות. שכתבנו את האחסון ל-EncryptedSharedPreferences—זה סגר את וקטור התקיפה לחלוטין. 99% מהתקריות הדומות כוללות נתונים לא מוצפנים במכשיר.

אסימונים, הגדרות, מפתחות API—כל אלה חייבים להיות נעולים. גם אם האפליקציה לא משתמשת בביומטריה, הצפנה מגנה מפני גישה פיזית, גיבויים ותוכנות זדוניות. אנו מבטיחים סודיות נתונים באמצעות הצפנה דו-רמתית מ-Jetpack Security. במשך 5+ שנים, יישמנו הגנה ביותר מ-20 פרויקטים—אפס תקריות. ביקורת אבטחה תראה שהאפליקציה שלך עומדת ב-OWASP Mobile Top 10.

איך עובד EncryptedSharedPreferences?

האתחול דורש מפתח ראשי מ-Android Keystore. Google Tink מספק חוזק קריפטוגרפי: מפתחות מוצפנים עם AES256-SIV (הצפנה דטרמיניסטית לחיפוש), ערכים עם AES256-GCM. המפתח הראשי מאוחסן באחסון מגובה חומרה וקשור למכשיר.

val masterKey = MasterKey.Builder(context)
    .setKeyScheme(MasterKey.KeyScheme.AES256_GCM)
    .setUserAuthenticationRequired(false) // true если нужна биометрия
    .build()
val prefs = EncryptedSharedPreferences.create(
    context,
    "secure_prefs",
    masterKey,
    EncryptedSharedPreferences.PrefKeyEncryptionScheme.AES256_SIV,
    EncryptedSharedPreferences.PrefValueEncryptionScheme.AES256_GCM
)

ה-API זהה ל-val masterKey = MasterKey.Builder(context) .setKeyScheme(MasterKey.KeyScheme.AES256_GCM) .setUserAuthenticationRequired(false) // true если нужна биометрия .build() val prefs = EncryptedSharedPreferences.create( context, "secure_prefs", masterKey, EncryptedSharedPreferences.PrefKeyEncryptionScheme.AES256_SIV, EncryptedSharedPreferences.PrefValueEncryptionScheme.AES256_GCM ) הרגיל—SharedPreferences, putString, getString. אין צורך בקוד נוסף. עם זאת, יש ניואנסים: edit().apply() אינו נתמך, והקובץ קשור למכשיר.

מדד SharedPreferences רגיל EncryptedSharedPreferences
אבטחה נתונים בטקסט רגיל נתונים מוצפנים (AES256)
ביצועים ~0.1 אלפיות השנייה לקריאה ~2–5 אלפיות השנייה לקריאה
גיבוי מועתק במלואו דורש החרגה מ-backup_rules.xml

מה בדיוק מוצפן ואיך?

סוג נתונים לפני הצפנה אחרי הצפנה
הגדרות getAll() <string name="theme">dark</string> (AES256-SIV)
אסימונים base64:... <string name="token">eyJ...J9</string> (AES256-GCM)

קובץ ה-Secure Prefs מכיל blob לא קריא. גם עם גישה פיזית למכשיר, לא ניתן לפענח נתונים ללא המפתח הראשי מ-Keystore. מניסיוננו, גישה זו סוגרת 99% מהאיומים לאחסון נתוני סשן.

איך לבצע מיגרציה ללא אובדן נתונים?

מיגרציה מ-SharedPreferences רגיל היא משימה טיפוסית שאנו משלימים תוך 4–8 שעות. תוכנית שלב אחר שלב:

  1. קרא את כל המפתחות מהקובץ הישן באמצעות base64:... (חריג למיגרציה; לאחר מכן שכתב לקריאות מפורשות).
  2. כתוב כל מפתח לקובץ המוצפן החדש באמצעות getAll().
  3. מחק את הקובץ הישן edit().putString().
  4. החלף את כל קריאות ה-context.deleteSharedPreferences("old_name") בקוד ב-getSharedPreferences.
  5. הוסף EncryptedSharedPreferences.create והחרג את הקובץ המוצפן מ-Auto Backup.

חשוב: android:fullBackupContent="@xml/backup_rules" אינו נתמך ב-EncryptedSharedPreferences בסביבת ייצור—לאחר המיגרציה, שכתב את האיטרציה למפתחות מפורשים.

מהם המלכודות בשימוש ב-EncryptedSharedPreferences?

אם המכשיר מופעל מחדש וביומטריה מופעלת, ייתכן שעובדי רקע לא יקבלו גישה לנתונים. פתרון: הגדר במפורש getAll() והשתמש בסכימת setUserAuthenticationRequired(false). זה מבטיח גישה לאחר אתחול.

קובץ ההעדפות קשור ל-Keystore של המכשיר. לא ניתן להעתיקו למכשיר אחר—זה מגן מפני הוצאת נתונים. בגרסאות אלפא מוקדמות של Jetpack Security (לדוגמה, 1.1.0-alpha02), היה באג שגרם לאובדן נתונים בתנאים מסוימים—לקחנו זאת בחשבון ותמיד משתמשים בגרסאות יציבות.

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

מתי EncryptedSharedPreferences אינו מספיק?

אם יש צורך בנתונים בעובד רקע ללא משתמש על המסך והמכשיר הופעל מחדש, יש צורך בשליטה ישירה על Android Keystore או שימוש ב-DEVICE_CREDENTIAL לנפחים גדולים. לכתיבת קבצים בזרימה (תמונות, לוגים), Jetpack Security EncryptedFile מתאים יותר. הוא אינו מוגבל בגודל ותומך בהצפנת זרימה.

מה כלול בעבודה ולוחות זמנים

  • ייעוץ בנושא ארכיטקטורת אחסון נתונים.
  • הגדרת מפתח ראשי (עם ביומטריה או בלעדיה).
  • מיגרציה של כל ה-SharedPreferences הקיימים, תוך התחשבות ב-EncryptedFile ו-getAll().
  • בדיקות על API 23+ (מעל 30 מכשירים).
  • תיעוד והמלצות תחזוקה.
  • חודש תמיכה לאחר השקת האפליקציה.

לוחות זמנים: החלפה פשוטה—4–8 שעות עם בדיקות. אם מעורבים Auto Backup ותצורה מורכבת, הוסף עוד כמה שעות. העלות מחושבת באופן אישי לאחר ניתוח הפרויקט שלך. צור קשר כדי לקבל הערכה.

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