يتفاوض SslStream الخاص بـ .NET دائمًا مع التشفير الأقل أمانًا الذي أملكه.كيف يمكنني تغيير هذا؟

StackOverflow https://stackoverflow.com/questions/91304

  •  01-07-2019
  •  | 
  •  

سؤال

من المفترض أن يتفاوض SslStream مع نوع التشفير وطول المفتاح وخوارزمية التجزئة وما إلى ذلك.مع مكدس SSL نظير لها.عند استخدامه في الكود الخاص بي، أجد أن التفاوض دائمًا يكون افتراضيًا على RC4 وMD5.أرغب في استخدام 3DES أو AES لمزيد من الأمان.

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

إذا كان أي شخص يستطيع المساعدة فأنا أقدر ذلك.

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

المحلول

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

http://msdn.microsoft.com/en-us/library/ms925716.aspx

أطيب التمنيات جيمس

نصائح أخرى

يستخدم SSLStream Schannel المتوفر مع نظام التشغيل.يتم سرد الأجنحة بالترتيب الافتراضي الذي يتم اختيارها به بواسطة موفر قناة Microsoft من أجل:

ويندوز فيستا:

RSA مع AES_128 CBC SHA
RSA مع AES_256 CBC SHA
RSA مع RC4_128 شا

...

ويندوز إكس بي:

آر إس إيه مع RC4 128 MD5
RSA مع RC4 128 شا

RSA مع 3DES CBC SHA

....

يمكنك أيضًا تعديل قائمة مجموعات التشفير عن طريق تكوين طلب مجموعة تشفير SSL إعدادات نهج المجموعة باستخدام الأداة الإضافية لكائن نهج المجموعة في وحدة التحكم بالإدارة لـ Microsoft (نظام التشغيل Windows Vista)

ولكن المشكلة هي أن نظام التشغيل Windows XP لا يشمل الخدمات المعمارية والهندسية في قائمة الأصفار المتوفرة لـ SSLStream.ومع ذلك، من الممكن تغيير إعدادات التسجيل في نظام التشغيل Windows XP:HKLM\System\CurrentControlSet\Control\Lsa\FIPSAlgorithmPolicy 1 للحصول على 3DES الشفرة.

يجب أن يستخدم مجموعة الخوارزميات الأكثر أمانًا الموجودة في كلتا القائمتين.أجد صعوبة في تصديق أن الأمر ليس كذلك، لأن SslStream يقوم بتغليف SChannel SSPI، وإذا تم كسر ذلك، فسيتم أيضًا كسر Internet Explorer وIIS وكل شيء آخر على Windows.

من الممكن أن يكون لديك إصدار قديم من SChannel.dll/Secur32.dll.ما هو إصدار نظام التشغيل وInternet Explorer الذي قمت بتثبيته؟

من الممكن تعطيل البروتوكولات في SCHANNEL.هل يمكنك التحقق من أن هذا لم يتم؟

أنا أستخدم XP SP3 وIE7 مع كافة التحديثات.يبدو أن السجل قد تم تكوينه مع تمكين كل شيء.

في Java، يمكنك طلب الخوارزميات/الشفرات المختلفة وفقًا لاحتياجاتك وتفضيلاتك.قد تكون هناك واجهة برمجة تطبيقات مماثلة في .NET...

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