موبائل ایپس میں خفیہ کاری — بنیادی باتیں، الگورتھم اور کام کرنے کا اصول

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

خفیہ کاری (encryption) ڈیٹا کو ایک ایسی شکل میں تبدیل کرنے کا عمل ہے جو خصوصی کلید کے بغیر پڑھی نہیں جا سکتی۔ موبائل ایپلیکیشنز میں، خفیہ کاری صارفین کے ذاتی ڈیٹا، ادائیگی کی معلومات اور کاروباری منطق کو روکے جانے اور رساؤ سے بچاتی ہے۔ Statista (2024) کے مطابق، موبائل ایپس سے ڈیٹا کی خلاف ورزیوں کی تعداد دو سالوں میں 38% بڑھ گئی، اور 72% معاملات میں وجہ خفیہ کاری کی عدم موجودگی یا غلط استعمال تھا۔ جدید موبائل پلیٹ فارمز خفیہ کاری کے لیے بلٹ ان APIs فراہم کرتے ہیں، اور ان کا استعمال ایک لازمی سیکیورٹی معیار ہے۔ Statista, 2024

اہم نکات

  • خفیہ کاری — ڈیٹا کو ناقابل مطالعہ شکل میں تبدیل کرنا، صرف ڈیکرپشن کلید سے ہی بحال کیا جا سکتا ہے۔
  • سمیٹرک خفیہ کاری خفیہ کاری اور ڈیکرپشن کے لیے ایک کلید استعمال کرتی ہے — تیز، لیکن کلید کی محفوظ ترسیل کی ضرورت ہے۔
  • اسمیٹرک خفیہ کاری کلیدوں کا ایک جوڑا (عوامی اور نجی) استعمال کرتی ہے — زیادہ محفوظ، لیکن سمیٹرک سے سست۔
  • AES-256 — سمیٹرک خفیہ کاری کا سنہری معیار، NIST کی طرف سے تجویز کردہ اور Android اور iOS میں استعمال ہوتا ہے۔
  • اینڈ ٹو اینڈ خفیہ کاری اس بات کی ضمانت دیتی ہے کہ ڈیٹا سرور کے لیے بھی ناقابل رسائی ہے — صرف بھیجنے اور وصول کرنے والا ہی اسے پڑھ سکتا ہے۔

موبائل ایپلیکیشنز میں خفیہ کاری کیا ہے؟

موبائل ایپلیکیشنز کے تناظر میں خفیہ کاری ڈیوائس پر ذخیرہ کردہ ڈیٹا (data at rest) اور نیٹ ورک پر منتقل کردہ ڈیٹا (data in transit) کی حفاظت کے لیے کرپٹوگرافک الگورتھم کا اطلاق ہے۔ ڈیوائس کی سطح پر، مقامی اسٹوریج کو خفیہ کیا جاتا ہے: فائلیں، ڈیٹابیسز، SharedPreferences اور کیشے۔ نیٹ ورک کی سطح پر، ایپ اور سرور کے درمیان ٹریفک TLS/HTTPS پروٹوکولز کے ذریعے خفیہ کی جاتی ہے۔ حتمی مقصد یہ یقینی بنانا ہے کہ ڈیوائس تک جسمانی رسائی یا ٹریفک کی روک تھام کے باوجود، کوئی حملہ آور کرپٹوگرافک کلید کے بغیر محفوظ ڈیٹا نہیں پڑھ سکتا۔

موبائل ایپلیکیشنز میں خفیہ کاری کیوں ضروری ہے

موبائل ڈیوائسز ڈیٹا کے نقصان کے لیے خاص طور پر حساس ہیں: فون آسانی سے گم، چوری یا میلویئر سے متاثر ہو سکتا ہے۔ Ponemon Institute (2023) کے مطابق، ڈیٹا کی خلاف ورزیوں سے متاثر ہونے والی 42% کمپنیاں واقعات کی وجہ موبائل ڈیوائسز کو قرار دیتی ہیں۔ خفیہ کاری کے بغیر، ایک حملہ آور USB کے ذریعے ڈیوائس سے منسلک ہو سکتا ہے، SQLite ڈیٹابیس نکال سکتا ہے اور تمام ذخیرہ شدہ ڈیٹا پڑھ سکتا ہے۔ خفیہ کاری اس مسئلے کو حل کرتی ہے: چاہے ڈیٹابیس نکال لیا جائے، اس کا مواد خفیہ رہتا ہے۔ مزید برآں، امریکہ اور EU میں قوانین (GDPR, CCPA) ہیں جو ذاتی ڈیٹا کی خفیہ کاری کا تقاضا کرتے ہیں اور خلاف ورزی پر سالانہ کاروبار کے 4% تک جرمانہ عائد کرتے ہیں۔ خفیہ کاری کا استعمال کسی بھی موبائل ایپلیکیشن کے لیے جو صارف کے ڈیٹا سے کام کرتی ہے، نہ صرف تکنیکی بلکہ قانونی ضرورت بھی ہے۔

