Seal
→ العودة إلى الرئيسية
الأمان والخصوصية

العقود الجيدة تحتاج إلى رياضيات جيدة.

أنت تكتب أمرًا حساسًا. يجب ألّا يضيع ما تكتبه، أو يتغيّر دون أثر، أو يُزوَّر باسمك. تصف هذه الصفحة بنية الأمان في SEAL بالتفصيل — التشفير، والتوقيع، وتخزين البيانات، وحتى حدودنا.

توقيع على مستوى الجهاز

يُولِّد كل جهاز زوج مفاتيح Ed25519 خاصًا به. يبقى المفتاح الخاص على هاتفك — ولا يخزّن الخادم إلا مفتاحك العام، ويستخدمه للتحقق من توقيعاتك.

Ed25519 · TweetNaCl / PyNaCl

سلسلة تدقيق تكشف أي عبث

يُضاف كل إجراء موقَّع على الإيصال إلى سجل لا يقبل إلا الإضافة، وكل إدخال فيه مربوط بالإدخال الذي قبله عبر SHA-256. وحذف أي إدخال في المنتصف أو تغييره قابل للاكتشاف رياضيًا.

SHA-256 append-only

بدون كلمة مرور، تحقق بالهاتف

لا نخزن كلمات مرور. التحقق من الهاتف عبر Twilio WhatsApp برمز OTP من 6 أرقام. تُخزَّن الرموز كهاش SHA-256 مملَّح، وتُقارَن بزمن ثابت، وتنتهي صلاحيتها بعد 5 دقائق.

WhatsApp OTP · Salted SHA-256

حد أدنى من البيانات

لا بريد إلكتروني، لا كلمة مرور، لا عنوان. فقط رقم هاتفك (E.164) و«الاسم الظاهر» الذي تُدخله عند الإقران. أرقام الهواتف تظهر مقنَّعة في صفحة التحقق العامة.

تقليل البيانات الشخصية

تشفير أثناء النقل وعند التخزين

تستخدم جميع الاتصالات (التطبيق ← API، وOTP، والإشعارات) بروتوكول HTTPS، وقاعدة بيانات MongoDB Atlas مشفَّرة عند التخزين.

TLS 1.3 · Atlas at-rest

تحقق علني

لكل إيصال رمز فريد. يمكن لأي شخص لديه الرمز أن يطّلع على حالة الإيصال وهاش محتواه وحالة التوقيعات وسجلات سلسلة التدقيق على صفحة getseal.app/verify باستخدام هذا الرمز — دون الحاجة إلى التطبيق.

قابلية التحقق العلني

نظرة تفصيلية

نموذج التوقيع

عند أول إقران أو أول إجراء موقَّع، يُولِّد كل جهاز زوج مفاتيح Ed25519 خاصًا به. يُحفظ المفتاح الخاص في التخزين الآمن للهاتف (iOS Keychain / Android Keystore) ولا يُرسَل أبدًا إلى الخادم. يوقّع الجهاز الإجراءات الأساسية على الإيصال — بما فيها الموافقة التي تختمه — بمفتاحه الخاص، ويتحقق الخادم من كل توقيع مقابل المفتاح العام المسجَّل لحسابك. لا يخزّن الخادم إلا المفاتيح العامة: يمكنه التحقق من التوقيع لكنه لا يستطيع إنشاءه. غير أنه هو من يحدد أي مفتاح يعود لأي حساب: إذا انتقلت إلى هاتف جديد، تتحقق من رقمك عبر WhatsApp فيحلّ مفتاح الهاتف الجديد محل المفتاح القديم.

سلسلة التدقيق

يُضاف كل إجراء موقَّع على الإيصال (إنشاء، تعديل، قبول تعديل بالكامل أو رفضه، موافقة، رفض) كإدخال في سجل تدقيق واحد لا يقبل إلا الإضافة، ومشترك بين جميع الإيصالات. يُحوَّل كل إدخال إلى JSON موحَّد، ويُحسب له هاش SHA-256 مع هاش الإدخال الذي قبله، وتُخزَّن النتيجة كهاش جديد للسلسلة. نسمي هذا «سلسلة التدقيق». وتغيير أي إدخال في المنتصف أو حذفه يكسر جميع الهاشات اللاحقة، لذا يمكن اكتشاف العبث. أما عند حسم التعديل بندًا بندًا، فيُحفظ النص المدمج كنسخة جديدة دون إدخال خاص بها في السلسلة؛ والذي يختم الإيصال هو موافقة موقَّعة مستقلة، وهي تُضاف إلى السلسلة وتغطي هاش محتوى تلك النسخة بالضبط.

OTP والجلسة

يتم التحقق من الهاتف عبر Twilio WhatsApp Business برمز من 6 أرقام، صالح لمدة 5 دقائق ويُستخدم مرة واحدة. لا يُخزَّن رمز OTP كنص واضح أبدًا — يُملَّح ثم يُخزَّن كهاش SHA-256؛ وتتم المقارنة بزمن ثابت (للحماية من هجمات التوقيت). ويُسمح بحد أقصى 10 رموز OTP لكل هاتف في الساعة، ويُبطَل الرمز بعد 5 محاولات خاطئة. لا يوجد JWT في نموذج جلستنا؛ كل طلب يصل مع معرّف UUID للجهاز وتوقيعات Ed25519 ذات الصلة.

تخزين البيانات وPII

لا تُخزَّن على الخادم كلمات مرور أو عناوين بريد إلكتروني أو عناوين سكن أو بيانات بطاقات أو حسابات بنكية — فقط رقم الهاتف الموثَّق (E.164)، و«الاسم الظاهر» الذي تُدخله عند الإقران، وإيصالاتك ومسوداتك. تُحفظ هذه البيانات في MongoDB Atlas في الاتحاد الأوروبي (AWS فرانكفورت، eu-central-1) الذي يشفّر البيانات عند التخزين (AES-256)؛ وتستخدم الاتصالات TLS. يعمل خادم تطبيقنا على Railway مع HTTPS مُدار. التشفير على مستوى الحقل غير مطبَّق اليوم؛ وهو ضمن خارطة الطريق.

التحقق العلني

لكل إيصال رمز فريد بصيغة «SEAL-XXXXXXXX». صفحة getseal.app/verify علنية: دون تثبيت التطبيق، يمكن لأي شخص لديه الرمز أن يرى حالة الإيصال، وموضوعه، وتواريخه، وأسماء الطرفين وأرقام هواتفهما المقنَّعة، وهاش محتواه، وكل إدخال في سلسلة التدقيق مع حالة التوقيع كما سجّلها خادمنا وبصمة المفتاح. لا تُعرض بنود الاتفاق في الصفحة العامة؛ لا يطّلع عليها إلا الطرفان في التطبيق أو في ملف PDF.

ملاحظة قانونية

يُنتج SEAL دليلًا قويًا — سجلًا لإجراءات موقَّعة على مستوى الجهاز يكشف أي عبث به، ويمكن لأي شخص لديه رمز الإيصال الاطلاع على حالته — لكنه لا يحل محل التوقيع الإلكتروني المؤهل (مثل NES التركي أو eIDAS QES الأوروبي). للمعاملات الرسمية أو ذات القيمة العالية، كسندات الملكية العقارية والإجراءات الرسمية للشركات، اجمع SEAL مع كاتب عدل أو توقيع إلكتروني مؤهل.