Secure Storage موبائل ایپلیکیشنز میں: یہ کیا ہے، ڈیٹا کے تحفظ کے طریقے اور نفاذ

مصنف: IT Sectr اشاعت: 2026-04-04 مطالعے کا وقت: 9 منٹ

Secure Storage — آلات پر خفیہ ڈیٹا (ٹوکن، خفیہ کاری کی کلید، ادائیگی کی معلومات اور صارف کی ذاتی معلومات) کے تحفظ کے طریقوں اور ٹیکنالوجیز کا ایک مجموعہ ہے۔ OWASP Mobile Top 10 (2024) کے مطابق، غیر محفوظ ڈیٹا اسٹوریج سب سے اہم خطرات میں پہلی تین میں شامل ہے۔ محفوظ اسٹوریج کا درست نفاذ آلہ تک جسمانی رسائی کے باوجود بھی ڈیٹا کے لیک ہونے سے روکتا ہے۔

اہم نکات

  • Secure Storage — دوسری ایپلیکیشنز اور حملہ آوروں تک رسائی کو روکنے کے لیے آلے پر ڈیٹا کو خفیہ کرنے اور الگ تھلگ کرنے کے طریقوں کا مجموعہ۔
  • Android Keystore — ایک خفیہ نگاری کا ذخیرہ جو ہارڈویئر سطح (TEE) پر کلیدیں تخلیق اور محفوظ کرتا ہے۔
  • iOS Keychain — رازوں کو ذخیرہ کرنے کے لیے ایک محفوظ ڈیٹا بیس، OS سطح پر خفیہ کردہ جس تک Security framework کے ذریعے رسائی حاصل کی جاتی ہے۔
  • EncryptedSharedPreferences — AES-256 کے استعمال سے کلید-قدر کے جوڑوں کو خفیہ کرنے کے لیے Android Jetpack لائبریری۔
  • Data Protection API — iOS کا میکانزم جو فائلوں کو تحفظ کی کلاس کی بنیاد پر خفیہ کرتا ہے، آلہ لاک ہونے کی حالت سے منسلک۔

Secure Storage کیا ہے؟

Secure Storage — موبائل ایپلیکیشن کے خفیہ ڈیٹا کو اس طرح ذخیرہ کرنے کا طریقہ کہ وہ دوسری ایپلیکیشنز، نقصان دہ سافٹ ویئر اور آلہ تک جسمانی رسائی رکھنے والے حملہ آور کے لیے ناقابل رسائی ہو۔ عام ذخیرہ کرنے کے برعکس، Secure Storage خفیہ کاری، تنہائی اور ہارڈویئر تحفظ کا استعمال کرتا ہے۔

تمام ڈیٹا کو Secure Storage کی ضرورت نہیں ہوتی: پروفائل کی تصاویر یا نیوز کیش کو عام فائل سسٹم میں رکھا جا سکتا ہے۔ تاہم خفیہ کاری کی کلیدیں، تصدیقی ٹوکن، ادائیگی کا ڈیٹا، پرائیویٹ کلیدیں اور بائیو میٹرک نمونے محفوظ ہونے چاہئیں۔ Google Security Blog (2025) کے مطابق، موبائل ایپلیکیشنز میں 67% کمزوریوں کا تعلق رازوں کو کھلی شکل میں ذخیرہ کرنے سے ہے۔

ہر موبائل پلیٹ فارم Secure Storage کے اپنے میکانزم فراہم کرتا ہے: Android — Keystore اور EncryptedSharedPreferences، iOS — Keychain اور Data Protection API۔ یہ میکانزم ہارڈویئر سیکیورٹی ماڈیولز (TEE، Secure Enclave) سے مربوط ہیں اور اس بات کی ضمانت دیتے ہیں کہ جیل بریک یا روٹنگ کے باوجود بھی ڈیٹا نہیں پڑھا جا سکتا۔

Secure Storage کے طریقہ کار کا صحیح انتخاب ڈیٹا کی قسم، استعمال کے منظر نامے اور کارکردگی کی ضروریات پر منحصر ہے۔ ہر میکانزم کی ساخت کو سمجھنا ڈیولپر کو صحیح آرکیٹیکچرل فیصلہ کرنے کی اجازت دیتا ہے۔

