【安全】基础概念梳理-基本加密方式、数字签名、证书

一、两种基本加密方式

1.1 对称加密

        对称加密是指双方持有相同的密钥进行通信,加密速度快。常见的对称加密算法有DES、3DES、AES等。存在问题:通信双方如何获得相同的密钥?

1.2 非对称加密

        非对称加密,又称为公开密钥加密,是为了解决对称加密中的安全问题而诞生,一个称为公开密钥(public key),即公钥,另一个称为私钥(private key),即私钥。相对于对称加密来说,其加密速度很慢。

  • 公钥(public key)是对外开放的,私钥(private key)是自己拥有的。
  • 公钥(public key)加密的数据,只能用私钥(private key)解密。
  • 私钥(private key)加密的数据,只能用公钥(public key)解密。

二、如何使用两种基本加密方式保证数据安全

2.1 数据安全的类型

        现在信息传输中,需要保证三类数据传输安全:

        a. 数据的保密性:即保证数据即使被窃听,hacker也无法获取信息内容;

        b. 数据的完整性:即保证数据不会中途被hacker修改

        c. 身份认证:即保证接收的数据来源可信,不是hacker冒充发送的。

2.2 数据保密性 

        解决方法:对称加密+非对称加密

        为保证数据的保密性,可以使用对称加密或非对称加密。使用对称加密,速度相对非对称加密很快,但是存在一个安全问题,密钥如何传递?

        由此通用的方法是使用非对称加密+对称加密来完成,即用非对称加密方式传输对称加密的密钥,利用对称密钥进行数据传输。具体过程为:客户端使用公钥对对称加密的密钥进行加密,然后传递给服务端,服务端使用私钥进行解密确认密钥。两端开始对称加密的传输数据。

2.3 数据完整性

        解决方法:散列算法+非对称加密

        数据传输的途中,数据有可能被第三方劫持篡改。为了防止这种情况的通用方法是使用散列算法如SHA1,MD5等。使用散列算法将传输内容hash一次获得hash值(即摘要)。客户端使用服务端的公钥摘要和信息内容进行加密,然后传输给服务端,服务端使用私钥进行解密获得原始内容和摘要值,这时服务端使用相同的hash算法对原始内容进行hash,然后与摘要值比对,如果一致,说明信息是完整的。

2.4 身份识别(数字签名)

        解决方案:证书(私钥公用)

        为了保证数据安全性,在接收到数据后,接收方需要验证数据的发送方的身份。通用方法是把发送端的公钥发送给接收端,发送端通过把自己的内容使用私钥加密然后发送给接收端,接收端只能用发送端的公钥解密,自然就验证了发送端的身份。

 进阶思考:

        在保证数据保密性、完整性、来源确定的时候,都需要互相持有对方的公钥。为保证数据保密性,数据发送方要有接收方的公钥;为保证完整性,数据发送方要有接收方的公钥;身份识别的时候,数据接收方要有发送方的公钥。

        这就引出一个问题,这个公钥要如何传输到对方的手中?如果在传输公钥的过程中,公钥被劫持,第三方就能伪造一对公私钥,在接收方这里伪装发送方,在发送方这里伪装接收方。为了避免这种情况,引出数字证书。

三、数字证书

3.1 数字证书的作用与内容

        数字证书是由权威容的CA(Certificate Authority)机构颁发给服务端(数据发送方)。CA机构通过服务端(发送方)提供的相关信息生成证书,证书内容包含了持有人的相关信息服务器的公钥签署者签名信息(数字签名,即用私钥加密,保证这个信息真的来自签署者)等。

        但是证书也是可以伪造的,如何保证证书为真呢?

        一个证书中含有三个部分:"证书内容,散列算法,加密密文"。证书内容会被散列算法hash计算出hash值,然后使用CA机构提供的私钥进行RSA加密。过程如下图:

当客户端(接收方)发起请求,要客户端(发送端)的公钥的时候,服务器将该数字证书发送给客户端,客户端通过CA机构提供的公钥对加密密文进行解密获得散列值(数字签名),同时将证书内容使用相同的散列算法进行Hash得到另一个散列值,比对两个散列值,如果两者相等则说明证书没问题。

3.2 数字证书分类

一些常见的数字证书类型:

  • X.509#DER 二进制格式证书,常用后缀.cer .crt
  • X.509#PEM 文本格式证书,常用后缀.pem
  • 有的证书内容是只包含公钥(服务器的公钥),如.crt、.cer、.pem
  • 有的证书既包含公钥又包含私钥(服务器的私钥),如.pfx、.p12

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值