Security

共236篇文章。

备忘:OpenSSL valgrind报"Conditional jump or move depends on uninitialised value(s)"的解决

• Security

最近改一个用到 OpenSSL 的程序,顺手用 valgrind 抓了一下,发现很多「Conditional jump or move depends on uninitialised value(s)」的错误。发现 OpenSSL 的 FAQ 提到,在生成随机数时会将输入缓冲区(未初始化)的内容直接混入 entropy pool,使用 valgrind 时便会导致警告。

阅读全文… ( 本文约396字,阅读大致需要1分钟 )

廉价GPU时代的密码策略

• Security

很久以前我曾经建议过别人使用足够长的一大串英文单词作为密码,现时这样做已经完全不能保障安全了。

Colin Percival最近在 一篇文章 中提到了这样的数据:使用价值 $10k 的 GPU 破解使用MD5的34位英文密码(例如"You will never guess this password")所需要的时间仅为两小时(如果使用专用的硬件,以$1M投资的ASIC可以在一秒之内完成破解)。如果密码长度不够长的话,采用了特殊符号的帮助也不大。足够复杂的8位密码,例如"6,uh3y[a"使用 $10k 的 GPU 破解只需10个小时。

阅读全文… ( 本文约457字,阅读大致需要1分钟 )

BIND安全漏洞 CVE-2011-1910

• Security

这次休假前头一天晚上收到了 ISC 发来的安全公告 CVE-2011-1910。我起草完 FreeBSD 安全公告 FreeBSD-SA-11:02.bind.asc 之后就去休假了,这里补上这个漏洞的说明。

无论你是否使用 DNSsec,只要用 BIND 9.x 来做 DNS 缓存解析服务(而不仅仅做Authoritive DNS服务),就有可能受到这个漏洞的影响。而攻击的方法也相当简单,攻击者只要建立一个 DNS 域,令在回应域名不存在的同时发回一个大的 RRSIG RRset,即可触发 BIND 的某处断言令其退出。

阅读全文… ( 本文约294字,阅读大致需要1分钟 )

奇怪的钓鱼信

• Security

今天收到一封奇怪的钓鱼信,它声称来自 Domain Registration of America,准确地说出了我的名字和拥有的域名中的两个,并建议我立即把域名转移到他们那里。

开价是……一年$30。

阅读全文… ( 本文约350字,阅读大致需要1分钟 )

tarsnap修正了一个重大安全漏洞

• Security

今天 Colin 在blog上介绍说 他刚刚修正了一个 TarSnap 重大安全漏洞。简单地说,用来加密密钥文件的AES-CTR实现时,计数器没有增加(正确的实现中计数器应该每次递增),导致在已知明文时能够通过加密块推算出一块数据使用的密钥,并用它来解密余下的数据。

阅读全文… ( 本文约272字,阅读大致需要1分钟 )

在服务器上用gpg-agent

• Security

上回书说到通道服务器的问题。在 /etc/csh.cshrc 中添加下列内容,可令系统同时启动 gpg-agent 和 ssh-agent:

1
2
3
4
5
6
7
setenv SSH_AUTH_SOCK    /dev/null/nonexistent
if ("${TERM}" != "su") then
        [ -e ~/.gpg-agent.csh ] && source ~/.gpg-agent.csh >& /dev/null
        echo UPDATESTARTUPTTY | /usr/local/bin/gpg-connect-agent >& /dev/null || /usr/local/bin/gpg-agent --daemon --ignore-cache-for-signing >& ~/.gpg-agent.csh && source ~/.gpg-agent.csh >& /dev/null
        [ -e ~/.ssh-agent.csh ] && source ~/.ssh-agent.csh >& /dev/null
        [ -e ${SSH_AUTH_SOCK} ] || ssh-agent -c -t 20m >& ~/.ssh-agent.csh && source ~/.ssh-agent.csh >& /dev/null
endif

启动 gpg-agent 的作用是在一段时间内不用重新输入 gpg 的密码。

阅读全文… ( 本文约412字,阅读大致需要1分钟 )

一个简单的密码生成器

• Security

我个人比较喜欢复杂的随机生成的密码。这是一个JavaScript的密码生成器,完全裸奔的界面,可以自行设定字母、数字和特殊符号出现的概率(默认是字母=3×52,数字=7×10,特殊符号2×27,或者78:35:27的关系)。

使用方法很简单,设置参数之后按Generate按钮,系统会随机生成希望数量的随机密码。然后从里面挑一个自己觉得容易记住的就可以了。

阅读全文… ( 本文约241字,阅读大致需要1分钟 )

在服务器上运行的 ssh-agent

• Security

之前 @quakelee 提的一个问题(通道上登录第二台机器作为跳板登录第三台机器,但不把ssh私钥传到中间那台机器上)。如果shell是csh,在 ~/.cshrc 中加入:

source ~/auth.csh
[ -e ${SSH_AUTH_SOCK} ] || ssh-agent -t 15m -c > ~/auth.csh && source ~/auth.csh

然后所有的 csh 就可以使用同一个ssh agent了。

阅读全文… ( 本文约294字,阅读大致需要1分钟 )

关于备份

• Security

指望硬盘不挂掉是 很拼人品的事情(附带说一句,从某种意义上说,21世纪的硬盘质量并没有下降,只是单位容量出现故障的概率没有显著提高,而硬盘容量的扩大使得单块硬盘的故障率看起来提高了,但是如果我们从单位容量的故障率来看,坏损率并没有非常显著的增长)。所以想要长久地保存数据,就必须采用各式各样的冗余和备份手段。冗余和备份是不一样的,前者往往会采用同样的访问控制逻辑,提供在线或近线的数据存储,强调的是数据访问的及时性;而后者则强调的是数据的可恢复性。

关于访问控制

一般来说,不希望备份与原始数据采取相同的访问控制机制。例如,对网站来说,可以读写数据库的那个 Web 访客的数据库账户,很可能并不能直接读写网站的备份数据。有时,备份甚至是以一种"外科手术"的方式进行的:对文件系统做快照,然后将快照打包发到异地的另一套系统。

阅读全文… ( 本文约1155字,阅读大致需要3分钟 )