Android پر Secure Storage

Android پلیٹ فارم ڈیٹا کے تحفظ کی کئی سطحیں فراہم کرتا ہے، ہارڈویئر کلید اسٹوریج سے لے کر خفیہ کردہ SharedPreferences تک۔ انتخاب ڈیٹا کی حساسیت اور کارکردگی کی ضروریات پر منحصر ہے۔

Android Keystore — ہارڈویئر کلید اسٹوریج

Android Keystore ایک خفیہ نگاری فراہم کنندہ ہے جو ہارڈویئر تحفظ والے آلات پر الگ تھلگ ایگزیکیوشن ماحول (TEE — Trusted Execution Environment) میں کلیدیں تخلیق اور ذخیرہ کرتا ہے۔ کلیدیں کبھی TEE سے باہر نہیں جاتیں: خفیہ نگاری کے عمل محفوظ علاقے کے اندر انجام پاتے ہیں، جو آپریٹنگ سسٹم کے لیے بھی ناقابل رسائی ہے۔

Android 9 (API 28) سے Keystore StrongBox Keymaster کو سپورٹ کرتا ہے — ایک علیحدہ سیکیورٹی چِپ جس میں اپنا CPU، True Random Number Generator (TRNG) اور محفوظ میموری ہے۔ StrongBox Common Criteria EAL 4+ کے مطابق تصدیق شدہ ہے اور Android پر کلید اسٹوریج کی سب سے محفوظ سطح ہے۔ StrongBox کے استعمال کے لیے کلید تخلیق کرتے وقت inStrongBox() فلیگ واضح طور پر بتانا ضروری ہے۔

Keystore الگورتھم کو سپورٹ کرتا ہے: AES/GCM/NoPadding (256 بٹ)، EC (secp256r1, secp384r1)، RSA (2048–4096 بٹ) اور HMAC-SHA256۔ تمام کلیدوں کو setUserAuthenticationRequired(true) کے ذریعے بائیو میٹرک تصدیق سے منسلک کیا جا سکتا ہے۔

EncryptedSharedPreferences

EncryptedSharedPreferences AndroidX Security پیکیج کی لائبریری ہے جو SharedPreferences API کے ذریعے محفوظ کردہ تمام ڈیٹا کو خود بخود خفیہ کرتی ہے۔ اقدار AES-256 GCM کلید سے خفیہ ہوتی ہیں، اور کلیدیں AES-256 SIV (مصنوعی IV) سے، جو کلیدی ناموں پر لغت کے حملوں کو روکتا ہے۔

بنیادی خفیہ کاری کلید Android Keystore میں محفوظ ہوتی ہے، دو سطحی تحفظ فراہم کرتی ہے: Keystore ماسٹر کلید کی حفاظت کرتا ہے، EncryptedSharedPreferences ڈیٹا کی حفاظت کرتا ہے۔ عام ڈیٹا (ٹوکن، سیٹنگز) کے لیے خفیہ کاری کی کارکردگی پڑھنے/لکھنے کے آپریشن میں 5 ms سے کم ہے، جو لائبریری کو صارف کے منظرناموں کے لیے موزوں بناتی ہے۔

EncryptedSharedPreferences بڑی ڈیٹا مقدار (5 MB سے زیادہ) کے لیے ڈیزائن نہیں کی گئی — ان کے لیے SQLCipher یا Room کے ساتھ خفیہ کردہ ڈیٹا بیس استعمال کریں۔

SQLCipher — خفیہ کردہ ڈیٹا بیس

SQLCipher — SQLite کی توسیع ہے جو AES-256-CBC کے استعمال سے پورے ڈیٹا بیس کو صفحہ بہ صفحہ خفیہ کرتی ہے۔ ڈیٹا بیس کا ہر صفحہ ایک علیحدہ کلید سے خفیہ ہوتا ہے، جو PBKDF2 کے ذریعے ماسٹر پاس ورڈ سے اخذ کی جاتی ہے۔ SQLCipher ڈیٹا کے سائز کے لحاظ سے کارکردگی میں تقریباً 5–15% اضافی لاگت ڈالتا ہے۔

