القائمة

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

أداة إنشاء رقم الهوية الوطنية تبني معرّفات تتبع قواعد التنسيق وأرقام التحقق في كل بلد، لاختبار تدفقات التحقق من الهوية. تعرف على الأطوال والحدود.

تاريخ النشر

  • بيانات اختبار
  • هوية
  • التحقق

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

ينظر هذا الدليل في كيفية اختلاف أرقام الهوية بين البلدان، ولماذا تفشل قيمة نائبة في كل فحص وبالتالي لا تختبر شيئا، ولماذا يجب ضبط الطول لكل بلد بدلا من افتراضه، وما هو الحد الصادق لسجل صناعي داخل تدفق التحقق من العملاء. وبحلول النهاية ستعرف أي خصائص يحتاجها سجل هوية اختبار حتى يشغل مسار تسجيل حقيقيا.

لماذا لا تكون أرقام الهوية تنسيقا واحدا بأطوال مختلفة؟

الافتراض الشائع بأن كل بلد يصدر معرّفا هو في جوهره رقم طويل مع مجموع تحقق خاطئ بطرق تكسر أنظمة حقيقية. فالبلدان تختلف في ما إذا كان المعرّف رقميا أصلا، وفي ما إذا كان يصدر عند الولادة أو عند التسجيل، وفي ما إذا كان يرمّز تاريخا، وفي ما إذا كان يظهر على بطاقة أو في سجل رسمي فقط.

رقم الضمان الاجتماعي الأمريكي تسعة أرقام في ثلاث مجموعات، والتنسيق هو كل ما يحمله الرقم الظاهر. وهناك نطاقات لا تصدر أبدا، والمدقق الذي يقبل كل سلسلة من تسعة أرقام يقبل أرقاما لا يمكن أن توجد في الواقع، كما يشرح دليل الهوية على هذا الموقع، ويمكن مراجعة تفاصيل هذا البلد على صفحة الولايات المتحدة.

وتصدر البرازيل رقم CPF بأحد عشر رقما يكون الرقمان الأخيران فيها رقمي تحقق محسوبين من التسعة السابقة، وغالبا يكتب بعلامات ترقيم يجب على المحلل معالجتها. وتصدر إسبانيا رقم DNI بثمانية أرقام يتبعها حرف تحقق محسوب بمعامل باقي القسمة، ويتبع رقم NIE للمقيمين الأجانب المخطط نفسه بحرف أولي مختلف. وتصدر إندونيسيا رقم NIK من ستة عشر رقما يدمج رمز مديرية وتاريخا. وتصدر روسيا رقم INN بعشرة أو اثني عشر رقما بحسب الكيان، ورقم SNILS بأحد عشر رقما في تنسيق مرقم.

وتضيف تركيا حالة يستحق الانتباه إليها، لأن رقم الهوية التركي أحد عشر رقما لا يكون رقمه الأول صفرا، ويشتق رقماه الأخيران من بقية الأرقام بعلاقة يعرفها كل من كتب مدققا لهذا البلد. والصين تصدر رقما من ثمانية عشر حرفا يبدأ برمز عنوان، ويتابع بتاريخ ميلاد، وينتهي بحرف تحقق قد يكون الحرف X. وهذا التنوع هو القاعدة لا الاستثناء، وهو السبب الأول في أن الأداة التي لا تعرف البلد لا تستطيع أن تنفع.

لماذا يعتبر رقم التحقق جوهر الأمر؟

رقم التحقق يحول سلسلة أرقام إلى قيمة يمكن فحص اتساقها الداخلي. وبدونه يكون كل رقم بالطول الصحيح صالحا بالقدر نفسه، والحقل الذي يعد الأحرف فقط سيقبل خطأ النسخ واللصق المقطوع والرقم المخترع بحماس متساو، وهذا هو الوضع الذي يحاول كل من يعمل في اختبار البيانات الهروب منه.

ومعه يستطيع المدقق أن يرفض الأغلبية الساحقة من القيم المكتوبة خطأ قبل أن تراها أي طبقة تالية. وهذه هي الفائدة كلها، وهي السبب في أن أداة لا تحسب أرقام التحقق تنتج بيانات لا تستطيع تشغيل مسار التحقق الذي يفترض أنها تختبره.

ونتائج تخطي أرقام التحقق سهلة الرؤية. فالملف المملوء بقيم نائبة سيجتاز فحص الطول ويفشل في كل مجموع تحقق، وبالتالي لن يختبر الاختبار إلا فرع الرفض. أما الأخطاء في فرع القبول، وهو الفرع الذي يعمل في الإنتاج، فتبقى بلا زيارة، وتعلن المجموعة النجاح بينما لا تغطي شيئا.

