سؤال

لقد تم تسليم مجموعة من sertificates الاختبار على البطاقات الذكية لتطوير حل يتطلب توقيع رسائل XML باستخدام PKI. يبدو أن كل بطاقة ذكية (فعلية) لديها شهادتين مخزنة عليها. أقوم باستيرادها إلى متجر شهادات Windows باستخدام البرامج التي يقدمها مزود البطاقات الذكية ، ثم استخدم الرمز الذي يشبه ما يلي للتكرار عبر الشهادات المثبتة:

foreach (X509Certificate2 x509 in CertStore.Certificates) {
  foreach (X509Extension extension in x509.Extensions) {
     if (extension.Oid.Value == "one we are interested in") {
        X509KeyUsageExtension ext = (X509KeyUsageExtension)extension;
        if ((ext.KeyUsages & X509KeyUsageFlags.DigitalSignature) != X509KeyUsageFlags.None) {
            // process certs here

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

شكرًا.

هل كانت مفيدة؟

المحلول

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

نصائح أخرى

كما قرأت RFC 5280 (4.2.1.3) ، عدم التربية هو مجموعة من الأرقام الرقمية. وبعبارة أخرى ، فإنه يمنح كل قدرات DigitalsIngureature ثم بعض. من الناحية الفنية ، ما يطلبهون صحيح ، وإن كان غير عادي.

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

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top