SSL安全性与nginx配置

服务器SSL/TLS的配置不仅包括证书和私钥,还需要配置合适的SSL参数以保证安全性: 1. 禁用SSLV1,SSLV2等不安全的协议 2. 使用适当的ciphers:能够抵御beast attack (针对SSL 3.0和TLS 1.0)和其它攻击,并且提供perfect forward secrecy (PFS). 下面的nginx配置能够在Qualys’s SSL Server Test中得到A Grade。而nginx默认的ssl配置只能得到B(不能防止beast attack)。 ssl_prefer_server_ciphers On; ssl_ciphers AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:RC4:HIGH:!MD5:!aNULL:!EDH; nginx官方文档里推荐的ciphers设置: ssl_ciphers RC4:HIGH:!aNULL:!MD5; ssl_prefer_server_ciphers on; 但此ciphers在Internet Explorer和Safari下可能不能提供足够的安全性。 另外,对于客户端来说,推荐使用Firefox或Chrome浏览器。Internet Explorer和Safari由于优先使用的ciphers较弱,访问绝大多数SSL网站时都无法保证PFS。

Continue reading

淘宝我去年买了个表的

月初手机欠费停机,想到淘宝充点话费,结果登陆时要求安全验证输入手机验证码。验证你麻痹。我去年买了个表的。淘宝越来越恶心了。。 我个人非常厌恶各种所谓的“安全”措施,比如: 1.要求安装数字证书或安全控件(如支付宝、网银) 2.不能保存cookie下次自动登陆。(如淘宝、Paypal) 3.第一次尝试登陆就需要输入验证码。(如360buy) 4.其它乱七八糟安全措施,比如必须手动输入密码,不能用Lastpass自动填写、禁止复制黏贴等(如Web QQ)。 5.要求输入手机验证码。(如网银) 这些措施本质上是通过人为添加额外的限制,妨碍信息的自由流通,最终干涉了人们的自由。而自由是第一位的自然权利(natural rights)和普世价值;即使牺牲安全,也必须首先保证自由。为了所谓的“安全”而限制自由,是本末倒置。 网站和在线服务提供商应该只使用业界和工业标准的、对用户无干扰的技术手段来保障安全性。如SSL client authentication(正面例子是StartSSL)。像手机验证码这种是最严重的干扰,因为它只能用手机接收和人工输入,无法使用程序或脚本自动化完成,强制割裂了完整的在线操作流程。在任何情况下都不应该使用这种手段;至少也应该提供用户选择的权利。

Continue reading