سؤال

ما هو ملف .snk؟وأنا أعلم أنه يقف ل مفتاح مسمى بقوة, ، ولكن كل التفسيرات لما هو وكيف يعمل يذهب فوق رأسي.

هل هناك أي تفسير بسيط لكيفية استخدام المفتاح المسمى بقوة وكيف يعمل؟

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

المحلول

يتم استخدام ملف .snk لتطبيق اسم قوي لتجميع .NET.يتكون هذا الاسم القوي من

اسم نص بسيط ورقم الإصدار ومعلومات الثقافة (إذا تم توفيره) - فالفتاح العام والتوقيع الرقمي.

يحتوي SNK على زوج مفاتيح فريد - مفتاح خاص وعام يمكن استخدامه لضمان حصولك على اسم قوي وفريد ​​للتجميع.عندما يتم تسمية التجميع بقوة، يتم إنشاء "تجزئة" من محتويات التجميع، ويتم تشفير التجزئة باستخدام المفتاح الخاص.ثم يتم وضع هذا التجزئة الموقع في التجميع مع المفتاح العام من .snk.

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

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

المقالة "أسرار التسمية القوية".يقوم بعمل ممتاز في شرح هذه المفاهيم بمزيد من التفصيل.مع الصور.

نصائح أخرى

في عالم the.Net إس إن كيه يتم استخدام الملف للتوقيع على الثنائيات المترجمة الخاصة بك.وهذا يسمح بحدوث شيئين:

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

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

آمل أن يكون هذا مفيدًا إلى حد ما.

يتم استخدام الملف .snk لتوقيع التجميعات لتتمكن من إضافتها إلى ذاكرة التخزين المؤقت للتجميع العمومي (GAC).

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

يمكنك قراءة المزيد عن تشفير المفتاح العام على http://en.wikipedia.org/wiki/Public-key_cryptography.

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

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

يتم استخدام ملف .snk للتأكد من عدم تمكن أي شخص آخر من وضع مجموعة خاصة به بدلاً من مجموعتك.يوفر زوجًا من مفاتيح التشفير/فك التشفير.

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

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

في سياق BizTalk Server، أي شخص يقوم بإنشاء أي تجميعات مخصصة يستخدمها حل BizTalk الخاص بك، سيحتاج إلى استخدام ملف .snk لتوقيع التجميع حتى يتمكن خادم BizTalk من تحميله إلى GAC واستخدامه.

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