خفیہ کاری (encryption) ڈیٹا کو ایک ایسی شکل میں تبدیل کرنے کا عمل ہے جو خصوصی کلید کے بغیر پڑھی نہیں جا سکتی۔ موبائل ایپلیکیشنز میں، خفیہ کاری صارفین کے ذاتی ڈیٹا، ادائیگی کی معلومات اور کاروباری منطق کو روکے جانے اور رساؤ سے بچاتی ہے۔ Statista (2024) کے مطابق، موبائل ایپس سے ڈیٹا کی خلاف ورزیوں کی تعداد دو سالوں میں 38% بڑھ گئی، اور 72% معاملات میں وجہ خفیہ کاری کی عدم موجودگی یا غلط استعمال تھا۔ جدید موبائل پلیٹ فارمز خفیہ کاری کے لیے بلٹ ان APIs فراہم کرتے ہیں، اور ان کا استعمال ایک لازمی سیکیورٹی معیار ہے۔ Statista, 2024
اہم نکات
موبائل ایپلیکیشنز کے تناظر میں خفیہ کاری ڈیوائس پر ذخیرہ کردہ ڈیٹا (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, ChaCha20 | RSA, ECDH, ECIES |
| موبائل ڈویلپمنٹ میں استعمال | مقامی ڈیٹا خفیہ کاری | کلید کا تبادلہ، ڈیجیٹل دستخط |
عملی طور پر، موبائل ایپلیکیشنز میں ہائبرڈ خفیہ کاری استعمال ہوتی ہے: اسمیٹرک الگورتھم (مثلاً ECDH) سے فریقین سیشن کلید کا تبادلہ کرتے ہیں، اور اس کے بعد کے تمام ڈیٹا کو سمیٹرک الگورتھم (AES یا ChaCha20) سے خفیہ کیا جاتا ہے۔ یہ طریقہ سمیٹرک خفیہ کاری کی رفتار کو اسمیٹرک کلید کے تبادلے کی حفاظت کے ساتھ جوڑتا ہے۔ یہ طریقہ TLS 1.3، Signal Protocol اور Apple iMessage کی بنیاد ہے۔
جدید موبائل ڈویلپمنٹ میں کئی معیاری خفیہ کاری الگورتھم استعمال ہوتے ہیں، ہر ایک مخصوص کاموں کے لیے ڈیزائن کیا گیا ہے اور اس کا اپنا اطلاقی میدان ہے۔
خفیہ کاری ڈیٹا کی تین اہم منظرناموں میں حفاظت کرتی ہے: ڈیوائس کا نقصان (ڈسک اور ایپ کنٹینر خفیہ کاری)، ٹریفک کی روک تھام (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 فراہم کرتی ہے۔
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 کلیدوں کی حفاظت کرتا ہے۔
خفیہ ڈیٹا کو خفیہ کرنا ضروری ہے: رسائی کے ٹوکن، پاس ورڈز، ذاتی معلومات، ادائیگی کا ڈیٹا، طبی ریکارڈ۔ عوامی ڈیٹا (تصاویر، مواد) کو خفیہ کیے بغیر چھوڑا جا سکتا ہے، تاہم انہیں ایپ کے محفوظ کنٹینر میں ذخیرہ کرنا بہتر ہے۔
اینڈ ٹو اینڈ خفیہ کاری میں، ڈیٹا بھیجنے سے پہلے بھیجنے والے کے ڈیوائس پر خفیہ کیا جاتا ہے اور صرف وصول کرنے والے کے ڈیوائس پر ڈیکرپٹ کیا جاتا ہے۔ سرور صرف خفیہ کردہ ڈیٹا دیکھتا ہے۔ Double Ratchet پروٹوکول، جو Signal Protocol میں لاگو کیا گیا ہے، موبائل میسنجر میں سب سے عام E2E میکانزم ہے۔
تکنیکی طور پر ممکن ہے، لیکن سفارش نہیں کی جاتی۔ ڈیوائس پر ڈیٹا کے لیے، Keystore سے کلید کے ساتھ سمیٹرک خفیہ کاری (AES-GCM) استعمال کریں۔ نیٹ ورک کے لیے، کلیدوں کے علیحدہ سیٹ اور Certificate Pinning کے ساتھ TLS 1.3 استعمال کریں۔ علیحدگی ایک کلید کے رساؤ پر دونوں چینلز سے سمجھوتہ ہونے سے روکتی ہے۔
خلاصہ
ہم ایک موبائل ایپلیکیشن ٹرنکی تیار کریں گے
IT Sectr 2017 سے اسٹارٹ اپس اور کاروبار کے لیے iOS اور Android ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔
مزید پڑھیں