تشفير الهاتف المحمول لنقل الملفات: مشاركة آمنة أثناء التنقل
تأكد أن نقل الملفات على الهاتف مشفر من طرف إلى طرف. كيف يعمل تشفير المتصفح على iOS وAndroid.
يعمل تشفير الملفات على الهاتف المحمول في Safari على iOS وChrome/Firefox على Android باستخدام Web Crypto API — نفس استدعاء crypto.subtle.encrypt الذي يعمل على سطح المكتب. الملفات المنتقاة من مكتبة الصور أو تطبيق Files تُشفَّر بـ AES-256-GCM قبل مغادرة أي بايت للهاتف. العبء الحقيقي هو اشتقاق مفتاح PBKDF2 الذي ينهي 600,000 تكرار على iPhone 14 Pro في نحو 350 مللي ثانية. لملف .mov بحجم 500 ميجابايت من إجازة حديثة، عنق الزجاجة الفعلي هو نطاق الرفع الترددي لا التشفير. خدمات النقل التي تركّز على المحمول لا تحتاج تطبيقات أصلية — المتصفح يوفر كل المطلوب.
لماذا يتفوق المتصفح على التطبيقات الأصلية في الهاتف
التطبيقات الأصلية لنقل الملفات على iOS وAndroid (Dropbox وتطبيق WeTransfer قبل 2023) تطلب صلاحيات واسعة وتبقى في الذاكرة بعد الاستخدام وتعرض إعلانات. سير العمل عبر المتصفح لا يتطلب تثبيتاً ويعمل مرة واحدة وينتهي حين تُغلق التبويب. الأهم أن رفض متجر Apple App Store للتطبيقات ذات المعرفة الصفرية الحقيقية (موثَّق في قضية Cryptee عام 2021) يجعل التسليم عبر المتصفح الطريقة الوحيدة لضمان أن منطق التشفير لا يُستبدل صامتاً بتحديث من متجر التطبيقات. تعمل حزمة JavaScript ذاتها في كل مكان، قابلة للتحقق بمقارنتها بتجزئات SHA-384.
Web Crypto API على iOS وAndroid
Safari 17 على iOS 17+ يدعم crypto.subtle بشكل كامل: deriveKey وencrypt وdecrypt وsign وverify. Chrome على Android يدعمها منذ الإصدار 37 (2014). كلا التطبيقَين يفوّضان إلى أوليات نظام التشغيل الأصلي — CommonCrypto على iOS وBoringSSL على Android — فالتشفير مُسرَّع بالأجهزة على تعليمات AES في ARM. يُشفَّر مقطع بحجم 5 ميجابايت في نحو 15 مللي ثانية على Pixel 8. الواجهة لا تكشف مواد المفتاح الخام لـ JavaScript (كائنات CryptoKey مؤشرات مبهمة)، مما يساعد في الحماية من الامتدادات الخبيثة وإن كانت متصفحات المحمول تعاني منها أقل بكثير.
التعامل مع الملفات الكبيرة دون استنزاف الذاكرة
يحدّ Safari على iOS كومة JavaScript بنحو 2 جيجابايت على أجهزة iPhone بذاكرة 6 جيجابايت، وأقل على الأجهزة القديمة. النمط الساذج "اقرأ الملف إلى ArrayBuffer وشفّره وارفعه" ينهار لأي ملف يتجاوز جيجابايتاً. البث إلزامي. استخدم File.slice() لقراءة مقاطع 5 ميجابايت وشفّر كلاً منها بمفتاح فرعي مشتق عبر HKDF وارفعه عبر fetch() مع نص ReadableStream. الرفع التدريجي يحافظ على ذروة استخدام الذاكرة تحت 50 ميجابايت حتى لمقاطع الفيديو بحجم 10 جيجابايت. Chrome على Android يدعم طلبات الجلب المتدفقة منذ الإصدار 105؛ أضاف Safari الدعم الكامل في الإصدار 17.4.
اعتبارات البطارية والحرارة
AES-256-GCM رخيص على الأجهزة — امتدادات التشفير في ARMv8 تجعله يعمل بسرعة DRAM تقريباً. تشفير 1 جيجابايت على iPhone 14 Pro يستهلك نحو 2% من البطارية، معظمها بسبب الراديو للرفع لا المعالج. ما يشعر به المستخدمون من حرارة هو PBKDF2 عند عدد تكرارات مرتفع؛ 1.2 مليون تكرار (توصية OWASP 2024) تستغرق 700 مللي ثانية وترفع A17 إلى 90 درجة مئوية لفترة وجيزة. ضبط التكرارات على 600,000 يوازن الأمان والحرارة. Argon2id بـ m=32 ميجابايت ألطف لأعباء العمل المستمرة لأن صرامة الذاكرة أبطأ لكن أقل كثافة في استهلاك الطاقة.
الشبكة الخلوية والـ Wi-Fi وموثوقية الرفع
رفع الملفات على الهاتف يفشل. نفق في المترو، مصعد، تبديل من Wi-Fi إلى LTE — أي من هذه تُنهي نداء fetch() الساذج. النقل الموثوق على الهاتف يستلزم رفعاً قابلاً للاستئناف مع تأكيد على مستوى المقطع، بروتوكولات كـ tus.io (مواصفات tus 1.0، مدعومة على نطاق واسع) أو رفع S3 متعدد الأجزاء. كل مقطع 5 ميجابايت يُرفع باستقلالية؛ الفشل يُعيد المقطع المعني فقط. يخزّن العميل حالة المقطع في IndexedDB لئلا يُعيد إعادة تحميل تبويب المتصفح أو إخلاء تبويب iOS العملية من الصفر. تطبّق SwissTransfer وHexaTransfer كليهما الرفع القابل للاستئناف؛ سير عمل الويب على الهاتف لدى WeTransfer لا يفعل ذلك، لذا كثيراً ما تفشل رفعات 2 جيجابايت عبر LTE.
مشكلة تجربة كلمة المرور والإدخال بلوحة المفاتيح
كتابة كلمة مرور من 16 محرفاً على لوحة مفاتيح الهاتف تجربة مؤلمة. قدّم بدائل: امسح رمز QR يحتوي كلمة المرور من شاشة المرسل، أو الصق من مدير كلمات المرور الأصلي (iOS يملأ من Keychain عبر .well-known/apple-app-site-association المكافئ للويب)، أو استخدم مفتاح مرور مسجَّلاً في نقل سابق. للحالات الفردية، استخدم Web Share Target API للسماح لتطبيق مرافق (Signal مثلاً) بحقن كلمة المرور دون إعادة الكتابة.
إمكانية الوصول والشاشات الصغيرة
iPhone SE بشاشة 4.7 بوصة لا تناسب رافعاً بنمط سطح المكتب مع السحب والإفلات. واجهات تشفير المحمول يجب أن تراعي منفذ العرض: منتقي ملفات بملء الشاشة، وأشرطة تقدم مرئية فوق لوحة المفاتيح الناعمة، وتسميات VoiceOver على كل زر (role="progressbar" مع aria-valuenow للوصول الشامل)، وحد تقدير النقر الأدنى 44×44 بكسل وفق إرشادات Apple HIG. لا تُخفِ عناصر التحكم خلف حالات التمرير — لا يوجد تمرير على اللمس. اختبر بوضع Low Power Mode على iOS الذي يخنق المؤقتات الخلفية ويكسر تحديثات التقدم القائمة على الاستطلاع.
مشاكل Safari على iOS تكسر الرفع
Safari على iOS به مزالق. أحداث تقدم رفع Fetch API لا تُطلَق بشكل موثوق قبل iOS 16.4. File System Access API غير مدعومة، فلا يمكنك بث الملفات الكبيرة من التخزين المحلي كما يفعل Chrome. Safari يُخلي التبويبات غير النشطة بقوة عند ضغط الذاكرة مما يُنهي الرفعات الجارية. الحلول: استخدم XMLHttpRequest مع أحداث التقدم كبديل (يعمل بشكل جيد)، وأبقِ التبويب في المقدمة أثناء الرفع، وحذّر المستخدم من عدم قفل الشاشة للملفات الكبيرة. الشاشة المضاءة تستنزف البطارية لكنها تمنع إخلاء التبويب.
تشتت أجهزة Android
تمتد Android من Pixel 8 Pro إلى أجهزة Moto e14 بسعر 80 دولاراً تعمل بـ Android Go. تعمل Web Crypto على جميعها، لكن الأداء يتفاوت بشكل كبير — معالج MT6762 بـ 2 جيجاهرتز يستغرق 1.8 ثانية لـ 600,000 تكرار PBKDF2 حيث يستغرق هاتف بمستوى Apple M3 نحو 200 مللي ثانية. اكشف الجهاز عبر Device Memory API وHardware Concurrency، وقِّس عدد التكرارات وفقاً لذلك (حتى 300,000 لأجهزة Go)، وحذّر المستخدمين على اتصالات الشبكة الخلوية فقط من أن رفعات تتجاوز جيجابايتاً قد تكون غير موثوقة. المكافأة: يعمل النقل المشفَّر على غالبية هواتف العالم دون اشتراط هواتف متطورة.
جرّبها على hexatransfer.com — مجاني، بدون حساب، حتى 10 جيجابايت.
أرسل ملفات كبيرة بأمان مع تشفير من طرف إلى طرف
انقل ملفات حتى 10 جيجابايت مجاناً مع تشفير من طرف إلى طرف. لا حاجة لحساب. يتم تشفير ملفاتك في متصفحك قبل الرفع — لا أحد آخر يستطيع قراءتها.
إرسال ملف