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

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

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

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

كل جهاز يُولِّد زوج مفاتيحه Ed25519. المفتاح الخاص لا يغادر هاتفك أبدًا — الخادم يرى فقط مفتاحك العام ويتحقق من توقيعاتك.

Ed25519 · libsodium

سلسلة تدقيق غير قابلة للعبث

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

SHA-256 append-only

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

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

WhatsApp OTP · Salted SHA-256

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

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

PII minimization

TLS من طرف إلى طرف

جميع الاتصالات (التطبيق → API، OTP، الإشعارات) عبر HTTPS. قاعدة بيانات MongoDB Atlas مشفَّرة على مستوى القرص، الوصول مقيَّد بقائمة IP مسموح بها.

TLS 1.3 · Atlas at-rest

تحقق علني

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

Public verifiability

نظرة تفصيلية

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

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

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

لكل إيصال سجل إجراءات خاص: إنشاء، إرسال، اقتراح تعديل، قبول، ختم. كل إجراء يُحوَّل إلى JSON موحَّد، ويُهَش بـ SHA-256 مع هاش الإجراء السابق، وتُسجَّل النتيجة كهاش جديد للسلسلة. نسمي هذا "سلسلة التدقيق". العبث بسجل في المنتصف يكسر جميع الهاشات اللاحقة، فيكون قابلاً للاكتشاف. الهاش النهائي على إيصال مختوم هو بصمة لكامل تاريخه.

OTP والجلسة

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

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

لا تُخزن كلمة مرور أو بريد إلكتروني أو عنوان أو معلومات دفع على الخادم. فقط رقم الهاتف (E.164 موثَّق)، اسم عرض اختياري، ومحتوى الإيصالات. تعيش الإيصالات على MongoDB Atlas (منطقة الاتحاد الأوروبي)؛ يطبق Atlas تشفير AES-256 للبيانات في حالة الراحة، الاتصالات تستخدم TLS 1.3، الوصول مقيَّد بقائمة IP مسموح بها. يعمل خادم تطبيقنا على Railway مع HTTPS مُدار تلقائيًا. التشفير على مستوى الحقل غير مطبق اليوم؛ هو في خارطة الطريق.

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

لكل إيصال مختوم رمز فريد بصيغة "SEAL-XXXXX". صفحة getseal.app/verify/{رمز} علنية — بدون تثبيت التطبيق، يمكن لأي شخص رؤية محتوى الإيصال المختوم، الأطراف (مع أرقام الهواتف المقنَّعة)، بصمات التوقيع، وسلسلة التدقيق. هذه الصفحة موجودة لتلبية متطلب "يمكن للطرف الثالث التحقق"؛ نصف قيمة الختم تأتي من هنا.

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

يُنتج Seal مستندًا قويًا موقَّعًا رقميًا كدليل، لكنه لا يحل محل التوقيع الإلكتروني المؤهل (مثل NES التركي أو eIDAS QES الأوروبي). للمعاملات الرسمية أو ذات القيمة العالية كالعقارات والشركات، اجمع Seal مع كاتب عدل أو توقيع إلكتروني مؤهل. للأغلبية الساحقة من الاتفاقات اليومية، Seal كافٍ بمفرده.