
تطبيق ويب مفتوح المصدر يعمل دون اتصال بالإنترنت لتشفير الملفات ومشاركتها عبر مفاتيح المرور (Passkeys). AES-256-GCM/HPKE، بدون سحابة، بدون حسابات؛ تشفير للمستلمين باستخدام مفاتيح المشاركة العامة (Share Keys).
FileKey هو تطبيق ويب دون اتصال يتيح لك تشفير الملفات ومشاركتها بسرعة باستخدام passkeys. لا حسابات، لا تتبع، لا سحابة.
🛡️ FileKey مجاني ومفتوح المصدر ويضع الخصوصية أولًا. متاح على filekey.app.
أنشئ FileKey الخاص بك
أنشئ passkey مخزَّنًا في مدير كلمات المرور أو مفتاح الأمان لديك (سلسلة مفاتيح iCloud، Google Password Manager، 1Password، YubiKey، إلخ).
شفر الملفات
أفلت أي ملف (أو مجلدًا كاملًا) في FileKey. يُشفَّر فورًا بتشفير AES-256 ويُحفظ باسم name.filekey.
فك تشفير الملفات
أفلت الملف المشفَّر مرة أخرى. يفتحه passkey الخاص بك محليًا وبأمان.
شارك بخصوصية
شفّر ملفًا إلى مفتاح مشاركة شخص ما (لا يمكن فتحه سواه)، أو شارك رابط "أرسل لي ملفًا" لاستقبال ملفات مشفَّرة من أي شخص.
احفظ رمز استرداد
احفظ اختياريًا رمز استرداد لمرة واحدة لتتمكن من العودة إلى ملفاتك حتى لو فقدت passkey الخاص بك.
يحتاج FileKey إلى مزوّد passkey يدعم امتداد PRF في WebAuthn: مدير كلمات مرور متوافق (Apple Passwords، Google Password Manager، 1Password، إلخ) أو مفتاح أمان عتادي FIDO2 (YubiKey 5 / Bio Series). يجب أن يدعم متصفحك ونظام تشغيلك أيضًا WebAuthn + PRF. جدول توافق غير حصري:
| النظام | مزوّدو passkey | ملاحظات |
|---|---|---|
| macOS | Apple Passwords, 1Password, YubiKey | Safari ≥ 17 أو Chrome ≥ 112. قد لا تعمل مفاتيح YubiKey في Safari. |
| iOS / iPadOS | Apple Passwords, 1Password | Safari ≥ 17 أو Chrome ≥ 112. |
| Windows | 1Password, YubiKey | Edge ≥ 112 أو Chrome ≥ 112. يتطلب Windows 11. |
| Android | Google Password Manager, 1Password, YubiKey | Chrome ≥ 112. |
| Linux | YubiKey (عبر المتصفح) | إصدارات حديثة من متصفحات Chrome / Chromium. |
⚠️ ملاحظات:
- يجب أن ينفّذ المزوّد امتداد PRF في WebAuthn؛ يختلف الدعم حسب التطبيق والإصدار، لذا إذا لم يعمل مدير معيّن بعد، فالأرجح أنه لم يوفّر PRF بعد.
- تعمل المتصفحات المبنية على Chromium (Brave وVivaldi وOpera) بشكل عام.
- لا تدعم Windows 10 والإصدارات الأقدم PRF.
يستمد FileKey هوية التشفير الخاصة بك من passkey. عند إنشاء FileKey، يُسجَّل passkey مقابل نطاق التطبيق (filekey.app) باعتباره الطرف المعتمِد (relying party). عند المصادقة، يعمل امتداد PRF الخاص بـ passkey على مدخلات ثابتة، منتجًا سرًّا حتميًا لا يغادر جهازك أبدًا. يُمرَّر هذا السر عبر HKDF-SHA-256 لاشتقاق زوج مفاتيح الهوية طويل الأمد، لذا يعيد نفس passkey دائمًا إنتاج الهوية نفسها، ولا يلزم تخزين أي شيء يتجاوز passkey نفسه.
تُشفَّر الملفات باستخدام HPKE (تشفير هجين بالمفتاح العام، RFC 9180) في وضع Auth، باستخدام مجموعة DHKEM-P256 + HKDF-SHA-256. يشتق HPKE مفاتيح جديدة لكل ملف، ويُغلَّف جسم الملف بتشفير AES-256-GCM في بنية متدفِّقة مقسّمة إلى أجزاء، بحيث تُشفَّر الملفات مهما كان حجمها وتُفكَّك دون الاحتفاظ بها كاملة في الذاكرة. التشفير لنفسك يستخدم مفتاحك العام؛ والمشاركة تستخدم مفتاح المستلم. كل عملية تجري بالكامل على جهازك عبر مكتبات تشفير مدقَّقة.
🛡️ passkey الخاص بك هو بيانات الاعتماد الوحيدة. لا يوجد أي شيء آخر لتخزينه، ولا يغادر أي شيء جهازك أبدًا.
لكل مستخدم من مستخدمي FileKey مفتاح مشاركة فريد (Share Key)، وهو سلسلة عامة طويلة ستجدها في القائمة تحت "Your Share Key". من الآمن مشاركته علنًا؛ فهو عنوان عام وليس سرًّا.
name.shared.filekey. أرسله بأي طريقة: البريد الإلكتروني، الرسائل، نقل الملفات..shared.filekey فيه.شارك رابط "أرسل لي ملفًا" (يضمّن مفتاح المشاركة الخاص بك). يمكن لأي شخص (بدون حساب، وبدون passkey) استخدامه لتشفير ملف إليك مباشرة في متصفحه، ثم إرسال النتيجة إليك. لا يمكن فتحه سواك.
بما أن هويتك تأتي من passkey الخاص بك، فإن فقدان ذلك الـ passkey يعني عادةً فقدان الوصول. يوفّر FileKey رمز استرداد اختياريًا، وهو عبارة عن 24 كلمة (BIP39) تنسخ احتياطيًا هويتك. احفظه مرة واحدة، واحتفظ به في مكان آمن، ويمكنك استعادة الوصول لاحقًا.
يتضمن FileKey أيضًا أداة استرداد دون اتصال مكتفية بذاتها (recover.html): ملف HTML واحد يمكنك الاحتفاظ به على القرص. باستخدام رمز الاسترداد الخاص بك، تفك تشفير ملفات .filekey بالكامل دون اتصال، حتى لو اختفى موقع FileKey يومًا ما.
شبكتا أمان:
افتح FileKey، وانقر على أيقونة التثبيت في شريط العنوان، وأكّد. سيُفتح كتطبيق مستقل يعمل دون اتصال.
افتح FileKey في Safari ← اضغط Share ← Add to Home Screen ← Add.
افتح FileKey ← اضغط Add to Home screen (اللافتة أو قائمة ⋮) ← أكّد.
وبما أن FileKey موقع ثابت بلا خلفية برمجية (backend)، يمكنك أيضًا استضافته ذاتيًا (انظر أدناه).
FileKey موقع ثابت مبني باستخدام Bun:
cd reference
bun install
bun test # crypto-core tests
bun run build:web # build the app
bun run serve # serve it locally
مخرجات البناء ملفات ثابتة عادية. استضفها على أي مستضيف ثابت أو على خادمك الخاص.
ملاحظة حول الاستضافة الذاتية: يُشتق معرّف الطرف المعتمِد (relying-party ID) للـ passkey باعتباره النطاق القابل للتسجيل (آخر تسميتين للمضيف). استضف FileKey على نطاقك الجذري (apex) أو نطاق فرعي خاص بك (مثل
files.example.com← RP-IDexample.com). المضيف الذي يكون نطاقه القابل للتسجيل لاحقة عامة (مثلyou.github.io، حيث ترفض المتصفحات RP-ID بقيمةgithub.io) لن يعمل؛ استخدم نطاقًا مخصصًا بدلًا من ذلك.
يستخدم FileKey 1.1 تنسيقًا جديدًا قائمًا على المعايير ولا يمكنه فتح الملفات التي أنشأها FileKey الأصلي. لا تزال الملفات القديمة تُفتح على v1.filekey.app باستخدام نفس الـ passkey، ويوجّهك FileKey إليها تلقائيًا عند اكتشاف أحدها. كود الإصدار v1 الأصلي موجود على v1 branch.