形象理解数字证书的基本安全功能

利用数字证书,可以实现在网络世界中保证4个基本的安全功能,分别是身份验证、保密性、完整性和抗抵赖性。下面形象地总结一下这4中特性以及实现的大概原理。

一、身份验证

我们说数字证书是“网络身份证”,显然的,首要任务是有力地证明我是谁这个问题。身份验证包括:验证我是不是确实拥有这个证书的私钥;这个证书是不是盗版的,即是否是权威机构(CA)颁发的;这个证书是不是在有效期内等。

举个例子,数字证书又俗称U盾,我想在家的电脑上登陆我的网上银行,那我插上U盾,打开网银登录网页,输入登录密码,点击登录。点这一下,程序干啥了?

首先,得验证我的登录密码对不对吧,好,对着呢。

在打开网银登录页面的时候呢,网银那边的服务器就生成一段随机数发到我电脑这边了,现在登录程序就拿我的U盾里的私钥给这段随机数加密,也叫签名。

最后,把我证书和签名一起送到服务器。

所有用户在验证数字签名之前,都应该先验证证书的有效性。

服务器收到后,用CA公钥来验证CA签名(证书的一部分)的真实性来验证是否权威。也即验证了我公钥的真实性。再通过CRL或者OCSP查询证书的状态就可以验证有效期。

然后进行签名校验,拿我的公钥去解密签名。得到的随机数和服务器留底的一比,一样的话就证明我的私钥是真的。

以上验证都通过后,就完成了对我的身份验证。

二、保密性

我想给你送个价值连城的宝贝,这肯定不能让别人截胡了,我就想只有你能收到,别人拿不到。这时就用上了数字信封。

灵魂画手配图:

我先用一个对称密钥把宝贝锁起来,上图的覆盖色对应用什么颜色的密钥加密的,小椭圆(锁孔)的颜色表示需要用什么颜色的密钥解锁。然后我拿个锦盒把我的对称密钥装起来,用你的公钥锁上。然后一起打包发快递给你。

你收到之后,先拿你的私钥把锦盒打开,取得里面的对称密钥,再拿对称密钥解锁,得到宝贝。

因为锦盒是用你的公钥锁的,只有你才有开锦盒的私钥,这就保证了只有指定的接收方你才能拿到宝贝,这就是保密性。

三、完整性

上面的保密性只能保证是你本人收到的,但却不能保证发送方我的身份真实性,以及我给你的东西有没有被人动过手脚。

保证完整性,有两个层面,首先保证确实是我发的,其次东西被别人改了能立马察觉。

(1)利用数字签名保证发件人身份

我用我的私钥对文本内容加密,这个过程就产生了数字签名,然后文本内容与数字签名一起打包发送。你收到后,先拿我的公钥去解密数字签名,能解开,就说明确实是我发的,没被人冒充。数字签名解开之后,就得到一份解密版文本,和原文一对比,就能判断有没有被篡改。

内容少点还好,但非对称密钥的加密解密过程是很慢的,内容一多就效率低下了。

(2)利用摘要算法保证内容被篡改立马察觉

摘要算法是啥?它将任意长度的输入消息数据转化成固定长度的数据输出,将复杂数据和简单数据的对应起来。实际上它是一个哈希算法,输入原文数据,输出哈希值。

简单来讲,它有几个重要的特征,第一,它不可逆的,就是说你想从摘要数据反推原始数据是非常难的;第二,它对输入数据变化非常敏感,哪怕你就改了个标点符号,我摘要数据都变得天差地别,一眼就看出来了;第三,不同输入得到相同输出的概率极低,很难用不同的输入数据伪造相同的摘要数据。

因此,摘要算法和数字签名结合,就能很好的保证数据的完整性。

我首先用摘要算法将原文计算成摘要数据,然后用我的私钥对摘要数据进行加密,形成数字签名。将数字签名附在原文底下一起发给你。

你收到后,先用我的公钥解开数字签名,能解开,说明确实是我发的;解开之后得到我做的摘要数据,然后你把原文用摘要算法计算一遍,得到你做的摘要数据,两个摘要数据对比,一致表示未被篡改。

四、抗抵赖性

一般正规的文件,签名下面必须写上签名的时间。比如一份产品测试验收文件,我是验收人,9月1日测试的时候我没认真看我就签名了,没写日期,第二天同事就发现了产品故障,找到我,我抵赖说那是我8月15签的名,那会产品确实是合格的。

数字签名只能保证确实是我这个人,但并不能确定什么时候签的。所以要使用时间戳服务。

通过数字签名技术将数据和时间绑定后的结果叫做时间戳,由权威的第三方机构TSA(time stamping authority)提供。

我先计算出原文的摘要数据,再用我的私钥进行加密,形成我的数字签名。然后发给TSA,TSA把当前时间附在我的数字签名上,再用TSA的私钥对数据进行签名,形成时间戳。

五、总结

一个可能的发送-接受流程如下:

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值