ولهذا تهم الحسابات أكثر من المظهر. وطرق باقي القسمة المستخدمة في بلدان عدة تشرحها أداة التحقق في سياق الأسرة الأوسع من الفحوص التي تشمل أرقام الحسابات المصرفية والباركود. وعندما تختار أداة إنشاء، فالسؤال الذي يستحق الطرح هو أي خوارزميات بلدان تنفذ، وهل يجتاز ناتجها مدققا مستقلا كتبته أنت.

واختبار الاستقلال هذا بسيط ولا يستغرق وقتا. خذ رقما منشأ، مرره في مدقق بنيته من القاعدة المنشورة، وتأكد أن رقم التحقق ينجح. وهذه العادة الواحدة تكشف صنفا كاملا من سوء الإعداد فيه يختار بلد ما بينما تطبق قواعد بلد مجاور، وهو خطأ لا يظهر في أي فحص شكلي.

لماذا يجب ضبط الطول لكل بلد على حدة؟

لا شيء في حقل الهوية ينبغي أن يكون مثبتا في الكود. فالمخطط الذي يخزن كل المعرّفات في عمود واحد بعرض ثابت سيقص الأطول ويترك مساحة فارغة للأقصر، والمدقق الذي يفترض طولا واحدا سيرفض كل بلد لم يكتب من أجله.

والتصميم العملي حقل بلد يختار مجموعة قواعد، ومجموعة قواعد تحمل الطول والأحرف المسموح بها وخوارزمية التحقق وطريقة عرض القيمة للمستخدم. والقيمة المخزنة والقيمة المعروضة مختلفتان عادة، لأن بلدانا كثيرة تطبع علامات ترقيم ليست جزءا من المعرّف نفسه، ونموذج يقارن المعروض بالمخزن يرفض مدخلات صحيحة.

والتكوين يجب أن يعالج أيضا البلدان التي لا تصدر مثل هذا المعرّف إطلاقا. وفي تلك الحالات ينبغي أن يكون الحقل غائبا بشكل مشروع لا مملوءا بسلسلة تبدو معقولة. فالقيمة الغائبة والقيمة الخاطئة تفشلان بشكل مختلف في الطبقات التالية، والمخطط الذي لا يستطيع التعبير عن الغياب سينتهي إلى تخزين معرّف مصنوع في سجل لم يحمل واحدا قط.

وعندما توجد معرّفات عدة في بلد واحد، يحتاج النموذج إلى تمييزها. فر قم ضريبي ورقم تأمين اجتماعي ورقم هوية وطنية قد تكون كلها بأحد عشر رقما في الاختصاص نفسه، ومعاملتها كحقل واحد يضمن أن يؤكد اختبار في النهاية على الرقم الخطأ. وتسمية كل معرّف بما هو لا بموضعه في النموذج هي أرخص طريقة لإبقائها منفصلة، وهي التي تجعل تصديرا من بلد مقروءا في بلد آخر.

كيف يتصرف رقم الهوية الصناعي داخل تدفق التحقق من العملاء؟

التدفق النموذجي للتحقق من العملاء يفعل شيئا واحدا أو أكثر مع المعرّف. يفحص التنسيق، ويحسب رقم التحقق، ويرسل القيمة إلى خدمة تحقق خارجية، ويخزن النتيجة، وقد يحتفظ بصورة مستند. والرقم المنشأ سيجتاز الفحصين الأولين ويفشل في الثالث، وهذا هو السلوك الصحيح للبيانات الصناعية.

والفشل في الخطوة الثالثة هو ما يجعل السجل آمنا. فبما أن أي جهة إصدار لا تعرف بوجود الرقم، لا تستطيع أي خدمة تحقق تأكيده، ولا يمكن فتح حساب عليه. ولو أن رقما منشأ حقق تحققا خارجيا يوما، لكان ذلك يعني أن الرقم يخص شخصا ما، ولكان ذلك عيبا خطيرا في الأداة لا خصيصة فيها.

وهذا يعني أن اختبار التحقق من العملاء بمعرّفات صناعية يحدث على مستويين. المستوى المحلي يختبر تحققك أنت وتنسيقك ومعالجة الأخطاء والتخزين، والقيم الصناعية مثالية له. أما مستوى التكامل فيحتاج بيئة تجريبية يوفرها مزود التحقق، وهذه البيئات تأتي عادة بهويات اختبار ثابتة خاصة بها. وخلط المستويين، أي ملاحقة رقم صناعي عبر نقطة تحقق مباشرة، لا ينتج إلا ضجيجا.

وينبغي أن يكون الفريق حذرا في ما يؤكده على الخطوة الخارجية. فالاختبار الذي يتوقع رمز رفض معينا من مزود حقيقي يختبر سلوك المزود الحالي، وهو يتغير دون إشعار. أما الاختبار الذي يتوقع أن يعالج تطبيقك الرفض بلباقة فهو يختبر برمجيتك، وهي الشيء الذي تملكه ويتغير بقرارك.

