2013-01-24 13 views
9

मुझे केवल एक सिफर - "एडीएच-आरसी 4-एमडी 5" का उपयोग कर सर्वर से कनेक्ट करने की आवश्यकता है। मैं एक सामान्य समाधान की तलाश में हूं जो मुझे यह जांचने में सक्षम करेगा कि सर्वर किस सिफर का उपयोग कर रहा है (मैं एक प्रावधान सर्वर हूं जो क्लाइंट के रूप में कई अन्य अनुप्रयोग सर्वरों के लिए कार्य करता है और कनेक्ट करने और डेटा प्राप्त करने की आवश्यकता होती है - प्रत्येक बार जब भी यह हो सकता है एक अलग सर्वर हो)।डिफ़ॉल्ट से अलग सिफर का उपयोग

प्रवाह मैं अब तक था:

TcpClient tcpClient = new TcpClient(serverName, port); 
SslStream sslStream = new SslStream(tcpClient.GetStream(), false, null, null,    EncryptionPolicy.RequireEncryption); 
sslStream.AuthenticateAsClient(HostName); 

मैं AuthenticateAsClient में दुर्घटना पर रहते हैं। कारण यह है कि एक एएस केवल निर्दिष्ट साइफर के साथ काम कर रहा है।

मैंने सत्यापित किया है कि यह SslScan tool के साथ मामला है।

मैंने इस सिफर को नीति संपादक (कमांड लाइन में gpedit.msc) के माध्यम से दर्ज करने का प्रयास किया है लेकिन फिर से कोई भाग्य नहीं है।

असल में मैं इस सिफर को कोड से गतिशील रूप से उपयोग करने का एक तरीका ढूंढ रहा हूं।

मैं एक काम कर जावा कोड है:

sslsocket.setNeedClientAuth(true); 
String[] list = new String[1]; 
list[0] = "ADH-RC4-MD5"; 
sslsocket.setEnabledCipherSuites(list); 

C# बराबर का कोई भी विचार?

+4

रास्ता एसएसएल काम करता है वह यह है कि होना चाहिए क्लाइंट सर्वर पर समर्थन करने वाले सिफर सूट की एक सूची भेजता है। (यह 'AuthenticateAsClient' विधि द्वारा किया जाता है।) सर्वर सिफर सुइट को चुनता है जिसे वह उपयोग करना चाहता है। यदि सूची में सिफर सुइट नहीं है जो सर्वर का समर्थन करता है, तो SSL कनेक्शन निरस्त कर दिया जाता है। सुपर त्वरित उत्तर के लिए – dtb

+0

धन्यवाद। लेकिन क्या होगा यदि मुझे पता है कि सर्वर में केवल एक सिफर है जिसके साथ यह काम करता है, और मैं, क्लाइंट के साथ काम करने की आवश्यकता है? – gilad

+1

फिर आपको क्लाइंट कार्यान्वयन की आवश्यकता है जो इस सिफर सूट का भी समर्थन करता है। .NET SslStream को नए सिफर सूट के साथ बढ़ाया नहीं जा सकता है; मेरा मानना ​​है कि यह विंडोज़ जो कुछ भी प्रदान करता है उसका उपयोग करता है। – dtb

उत्तर

0

कोशिश निम्नलिखित:


0) Recheck क्या chipers

1 समर्थित हैं) अपने सर्वर में जाँच करें कि आपने निम्न सुरक्षा अद्यतन स्थापित (आप इसे दूर करने के लिए) http://support.microsoft.com/kb/2898850#AppliesToProducts

की जरूरत

यदि आप जीत 8.1 का उपयोग करते हैं तो यह अक्षम हो जाएगा, दूसरों के बारे में निश्चित नहीं है। यदि आप जानना चाहते हैं कि क्यों माइक्रोसॉफ्ट आपको आरसी 4 को this पढ़ने के लिए अक्षम करता है।

2) मुझे पता नहीं है कि SslStream आप की अनुमति दी ciphersuite (रों) निर्दिष्ट कर सकते हैं कर रहा हूँ, लेकिन आप का उपयोग कर सकते हैं:

http://www.example-code.com/csharp/dh_key_exchange.asp


जावा "ADH-RC4-MD5" (मैं कुछ साइटों है कि यह प्रयोग किया जाता है बनाए रखने)

Supported Protocol = tls (or ssl version 3) 
Cipher Algorithm Type = Rc4, 
Hash Algorithm Type = Md5 128 bit, 
Exchange Algorithm Type = DiffieHellman 
संबंधित मुद्दे