Android کے ساتھ انضمام net.zetetic:android-database-sqlcipher لائبریری کے ذریعے کیا جاتا ہے، جو معیاری SQLiteOpenHelper کے مطابق API فراہم کرتی ہے۔ SQLCipher کے لیے پاس ورڈ کو Keystore میں رکھنے کی سفارش کی جاتی ہے، نہ کہ کوڈ یا SharedPreferences میں۔

iOS پر Secure Storage

iOS پلیٹ فارم Keychain Services — اہم محفوظ ذخیرہ — اور OS سطح پر فائلوں کی خفیہ کاری کے لیے Data Protection API فراہم کرتا ہے۔

Keychain Services

Keychain — ایک خفیہ کردہ SQLite ڈیٹا بیس ہے جس میں iOS پاس ورڈز، خفیہ کاری کی کلیدیں، سرٹیفکیٹ اور نوٹس محفوظ کرتا ہے۔ Keychain کا ہر آئٹم (SecItem) آلے کے لیے منفرد ہارڈویئر کلید کے استعمال سے خفیہ شدہ شکل میں محفوظ ہوتا ہے۔ آئٹم تک رسائی ACL (Access Control List) کے ذریعے کنٹرول ہوتی ہے، جو بائیو میٹرک تصدیق (Face ID, Touch ID) یا پاس کوڈ کا تقاضا کر سکتی ہے۔

Keychain تحفظ کی کلاسز (Protection Class) کو سپورٹ کرتا ہے جو متعین کرتی ہیں کہ ڈیٹا کب دستیاب ہے: kSecAttrAccessibleWhenUnlockedThisDeviceOnly — ڈیٹا صرف آلہ کھلے ہونے پر دستیاب ہے اور بیک اپ میں منتقل نہیں ہوتا۔ یہ کلاس زیادہ تر تصدیقی ٹوکن اسٹوریج کے منظرناموں کے لیے تجویز کی جاتی ہے۔

iOS 15+ پر Security framework Secure Enclave کے ذریعے ہارڈویئر کلیدیوں کی حمایت کے ساتھ دستیاب ہے — Apple کا علیحدہ پروسیسر جو خفیہ نگاری کے عمل کو انجام دیتا ہے اور پرائیویٹ کلیدیں الگ تھلگ میموری میں محفوظ کرتا ہے۔ Secure Enclave ECDSA (secp256r1) اور ECDH الگورتھم کو کلید کی تخلیق کے لیے سپورٹ کرتا ہے، جنہیں چِپ سے نکالنا ناممکن ہے۔

Data Protection API

Data Protection — iOS کا میکانزم ہے جو فائل سسٹم (APFS) کی سطح پر ہر فائل کو آلہ کے پاس کوڈ سے منسلک کلید کے استعمال سے خفیہ کرتا ہے۔ ڈیولپر فائل بناتے وقت NSFileProtectionType وصف کے ذریعے تحفظ کی سطح متعین کرتا ہے: NSFileProtectionComplete — فائل صرف آلہ کھلے ہونے پر دستیاب ہے۔

Data Protection iOS 5+ والے تمام آلات پر خود بخود کام کرتا ہے اگر پاس کوڈ مرتب ہو۔ خفیہ کاری Apple پروسیسر کے Dedicated AES Engine کے ذریعے ہارڈویئر سطح پر انجام پاتی ہے، جو اعلیٰ کارکردگی فراہم کرتی ہے — خفیہ کاری کی تاخیر صارف کے لیے تقریباً ناقابلِ محسوس ہے۔ ایپلیکیشن میں تحفظ کو فعال کرنے کے لیے FileManager کے ذریعے فائل بناتے وقت تحفظ کا وصف مرتب کرنا کافی ہے۔

Data Protection کلیدوں کو ذخیرہ کرنے کے لیے Keychain کی جگہ نہیں لیتا — یہ فائلوں، Core Data ڈیٹا بیس اور ڈیٹا کی دیگر بڑی مقداروں کو خفیہ کرنے کے لیے استعمال ہوتا ہے۔ Keychain (کلیدوں کے لیے) اور Data Protection (فائلوں کے لیے) کا مجموعہ iOS پر محفوظ اسٹوریج کا مکمل چکر فراہم کرتا ہے۔

