كل ما تريد معرفته حول إعادة تعيين كلمة المرور بشكل آمن. الجزء 1

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

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

كل ما تريد معرفته حول إعادة تعيين كلمة المرور بشكل آمن. الجزء 1

تخزين كلمة المرور: التجزئة والتشفير والنص العادي (اللحظات!).

لا يمكننا مناقشة ما يجب فعله بكلمات المرور المنسية قبل أن نناقش كيفية تخزينها. يتم تخزين كلمات المرور في قاعدة البيانات بأحد الأنواع الثلاثة الرئيسية:

  1. نص بسيط. يوجد عمود كلمة المرور، والذي يتم تخزينه في شكل نص عادي.
  2. مشفرة. عادةً ما يتم استخدام التشفير المتماثل (يتم استخدام مفتاح واحد لكل من التشفير وفك التشفير)، ويتم أيضًا تخزين كلمات المرور المشفرة في نفس العمود.
  3. مجزأة. عملية أحادية الاتجاه (يمكن تجزئة كلمة المرور، ولكن لا يمكن إلغاء تجزئتها)؛ كلمة المرور، أود أن آمل، يليه ملح، وكل واحد في عمود خاص به.

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

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

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

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

تحذير!

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

قم دائمًا بإعادة تعيين كلمة المرور الخاصة بك أبدا لا تذكره

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

أدرك أن كلمة "تذكير" تُستخدم (غالبًا) بالمعنى العامي، ولكن ما نحاول فعله حقًا هو مساعدة المستخدم بأمان على الاتصال بالإنترنت مرة أخرى. نظرًا لأننا نحتاج إلى الأمان، فهناك سببان لعدم ملاءمة التذكير (أي إرسال كلمة المرور الخاصة بالمستخدم):

  1. البريد الإلكتروني هو قناة غير آمنة. مثلما لا نرسل أي شيء حساس عبر HTTP (كنا نستخدم HTTPS)، لا ينبغي لنا أن نرسل أي شيء حساس عبر البريد الإلكتروني لأن طبقة النقل الخاصة به غير آمنة. وفي الواقع، يعد هذا أسوأ بكثير من مجرد إرسال المعلومات عبر بروتوكول نقل غير آمن، لأن البريد غالبًا ما يتم تخزينه على جهاز تخزين، ويمكن لمسؤولي النظام الوصول إليه، وإعادة توجيهه وتوزيعه، ويمكن للبرامج الضارة الوصول إليه، وما إلى ذلك. البريد الإلكتروني غير المشفر هو قناة غير آمنة للغاية.
  2. لا ينبغي أن يكون لديك حق الوصول إلى كلمة المرور على أي حال. أعد قراءة القسم السابق الخاص بالتخزين - يجب أن يكون لديك تجزئة لكلمة المرور (مع ملح قوي جيد)، مما يعني أنه لا ينبغي بأي حال من الأحوال استخراج كلمة المرور وإرسالها عبر البريد.

اسمحوا لي أن أوضح المشكلة مع مثال usoutdoor.com: هنا صفحة تسجيل دخول نموذجية:

كل ما تريد معرفته حول إعادة تعيين كلمة المرور بشكل آمن. الجزء 1
من الواضح أن المشكلة الأولى هي أن صفحة تسجيل الدخول لا يتم تحميلها عبر HTTPS، ولكن الموقع يطالبك أيضًا بإرسال كلمة مرور ("إرسال كلمة المرور"). قد يكون هذا مثالاً على الاستخدام العامي للمصطلح المذكور أعلاه، لذلك دعونا نأخذ خطوة أبعد ونرى ما سيحدث:

كل ما تريد معرفته حول إعادة تعيين كلمة المرور بشكل آمن. الجزء 1
لا يبدو الأمر أفضل بكثير، للأسف؛ ورسالة بريد إلكتروني تؤكد وجود مشكلة:

