تعامل مع رقم حساب سري كبيانات اعتماد: دققه
إذا كانت معرفة الرقم تسجل دخول شخص أو تجلب إعداداً، فهو بيانات اعتماد. نفذ فحوص الصلاحية والتخزين ومعدل التخمين والتدوير.
الحقل المسمى رقم الحساب ليس مرجعاً عاماً تلقائياً، والتسمية ليست الاختبار. الاختبار هو ما تسمح به الحيازة: إذا كانت معرفة الرقم تسجل دخول شخص، أو تنزل ملف اتصال، أو تخول جهازاً، فإن ذلك الرقم بيانات اعتماد لها دورة حياة. أنفذ الفحوص الخمسة أدناه كلما أصدرت خدمة هوية رقمية وسمتها غير مؤذية. كل فحص ينتج سطراً في سجل قصير، والسجل هو المخرج، لا حكم على المنتج.
اجرد ما تمنحه الحيازة فعلاً
اكتب كل إجراء يفتحه الرقم على حدة. تسجيل الدخول إلى بوابة، وجلب ملف إعداد، وتخويل جهاز جديد، وتقديم تسجيل دخول نفق مقبول صلاحيات مختلفة، ويمكن للخدمة تنفيذ إحداها دون الأخريات. البوابة التي تقبل الرقم حقلاً وحيداً لا تقول شيئاً عن كيف يوثق النفق نظيره لاحقاً ولا عن كيفية اشتقاق مفاتيح الحركة.
يسهل صياغة النموذج العام: بيانات اعتماد bearer هي التي يستطيع حائزها استخدامها دون إثبات حيازة مفتاح تشفيري منفصل، وهذا هو التمييز الذي RFC 6750 يرسمه للرموز. هذا مقارنة، وليس ادعاءً بأن خدمة قائمة على رقم تنفذ OAuth. إن لم يكن الحائز يحتاج شيئاً آخر، فتعامل مع الرقم كسر bearer وصنف بقية التصميم وفقاً لذلك.
احمه كسر، لا كمرجع
يتبع التخزين التصنيف. القيمة التي تسجل الدخول مكانها مدير كلمات المرور، لا لقطة شاشة أو سجل حافظة أو رسالة دردشة أو ملاحظة متصفح. لقطات الشاشة هي التسرب المعتاد: الرقم قصير ويبدو غير مؤذ، فينتهي في موضوع دعم يعيش أطول من الجهاز الذي جاء منه.
التصيد هو نمط الفشل الآخر، ولا يهمه مدى عشوائية الرقم. المحتال الذي يريد القيمة سيطلب منك لصقها في نموذج، وبيانات اعتماد لا تنتهي أبداً وليس لها عامل ثانٍ تستحق الجهد. اصل إلى مسار الدخول من إشارة مرجعية أو عنوان معروف، لا من رابط في رسالة تطلب الرقم أيضاً.
تعامل مع مواد الاستعادة كجزء من السر. إذا أصدر المشغل أيضاً رمز استعادة أو رقم PIN أو عنوان بريد إلكتروني يمكنه إعادة تعيين الحساب، فهذه بيانات اعتماد منفصلة بالشرط نفسه للحماية. قناة إعادة تعيين واحدة غير محمية تحول كل ضابط آخر إلى زينة.
افحص مقاومة التخمين وتحديد المعدل معاً
الطول لا معنى له إلا بجانب طريقة التوليد. الرقم الطويل الناتج عن تسلسل يمكن التنبؤ به أضعف من قيمة قصيرة ناتجة عن مولد تشفيري، وعدد الأرقام المبهر لا يثبت عدم إمكانية التنبؤ. اسأل كيف تولد القيمة قبل أن تفكر في صعوبة تخمينها.
مقاومة التخمين وحدها أيضاً لا تصمد أمام معدل محاولات غير محدود. الضوابط المهمة هي التي ينفذها المشغل: عدادات المحاولات الفاشلة، والأقفال، والتقييد بحسب المصدر، وما إذا كان الرقم الخاطئ يمكن تمييزه عن غير الموجود. إذا كانت الخدمة تدعم ذلك، فإن محاولة فاشلة واحدة تبين شكل الخطأ وما إذا ظهر عداد إعادة المحاولة:
# one attempt, then read the response and any counter or delay
# do not script repeated guesses against a live account
curl -i -X POST https://portal.example.invalid/login -d "account=000000000000"
سجل ما يكشفه الرد. الخطأ المنفصل لحساب غير معروف هو أوراكل تعداد حتى عندما يكون الرقم غير قابل للتخمين، وهذا الاكتشاف ينتمي إلى السجل سواء أمكنك إصلاحه من جهة العميل أم لا.
خطط للتدوير والإلغاء قبل أن تحتاجهما
ابحث عن العملية المدعومة لرقم مفقود أو مكشوف واكتبها بينما كل شيء يعمل. هل يمكن استبدال بيانات اعتماد الحساب أصلاً؟ هل يبطل الاستبدال الأجهزة المسجلة مسبقاً أو الجلسات النشطة أو الإعداد المنزل؟ أي مواد استعادة تتطلبها العملية؟ قد تنقل خدمة لا تعتمد على البريد الإلكتروني مسؤولية استعادة أكبر إلى المستخدم، ما يجعل الإجراء أهم، لا أقل.
افصل استبدال الحساب عن إلغاء بيانات الاعتماد. إذا كان الرقم يخول تنزيل مفتاح أو شهادة أو ملف تعريف، فقد يترك استبدال الرقم تلك المواد المنزلة صالحة، وقد يكون إلغاء المواد المنزلة عملية أخرى بمالك آخر. لا تفترض أن حقلاً واحداً متغيراً ينهي كل اتصال؛ تحقق من نموذج المشغل الفعلي وسجل أين تحققت منه.
وثق القرار وأعد فحصه لاحقاً
احتفظ بسجل من صفحة واحدة لكل خدمة: ما الصلاحيات التي يمنحها الرقم، وأين يخزن، ومن يمكنه إعادة تعيينه، وما أدلة الاستخدام الموجودة، وما ستفعله في الساعة الأولى بعد الكشف. هذا السجل هو ما يحول جدالاً حول المصطلحات إلى قرار يمكن لشخص تدقيقه.
ادعاءات الخصوصية تحتاج نطاقها الخاص. الرقم المولد عشوائياً قد يظل معرفاً مستقراً يربط أحداث الحساب عبر الزمن؛ عدم إمكانية التنبؤ ليس عدم إمكانية الربط، ولا أي من الخاصيتين يقول شيئاً عن بيانات وصفية شبكية محتفظ بها. قارن تصاميم كاملة بدلاً من عد الحقول على شاشة دخول.
قبل أن تسجله:
- كل صلاحية يمنحها الرقم مدرجة، بما فيها التنزيلات وتخويل الأجهزة.
- قنوات التخزين والاستعادة محمية بالمعيار نفسه الذي يحمي الرقم نفسه.
- طريقة التوليد وحدود المعدل معلومة، لا مفترضة من الطول.
- توجد عملية استبدال وعملية إلغاء، وأنت تعرف أيتهما تلغي الأخرى.
- يسمي السجل من يمكنه إعادة تعيين القيمة وما الأدلة التي تبقى بعد الاستخدام.