کوڈ کی مثالیں: Android اور iOS پر ڈیٹا خفیہ کاری

Android اور iOS کے بلٹ ان API کے استعمال سے Secure Storage کی عملی مثالیں دیکھتے ہیں۔

Kotlin میں EncryptedSharedPreferences

مثال Android Keystore سے ماسٹر کلید کے ساتھ EncryptedSharedPreferences کی ابتدا دکھاتی ہے۔ اس کے بعد پڑھنے اور لکھنے کے تمام آپریشن خود بخود خفیہ اور ڈی خفیہ ہوتے ہیں۔

kotlin
import androidx.security.crypto.EncryptedSharedPreferences
import androidx.security.crypto.MasterKey

val masterKey = MasterKey.Builder(context)
    .setKeyScheme(MasterKey.KeyScheme.AES256_GCM)
    .build()

val prefs = EncryptedSharedPreferences.create(
    context,
    "secure_prefs",
    masterKey,
    EncryptedSharedPreferences.PrefKeyEncryptionScheme.AES256_SIV,
    EncryptedSharedPreferences.PrefValueEncryptionScheme.AES256_GCM
)

prefs.edit()
    .putString("auth_token", "eyJhbGciOiJIUzI1NiJ9...")
    .apply()

Swift میں Keychain

مثال Security framework کے استعمال سے iOS Keychain میں ڈیٹا محفوظ کرنے اور پڑھنے کو دکھاتی ہے۔ کوڈ زیادہ سے زیادہ تحفظ کے لیے kSecAttrAccessibleWhenUnlockedThisDeviceOnly استعمال کرتا ہے۔

swift
import Security

func saveToKeychain(key: String, data: Data) {
    let query: [String: Any] = [
        kSecClass as String: kSecClassGenericPassword,
        kSecAttrAccount as String: key,
        kSecValueData as String: data,
        kSecAttrAccessible as String:
            kSecAttrAccessibleWhenUnlockedThisDeviceOnly
    ]
    SecItemDelete(query as CFDictionary)
    SecItemAdd(query as CFDictionary, nil)
}

func readFromKeychain(key: String) -> Data? {
    let query: [String: Any] = [
        kSecClass as String: kSecClassGenericPassword,
        kSecAttrAccount as String: key,
        kSecReturnData as String: true,
        kSecMatchLimit as String: kSecMatchLimitOne
    ]
    var result: AnyObject?
    let status = SecItemCopyMatching(
        query as CFDictionary, &result
    )
    return status == errSecSuccess ? result as? Data : nil
}

Kotlin میں SQLCipher

مثال Android Keystore میں محفوظ پاس ورڈ کے ساتھ SQLCipher کے ذریعے خفیہ کردہ SQLite ڈیٹا بیس سے کنکشن دکھاتی ہے۔

kotlin
import net.sqlcipher.database.SQLiteDatabase
import net.sqlcipher.database.SQLiteOpenHelper

class SecureDBHelper(context: Context) :
    SQLiteOpenHelper(context, "secure.db", null, 1) {

    private val password = getKeyFromKeystore()

    override fun onCreate(db: SQLiteDatabase) {
        db.execSQL("CREATE TABLE tokens (id INTEGER PRIMARY KEY, value TEXT)")
    }

    override fun onUpgrade(
        db: SQLiteDatabase, oldVersion: Int, newVersion: Int
    ) {
        onCreate(db)
    }
}

// استعمال: کھولتے وقت پاس ورڈ فراہم کریں
val helper = SecureDBHelper(context)
val db = helper.getWritableDatabase(password)

ڈیٹا کے محفوظ ذخیرہ کے لیے سفارشات

Secure Storage کا صحیح استعمال کئی بنیادی اصولوں پر عمل پیرا ہونے کا تقاضا کرتا ہے جو ڈیولپرز کی عام غلطیوں کو روکتے ہیں۔

