最近,家里的神州老笔记本没电池了,要拆C面才能换主板电池,懒得动手,于是搞了个Network Time来做对时。主要是未搞对时之前,所有https的站点都用不了,老人家也抱怨炒股不行,崩溃了。。。这时候才知道,原来证书也是要验证时间的。
在SSL会话里,客户端需要验证服务器的身份,这是通过证书检查来完成的。证书验证中,会涉及跟时间相关的两点:
- 服务器的证书(及涉及到的其他证书)的有效验证时间需要包含当前时间。每个证书都有notBefore(不早于)和notAfter(不晚于)字段,当前时间必须落在这两者之间。
- 客户端需要验证证书的撤销情况。这是通过从CA获取CRL(证书撤销链)来实现的。一个CRL只有在“不太老”的情况下才算是可接受的。同样,CRL有thisUpdate字段,标记CRL生成时间,以及一个nextUpdate字段,大致相当于CRL的过期时间。
证书签发的过期时间对客户端的安全十分重要。假设服务器不幸被攻破,私钥被偷。通过CRL和证书自身有效期,大家可以及时修正泄密证书,防止被泄露的证书进行中间人攻击。所以,当主板电池挂掉的时候,安全往往难以受到保障。。
参考链接:What role does clock synchronization play in SSL communcation