بصمة المفتاح العام

طريقة التشفير باستخدام المفتاح العام تعتبر بصمة المفتاح العام عبارة عن سلسلة قصيرة من البايتات المستخدمة للتعرّف على مفتاح عام أطول. يتم إنشاء بصمات الأصابع عن طريق تطبيق دالة تجزئة التشفير (بالانجليزي cryptographic hash function ) على مفتاح عام. ونظرًا لأن حجم بيانات بصمات الأصابع أقصر من المفاتيح التي تشير إليها، فيمكن استخدامها لتبسيط بعض مهام إدارة المفاتيح. في برامج Microsoft ، يتم استخدام «بصمة الإبهام» بدلاً من «بصمة الإصبع».

إنشاء بصمات المفتاح العام 
عادةً ما يتم إنشاء بصمة مفتاح عام من خلال الخطوات التالية: 

 يتم تشفير المفتاح العام (واختيارياً بعض البيانات الإضافية) في سلسلة من البايتات. لضمان إمكانية إعادة إنشاء نفس بصمة الإصبع لاحقًا، يجب أن يكون الترميز محددًا، ويجب تبادل وتخزين أي بيانات إضافية بجانب المفتاح العام. البيانات الإضافية هي عادة معلومات أي شخص يستخدم المفتاح العام سيكون على دراية بها. من أمثلة البيانات الإضافية ما يلي: ما هي إصدارات البروتوكول التي يجب استخدام المفتاح معها (في حالة بصمات PGP)؛ واسم حامل المفتاح (في حالة بصمات مرساة الثقة X.509، حيث تتكون البيانات الإضافية من شهادة موقعة ذاتيا X.509). 
 يتم تجزئة البيانات التي تم إنتاجها في الخطوة السابقة باستخدام دالة تجزئة التشفير مثل SHA-1 أو SHA-2 . 
 عند الرغبة، يمكن اقتطاع ناتج دالة التجزئة لتوفير بصمة أقصر وأكثر ملاءمة. 

تنتج هذه العملية بصمة قصيرة يمكن استخدامها لمصادقة مفتاح عام أكبر بكثير. على سبيل المثال، في حين أن طول المفتاح العام RSA يبلغ 1024 بت أو أطول، فإن بصمات الأصابع MD5 أو SHA-1 النموذجية يبلغ طولها 128 أو 160 بت فقط. 

عند عرضها علئ العين البشرية، عادةً ما يتم تشفير بصمات الأصابع إلى سلاسل سداسية عشرية. هذه السلاسل يتم تنسيقها في مجموعة من الأحرف لتسهيل قراءتها. على سبيل المثال، سيتم عرض بصمة MD5 128 بت لـ SSH على النحو التالي: 
 43: 51: 43: A1: B5: FC: 8B: B7: 0A: 3A: A9: B1: 0F: 66: 73: A8

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

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

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

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

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

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

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

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

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

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

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

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

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

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

انظر أيضا
قائمة الكلمات PGP
 تشفير المفتاح العام 
المصادقة اللالكترونية
دالة التجزئة

المراجع 
2 , Escaping the evils of centralized control with self-certifying pathnames, David Mazières; M. Frans Kaashoek , نسخة محفوطة (September 1998), تم الإطلاع عليها 30 أغسطس 2019.

3 Aura, Tumas March 2005, " "Hash Extension, [rfc:3972 Cryptographically Generated Addresses (CGA)], IETF. sec. 7.2. doi:10.17487/RFC3972. RFC 3972. Retrieved January 2, 2018.
تعمية باستخدام المفتاح العام