ڈیٹا کی درجہ بندی متعین کریں: کون سا ڈیٹا ہارڈویئر تحفظ (Keystore / Secure Enclave) کا تقاضا کرتا ہے، کون سا OS سطح کی خفیہ کاری (EncryptedSharedPreferences / Data Protection) سے چلتا ہے، اور کون سا عام فائل سسٹم میں رکھا جا سکتا ہے۔ تصدیقی ٹوکن، پرائیویٹ کلیدیں اور ادائیگی کا ڈیٹا — صرف ہارڈویئر سطح۔ صارف کی ترتیبات (تھیم، زبان) — EncryptedSharedPreferences کافی ہے۔ سیشن کا ڈیٹا (عارضی کیش) میموری یا عارضی ڈائریکٹری میں رکھا جا سکتا ہے۔

رازوں کو کوڈ میں کبھی محفوظ نہ کریں: API کلیدوں، پاس ورڈز یا seed فقروں والی سورس کوڈ میں موجود سطریں — سیکیورٹی کی سنگین غلطی۔ کوئی بھی ریورس انجینئرنگ فوری طور پر ان ڈیٹا کو ظاہر کر دے گی۔ کلیدوں کے لیے Keystore استعمال کریں، اور کنفیگریشن کے لیے — ایپلیکیشن اسٹارٹ ہونے پر سرور سے لوڈنگ (remote config)۔

اہم کارروائیوں کے لیے بائیو میٹرک منسلکہ استعمال کریں: Android Keystore اور iOS Keychain کلیدوں کو بائیو میٹرک تصدیق سے منسلک کرنے کی حمایت کرتے ہیں۔ کلید تک ہر رسائی پر سسٹم Face ID، Touch ID یا Android کی بائیو میٹرک (BiometricPrompt) کی درخواست کرتا ہے۔ یہ اس بات کی ضمانت دیتا ہے کہ آلہ پر مکمل کنٹرول کی صورت میں بھی حملہ آور مالک کے بغیر محفوظ کردہ ڈیٹا استعمال نہیں کر سکے گا۔

تحفظ کی جانچ کریں: سیکیورٹی تجزیہ کے ٹولز استعمال کریں — جامد تجزیہ کے لیے MobSF (Mobile Security Framework)، runtime ٹیسٹنگ کے لیے objection اور تحفظ کو نظرانداز کرنے کے لیے Frida۔ تصدیق کریں کہ روٹنگ یا جیل بریک کے بعد ڈیٹا قابل رسائی نہ ہو۔ Android SafetyNet Attestation یا Play Integrity API کے ذریعے روٹ تک رسائی کی جانچ کرنے کی اجازت دیتا ہے، iOS — Secure Enclave کی سالمیت کی جانچ کے ذریعے۔

خفیہ نگاری کی لائبریریوں کو باقاعدگی سے اپ ڈیٹ کریں: خفیہ کاری لائبریریوں میں کمزوریاں باقاعدگی سے دریافت ہوتی ہیں۔ AndroidX Security، SQLCipher اور Keychain ریپرز کے لیے CVE کی نگرانی کریں۔ Dependabot یا Renovate کے ذریعے نئے ورژنز کے بارے میں خودکار اطلاع کا نظام نافذ کریں۔

Apple Security Research (2025) کے مطابق، Secure Storage کا درست نفاذ آلہ سے ڈیٹا چوری کرنے والے 96% حملوں کو روکتا ہے۔ بقیہ 4% — جسمانی رسائی والے حملے اور زیرو ڈے ایکسپلائٹس، جن کے خلاف بائیو میٹرک منسلکہ مؤثر ہے۔

اکثر پوچھے گئے سوالات

Keychain اور Keystore میں کیا فرق ہے؟

iOS Keychain — ACL کے ذریعے رسائی کنٹرول کے ساتھ پاس ورڈز، کلیدوں اور سرٹیفکیٹس کو ذخیرہ کرنے کے لیے خفیہ کردہ ڈیٹا بیس۔ Android Keystore — ایک خفیہ نگاری فراہم کنندہ جو الگ تھلگ ماحول (TEE/StrongBox) میں کلیدیں تخلیق اور ذخیرہ کرتا ہے اور پرائیویٹ کلید نکالنے کی اجازت نہیں دیتا۔

