المفاتيح العامة والسرية: إبقاء بيانات التحقق بعيدة عن العميل

Charles Archibong, المؤسس المشارك
ضع المفتاح العام في تطبيقك، واحتفظ بالمفتاح السري على خادمك. يمكن للمفتاح العام بدء عملية التحقق وقراءة الحد الأدنى من البيانات، وليس بيانات الهوية، لذا ضع في اعتبارك احتمالية تسريبه، وقلل من تكلفة هذا التسريب.

أهم النقاط
- تأتي المفاتيح القابلة للنشر مع العملاء ويمكنها بدء عمليات التحقق وقراءة الحد الأدنى من الحالة، وليس بيانات الهوية.
- تقرأ المفاتيح السرية النتائج الكاملة والوسائط الملتقطة وكل نقطة نهاية لـ Risk Intelligence، لذلك تبقى على خادمك.
- افترض أنه سيتم استخراج أي مفتاح عميل، وقم بتقييده بأصول الويب الخاصة بك حيث يتم تشغيله في متصفح.
- يؤدي إلغاء المفتاح إلى تفعيله في الطلب التالي، لذا قم بالتدوير عن طريق إنشاء البديل أولاً.
Toden يمنحك نوعين من API المفتاح، وقاعدة استخدامه مختصرة: المفتاح القابل للنشر (pk_) يتم وضعه في صفحة الويب أو تطبيق الهاتف المحمول الخاص بك، والمفتاح السري (sk_لا يغادر المفتاح المنشور خادمك أبدًا. يمكن للمفتاح المنشور بدء عملية التحقق وقراءة الحد الأدنى من المعلومات الشخصية، لكنه لا يستطيع قراءة الاسم أو تاريخ الميلاد أو رقم الهوية أو صورة شخصية. أما المفتاح السري فيمكنه قراءة كل ذلك.
لتقييد مفتاح مُسرّب، لديك ثلاث وسائل: قائمة مسموح بها للمفتاح (مواقع الويب للمفتاح المنشور، وعناوين IP أو نطاقاتها للمفتاح السري)، ومفاتيح خاصة بكل خدمة حتى لا يؤدي إلغاء واحد إلى تعطيل كل شيء، والإلغاء الفوري. يشرح الجزء المتبقي من هذه المقالة آلية عمل هذا التقسيم وكيفية استخدام هذه الوسائل قبل الحاجة إليها.
لماذا يتم التحقق؟ API هل تحتاج إلى نوعين من المفاتيح؟
لأن أي مفتاح تضعه في برنامج العميل سيقرأه في النهاية شخص لم تكن تنوي قراءته. يمكن فك تشفير تطبيق الهاتف المحمول، ويمكن فتح حزمة الويب في أدوات المطورين. إن اعتبار مفتاح العميل سراً هو مجرد أمل، وليس ضماناً.
لذا، يفترض التصميم تسريب مفتاح العميل ويحد من إمكانياته. الجدول أدناه مأخوذ من وثائق المصادقة (يفتح في علامة تبويب جديدة) .
مفتاح | بادئة | مكان عيشه | ما يمكن أن يطلق عليه |
|---|---|---|---|
قابل للنشر |
| واجهة المستخدم أو تطبيق الهاتف المحمول الخاص بك، داخل SDK | ابدأ عملية التحقق ( |
سر |
| الواجهة الخلفية فقط | نتائج التحقق الكاملة والوسائط، بالإضافة إلى كل نقطة نهاية لمعلومات المخاطر ضمن |
المفتاح هو بادئته متبوعة بـ 32 حرفًا أبجديًا رقميًا عشوائيًا، على سبيل المثالpk_test_aB3dE5fG7hJ9kL1mN3pQ5rS7tU9vW1xY. يشير البادئة إلى المراجع البشري بنظرة سريعة إلى النطاق والبيئة التي ينظر إليها، وهو أمر مفيد عندما يظهر مفتاح في سجل أو طلب سحب.
ماذا يمكن لشخص ما أن يفعل بمفتاح قابل للنشر تم تسريبه؟
بإمكانهم بدء عمليات التحقق من حسابك والتحقق من الحد الأدنى لحالتهم. لا يمكنهم قراءة نتيجة أي عملية تحقق، سواءً كانت تخصك أو تخصهم، لأن نقطة نهاية النتيجة الكاملة ترفض مفتاحًا قابلاً للنشر.403 secret_key_required.
هذا حدٌّ معقول، ولكنه ليس صفرًا. في بيئة الإنتاج، تُضاف تكلفة كل عملية تحقق مكتملة إلى رصيدك الائتماني، كما هو موضح في وثائق البيئة (يفتح في علامة تبويب جديدة) . يمكن استخدام مفتاح قابل للنشر، تم نسخه إلى موقع ويب آخر، لإجراء عمليات التحقق التي تدفع ثمنها. هذا هو الخطر الذي وُضعت قائمة المصادر المسموح بها أدناه للحد منه.
ماذا يمكن لشخص ما أن يفعل بمفتاح سري مسرب؟
قراءة بيانات الهوية. يمكن للمفتاح السري استدعاءGET /api/kyc/verifications/:idللحصول على النتيجة الكاملة (البيانات الشخصية، رقم الهوية النصي، مطابقة الوجه) وGET /api/kyc/verifications/:id/media/:kindبالنسبة للصور الذاتية الملتقطة، وصور المستندات، وفيديوهات البث المباشر. كما يمكنه الاتصال بجميع نقاط نهاية معلومات المخاطر.
تعامل مع المفتاح السري كما لو كان كلمة مرور قاعدة بيانات. يُعدّ تسريب البيانات حادثة كشف بيانات لمؤسستك، وتسري عليه إجراءات التعامل مع الحوادث والالتزامات القانونية الخاصة بك. تختلف هذه الإجراءات والالتزامات باختلاف الاختصاص القضائي، وهذه المقالة معلومات عامة وليست استشارة قانونية.
أين ينبغي أن يكون موقع كل مفتاح في عملية التكامل النموذجية؟
هذا شكل شائع لتطبيق يُستخدم لتعريف العملاء الجدد:
يقوم التطبيق بتثبيت Toden SDK باستخدام مفتاح قابل للنشر . يُكمل مقدم الطلب إجراءات الموافقة والتقاط الصور والتحقق من حيوية المستخدم، و SDK يقدم طلب التحقق.
يعرض التطبيق شاشة "نحن نتحقق من بياناتك". إذا لزم الأمر، فإنه يستعلم عن الحد الأدنى للحالة باستخدام المفتاح القابل للنشر.
يستقبل نظامك الخلفي رابط الويب الموقّع للتحقق.
يقوم نظامك الخلفي باستدعاء النتيجة الكاملة باستخدام مفتاح سري ، وتحديث سجل العميل، وتحديد ما سيعرضه التطبيق بعد ذلك.
تنتقل بيانات هوية مقدم الطلب من الجهاز إلى Toden ومن Toden إلى خادمك. لا يحتاج الأمر أبدًا إلى العودة إلى الجهاز، ومع هذا التصميم لا يمكنه ذلك، لأن المفتاح الوحيد الموجود على الجهاز غير مسموح له بجلبها.
من الأخطاء الشائعة اختصار الخطوة الرابعة باستدعاء نقطة نهاية النتيجة من التطبيق "فقط لعرض شاشة النجاح". يتطلب ذلك مفتاحًا سريًا على الجهاز، مما يُفقد التصميم جدواه. بدلاً من ذلك، أرسل للتطبيق البيانات القليلة التي يحتاجها من خادمك الخاص.
كيف تتفاعل البيئات مع المفاتيح؟
ينتمي كل مفتاح إلى بيئة واحدة، ولا تنتقل البيانات بينها مطلقًا.pk_test_يعمل المفتاح ضد Sandbox وpk_live_يتم ربط المفاتيح بالإنتاج. يتم تحديد نطاق المفاتيح والتحققات ونقاط نهاية webhook والتكوين لبيئة واحدة.
يؤدي استخدام مفتاح في المكان الخطأ إلى إرجاع403 environment_mismatchتنص القاعدة العملية الواردة في الوثائق على ضرورة الحفاظ على بيئة واحدة طوال عملية سير العمل: SDK يستخدم حامل Sandbox الخاص بـpk_test_المفتاح، ويستخدم النظام الخلفي الذي يقرأ تلك النتائجsk_test_مفتاح.
تعتمد مفاتيح الإنتاج أيضًا على ملف تعريف نشاطك التجاري. إلى حين التحقق من نشاط مؤسستك التجاري ( KYB في حال الموافقة، يتم رفض طلبات التحقق من الإنتاج والتحميل.business_not_approvedيعمل نظام Sandbox بشكل كامل.
كيف يمكنك تقييد مفتاح قبل تسريبه؟
في لوحة التحكم، ضمن قسم المطورين → API يمكن لكل مفتاح أن يحمل قائمة سماح. ويتبع نوع قائمة السماح نطاق المفتاح، لأن هذا هو المكان الذي يعمل فيه كل عنصر تحكم.
مفتاح | تقييد | ما الذي يمنعه | ما لا يمنعه |
|---|---|---|---|
قابل للنشر | مصادر الويب المسموح بها، مثل | مفتاح مسروق أعيد استخدامه على موقع إلكتروني آخر | الطلبات التي لا ترسل |
سر | عناوين IP المسموح بها أو CIDR نطاقات، مثل | مفتاح مسروق تم استخدامه من أي مكان آخر غير خوادمك | لا يوجد شيء ضمن النطاقات التي ذكرتها |
يترتب على ذلك نقطتان.
أولاً، قائمة السماح بالمصادر هي عنصر تحكم خاص بالمتصفح. من المفيد ضبطها عند دمج تطبيق ويب، ولكنها لا تُفيد في تطبيقات الجوال، لأن التطبيق الأصلي لا يرسل أي شيء.Originبالنسبة للأجهزة المحمولة، فإن الحد الأقصى للمفتاح القابل للنشر المسرب هو نطاقه، وليس قائمة السماح.
ثانيًا، تُعدّ قائمة عناوين IP المسموح بها أقوى وسيلة للتحكم في المفتاح السري، وهي غير مكلفة إذا كان نظامك الخلفي يستخدم عناوين خروج ثابتة. قم بإدراج عناوين IP العامة لخوادمك. إذا كان نظامك الخلفي يعمل على بنية تحتية بدون عناوين خروج ثابتة، فمن المهم معرفة ذلك قبل اختيار مكان تخزين المفتاح السري.
قائمة السماح الفارغة تعني أن المفتاح يعمل من أي مكان. تركها فارغة هو خيار، لذا اختره عن قصد.
ماذا يجب عليك فعله عند تسريب مفتاح؟
اتبع الخطوات التالية بالترتيب:
إلغاء المفتاح في قسم المطورين → API المفاتيح . الإلغاء فوري: الطلب التالي باستخدام هذا المفتاح يُرجع
401.أنشئ البديل بنفس النطاق والبيئة، ثم انشره. بالنسبة لمفتاح قابل للنشر في تطبيق جوال، يعني ذلك إصدار التطبيق، لذا فإن الفجوة بين الخطوتين 1 و2 حقيقية. ضع ذلك في الحسبان.
راجع سجل التدقيق الخاص بك. يؤدي إنشاء المفاتيح وإلغاؤها إلى إصدار
api_key.createdوapi_key.revokedروابط الويب، حتى تتمكن أدوات الأمان الخاصة بك من تسجيل من قام بتغيير ماذا ومتى.بالنسبة للمفتاح السري، قم بتقييم مدى التعرض. حدد ما يمكن أن يصل إليه المفتاح ومدة بقائه، واتبع إجراءات التعامل مع الحوادث الخاصة بك.
إذا لم يتم تسريب المفتاح فعليًا وكنت تستخدم نظام التناوب الدوري، فاعكس الخطوتين 1 و2: أنشئ المفتاح الجديد وانشره أولًا، وتأكد من انتقال حركة البيانات، ثم ألغِ المفتاح القديم. إلغاء المفتاح القديم أولًا سيؤدي إلى تعطيل جميع الطلبات التي تمت خلال هذه الفترة.
ما هي العادات التي تحافظ على نطاق الانفجار صغيراً؟
مفتاح واحد لكل خدمة أو بيئة. إذا كانت خدمة الإعداد ووظيفة إعداد التقارير تشتركان في مفتاح سري واحد، فإن إلغاء هذا المفتاح يؤدي إلى تعطيل كليهما. أما المفاتيح المنفصلة فتتيح لك إلغاء مفتاح واحد فقط.
قم بتخزين المفاتيح السرية في مدير الأسرار عند إنشائها. يظهر المفتاح السري مرة واحدة فقط. بعد ذلك، لا تعرض لوحة التحكم سوى بادئته، لذا لا يوجد شيء لنسخه لاحقًا.
يجب إبقاء المفاتيح خارج المستودعات. يجب التعامل مع المفتاح الذي تم إضافته إلى مستودع عام على أنه مُسرّب، حتى لو تم حذف عملية الإضافة.
يستخدم
_test_مفاتيح في التطوير والتكامل المستمر. احتياطي_live_مفاتيح لحركة مرور الإنتاج.حدد من يمكنه إدارة المفاتيح. يتطلب إنشاء مفتاح أو إلغاؤه...
api_keys:createإذن. الأعضاء الذين لا يملكونه يرون المفاتيح للقراءة فقط.
القاعدة الواجب تطبيقها
عند مراجعة أي عملية تكامل، اسأل نفسك سؤالاً واحداً في كل موضع يظهر فيه مفتاح: هل يستطيع الشخص الذي يحمل هذا الجهاز أو يقرأ هذه الحزمة استخدام هذا المفتاح لقراءة بيانات الهوية؟ إذا كانت الإجابة بنعم في أي مكان خارج خوادمك، فإن التصميم خاطئ، بغض النظر عن أي جوانب أخرى صحيحة فيه.
ثم تحقق من ثلاثة أمور: أن مفتاح النشر على الويب يحتوي على قائمة عناوين IP مسموح بها، وأن كل مفتاح سري يحتوي على قائمة عناوين IP مسموح بها حيث تسمح بنيتك التحتية بذلك، وأن فريقك قد تدرب على خطوات الإلغاء والاستبدال. تغطي وثائق المطورين نقاط النهاية التي يصل إليها كل مفتاح، وتغطي صفحة الأمان كيفية القيام بذلك. Toden يتولى معالجة البيانات من جانبه.
المصادر

Charles Archibong
المؤسس المشارك
شارك تشارلز أرتشيبونغ في تأسيس شركة Toden. وهو يكتب عن التحقق من الهوية، والتكنولوجيا المالية، والعمل العملي لبناء خدمات رقمية موثوقة.


