العربية

أدوات المطور · التشفير ووحدة فك التشفير Base64

Base64 ليس تشفيرًا: لماذا يمكن لأي شخص قراءة السر المشفر

· لماذا يهم

base64 حماية ترميز

يتم فك تشفير النص المشفر باستخدام Base64 على الفور بدون مفتاح، مما يعرض محتوى النص العادي
الرسم التوضيحي المتجه الأصلي ToolAcre

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

قيمة التكوين التي بدت مشفرة ومفككة إلى كلمة مرور قاعدة البيانات - اكتشاف ملموس ومدى سرعة عكسها

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

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

التشفير والتشفير والتجزئة: ثلاث وظائف مختلفة - ما تضمنه كل منها، وأي منها يحتاج إلى مفتاح

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

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

لماذا يوجد Base64 على الإطلاق - النقل الآمن للبايتات عبر القنوات النصية، وليس السرية أبدًا

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

سر Kubernetes المسمى بكلمة مرور قاعدة البيانات التي تحتوي على base64: dGlnZXJfZGF0YWJhc2VfYWRtaW4 ليس سرًا في الواقع. Base64 هو الترميز الافتراضي الذي يستخدمه Kubernetes للتخزين، وليس للحماية. يمكن لأي شخص لديه حق الوصول إلى YAML أو قاعدة البيانات etcd فك تشفير القيمة في ثوانٍ. تواجه متغيرات البيئة ذات المفاتيح API المشفرة بالأساس 64 في البرنامج النصي لبدء التشغيل نفس المشكلة. يمكن فك تشفير رأس المصادقة الأساسية الذي يرسل التفويض: base64_username:password الأساسي إلى الخادم بواسطة أي وكيل أو أداة مراقبة أو مراقب شبكة بين العميل والخادم.

مثال عملي: فك تشفير سلسلة "سرية" في المتصفح - لصق وفك تشفير ونص عادي، دون الحاجة إلى خادم

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

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

مكان ظهور هذا الخطأ - أسرار Kubernetes وملفات .env ورؤوس المصادقة الأساسية وموارد تطبيقات الهاتف المحمول

يظهر الخطأ في كل مكان لأن Base64 شائع جدًا لدرجة أنه يصبح مرتبطًا بالتعتيم عن طريق القرب. يرى المطورون البيانات المشفرة بـ Base64، ويستنتجون أن شخصًا ما يعتقد أنها مهمة، ويتركون الأسرار بهذا الشكل. يبدو ملف .env الذي يحتوي على API_KEY=VGhpcyBpcyBub3QgcmVhbGx5IGEgc2VjcmV0 للمهندسين المبتدئين أكثر أمانًا من API_KEY=هذا ليس سرًا حقًا على الرغم من أن فك التشفير يتطلب عملية واحدة. تجمع تطبيقات الهاتف المحمول الرموز المميزة المشفرة بـ Base64 في الموارد التي يمكن لأي برنامج فك تشفير استخراجها وفك تشفيرها. تحتوي النسخ الاحتياطية لقاعدة البيانات على كلمات مرور مشفرة بـ Base64 في الحقول المخصصة للبحث فيها، وليست محمية.

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

ما يجب فعله بدلاً من ذلك - المديرون السريون، والتشفير الحقيقي في حالة عدم النشاط، وتدوير أي شيء تم الالتزام به بالفعل

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

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

ما لا يغطيه هذا هو اختيار خوارزمية التشفير أو تصميم إدارة المفاتيح

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

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

الوجبات الجاهزة: تعامل مع Base64 كنص عادي - كيف يقوم برنامج التشفير ووحدة فك التشفير Base64 بتوضيح النقطة بنقرة واحدة، دون مغادرة السر لعلامة التبويب الخاصة بك على الإطلاق

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

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