كل ما تريد معرفته حول إعادة تعيين كلمة المرور بشكل آمن. الجزء 1
يخبرنا هذا بجانبين مهمين لموقع usoutdoor.com:

  1. الموقع لا يقوم بتجزئة كلمات المرور. في أحسن الأحوال، تكون مشفرة، ولكن من المحتمل أن يتم تخزينها بنص عادي؛ ولا نرى أي دليل على عكس ذلك.
  2. يرسل الموقع كلمة مرور طويلة المدى (يمكننا الرجوع إليها واستخدامها مرارًا وتكرارًا) عبر قناة غير آمنة.

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

إدراج أسماء المستخدمين وأثره على عدم الكشف عن هويته

من الأفضل توضيح هذه المشكلة بصريًا. مشكلة:

كل ما تريد معرفته حول إعادة تعيين كلمة المرور بشكل آمن. الجزء 1
هل ترى؟ انتبه إلى الرسالة "لا يوجد مستخدم مسجل بعنوان البريد الإلكتروني هذا". من الواضح أن المشكلة تنشأ إذا أكد هذا الموقع توفر مستخدم مسجل باستخدام عنوان البريد الإلكتروني هذا. بينجو - لقد اكتشفت للتو الولع الجنسي لزوجك/رئيسك/جارك!

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

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

ما هو البديل؟ في الحقيقة، الأمر بسيط جدًا، ويتم تنفيذه بشكل رائع Entropay:

كل ما تريد معرفته حول إعادة تعيين كلمة المرور بشكل آمن. الجزء 1
هنا لا تكشف Entropay شيئًا على الإطلاق عن وجود عنوان بريد إلكتروني في نظامها لمن لا يملك هذا العنوان... اذا أنت ملك هذا العنوان وهو غير موجود في النظام ستصلك رسالة على البريد الإلكتروني كالتالي:

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

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

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

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

إرسال إعادة تعيين كلمة المرور مقابل إرسال عنوان URL لإعادة التعيين

المفهوم التالي الذي نحتاج إلى مناقشته هو كيفية إعادة تعيين كلمة المرور الخاصة بك. هناك حلان شائعان:

  1. إنشاء كلمة مرور جديدة على الخادم وإرسالها عبر البريد الإلكتروني
  2. أرسل بريدًا إلكترونيًا بعنوان URL فريدًا لتسهيل عملية إعادة التعيين

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

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

عندما نتحدث عن عنوان URL لإعادة التعيين، فإننا نعني عنوان موقع الويب الموجود فريدة من نوعها لهذه الحالة بالذات من عملية إعادة التعيين. وبطبيعة الحال، ينبغي أن تكون عشوائية، ولا ينبغي أن يكون من السهل تخمينها، ولا ينبغي أن تحتوي على أي روابط خارجية للحساب تسهل إعادة تعيينه. على سبيل المثال، يجب ألا يكون عنوان URL لإعادة التعيين مجرد مسار مثل "Reset/?username=JohnSmith".

نريد إنشاء رمز مميز فريد يمكن إرساله بالبريد كعنوان URL لإعادة التعيين، ثم مطابقته مع سجل الخادم الخاص بحساب المستخدم، وبالتالي التأكد من أن مالك الحساب هو في الواقع نفس الشخص الذي يحاول إعادة تعيين كلمة المرور. على سبيل المثال، يمكن أن يكون الرمز المميز "3ce7854015cd38c862cb9e14a1ae552b" ويتم تخزينه في جدول مع معرف المستخدم الذي يقوم بإعادة التعيين والوقت الذي تم فيه إنشاء الرمز المميز (المزيد حول هذا أدناه). عند إرسال البريد الإلكتروني، فإنه يحتوي على عنوان URL مثل “Reset/?id=3ce7854015cd38c862cb9e14a1ae552b”، وعندما يقوم المستخدم بتنزيله، تطالب الصفحة بوجود الرمز المميز، وبعد ذلك تؤكد معلومات المستخدم وتسمح له بتغيير كلمة المرور.

