Security

共 298 篇文章。

计时攻击和登录系统设计

Security

计时攻击是一种通过观测由于某些操作时泄露出来的时间信息来获取更多信息的攻击。由于设计和实现的不同,攻击者能够通过计时得到的信息也会不一样。简而言之,作为安全系统的设计者,必须对可能泄露信息的各种渠道有充分的了解,并针对它们采取因应措施。

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

为什么安全更新通常在周三发表

Security

目前多数软件产品的安全更新都是在周二或者周三公布了。这种做法 据说 是微软开始采用的,不过具体是谁先开始这么做,目前我还没有找到非常可靠的资料。

一般来说,软件开发者在发布安全更新之前,需要做下面这些事情:

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

全盘加密

Security

最近在琢磨一个产品里实现全盘加密的问题,简单来说就是加入存储卷的硬盘存储的是完全加密的数据。对于保存机密数据(例如患者数据)的存储设备来说,这一点十分重要,举例来说,如果硬盘出现故障,OP可以直接把硬盘拆下送回厂商,而不是必须做抹除数据的动作。

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

水密隔舱与可靠系统设计

Distributed Computing

我国在最晚不晚于宋代发明了水密隔舱。所谓水密隔舱,是指将船体分成若干个互不相通的舱区,这样当一个或几个舱区进水时,整个船体仍然可以有足够的浮力而不致沉没。这是一项相当重要的发明,类似的设计思路在其他领域也有应用。

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

为什么输入敏感数据(如登录信息)的页面也要做成 https?

Security

有一种错误的观念是,对于不太敏感的内容(例如论坛之类),只要用 https 保护登录过程中提交密码的部分就足够了。例如国内非常流行的网易邮箱,很早以前便提供了"SSL安全登录"的选项,这样做显然是比完全不提供SSL登录选项的新浪邮箱要强多了[注1],但是仍然是不够的。

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

用 fcgiwrap 来跑 Movable Type

Security

我的 blog 在之前一直是用 Apache HTTPD 来作为 CGI 引擎来跑 Movable Type。在迁移到北美之前,使用两个域名/IP来分别运行静态页面 (lighttpd) 和 CGI 内容。后来因为全面转向 nginx,在迁移过程中改成了使用一个域名、使用 nginx 在前面跑静态页,并作为反向代理来连接后端的 Apache 1.3.x 实例(先前是 Apache 2.2.x,由于这个实例只用来跑 CGI,所以采用了较低版本的 Apache 以节省资源)。

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

密码阴谋论

Security

大家都喜欢阴谋论,所以今天说个关于密码的。话说,假如你拿到了一个大网站的密码数据库,然后恰好这个数据库里面的密码又都是明文,但这个数据有点旧了,怎么样才能立即得到其中的活跃用户的密码呢?

假设你可以控制若干家网络公司所使用的网络基础设施,例如事先装了一些监控非法活动的防火墙的话,方法就很简单了:公布这个数据库,或者公布至少其中的一部分,然后做简单的监听就可以了。这个过程不但可以知道他们的新密码是什么,而且可以知道旧密码是否是对的,还可以知道他们的安全习惯如何,要知道,假如没有这个事件,绝大多数人可能正靠着他们的简单密码睡大觉。

当然,攻击者显然还会注意到,这些网站,以及很多其他网站,多数还都没有对用户做最起码的保护,即使用 https 来保护登录过程。

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

unbound之DNSSEC缓存服务器作弊条

Security

DNSSEC 是一种验证域名信息真实性的协议扩展。个人之前一直觉得这事相当的蛋疼:DNS协议本身是不安全的,而DNSSEC无非是增加了数字签名验证,而这验证还依赖于相当复杂的密钥更新和分发机制,这一切都给它的推广带来了困难。

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

W^X (可写与可执行互斥)

Security

Von Neumann体系结构的计算机系统的一项特点是使用内存来保存程序和数据。这种设计减少了制造计算机的成本,但是也带来了一个弱点:因为事实上程序也是一种数据,如果这些"数据"在运行时可写,程序便有可能修改其本身,而如果这一特性被误用,例如由于程序本身的设计缺陷,攻击者便可以利用它来执行攻击者希望的任何事情。

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