ZTXBAS: مصادقة بيومترية مقاومة للتصيد
مصادقة بيومترية مقاومة للتصيد للتطبيقات الحديثة
ZTXBAS في صورته المستقلة خادم مجاني ومستضاف ذاتيًا للمصادقة البيومترية، مخصص للمطورين الذين يريدون إضافة هذه المصادقة إلى تطبيقاتهم. شغّل حاوية واحدة، واربط تطبيقًا تجريبيًا بها، وامسح رمز QR بتطبيق ZTXBAS للهاتف للحصول على تسجيل دخول بيومتري مقاوم للتصيد؛ دون حساب لدى CoreZT أو خادم ترخيص أو اعتماد على اتصال دوري بخدمة خارجية.
يتوفر ZTXBAS أيضًا بوصفه ميزة مرخّصة داخل ZTXGate؛ وفي هذا النموذج يندمج بإحكام في صورة مكتبة برمجية ولا يتطلب نشر خادم ZTXBAS منفصل. وتعمل الميزة المدمجة في بيئات ZTXGate المتصلة والمحلية والهجينة والمعزولة تمامًا.
مشكلة المصادقة متعددة العوامل التقليدية
- رموز SMS: يمكن اعتراضها من خلال هجمات تبديل شريحة SIM.
- رموز TOTP: يمكن جمعها بواسطة وكلاء التصيد في الزمن الحقيقي.
- إشعارات الموافقة: قد تتعرض لهجمات إرهاق المصادقة متعددة العوامل.
- مفاتيح الأمان المادية: قد تكون مكلفة ويسهل فقدانها.
صُممت أساليب MFA التقليدية في عصر مختلف، بينما يجري التصيد الحديث لحظيًا بنقل بيانات الاعتماد والرموز فورًا.
كيف يعمل ZTXBAS؟
يجمع ZTXBAS بين التحقق البيومتري والربط التشفيري بأصل التطبيق (origin binding)؛ فكل طلب مصادقة يرتبط بأصل تطبيقك، ولا يمكن إعادة استخدام موافقة مسروقة من phishing.example.com للوصول إلى app.example.com.

