- 数字签名
注意这里我们不直接对数据进行签名算法的加密,而是先对数据进行hash。这样做是为了效率。
数字签名可以达到下面几个作用:
- 消息认证(Message Authenctication)
- 数据完整性(Data Integrity)
- 不可否认性(Non-repudiation)
数字签名具有,隐私,认证,完整性跟不可否认性的安全要素。
这里有一个更进一步的安全话题,就是我还想保证信息的私密性。这样我们希望把数据也加密起来。
在整个过程中就要有两对 public/private密钥。一对用来加密,一对用来签名。
用来加密的一对,私钥掌握在接受者手中,原因是这样接收者只要发布他的public key,想要跟他秘密通信的人都可以用这个public key来跟接受这通信了。
用来签名的一对的私钥找我在发送者手中,这个事很好理解的。
有了这两对密钥之后,我们还得考录一个问题,那就是先加密再签名还是先签名在加密。
我们一般不采用先签名再加密,原因是,如果这样接受这就可以冒充发送者把信息转给第三方。做法就是受到信息后用自己的私钥解开信息,得到签名的数据,然后用第三方给的公钥加密这些信息然后发给第三方。
所以我们采用先加密再签名。
2. 证书
基于上面公钥跟证书的描述,我们可以更进一步。我的公钥是要发布出去的,为了避免公钥的滥用,我们得有一套机制来管理。这里就是要说到的PKI (Public key Infrastruct)。PKI的组件有:
- 证书 Public Key Certificate, commonly referred to as ‘digital certificate’.
- 私钥令牌 Private Key tokens.
- 证书授权 Certification Authority.
- 注册授权 Registration Authority.
- 证书管理系统 Certificate Management System.
这里的重要概念就是证书, 实际就是X.509证书,证书是由CA颁发,CA会整个签名信息。给到用户的公钥就存放在证书里,除了公钥,这里还存放证书客户信息,过期信息,发布者跟使用。
下面是证书颁发过程。
CA 是证书颁发机构
CA是有层次结构了,根CA的证书是自签名的,下级证书是由上级签名。
RA 验证证书申请者的机构
Private Key Tokens 私钥令牌 防止私钥被盗,就算存放的机器被侵入,也有安全保证
3. 新的密码技术
Elliptic Curve Cryptography
Quantum computation