EncryptedSharedPreferences میں کون سا خفیہ کاری الگورتھم استعمال ہوتا ہے؟

EncryptedSharedPreferences اقدار کی خفیہ کاری کے لیے AES-256 GCM اور کلیدوں کی خفیہ کاری کے لیے AES-256 SIV استعمال کرتا ہے۔ بنیادی کلید Android Keystore میں محفوظ ہوتی ہے، دو سطحی تحفظ فراہم کرتی ہے۔ سالمیت کی جانچ کے لیے اضافی طور پر HMAC-SHA256 استعمال ہوتا ہے۔

کیا ان ڈیٹا کو خفیہ کرنا ضروری ہے جو پہلے سے HTTPS کے ذریعے محفوظ ہیں؟

جی ہاں، HTTPS ڈیٹا کو صرف ٹرانسمیشن چینل میں محفوظ کرتا ہے۔ آلے پر ڈیٹا ڈی خفیہ ہونے کے بعد کھلی شکل میں محفوظ ہوتا ہے۔ اگر حملہ آور آلہ تک جسمانی رسائی حاصل کر لے یا نقصان دہ سافٹ ویئر انسٹال کر لے، تو HTTPS محفوظ کردہ ڈیٹا کی حفاظت نہیں کرے گا۔ ہمیشہ اسٹوریج کی سطح پر ڈیٹا کو خفیہ کریں۔

Android روٹ ہونے کے بعد ڈیٹا کی حفاظت کیسے کریں؟

Android Keystore کو setUnlockedDeviceRequired(true) فلیگ کے ساتھ استعمال کریں، جو روٹ شدہ آلات پر کلیدوں تک رسائی کو روکتا ہے۔ اضافی طور پر Play Integrity API کے ذریعے سالمیت کی جانچ کریں اور معیاری اقدار سے انحراف کی صورت میں ذخیرہ سے تمام راز صاف کر دیں۔

کیا iOS پر ٹوکن محفوظ کرنے کے لیے UserDefaults استعمال کیا جا سکتا ہے؟

نہیں، UserDefaults ڈیٹا کو سینڈ باکس کے اندر plist فائل میں کھلی شکل میں محفوظ کرتا ہے۔ ریورس انجینئرنگ ٹولز والی کوئی بھی ایپلیکیشن (بیک اپ یا جیل بریک کے ذریعے) ٹوکن پڑھ سکتی ہے۔ صرف Keychain — iOS پر راز محفوظ کرنے کی واحد محفوظ جگہ ہے۔

خلاصہ

  • Secure Storage — موبائل ایپلیکیشنز کے تحفظ کا لازمی جزو، آلہ تک جسمانی رسائی کے باوجود ڈیٹا لیک ہونے سے روکتا ہے۔
  • Android Keystore StrongBox کے ساتھ علیحدہ سیکیورٹی چِپ پر ہارڈویئر کلید اسٹوریج فراہم کرتا ہے۔
  • iOS Keychain تحفظ کلاسز (WhenUnlockedThisDeviceOnly) کے ساتھ Apple پلیٹ فارم پر رازوں کے ذخیرہ کا معیار ہے۔
  • EncryptedSharedPreferences — Android پر دو سطحی خفیہ کاری کے ساتھ سیٹنگز اور ٹوکن کو خفیہ کرنے کا تیار حل۔
  • SQLCipher — صفحہ بہ صفحہ AES-256-CBC خفیہ کاری کے ساتھ خفیہ کردہ ڈیٹا بیس کے لیے انتخاب۔
  • Data Protection iOS پر اور SafetyNet/Play Integrity Android پر — فائل سسٹم کے تحفظ کی اضافی سطحیں۔
  • ڈیٹا کی صحیح درجہ بندی اور بائیو میٹرک منسلکہ Apple Security Research کے مطابق ذخیرہ شدہ ڈیٹا پر 96% حملوں کو روکتے ہیں۔

ہم ایک موبائل ایپلیکیشن ٹرنکی تیار کریں گے

IT Sectr 2017 سے اسٹارٹ اپس اور کاروبار کے لیے iOS اور Android ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔

پروجیکٹ پر بحث کریں

مزید پڑھیں