سمیٹرک اور اسمیٹرک خفیہ کاری

تمام خفیہ کاری الگورتھم دو اہم اقسام میں تقسیم ہوتے ہیں: سمیٹرک (خفیہ کاری اور ڈیکرپشن کے لیے ایک کلید) اور اسمیٹرک (کلیدوں کا ایک جوڑا — عوامی اور نجی)۔ قسم کا انتخاب استعمال کے منظر نامے پر منحصر ہے: مقامی ڈیٹا کی خفیہ کاری کے لیے اکثر سمیٹرک الگورتھم ان کی رفتار کی وجہ سے استعمال ہوتے ہیں، اور کلید کے تبادلے اور تصدیق کے لیے اسمیٹرک استعمال ہوتے ہیں۔

خصوصیتسمیٹرکاسمیٹرک
کلیدوں کی تعداد1 (خفیہ)2 (عوامی + نجی)
رفتاراعلی (1–10 GB/s)کم (1–10 MB/s)
کلید کی تقسیممسئلہ — کلید منتقل کرنی ہوتی ہےسادہ — عوامی کلید شائع کی جاتی ہے
مثالیںAES, ChaCha20RSA, ECDH, ECIES
موبائل ڈویلپمنٹ میں استعمالمقامی ڈیٹا خفیہ کاریکلید کا تبادلہ، ڈیجیٹل دستخط

عملی طور پر، موبائل ایپلیکیشنز میں ہائبرڈ خفیہ کاری استعمال ہوتی ہے: اسمیٹرک الگورتھم (مثلاً ECDH) سے فریقین سیشن کلید کا تبادلہ کرتے ہیں، اور اس کے بعد کے تمام ڈیٹا کو سمیٹرک الگورتھم (AES یا ChaCha20) سے خفیہ کیا جاتا ہے۔ یہ طریقہ سمیٹرک خفیہ کاری کی رفتار کو اسمیٹرک کلید کے تبادلے کی حفاظت کے ساتھ جوڑتا ہے۔ یہ طریقہ TLS 1.3، Signal Protocol اور Apple iMessage کی بنیاد ہے۔

اہم خفیہ کاری الگورتھم

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

  • AES (Advanced Encryption Standard) — 2001 میں NIST کے ذریعے تصدیق شدہ سمیٹرک بلاک سائفر۔ 128، 192 یا 256 بٹ کی کلید استعمال کرتا ہے۔ تجویز کردہ موڈ GCM (Galois/Counter Mode) ہے جو تصدیق شدہ خفیہ کاری فراہم کرتا ہے۔ AES-256 Android Keystore، iOS Keychain اور تمام جدید TLS پروٹوکولز میں استعمال ہوتا ہے۔
  • ChaCha20-Poly1305 — Daniel Bernstein کے تیار کردہ سمیٹرک اسٹریم سائفر۔ AES-256 جیسی حفاظت فراہم کرتا ہے لیکن ہارڈویئر AES ایکسلریشن کے بغیر ڈیوائسز (عام طور پر سستے Android سمارٹ فونز) پر تیز کام کرتا ہے۔ ChaCha20 TLS 1.3 میں AES-GCM کے متبادل کے طور پر استعمال ہوتا ہے اور Signal Protocol میں بنیادی سائفر ہے۔
  • RSA (Rivest-Shamir-Adleman) — کلید کی خفیہ کاری اور ڈیجیٹل دستخطوں کے لیے استعمال ہونے والا اسمیٹرک الگورتھم۔ کم از کم تجویز کردہ کلید کا سائز 2048 بٹ ہے۔ RSA ECDH سے سست ہے، لہٰذا جدید موبائل ایپلیکیشنز میں اس کی جگہ بیضوی منحنی کرپٹوگرافی (ECC) لے رہی ہے۔
  • ECDH (Elliptic Curve Diffie-Hellman) — بیضوی منحنی خطوط پر مبنی اسمیٹرک کلید کے تبادلے کا پروٹوکول۔ Perfect Forward Secrecy فراہم کرتا ہے اور TLS 1.3 میں بطور ڈیفالٹ استعمال ہوتا ہے۔ Curve25519 (X25519) منحنی موبائل ایپلیکیشنز میں سب سے عام ہے۔

