- <李>
数字签名
注意这里我们不直接对数据进行签名算法的加密,而是先对数据进行散列。这样做是为了效率。
数字签名可以达到下面几个作用:
- <李>
消息认证(消息Authenctication)
李> <李>数据完整性(数据完整性)
李> <李>不可否认性(不可抵赖性)
李>
数字签名具有,隐私,认证,完整性跟不可否认性的安全要素。
这里有一个更进一步的安全话题,就是我还想保证信息的私密性。这样我们希望把数据也加密起来。
在整个过程中就要有两对公共/私有密钥。一对用来加密,一对用来签名。
用来加密的一对,私钥掌握在接受者手中,原因是这样接收者只要发布他的公钥,想要跟他秘密通信的人都可以用这个公钥来跟接受这通信了。
用来签名的一对的私钥找我在发送者手中,这个事很好理解的。
有了这两对密钥之后,我们还得考录一个问题,那就是先加密再签名还是先签名在加密。
我们一般不采用先签名再加密,原因是,如果这样接受这就可以冒充发送者把信息转给第三方。做法就是受到信息后用自己的私钥解开信息,得到签名的数据,然后用第三方给的公钥加密这些信息然后发给第三方。
所以我们采用先加密再签名。
2。证书
基于上面公钥跟证书的描述,我们可以更进一步。我的公钥是要发布出去的,为了避免公钥的滥用,我们得有一套机制来管理。这里就是要说到的PKI(公钥Infrastruct) .PKI的组件有:
- <李>
李> <李>
李> <李>
李> <李>
李> <李>
李>
这里的重要概念就是证书,实际就是X。509年证书,证书是由CA颁发,CA会整个签名信息。给到用户的公钥就存放在证书里,除了公钥,这里还存放证书客户信息,过期信息,发布者跟使用。
下面是证书颁发过程。
CA,是证书颁发机构
,,,,CA是有层次结构了,根CA的证书是自签名的,下级证书是由上级签名。
RA,验证证书申请者的机构
私钥Tokens