والمنطق نفسه ينطبق على توقيت الفحص. فإذا كان تدفقك يتحقق بشكل غير متزامن، فإن الحالات المثيرة هي الاستجابة البطيئة وانتهاء المهلة والاستجابة التي تصل مرتين، وهذه أرخص إنتاجا بواجهة وهمية تتحكم بها من بيئة تجريبية لمزود يجيب بطريقة ثابتة.

ما هي الحدود التنظيمية لاختبار بيانات الهوية؟

الحد الأول أن السجل الصناعي ليس شخصا. قد يحمل اسما وتاريخ ميلاد وعنوانا ومعرّفا، ولا شيء من ذلك يخص أحدا. وتقديمه كهوية شخص ما، أو استخدامه لانتحال شخصية فرد حقيقي، إساءة استخدام بصرف النظر عن طريقة إنتاج السجل.

والحد الثاني يتعلق بالبيانات الحقيقية. فالسجل الذي يجمع اسما حقيقيا ومعرّفا حقيقيا هو هوية حقيقية بأي تعريف عملي، ونسخ مثل هذه السجلات إلى بيئة اختبار إفصاح. ونسخ الصفوف الإنتاجية إلى بيئة أدنى مشكلة تنظيمية وتشغيلية في الوقت نفسه، وهي المشكلة التي تظهر غالبا بعد أن يصبح الحل صعبا.

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

والحد الرابع هو الاحتفاظ. حتى السجلات الصناعية تتراكم، وقاعدة بيانات تحمل مليون هوية منشأة ليست خطيرة بذاتها لكنها لا تفرق بالنظرة الأولى عن قاعدة تحمل بيانات حقيقية. وتعليم الصفوف المنشأة، وحفظ معاملات الإنشاء، وحذف الملفات الثابتة التي لم تعد تستخدم، يبقي التمييز ظاهرا لمن يراجع لاحقا.

وحد خامس هو العرض الصادق. فإذا احتاج سجل صناعي أن يخرج من بيئة الاختبار يوما، في عرض توضيحي أو صورة أو دورة تدريبية، فينبغي أن يوسم بأنه منشأ في كل موضع يمكن لقارئ أن يخطئ فيه ويظنه بيانات شخص حقيقي. والوسم لا يكلف شيئا ويزيل التباسا لا يستطيع القارئ أن يحله بنفسه.

ماذا ينبغي أن يحتوي سجل هوية الاختبار؟

السجل النافع يحمل مجموعة حقول متماسكة لا معرّفا وحده. أسماء شخصية واسم عائلة ملائمان للبلد، وتاريخ ميلاد متسق مع أي نطاق عمر صالح، وعنوان داخل الاختصاص نفسه، ورقم هاتف يحمل بادئة الاتصال الوطنية، والمعرّفات التي يصدرها ذلك البلد فعلا. وكل زوج في هذه المجموعة يقيد الطرف الآخر فيه، وهذه هي الخصيصة التي تجعل السجل قابلا للاستخدام.

ووفر سجلا ثابتا للتأكيدات وسجلا منشأ للاستكشاف. فالسجل الثابت يجعل اختبار الانحدار ذا معنى، والسجل المنشأ يكتشف حالات لم يكتبها أحد. والأداة على هذا الموقع مبنية بحيث يعيد المفتاح نفسه مع البلد نفسه السجل نفسه، وهذا يسمح للملف الثابت بالبقاء مستقرا بين التشغيلات بينما تستكشف بقية السجلات الفضاء.

ثم تحقق من المخرجات باستقلال. خذ معرّفا منشأ، مرره في مدقق كتبته أنت من الخوارزمية المنشورة، وتأكد أن رقم التحقق ينجح. وهذه العادة الواحدة تلتقط صنفا كاملا من سوء الإعداد، وتكشف أيضا الحالات التي تحمل فيها قيمة البلد الخطأ بينما تبدو البنية سليمة.

وأضف إلى ذلك فحوصا بين الحقول لا داخل الحقل الواحد. فتاريخ ميلاد يتجاوز عمرا معقولا، أو عنوان يقع في اختصاص مختلف عن الاختصاص الذي أصدر المعرّف، أو رقم هاتف ببادئة بلد آخر، كلها تعارضات لا يكشفها أي فحص لحقل منفرد، وهي التي تجعل سجل الهوية نافعا للأتمتة لا للعرض.

كل معرّف ينتج بهذه الطريقة هو بيانات اختبار صناعية. فالتنسيق والطول ورقم التحقق تتبع القواعد المنشورة حتى يمكن تشغيل البرمجيات، لكن الرقم لا يخص أي شخص، ولم تصدره أي جهة، ولا يجوز استخدامه لانتحال هوية أحد، ولا لفتح حساب حقيقي أو تسجيله، ولا لتجاوز تحقق هوية حقيقي، ولا للحصول على أي مزية أو مستند.

تابع القراءة

أدوات شائعة ومقالات استخدام