Splync لا يخزن كلمات المرور بتنسيق نص واضح
في المقالات السابقة، استكشفنا كيف يحمي HTTPS المسار بين تطبيقك وخادمنا، وكيف يؤمن SSH الخادم نفسه. الآن حان الوقت للنظر داخل الخادم - كيف يحافظ Splync على أمان كلمة مرورك بمجرد وصولها. إذا استطاع شخص ما الحصول على كلمة مرورك، يمكنه تسجيل الدخول إلى حسابك والوصول إلى معلومات حساسة، بما في ذلك سجلات نفقاتك. لهذا السبب، لا يخزن Splync كلمات المرور بتنسيق نص واضح. بدلاً من ذلك، يتم تحويل كل كلمة مرور إلى نسخة مشفرة قبل حفظها في قاعدة البيانات. ماذا يعني ذلك بالضبط؟ التشفير عملية تحويل باتجاه واحد - بمجرد التحويل، لا يمكن العودة إلى كلمة المرور الأصلية. هذه الطريقة معيارية عبر الإنترنت، من البنوك إلى الخدمات السحابية الكبرى، ومع ذلك فإن الكثير من الناس لا يعرفون كيف تعمل حقاً. دعونا نستكشف ذلك من خلال تشبيه بسيط من الحياة اليومية.
أساسيات التشفير: خلاط يمزج دائمًا بنفس الطريقة
لفهم كيف تعمل حماية كلمات المرور، دعونا نبدأ بطريقة تشفير بسيطة تُسمى SHA-256. فكر فيها كخلاط يمزج المكونات دائمًا بنفس الطريقة. إذا وضعت كلمة المرور نفسها في الخلاط وضغطت على الزر، ستحصل دائمًا على نفس الشراب الفريد - مزيج مشفر من الحروف والأرقام. الفكرة الرئيسية هي أن العملية لا يمكن عكسها. تمامًا كما لا يمكنك أخذ الشراب وفصله مرة أخرى إلى الموز والحليب الأصليين، لا يمكنك أخذ التشفير المشفر واستعادة كلمة المرور الأصلية.
مثال على SHA-256: كيف نتحقق من كلمات المرور دون معرفتها
SHA-256 هو واحد من أكثر خوارزميات التشفير شيوعًا. على سبيل المثال، يُشفر كلمة المرور "splync1234" إلى "9cdafa20d069ecfb202e5f0bc937c73071cc6cd85634cc2d95d30ddcf2a71d41". في أجزاء من الثانية، كلما أدخل مستخدم قائم كلمة مرور تسجيل الدخول، ينتج SHA-256 دائمًا نفس كلمة المرور المشفرة. التطبيق ببساطة يُشفر كلمة المرور المدخلة مرة أخرى ويتحقق مما إذا كانت تطابق التشفير المخزن. في أي وقت لا يعرف النظام كلمة المرور الأصلية للمستخدم. ولكن ماذا لو قام مهاجم بتحضير قائمة مسبقة من كلمات المرور الشائعة وتشفيراتها (معروفة بهجوم جدول الألوان) لتخمين كلمات مرور المستخدمين بسرعة؟ هذا القلق واقعي جدًا. لهذا السبب، لا تعتمد الأنظمة الحديثة، بما في ذلك Splync، على SHA-256 العادي.
Splync يُشفر كلمات المرور بـ bcrypt — أقوى من SHA-256
يستخدم Bcrypt ملحًا عشوائيًا لكل مستخدم ويشفّر ذلك الملح (ومعامل التكلفة) مباشرة في سلسلة التشفير المخزنة. فكر في Bcrypt كخلاط يحتوي على توابل سرية (ملح) ومحرك بطيء (عامل العمل) — يجعل كل مزيج فريدًا وأكثر صعوبة في النسخ. لأن الملح 128 بت (≈3×10³⁸ احتمالات)، يمكن لكلمة المرور نفسها أن تُطابق عددًا فلكيًا كبيرًا من تشفيرات مخزنة مختلفة. هذا يجعل جداول الألوان المحسوبة مسبقًا عديمة الفائدة على نطاق واسع. أثناء تسجيل الدخول، يقوم Splync بقراءة الملح والتكلفة من سلسلة Bcrypt المحفوظة، ويعيد تشغيل Bcrypt على كلمة المرور المدخلة مع تلك المعلمات، ويقارن النتيجة بالتشفير المخزن. إذا تطابقا، تكون كلمة المرور صحيحة — ولكن لأن Bcrypt بطيء عمداً والأملاح فريدة، تصبح الهجمات العنيفة أكثر تكلفة بكثير للمهاجم.
مثال بسيط باستخدام bcrypt
دعونا نرى كيف يبدو ذلك في الممارسة. إذا قمت بتشفير كلمة المرور "splync1234" باستخدام bcrypt (مع استخدام تكلفة 12)، قد تحصل على سلسلة مثل هذه: `$2b$12$gBeouKYdue9uvvuV0HtGgeVPymnrojMqP/wcRw28HFlGEGIQbyw7O`. في هذه السلسلة الخاصة بـ bcrypt، يُشير `$2b` إلى إصدار الخوارزمية، ويُظهر `$12` معامل التكلفة (كم مرة تُعالج كلمة المرور)، و `gBeouKYdue9uvvuV0HtGgeV` هو الملح العشوائي الفريد، و `PymnrojMqP/wcRw28HFlGEGIQbyw7O` هو كلمة المرور النهائية المشفرة. لأن التشفير نفسه يحتوي على الملح والتكلفة، يمكن لـ Splync إعادة تنفيذ نفس عملية التشفير للتحقق من خلال استخراج تلك القيم من السلسلة المخزنة ومقارنة النتيجة. من ناحية أخرى، إذا لم يكن المهاجم يعرف الملح والتكلفة، فلن يتمكن من بناء جدول ألوان واحد يصلح لكل مستخدم.
التشفير يوفر حماية مزدوجة
توفر هذه الطريقة ميزة هامة أخرى. لأن Splync لا يخزن كلمات المرور بتنسيق نص واضح، حتى لو تم تسريب أو سرقة قاعدة البيانات، لن يكون المستخدمون في خطر مباشر. لا يمكن للمهاجمين تسجيل الدخول مباشرة بالبيانات المسروقة، لأن ما لديهم هو مجرد سلاسل مشفرة. هذا التصميم يوفر للمستخدمين طبقة إضافية من الحماية، بالإضافة إلى التدابير الأمنية الموجودة حول الخادم نفسه. تشفير كلمات المرور ليس فريدًا لـ Splync؛ إنه المعيار في صناعة التكنولوجيا، مستخدم من قبل عمالقة مثل Google وApple وAmazon. تم بناء Splync بشكل آمن للغاية، وسيصبح أكثر أمانًا مع تحسينات الأمان المستمرة مثل التحقق عبر البريد الإلكتروني، وحماية الهجمات العنيفة، والمراقبة المستمرة.