انتقل إلى المحتوى
cutty.dev
All posts

أمان الروابط المحمية بكلمة مرور — ماذا يحدث عند النقر عليها

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

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

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

لذا، لنبدأ بالترتيب.

كلمة المرور في الرابط ليست هي نفسها القفل على البوابة

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

يبدو هذا وكأنه عيب. ليس كذلك. كل ما في الأمر هو أنه يجب معرفة الغرض من هذه الآلية.

ثلاث حالات تكون فيها مفيدة حقاً:

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

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

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

والآن، إليك ما لم يكن من المفترض لهذا الدليل تجاهله

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

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

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

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

نقرة من الجانب الآخر

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

يُدخل البيانات. يقوم الخادم بمقارنة ما تم إدخاله مع البصمة المحفوظة. هل يتطابق؟ يحصل على رمز جلسة (session token) صالح لمدة يوم واحد. خلال الـ 24 ساعة التالية، يعود إلى الرابط دون الحاجة لإدخال أي شيء. لا يحتاج للتذكر، ولا يحتاج للعناء.

لا تتفق؟ خطأ. خمس محاولات خاطئة من نفس عنوان IP وتُغلق عملية الدخول لمدة خمس دقائق. البوت الذي يحاول تجربة كلمات المرور بالتتابع، سيصطدم بحائط مسدود.

ما الذي لا يوجد هنا ببساطة

نحن لا نقوم بحفظ كلمات المرور كنص مفتوح. لا في أي مكان. ولا حتى في السجلات (logs)، التي أراجعها عند البحث عن الأخطاء.

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

ونحن لا نشارك كلمات المرور مع أي جهة خارجية. لا توجد تحليلات، ولا تسويق، ولا أي اختبار A/B يلمس هذه البيانات. (هذه تحديداً قاعدة تسري في كل cutty.dev، وليس هنا فقط.)

عادتان تصنعان الفرق

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

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

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

يمكنك تغيير كلمة المرور دون إنشاء رابط جديد. اللوحة، "تعديل"، كلمة مرور جديدة. ملاحظة: جميع الجلسات النشطة لمدة 24 ساعة ستنتهي فوراً. يجب على الجميع إدخال كلمة المرور من جديد.

الحد الذي يستحق المعرفة مسبقاً

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

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

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

إذا كنت تريد رؤية كيف يبدو الأمر من الداخل — عند إنشاء رابط، قم بتوسيع "خيارات متقدمة" وحدد "إضافة كلمة مرور". الباقي سيتم تلقائياً.