بالطبع، نظرًا لأن العملية المذكورة أعلاه (نأمل) تسمح للمستخدم بإنشاء كلمة مرور جديدة، فنحن بحاجة إلى التأكد من تحميل عنوان URL عبر HTTPS. لا، إرساله مع طلب POST عبر HTTPS ليس كافيًا، يجب أن يستخدم عنوان URL المميز هذا أمان طبقة النقل حتى لا يمكن مهاجمة نموذج كلمة المرور الجديدة MITM وتم إرسال كلمة المرور التي أنشأها المستخدم عبر اتصال آمن.

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

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

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

دور اختبار CAPTCHA

أوه، CAPTCHA، الميزة الأمنية التي نحب جميعًا أن نكرهها! في الواقع، اختبار CAPTCHA ليس أداة حماية بقدر ما هو أداة تعريف - سواء كنت شخصًا أو روبوتًا (أو نصًا آليًا). والغرض منه هو تجنب التقديم التلقائي للنموذج، والذي، بطبيعة الحال، علبة يمكن استخدامها كمحاولة لكسر الأمن. في سياق إعادة تعيين كلمة المرور، يعني اختبار CAPTCHA أنه لا يمكن إجبار وظيفة إعادة التعيين على إرسال بريد عشوائي إلى المستخدم أو محاولة تحديد وجود الحسابات (وهو الأمر الذي لن يكون ممكنًا بالطبع إذا اتبعت النصائح الواردة في القسم الخاص التحقق من الهويات).

وبطبيعة الحال، فإن اختبار CAPTCHA نفسه ليس مثاليًا؛ وهناك سوابق كثيرة لـ”اختراق” برمجياتها وتحقيق نسب نجاح كافية (60-70%). بالإضافة إلى ذلك، هناك حل يظهر في رسالتي حول اختراق CAPTCHA بواسطة أشخاص آليين، حيث يمكنك أن تدفع للأشخاص أجزاء من السنت لحل كل اختبار CAPTCHA وتحقيق معدل نجاح يصل إلى 94%. أي أنها ضعيفة، لكنها (قليلاً) ترفع حاجز الدخول.

دعونا نلقي نظرة على مثال باي بال:

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

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

أسئلة وأجوبة سرية

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

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

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

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

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

تمكن المتسلل ديفيد كيرنيل من الوصول إلى حساب بالين من خلال العثور على تفاصيل حول خلفيتها، مثل جامعتها وتاريخ ميلادها، ثم استخدام ميزة استعادة كلمة المرور المنسية في Yahoo!.

بداية، هذا خطأ في التصميم من جانب شركة Yahoo! - من خلال تحديد مثل هذه الأسئلة البسيطة، قامت الشركة بشكل أساسي بتخريب قيمة سؤال الأمان، وبالتالي حماية نظامها. بالطبع، تعد إعادة تعيين كلمات المرور لحساب بريد إلكتروني دائمًا أكثر صعوبة نظرًا لأنه لا يمكنك إثبات الملكية عن طريق إرسال بريد إلكتروني إلى المالك (دون الحصول على عنوان ثانٍ)، ولكن لحسن الحظ لا توجد استخدامات كثيرة لإنشاء مثل هذا النظام اليوم.

دعنا نعود إلى أسئلة الأمان - هناك خيار للسماح للمستخدم بإنشاء أسئلته الخاصة. المشكلة هي أن هذا سيؤدي إلى أسئلة واضحة للغاية:

ما هو لون السماء؟

الأسئلة التي تجعل الناس غير مرتاحين عند استخدام سؤال الأمان لتحديد الهوية الناس (على سبيل المثال، في مركز الاتصال):

مع من كنت أنام في عيد الميلاد؟

أو أسئلة غبية بصراحة:

كيف تتهجى "كلمة المرور"؟

عندما يتعلق الأمر بالمسائل الأمنية، يحتاج المستخدمون إلى إنقاذهم من أنفسهم! بمعنى آخر، يجب تحديد سؤال الأمان من خلال الموقع نفسه، أو الأفضل من ذلك، طرحه سلسلة أسئلة الأمان التي يمكن للمستخدم الاختيار منها. وليس من السهل الاختيار واحد; من الناحية المثالية، يجب على المستخدم تحديد سؤالين أو أكثر من الأسئلة الأمنية في وقت تسجيل الحساب، والتي سيتم استخدامها بعد ذلك كقناة تعريف ثانية. يؤدي وجود أسئلة متعددة إلى زيادة الثقة في عملية التحقق، ويوفر أيضًا القدرة على إضافة العشوائية (لا يظهر نفس السؤال دائمًا)، بالإضافة إلى توفير القليل من التكرار في حالة نسيان المستخدم الفعلي لكلمة المرور.