خفیہ کاری صارف کے ڈیٹا کی حفاظت کیسے کرتی ہے

خفیہ کاری ڈیٹا کی تین اہم منظرناموں میں حفاظت کرتی ہے: ڈیوائس کا نقصان (ڈسک اور ایپ کنٹینر خفیہ کاری)، ٹریفک کی روک تھام (TLS/HTTPS نیٹ ورک پروٹوکول) اور سرور سے رساؤ (اینڈ ٹو اینڈ خفیہ کاری)۔ ہر منظر نامے کو اپنے طریقہ کار اور اوزار کی ضرورت ہوتی ہے۔

ڈیٹا ایٹ ریسٹ اور ڈیٹا ان ٹرانزٹ

ڈیٹا ایٹ ریسٹ — ڈیوائس پر ڈیٹا — Android Keystore اور iOS Keychain کے ذریعے خفیہ کیا جاتا ہے۔ Android 7.0 سے شروع کرتے ہوئے، فائل پر مبنی خفیہ کاری (File-Based Encryption) استعمال ہوتی ہے، اور ایپس AndroidX Security لائبریری سے EncryptedSharedPreferences اور EncryptedFile کے ذریعے اپنے ڈیٹا کو اضافی طور پر خفیہ کر سکتی ہیں۔ iOS پر، تمام ایپس ڈیفالٹ طور پر Data Protection API کے ساتھ کام کرتی ہیں، جو ڈیوائس پاس کوڈ سے منسلک کلید کے ساتھ فائل سسٹم کی سطح پر فائلوں کو خفیہ کرتی ہے۔ ڈیٹا ان ٹرانزٹ کے لیے، لازمی Certificate Pinning کے ساتھ TLS 1.2/1.3 استعمال ہوتا ہے۔

اینڈ ٹو اینڈ خفیہ کاری

اینڈ ٹو اینڈ خفیہ کاری (E2E) — ڈیٹا کی حفاظت کی اعلی ترین سطح، جس میں پیغام بھیجنے والے کے ڈیوائس پر خفیہ کیا جاتا ہے اور صرف وصول کرنے والے کے ڈیوائس پر ڈیکرپٹ کیا جاتا ہے۔ اسٹوریج اور ترسیل کا سرور مواد تک رسائی نہیں رکھتا — وہ صرف خفیہ کردہ بلاکس سے نمٹتا ہے۔ موبائل ایپلیکیشنز کے لیے سب سے مشہور E2E نفاذ Signal Protocol ہے، جو ابتدائی کلید کے تبادلے کے لیے X3DH (Extended Triple Diffie-Hellman) کے ساتھ Double Ratchet Algorithm استعمال کرتا ہے۔ Signal Protocol Perfect Forward Secrecy اور future secrecy فراہم کرتا ہے: ایک کلید سے سمجھوتہ ہونے پر پچھلے یا بعد کے پیغامات ظاہر نہیں ہوتے۔ Carnegie Mellon University (2023) کے ایک مطالعے کے مطابق، پیغام رسانی ایپس میں E2E خفیہ کاری صرف TLS خفیہ کاری کے مقابلے میں مواصلات کے رساؤ کے خطرے کو 99.7% تک کم کرتی ہے۔ GDPR اور HIPAA کی ضروریات کے مطابق Health & Fitness اور Finance زمرے کی ایپلیکیشنز کے لیے E2E لازمی ہے۔ اپنے پروجیکٹ میں E2E لاگو کرنے کے لیے، Signal Protocol لائبریری (Java/Swift) یا Olm (Matrix protocol) پر مبنی لائبریری استعمال کرنے کی سفارش کی جاتی ہے۔ E2E حل منتخب کرتے وقت، پلیٹ فارم کی مطابقت کا جائزہ لیں: Signal Protocol کو غیر متزامن بھیجنے اور کلائنٹ پر کلید ذخیرہ کرنے کی حمایت کی ضرورت ہوتی ہے، جو ملٹی ڈیوائس منظرناموں کو پیچیدہ بناتا ہے — ایسے معاملات کے لیے، Matrix Protocol اپنے کمرے کے ماڈل کے ساتھ بہتر انتخاب ہو سکتا ہے۔

