تتيح لك أداة التوقيع الرقمي التحقّق من عدم تلاعب أي شخص ببياناتك. وهي توفّر صحة البيانات الموقّعة وسلامتها، ولكنّها لا توفّر سريتها. وهي غير متماثلة، ما يعني أنّها تستخدم مفتاحَين (مفتاحًا عامًا ومفتاحًا خاصًا).
يحتوي عنصر Digital Signature الأساسي على الخصائص التالية:
- الأصالة: من المستحيل إنشاء توقيع يمكن لـ
PublicKeyVerify.Verify(signature, message)التحقّق منه ما لم يكن لديك المفتاح الخاص. - غير متماثل: يستخدم إنشاء التوقيع مفتاحًا مختلفًا عن مفتاح التحقّق منه. يتيح لك ذلك توزيع المفتاح العام للتحقّق من التواقيع على الأطراف التي لا يمكنها إنشاء تواقيع بنفسها.
إذا لم تكن بحاجة إلى عدم التماثل، ننصحك باستخدام العنصر الأساسي MAC الأبسط والأكثر فعالية بدلاً من ذلك.
يتم تمثيل وظيفة التوقيعات الرقمية في Tink على شكل زوج من الأنواع الأساسية:
- PublicKeySign لتوقيع البيانات
- PublicKeyVerify للتحقّق من صحة التوقيع
اختيار نوع المفتاح
ننصحك باستخدام ML_DSA_65 أو ECDSA_P256 لمعظم حالات الاستخدام، ولكن تتوفّر مجموعة متنوعة من الخيارات. بشكل عام، ينطبق ما يلي:
- إنّ ML-DSA-65 آمنة ضد هجمات الحوسبة الكمية. نحن نعمل حاليًا على تنفيذ هذه الميزة، وننصح باستخدامها مع لغات البرمجة التي تتوفّر فيها.
بالنسبة إلى خوارزميات ما بعد التشفير الكمي التالية، من المتوقّع أن تحتاج إلى تغيير نوع المفتاح في المستقبل القريب.
- ECDSA_P256 هو الخيار الأكثر استخدامًا وهو خيار تلقائي مناسب. يُرجى العِلم أنّ توقيعات ECDSA قابلة للتعديل.
- تنشئ خوارزمية ED25519 توقيعات قطعية وتوفّر أداءً أفضل من ECDSA_P256.
- تنشئ RSA_SSA_PKCS1_3072_SHA256_F4 توقيعات قطعية وتوفّر أفضل أداء للتحقّق (ولكن التوقيع أبطأ بكثير من ECDSA_P256 أو ED25519).
الحد الأدنى من ضمانات الأمان
- يمكن أن يكون طول البيانات المطلوب توقيعها عشوائيًا
- مستوى أمان 128 بت ضد هجمات الرسائل المحددة التكيّفية للمخططات المستندة إلى المنحنى البيضاوي
- مستوى أمان 112 بت ضد هجمات الرسائل المحدّدة التكيّفية للأنظمة المستندة إلى RSA (يسمح بمفاتيح 2048 بت)
القابلية للتطويع
يكون نظام التوقيع قابلاً للتعديل إذا كان بإمكان المهاجم إنشاء توقيع صالح مختلف لرسالة سبق توقيعها. على الرغم من أنّ ذلك لا يشكّل مشكلة في معظم الحالات، يفترض المبرمجون ضمنيًا في بعض الحالات أنّ التواقيع الصالحة فريدة، وقد يؤدي ذلك إلى نتائج غير متوقّعة.
مثال على حالة الاستخدام
اطّلِع على مقالة أريد توقيع البيانات رقميًا.