ما هو سؤال الأمان الجيد؟ ويتأثر هذا بعدة عوامل:

  1. يجب أن يكون مختصر – يجب أن يكون السؤال واضحاً لا لبس فيه.
  2. يجب أن يكون الجواب محدد – لا نحتاج إلى سؤال يمكن لشخص واحد أن يجيب عليه بشكل مختلف
  3. ينبغي أن تكون الإجابات المحتملة متنوع - يؤدي سؤال اللون المفضل لشخص ما إلى مجموعة فرعية صغيرة جدًا من الإجابات المحتملة
  4. بحث يجب أن تكون الإجابة معقدة - إذا كان من الممكن العثور على الإجابة بسهولة أي (اذكر الناس في المناصب العليا) فهو سيئ
  5. يجب أن يكون الجواب دائم في الوقت المناسب - إذا سألت شخص ما عن فيلمه المفضل، فقد تكون الإجابة مختلفة بعد مرور عام

كما يحدث، هناك موقع ويب مخصص لطرح الأسئلة الجيدة يسمى GoodSecurityQuestions.com. بعض الأسئلة تبدو جيدة إلى حد ما، وبعضها الآخر لا يجتاز بعض الاختبارات الموضحة أعلاه، وخاصة اختبار “سهولة البحث”.

اسمحوا لي أن أوضح كيفية قيام PayPal بتنفيذ الأسئلة الأمنية، وعلى وجه الخصوص، الجهد الذي يبذله الموقع في المصادقة. أعلاه رأينا صفحة بدء العملية (مع اختبار CAPTCHA)، وهنا سنعرض ما يحدث بعد إدخال عنوان بريدك الإلكتروني وحل اختبار CAPTCHA:

كل ما تريد معرفته حول إعادة تعيين كلمة المرور بشكل آمن. الجزء 1
ونتيجة لذلك، يتلقى المستخدم الرسالة التالية:

كل ما تريد معرفته حول إعادة تعيين كلمة المرور بشكل آمن. الجزء 1
كل شيء طبيعي تمامًا حتى الآن، ولكن إليك ما هو مخفي خلف عنوان URL لإعادة التعيين هذا:

كل ما تريد معرفته حول إعادة تعيين كلمة المرور بشكل آمن. الجزء 1
لذلك، تأتي الأسئلة الأمنية في الاعتبار. في الواقع، يسمح لك PayPal أيضًا بإعادة تعيين كلمة المرور الخاصة بك عن طريق التحقق من رقم بطاقة الائتمان الخاصة بك، لذلك هناك قناة إضافية لا تستطيع العديد من المواقع الوصول إليها. لا أستطيع تغيير كلمة المرور الخاصة بي دون الرد على حد سواء سؤال الأمان (أو عدم معرفة رقم البطاقة). حتى لو قام شخص ما باختطاف بريدي الإلكتروني، فلن يتمكن من إعادة تعيين كلمة مرور حساب PayPal الخاص بي إلا إذا كان يعرف المزيد من المعلومات الشخصية عني. أي معلومات؟ فيما يلي خيارات أسئلة الأمان التي يقدمها PayPal:

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