موبائل ایپلیکیشنز میں خفیہ کاری کا نفاذ

آئیے Android پر Jetpack Security (AndroidX Security) استعمال کرتے ہوئے ڈیٹا کی خفیہ کاری اور ڈیکرپشن کی ایک مثال دیکھتے ہیں۔ لائبریری فائل کی خفیہ کاری کے لیے EncryptedFile اور ترتیبات کے لیے EncryptedSharedPreferences فراہم کرتی ہے۔

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

val encryptedFile = EncryptedFile.Builder(
    context,
    File(context.filesDir, "secret.dat"),
    masterKey,
    EncryptedFile.FileEncryptionScheme.AES256_GCM_HKDF_4KB
).build()

encryptedFile.openFileOutput(applicationContext).use { outputStream ->
    outputStream.write("Sensitive user data".toByteArray(Charsets.UTF_8))
}

MasterKey AES256-GCM کا استعمال کرتے ہوئے بنایا جاتا ہے — سب سے محفوظ سمیٹرک خفیہ کاری موڈ۔ کلید Android Keystore میں محفوظ کی جاتی ہے، جو مرکزی عمل سے الگ تھلگ ہے: ایپ سے سمجھوتہ ہونے پر بھی، حملہ آور کلید نکال نہیں سکتا۔ EncryptedFile کلید اخذ کرنے کے لیے HKDF کے ساتھ AES-256-GCM اسکیم اور 4KB صفحہ کے سائز کا استعمال کرتا ہے، جو رفتار اور حفاظت کے درمیان اچھا توازن فراہم کرتا ہے۔ ڈیٹا پڑھنے کے لیے، اسی پیرامیٹرز کے ساتھ openFileInput استعمال ہوتا ہے: لائبریری پڑھنے پر خود بخود ڈیٹا ڈیکرپٹ کر دیتی ہے۔

iOS پر، AES.GCM یا ChaChaPoly کا استعمال کرتے ہوئے CryptoKit (Swift) کے ذریعے اسی طرح کی فعالیت فراہم کی جاتی ہے۔ کلید Keychain Services کے ذریعے Secure Enclave میں محفوظ کی جاتی ہے۔ اصول ایک ہی ہے: کلیدیں کبھی بھی محفوظ ہارڈویئر اسٹوریج نہیں چھوڑتیں، اور ڈیٹا ڈسک پر لکھنے سے پہلے خفیہ کیا جاتا ہے۔ یہ فن تعمیر حساس ڈیٹا سے کام کرنے والی ایپلیکیشنز کے لیے OWASP MASVS (Mobile Application Security Verification Standard) سطح L2 کی سفارشات کے مطابق ہے۔ حقیقی پروجیکٹس میں، ٹوکنز کے لیے EncryptedSharedPreferences اور صارف کے ڈیٹا کے لیے EncryptedFile کا مجموعہ مقامی خفیہ کاری کے 100% منظرناموں کا احاطہ کرتا ہے۔ مزید برآں، سرور سے موصول ہونے والی کلیدوں (مثلاً ECDH سیشن کلید) کے ساتھ کام کرنے کے لیے، Android KeyStore کو purpose = KeyProperties.PURPOSE_ENCRYPT پیرامیٹر کے ساتھ استعمال کیا جاتا ہے، جو اس بات کو یقینی بناتا ہے کہ کلید صرف مجاز کرپٹوگرافک کارروائیوں کے لیے استعمال کی جا سکے اور ہارڈویئر اسٹوریج سے RAM میں سادہ متن میں کبھی برآمد نہ ہو۔

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

موبائل ایپلیکیشنز کے لیے سب سے قابل اعتماد خفیہ کاری کون سی ہے؟

GCM موڈ میں AES-256 ہارڈویئر اسٹوریج (Android Keystore / iOS Keychain) میں کلید کے ذخیرہ کے ساتھ سنہری معیار سمجھی جاتی ہے۔ نیٹ ورک ٹریفک کے لیے — Curve25519 بیضوی منحنی کے ساتھ TLS 1.3۔ ChaCha20-Poly1305 ہارڈویئر AES کے بغیر ڈیوائسز پر متبادل کے طور پر استعمال ہوتی ہے۔

