Hi All, Openssl Developers,

  Anyone is considering this is good solution or a bad solution?
I sent this serveral days ago,and didn't get any response.
  anybody please give some response!

  should I add some more informations? the testing steps and result?


Thanks a lot for your response!
Guanjun




>>> On 11/21/2011 at 05:49 PM, in message <4ECA1E9C.19D : 22 : 21801>, Guan Jun 
>>> He
wrote: 
> Hi,
> 
>  I have just produced a patch against the upstream HEAD version, to seek a 
> way to against DoS attack in openssl itself, 
>           the logic is simple, get client's ip addressin BIO layer, and send 
> this info to upper SSL layer; In SSL layer, 
>           according to the client ip and control policy to do control. 
>           Now, the basic data struct used is list, that's simply, but 
> time-consuming if large amount of client accessing
>           it concurrently. So, next step, I'm considering change to use 
> rb-tree to gain performance, but I have not the
>           environment to test the accurate performance. For now, I can only 
> run a DoS attack script to simulate a DoS attack.
> 
> 
> below are the mails discussed about this issuse several days ago.
> 
>>>> On 11/16/2011 at 02:09 PM, in message
> <4ec3c4040200001600009...@novprvlin0050.provo.novell.com>, "Guan Jun He"
> <g...@suse.com> wrote: 
> 
>> 
>>>>> On 11/15/2011 at 10:42 PM, in message <20111115154237.7dca96f4@laverne>, 
> Hanno
>> Böck<ha...@hboeck.de> wrote: 
>>> Am Tue, 15 Nov 2011 02:48:28 -0700
>>> schrieb "Guan Jun He" <g...@suse.com>:
>>> 
>>>>    Add a switch to renegotiation, so that renegotiation can be
>>>> controled by program. And it provides a way to programmer to
>>>> implement some sort of custom throttling. Basically, this patch is
>>>> produced with the background of CVE-2011-1473, the DoS against
>>>> renegotiation.You guys must have known it.Maybe the patch is not that
>>>> useful for some use cases.But, it's the first step, and it gives apps
>>>> a easy choise to fight against DoS. And, maybe the second steps can
>>>> also be done in openssl, add a simple monitor to monitor client
>>>> initiatd renegotiations(for each session or just globally), and
>>>> according to the monitoring result to set the renegotiation switch
>>>> for a time slice.the monitor can be as simple as just a counter,I'm
>>>> still seeking an efficient way to do this.And ask for comments and
>>>> advices from you guys.
>>> 
>>> If I understood the THC DoS, this is completely pointless. Their tool
>>> uses renegotiation, but there's absolutely nothing special about
>>> renegotiation, the attack works also with normal connections.
>>> 
>>> See THC on this matter:
>>> "SSL-DOS released. Some organizations already found out
>>> about this release a while ago and mistakenly identified it as an
>>> SSL-RENEGOTIATION BUG. This is not true. The tool can be modified to
>>> work without SSL-RENEGOTIATION by just establishing a new TCP
>>> connection for every new handshake. "
>>> http://www.thc.org/thc-ssl-dos/
>>> 
>>> 
>>> Also, there's been a lot of mixup with old and new renegotiation and
>>> wrong infos floating around. The THC DoS is not really related to that.
>>> 
>>> It's not easy to find a clean way to mitigate those issues - the core
>>> problem is that a connection causes more load on the server than on the
>>> initiating client - changing that would be possible only in the TLS
>>> design. Connection limits can help (though they shouldn't be
>>> limited to renegotiation), but it's not really a nice solution.
>> 
>> 
>> A simple renegotiation needs more actions than normal connection on the 
>> server,
>> so it can do some help if the attacking client ask for renegotiations.
>> 
>> 
>> For normal connections, if not do connection limits,perhaps there is no way 
>> to 
>> do control in tls itself without changing the design.And that's an issuse 
>> that 
>> any server must face to, and basically that can not be done in high layer of 
>> 
>> the protocals, but it's possible to do it in the low layer of the protocals 
>> or need info from the low layer.
>> 
>> It would be possible only in the tcp/ip connection layers,in that layer 
>> server side 
>> can get the ip address of the client,according to that the tcp/ip layer can 
>> do 
>> control only against the attacking client.
>> 
>> By the above tips, 
>> * client and server co-work.
>>   tls can add an item "ip-address-of-the-client" to the handshake protocal 
>> in 
>>   client side(this can be done transparently in SSL_set_bio), and in server 
>> side
>>   tls can change to ask for client's ip address while establishing a tls 
>> connection. 
>> but this is not compatible with the tls version not added this.
>> 
>>  * do all transparently in server side.
>>    in BIO level get client's ip address, add it to the SSL struct, and send 
>> it to do
>>    subsequent process.  
>> this is  compatible.
>> 
>> the left steps are to 'monitor' the actions of each client, if decided an 
>> attack,simply
>> take some actions to against that client, e.g. forbid that client for a time 
>> slice.
>> 
>> 
>> Regards,
>> Guanjun 
>> 
>> 
>> 
>> 
>> 
>>  
>> ______________________________________________________________________
>> OpenSSL Project                                 http://www.openssl.org
>> Development Mailing List                       openssl-dev@openssl.org
>> Automated List Manager                           majord...@openssl.org
> 
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
Development Mailing List                       openssl-dev@openssl.org
Automated List Manager                           majord...@openssl.org

Reply via email to