تسلسل المصادقة
- يبدأ المستخدم تسجيل الدخول إلى تطبيقك.
- يستدعي التطبيق
POST /v1/auth/challengeمع معرّف المستخدم وأصل التطبيق. - يتحقق ZTXBAS من أن الأصل مسجّل للتطبيق، ثم يرسل تحديًا إلى هاتف المستخدم.
- يوافق المستخدم باستخدام Face ID أو Touch ID أو بصمة الإصبع.
- يستطلع التطبيق
GET /v1/auth/status/{id}أو يتلقى إشعار webhook موقّعًا. وعند النجاح يحصل على إثبات هوية JWT قصير العمر وموقّع بخوارزمية ES256 ومرتبط بالمستخدم وأصل التطبيق. - يتحقق التطبيق من JWT عبر مفاتيح JWKS العامة في
/.well-known/jwks.jsonثم ينشئ جلسة خاصة به.
يمثل JWT الحد الفاصل للأمان؛ ولا يحتاج الطرف المعتمد (RP) إلى الثقة بالنقل وحده.
لماذا يقاوم ZTXBAS التصيد؟
- الربط بأصل التطبيق: يرتبط كل تحدٍ بأصل مسجّل ويعرض تطبيق الهاتف ذلك الأصل للمستخدم قبل الموافقة.
- مفاتيح مرتبطة بالجهاز: تبقى المفاتيح الخاصة في Secure Enclave أو TEE، ولا تغادر قوالب البيانات البيومترية الجهاز أبدًا.
- عدم وجود أسرار مشتركة: لا يوجد سر مشترك يمكن اعتراضه أو التصيد للحصول عليه أو إعادة استخدامه؛ وإنما إثباتات موقّعة قصيرة العمر.
اقرأ دليل المصادقة المقاومة للتصيد لشرح على مستوى البروتوكول.
ما الذي تحصل عليه؟
خادم ZTXBAS
حاوية واحدة وتخزين SQLite بنمط WAL، دون مكونات إضافية مطلوبة للنشر.
- واجهة API موقّعة باستخدام HMAC-SHA256 وتضم قرابة اثنتي عشرة نقطة نهاية.
- إثباتات هوية JWT موقّعة ومفاتيح JWKS عامة.
- إشعارات webhook بحمولات موقّعة باستخدام HMAC وإعادة المحاولة.
- وحدة إدارة مضمّنة للتطبيقات والمستخدمين والأصول والتحديات النشطة.
- سجلات JSON منظّمة وحدود لمعدلات الطلبات لكل تطبيق.
- HTTPS للإنتاج، مع السماح بـ HTTP على
127.0.0.1أثناء التطوير.
التوزيع:
- صورة OCI على GitHub Container Registry:
ghcr.io/corezt/ztxbas. - ملفات تنفيذ Linux ثابتة لمنصتي amd64 وarm64 في صفحة إصدارات GitHub.
تطبيق ZTXBAS للهاتف
يُستخدم تطبيق الهاتف نفسه مع ZTXBAS وZTXGate، لذا يمكن ترقية الخادم لاحقًا دون تغيير الهواتف.
- iOS: يدعم Face ID وTouch ID وتخزين المفاتيح في Secure Enclave وiOS 14+ App Store
- Android: يدعم بصمة الإصبع والوجه ومخزن مفاتيح مدعومًا بالعتاد وAndroid 8+ Google Play
حزم SDK
تتولى حزم SDK الرسمية توقيع HMAC والاستطلاع والتحقق من JWT:
- Go:
github.com/corezt/ztxbas/sdk-go - Node / TypeScript:
@corezt/ztxbas - Python:
corezt-ztxbas
ZTXBAS مع ZTXGate
يستخدم كل من ZTXBAS المستقل وZTXBAS المدمج في ZTXGate تطبيق المصادقة نفسه للهاتف، لكن نموذج نشرهما يختلف.
| جانب الاستخدام | ZTXBAS المستقل | ZTXBAS مع ZTXGate |
|---|---|---|
| الغرض الأساسي | إضافة المصادقة البيومترية إلى تطبيقك | مصادقة بيومترية إضافية ضمن سياسات الوصول في ZTXGate |
| التسعير | منتج مستقل مجاني | ميزة مرخّصة في ZTXGate |
| نشر الخادم | خادم أو حاوية ZTXBAS منفصلة | لا خادم منفصل؛ مدمج بإحكام كمكتبة |
| النشر المتصل | نعم | نعم |
| النشر المعزول تمامًا | نعم | نعم |
| تطبيق الهاتف | تطبيق ZTXBAS | تطبيق ZTXBAS نفسه |
إذا كنت تريد دمج المصادقة البيومترية مباشرة في تطبيقك، فاستخدم ZTXBAS المستقل. أما إذا كنت تستخدم ZTXGate، فالقدرة المدمجة المرخّصة جزء من بنية الوصول في ZTXGate وليست خادمًا إضافيًا للتثبيت والصيانة.
التكامل
# طلب تحدٍّ للمصادقة
curl -X POST https://ztxbas.example.com/v1/auth/challenge \
-H "X-Application-ID: app_a1b2c3d4e5" \
-H "X-Signature: <HMAC-SHA256 signature>" \
-H "Content-Type: application/json" \
-d '{
"email": "alice@example.com",
"origin": "https://app.example.com"
}'
# الاستجابة
{
"challenge_id": "ch_abc123",
"expires_in": 120,
"origin_display": "Example App",
"origin_url": "https://app.example.com",
"challenge_hmac": "..."
}
تتولى حزم SDK التوقيع نيابةً عنك؛ أما كتابة هذه العملية يدويًا فهي دقيقة وتتطلب عناية. راجع دليل البدء للحصول على مثال متكامل.
الضوابط الأمنية
- فرض HTTPS في الإنتاج؛ والسماح بـ HTTP على واجهة loopback فقط.
- توقيعات طلبات HMAC-SHA256 ومقارنات آمنة من ناحية التوقيت.
- إنشاء مفتاح توقيع JWT تلقائيًا عند التشغيل الأول بأذونات الملف 0600.
- وحدة الإدارة: تجزئة كلمات المرور باستخدام PBKDF2-HMAC-SHA256 (600 ألف تكرار)، وملفات تعريف ارتباط للجلسات، وحماية بيومترية اختيارية باستخدام ZTXBAS ذاته.
- SQLite بنمط WAL وأذونات الملف 0600.
- عدم تسجيل الأسرار في السجلات؛ وتوجيه JSON منظّم إلى stdout.
- حدود لمعدلات الطلبات لكل تطبيق على الواجهات العامة ولكل عنوان IP في واجهة الإدارة.
التفاصيل الكاملة في دليل التحصين.
تسعير المنتج المستقل
ZTXBAS المستقل مجاني. تتوفر الملفات التنفيذية وصور الحاويات على GitHub بموجب اتفاقية ترخيص المستخدم النهائي (EULA) الخاصة بـ CoreZT. ولا يلزم حساب لدى CoreZT أو بيانات قياس عن بُعد أو خادم تراخيص لاستخدامه مستقلًا.
أما ميزة ZTXBAS المدمجة في ZTXGate فهي مرخّصة ضمن نموذج نشر ZTXGate. راجع أسعار ZTXGate وتراخيصه.
الأسئلة الشائعة
ماذا يحدث إذا فقد المستخدم هاتفه؟
ألغِ تسجيل المستخدم من خلال DELETE /v1/users/{id} أو وحدة الإدارة، فتصبح مفاتيح الجهاز غير صالحة فورًا. ثم أعد تسجيله بجهاز جديد باتباع إجراءات استعادة الحساب لديك.
هل يعمل ZTXBAS المستقل دون اتصال بالإنترنت؟
نعم. ZTXBAS المستقل مستضاف ذاتيًا ويمكن تشغيله في شبكة معزولة تمامًا. وتحتاج رسائل التسجيل إلى خدمة SMTP، ويمكن للنشر المعزول استخدام مرحّل بريد داخلي. كما تعمل ميزة ZTXBAS المرخّصة المدمجة في ZTXGate في البيئات المعزولة دون خادم ZTXBAS منفصل.
كيف يُقارن ZTXBAS بمفاتيح المرور (Passkeys) وWebAuthn؟
كلاهما مقاوم للتصيد. وتُعد مفاتيح المرور مناسبة للمتصفح عندما يكون العميل متصفحًا تتحكم فيه. أما ZTXBAS فهو تدفق إشعارات موافقة بوساطة الخادم يعمل مع أي نوع من العملاء، مثل تطبيقات الهاتف وسطر الأوامر واتصالات الخدمات، ويمنحك إثبات JWT موقّعًا واحدًا للاستهلاك في الخادم. وهما متكاملان؛ استخدم مفاتيح المرور لتسجيل دخول المتصفح وZTXBAS للمصادقة الإضافية أو للهاتف أو التدفقات خارج المتصفح.
هل ZTXBAS معتمد من FIDO؟
لا. يستخدم ZTXBAS أسسًا تشفيرية مشابهة، مثل ECDSA على الجهاز وHMAC أثناء النقل وJWT إلى الطرف المعتمد، لكنه غير معتمد من FIDO.
متى أحتاج إلى ZTXGate بدلًا منه؟
يتعامل ZTXBAS المستقل مع تطبيق واحد لكل مثيل مستضاف ذاتيًا مع وحدة إدارة محلية. وإذا كنت تحتاج إلى تعدد المستأجرين أو تحكم إداري قائم على الأدوار (RBAC) وتسجيل دخول موحّد (SSO) أو SCIM أو تكامل الحالة الأمنية للأجهزة أو تصدير SIEM أو وصول محكوم بالسياسات إلى موارد شبكية أوسع عبر المسار المعتمد على العميل في ZTXGate — بما فيها خدمات غير ويب مثل SSH وRDP — فذلك مجال ZTXGate. كما يوفر ZTXGate وصولًا مرخّصًا دون عميل إلى تطبيقات HTTP/HTTPS المدعومة. وعند ترخيص ZTXBAS معه، يندمج كمكتبة بدلًا من نشر خادم مستقل.
ابدأ الآن
بدعم من CoreZT · للوصول وفق مبدأ انعدام الثقة على نطاق الشبكة، راجع ZTXGate ←