كل ما تريد معرفته حول إعادة تعيين كلمة المرور بشكل آمن. الجزء 1
يعد PayPal مثالًا طوباويًا جدًا لإعادة تعيين كلمة المرور بشكل آمن: فهو يطبق اختبار CAPTCHA لتقليل خطر هجمات القوة الغاشمة، ويتطلب سؤالين أمنيين، ثم يتطلب نوعًا آخر من التعريف المختلف تمامًا فقط لتغيير الإجابات - وهذا بعد المستخدم تم تسجيل الدخول بالفعل. وبطبيعة الحال، هذا هو بالضبط ما نحن عليه مُتوقع من باي بال؛ هي مؤسسة مالية تتعامل بمبالغ كبيرة من المال. هذا لا يعني أن كل عملية إعادة تعيين لكلمة المرور يجب أن تتبع هذه الخطوات - فهي في معظم الأحيان مبالغة - ولكنها مثال جيد للحالات التي يكون فيها الأمان أمرًا جديًا.

تكمن ميزة نظام سؤال الأمان في أنه إذا لم تقم بتنفيذه على الفور، فيمكنك إضافته لاحقًا إذا كان مستوى حماية الموارد يتطلب ذلك. ومن الأمثلة الجيدة على ذلك شركة Apple، التي نفذت هذه الآلية مؤخرًا فقط [مقال كتب عام 2012]. بمجرد أن بدأت بتحديث التطبيق على جهازي iPad، ظهر لي الطلب التالي:

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

كل ما تريد معرفته حول إعادة تعيين كلمة المرور بشكل آمن. الجزء 1
أما بالنسبة لـ PayPal، فقد تم تحديد الأسئلة مسبقًا وبعضها في الواقع جيد جدًا:

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

هناك جانب آخر يجب مراعاته فيما يتعلق بالإجابة على سؤال الأمان الخاص بك وهو التخزين. إن وجود قاعدة بيانات نصية عادية في قاعدة البيانات يشكل تقريبًا نفس التهديدات التي تشكلها كلمة المرور، أي أن كشف قاعدة البيانات يكشف على الفور عن القيمة ولا يعرض التطبيق للخطر فحسب، بل يحتمل أن يكون تطبيقات مختلفة تمامًا تستخدم نفس الأسئلة الأمنية (هناك مرة أخرى سؤال أكاي بيري). أحد الخيارات هو التجزئة الآمنة (خوارزمية قوية وملح عشوائي للتشفير)، ولكن على عكس معظم حالات تخزين كلمات المرور، قد يكون هناك سبب وجيه لظهور الاستجابة كنص عادي. السيناريو النموذجي هو التحقق من الهوية بواسطة مشغل الهاتف المباشر. بالطبع، التجزئة قابلة للتطبيق أيضًا في هذه الحالة (يمكن للمشغل ببساطة إدخال الاستجابة التي حددها العميل)، ولكن في أسوأ الحالات، يجب أن تكون الاستجابة السرية موجودة على مستوى معين من تخزين التشفير، حتى لو كان مجرد تشفير متماثل . لخص: تعامل مع الأسرار وكأنها أسرار!

أحد الجوانب الأخيرة للأسئلة والأجوبة الأمنية هو أنها أكثر عرضة للهندسة الاجتماعية. إن محاولة استخراج كلمة المرور مباشرة إلى حساب شخص آخر هو أمر واحد، ولكن بدء محادثة حول تكوينها (سؤال أمان شائع) أمر مختلف تمامًا. في الواقع، يمكنك التواصل بشكل جيد مع شخص ما حول العديد من جوانب حياته التي قد تطرح سؤالاً سرياً دون إثارة الشكوك. بالطبع، الهدف الأساسي من السؤال الأمني ​​هو أنه يتعلق بتجربة حياة شخص ما، لذا فهو لا يُنسى، وهنا تكمن المشكلة - يحب الناس التحدث عن تجارب حياتهم! ليس هناك الكثير مما يمكنك فعله حيال ذلك، فقط إذا اخترت خيارات أسئلة الأمان هذه أقل ربما يمكن سحبها عن طريق الهندسة الاجتماعية.

[يتبع.]

كإعلان

فدسينا عروض موثوقة خوادم مع الدفع اليومي، كل خادم متصل بقناة إنترنت بسعة 500 ميجابت ومحمي من هجمات DDoS مجانًا!

كل ما تريد معرفته حول إعادة تعيين كلمة المرور بشكل آمن. الجزء 1

المصدر: www.habr.com