تحليل هندسي لكيفية تجاوز GemReader للوحات مفاتيح النظام عبر وحدات لمس مخصصة، وتنسيق حماية النوافذ عبر FLAG_SECURE بعداد الإسناد، وفك تشفير مفاتيح AES-GCM.
هشاشة الإدخال القياسي على الهواتف المحمولة
حينما كان الباحثون يحفظون وثائقهم في المكتبات القديمة، كان الأمان ملموساً وشاملاً؛ حيث صُممت الخزائن المقفلة والشفرات الخاصة لضمان عدم ترك أي أثر لعملية الفتح أمام الفضوليين. وفي بيئات القراءة الرقمية الحديثة، تتطلب حماية مواد الدراسة الحساسة درجة مماثلة من اليقظة. ومع ذلك، فإن آليات الإدخال الافتراضية في أنظمة التشغيل تقوض الخصوصية باستمرار عبر تسريبات هيكلية خفية.
تعتمد معظم تطبيقات الهواتف على حقول إدخال قياسية تتصل مباشرة بلوحة مفاتيح النظام. ورغم ملاءمتها للمحادثات اليومية، تخضع لوحات مفاتيح النظام لمراقبة مستمرة من تطبيقات الإدخال التابعة لجهات خارجية (IMEs)، ومحركات التدقيق السحابية، وخدمات إمكانية الوصول في الخلفية. إن إدخال رمز سري عبر لوحة مفاتيح النظام يعرض ضغطات المفاتيح للرصد والحفظ في الحافظة قبل بدء التحقق الأمني.
عزل اللمس بلا إشارات عبر NumericKeypad
للقضاء على المخاطر الناجمة عن لوحات المفاتيح الخارجية، يتجاوز GemReader لوحة مفاتيح Android تماماً عند فتح المكتبات المقفلة (Locked Libraries). وبدلاً من عرض حقل إدخال نصوص قياسي، تُظهر واجهة رمز PIN لوحة أرقام مخصصة داخل التطبيق مبنية مباشرة من وحدات لمس برمجية معزولة.
نظراً لأن هذه اللوحة المخصصة تعمل بالكامل داخل واجهة التطبيق المعزولة، فإن نظام Android لا يتلقى أي أمر لاستدعاء لوحة مفاتيح النظام. وتُحدّث اللمسات حالة المكون في الذاكرة مباشرة دون إرسال أحداث مفاتيح لأي تطبيق إدخال خارجي ودون ملء ذاكرة التنبؤ بالكلمات. كما يمنع القناع البصري الاختياري رؤية الأرقام من المتلصصين مع الحفاظ على استجابة لمسية دقيقة.
حماية النوافذ بعداد الإسناد وحجب معاينة المهام الحديثة
إن حماية ضغطات المفاتيح تحل نصف معادلة الخصوصية فقط؛ إذ تشكل المعاينة البصرية خطراً بالغ الأهمية. ففي كل مرة يبدل فيها المستخدم بين التطبيقات، يلتقط نظام التشغيل لقطة شاشة عالية الدقة لعرضها في قائمة المهام الحديثة. وبدون قيود صريحة على النافذة، يمكن لجلسة قراءة في الخلفية أن تكشف عناوين الكتب والمقتطفات الحساسة بوضوح تام.
يعالج Android هذه الثغرة عبر علامة النافذة البرمجية `FLAG_SECURE`، والتي توجه النظام لحظر لقطات الشاشة، وتسجيل الفيديو، ومشاركة الشاشة، ومصغرات قائمة المهام. ولكن في التطبيقات المعقدة التي تتداخل فيها النوافذ المنبثقة ومطالبات النسخ الاحتياطي المشفر، يؤدي استخدام المفاتيح الثنائية البسيطة إلى تضارب برمجي، حيث قد يؤدي إغلاق نافذة إلى إلغاء الحماية عن الشاشة التي تحتها بالخطأ.
يتغلب GemReader على هذه المشكلة عبر سجل حماية يعتمد على عداد الإسناد (reference counting). يسجل كل مكون حساس مفتاحاً فريداً عند الفتح ويحذفه عند الإغلاق. تظل حماية `FLAG_SECURE` مفعلة ما دام عدد النوافذ المحمية أكبر من الصفر، ولا تُرفع الحماية إلا بعد إغلاق كافة المكونات المسجلة بأمان.
اشتقاق مفاتيح التشفير وفك حزم AES-GCM للمجلدات
في العديد من تطبيقات القراءة، يعمل قفل المجلدات كمجرد حاجز بصري سطحي يخفي عناصر الواجهة مع بقاء ملفات EPUB غير مشفرة على وحدة التخزين. يتعامل GemReader مع إدخال رمز PIN كعملية فك تشفير حقيقية للمفاتيح المشفرة وليست مجرد فحص بصري للواجهة.
تُشفر الكتب داخل المجموعات المقفلة أثناء تخزينها باستخدام معيار AES-GCM. وعند إدخال رمز PIN الخاص بالمجلد، يشتق التطبيق مفتاح فك تشفير مؤقتاً من السر الرئيسي والرمز المدخل. وتُفك شفرة ملفات EPUB في الذاكرة حسب الحاجة داخل بيئة قراءة محصنة طوال فترة الجلسة فقط. وإذا أُدخل رمز خاطئ، تفشل عملية الاشتقاق فوراً وتبقى الملفات المخزنة مشفرة وغير قابلة للقراءة.
عزل معماري لملاذ دراسي هادئ
لا يمكن للملاذ الرقمي الحقيقي أن يقوم على وعود فارغة، بل يجب أن يستند إلى دفاع متعدد الطبقات يمكن التحقق منه برمجياً. من خلال الجمع بين الإدخال اللمسي المعزول، وحجب النوافذ بعداد الإسناد، والتشفير المحلي عبر AES-GCM، يضمن GemReader بقاء أبحاثك الخاصة وملاحظاتك الشخصية تحت سيطرتك الكاملة.
سواء كنت تدرس مخطوطات أكاديمية حساسة أو تدون مذكرات شخصية، فإن خصوصية قراءتك محمية تماماً من أدوات التتبع ولقطات الشاشة العشوائية. مع غياب التتبع واشتقاق المفاتيح محلياً وحماية النوافذ المتكاملة، تظل مكتبتك ملكك وحدك.
Try it yourself
Related guides