AES اور RSA میں کیا فرق ہے؟

AES ایک سمیٹرک الگورتھم (ایک کلید) ہے، تیز ہے، ڈیٹا کی بڑی مقدار کو خفیہ کرنے کے لیے موزوں ہے۔ RSA اسمیٹرک (کلیدوں کا جوڑا) ہے، سست ہے، ڈیٹا کے لیے نہیں بلکہ کلیدوں اور دستخطوں کی خفیہ کاری کے لیے استعمال ہوتا ہے۔ موبائل ایپلیکیشنز میں AES ڈیٹا کو خفیہ کرتا ہے، RSA کلیدوں کی حفاظت کرتا ہے۔

کیا ایپلیکیشن میں تمام ڈیٹا کو خفیہ کرنا ضروری ہے؟

خفیہ ڈیٹا کو خفیہ کرنا ضروری ہے: رسائی کے ٹوکن، پاس ورڈز، ذاتی معلومات، ادائیگی کا ڈیٹا، طبی ریکارڈ۔ عوامی ڈیٹا (تصاویر، مواد) کو خفیہ کیے بغیر چھوڑا جا سکتا ہے، تاہم انہیں ایپ کے محفوظ کنٹینر میں ذخیرہ کرنا بہتر ہے۔

موبائل ڈیوائسز پر اینڈ ٹو اینڈ خفیہ کاری کیسے کام کرتی ہے؟

اینڈ ٹو اینڈ خفیہ کاری میں، ڈیٹا بھیجنے سے پہلے بھیجنے والے کے ڈیوائس پر خفیہ کیا جاتا ہے اور صرف وصول کرنے والے کے ڈیوائس پر ڈیکرپٹ کیا جاتا ہے۔ سرور صرف خفیہ کردہ ڈیٹا دیکھتا ہے۔ Double Ratchet پروٹوکول، جو Signal Protocol میں لاگو کیا گیا ہے، موبائل میسنجر میں سب سے عام E2E میکانزم ہے۔

کیا ڈیوائس پر ڈیٹا اور نیٹ ورک دونوں کے لیے ایک ہی خفیہ کاری استعمال کی جا سکتی ہے؟

تکنیکی طور پر ممکن ہے، لیکن سفارش نہیں کی جاتی۔ ڈیوائس پر ڈیٹا کے لیے، Keystore سے کلید کے ساتھ سمیٹرک خفیہ کاری (AES-GCM) استعمال کریں۔ نیٹ ورک کے لیے، کلیدوں کے علیحدہ سیٹ اور Certificate Pinning کے ساتھ TLS 1.3 استعمال کریں۔ علیحدگی ایک کلید کے رساؤ پر دونوں چینلز سے سمجھوتہ ہونے سے روکتی ہے۔

خلاصہ

  • خفیہ کاری — موبائل ایپلیکیشنز کے لیے ایک لازمی حفاظتی عنصر، جو ڈیٹا کو آرام اور ترسیل کے دوران محفوظ رکھتا ہے۔
  • AES-256 GCM — تمام ڈیٹا اقسام کے لیے NIST کے ذریعے تجویز کردہ سمیٹرک خفیہ کاری کا معیار۔
  • ہائبرڈ خفیہ کاری (ECDH + AES) سمیٹرک کی رفتار اور اسمیٹرک طریقہ کی حفاظت کو یکجا کرتی ہے۔
  • Android Keystore اور iOS Keychain — ہارڈویئر کلید اسٹورز جو کرپٹوگرافک مواد کو ایپ سے الگ کرتے ہیں۔
  • ڈیٹا ایٹ ریسٹ EncryptedSharedPreferences اور EncryptedFile (Android) یا Data Protection API (iOS) کے ذریعے خفیہ کیا جاتا ہے۔
  • ڈیٹا ان ٹرانزٹ TLS 1.3، Certificate Pinning اور Perfect Forward Secrecy سے محفوظ ہے۔
  • سفارش: ہارڈویئر اسٹوریج میں کلیدوں کے ساتھ Jetpack Security (Android) یا CryptoKit (iOS) کے ذریعے تمام خفیہ ڈیٹا کو خفیہ کریں۔

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

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

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

مزید پڑھیں