网络安全专题:数据加密技能、免密登录技能、数字签名、数字证书、安全套接 ...

打印 上一主题 下一主题

主题 969|帖子 969|积分 2907

网络安全专题:数据加密技能、免密登录技能、数字签名、数字证书、安全套接字 SSL 与 HTTPS 协议

(一)数据加密技能 —— 对称加密与非对称加密

数据加密技能(Data Encryption Technology)是指通过对数据举行加密,使得只有授权的用户才能解密。
对称加密与非对称加密是两种常见的加密技能。
1. 对称加密

对称加密:加密和解密利用同一个密钥,称为对称密钥。常见的对称加密算法有 DES、AES 等。
优点


  • 加密、解密速度快,服从高。
缺点


  • 密钥不能在网络上明文传输。如果对称密钥在网络上以明文形式传输,攻击者既可以截获对称密钥,又可以截获数据,从而能够解密两边传输的数据。因此,发送方和接收方之间必须事先商定好对称密钥,还不能通过网络。这个代价将会非常大。
2. 非对称加密

非对称加密:加密和解密利用差别的密钥,称为密钥对,密钥对由公钥和私钥构成。


  • 公钥:公开,任何人都可以得到。
  • 私钥:保密,只有拥有私钥的用户才能解密。
常见的非对称加密算法有 RSA、ECC 等。非对称加密算法生成非对称密钥对时,会起首生成一串随机序列,然后利用一个函数通过这个随机序列生成两个序列,这两个序列就形成了一对密钥对。
密钥对的性质


  • 如果某段数据利用其中一个序列加密,利用另一个序列就可以解密这段数据。
  • 无法通过其中一个序列推导出另一个序列。
非对称加密的特点


  • 公钥加密,私钥解密;
  • 私钥加密,公钥解密。
公钥加密,私钥解密模式是最常见的利用模式:


  • 接收方事老师成一对非对称密钥对,并将私钥留存、将公钥发布(以明文形式)。
  • 传输数据时,发送方利用公钥对数据举行加密,接收方可以通过私钥解密这些数据。
  • 只管公钥被明文公布给了所有人,但只有接收方拥有私钥。
  • 纵然数据在传输过程中被攻击者截获,攻击者没有私钥也无法解密数据。
另外,免密登录技能和数字签名等场景也利用到了非对称加密技能。
3. 对称加密与非对称加密共同完成数据文件的加密和解密

上面提到,非对称加密技能保证了数据加密、解密环节的安全性。然而,利用非对称密钥对加密、解密数据文件,服从远不如对称密钥。当数据文件很大时,这种服从差距更明显。为了分身服从(对称秘钥的特点)和安全性(非对称秘钥的特点),我们可以采取下面的加密、解密策略。
加密过程

  • 发送方生成一个较短的随机序列作为对称秘钥。
  • 将发送的数据利用对称密钥加密。
  • 将对称密钥利用(非对称密钥的)公钥加密。
  • 将加密后的对称密钥和加密后的数据文件发送给接收方。
解密过程

  • 接收方利用(非对称密钥的)私钥解密对称密钥。
  • 利用对称密钥解密数据文件。
如果数据包被攻击者截获,攻击者没有私钥,无法破解对称密钥,也就无法破解数据文件了。
(二)免密登录技能

免密登录技能的底层是非对称加密技能。
用户注册时不提交暗码,而是生成一对非对称密钥,并将用户名和公钥传给服务器,存入用户信息列表。私钥客户端本身留存。
整个登录过程称为“挑战——响应机制”:

  • 客户端和服务器建立连接请求后(通常是 TCP 22 端口),向服务器发送用户名。
  • 服务器会从用户信息列表中找到对应的公钥,然后生成一串随机序列,称为“挑战”。
  • 服务器利用公钥加密“挑战”,并传输给客户端,等候“响应”。
  • 客户端收到加密后的“挑战”后,利用私钥解密,得到原始的“挑战”序列并发回服务器。
  • 服务器收到“响应”后,比对“挑战”,如果完全相同就登录乐成。
有了这套机制,用户在登录服务器时就无需每次都要输入暗码了。
(三)数字签名

1. 什么是数字签名?

数字签名是一种消息认证技能,它可以证实消息发送者的身份。
在物理天下中,我们常常要举行签名。比方:


  • 签署一份合同时,两边须要在合同上签名,这样合同就具备了法律效力。
  • 如果其中一方没有履行合同,另一方就可以拿着签了名的合同追究法律责任。
  • 这份合同两边都签了名,违约方就不能抵赖了。
数字签名也是一样的作用。比方:


  • 软件开辟者开辟一款软件后,必须保证这个软件不会对用户造成粉碎。
  • 为了防止攻击者向程序中植入病毒,开辟者会给程序添加一个数字签名,代表程序是本身写的。
  • 如果程序被篡改,数字签名会立即失效,用户安装时将收到告诫。
  • 如果数字签名没有失效,也就阐明程序没被篡改,这时候再出现问题作者就很难抵赖了。
利用签名(数字签名)时,必须留意以下两点:

  • 颠末签名的数据不能被篡改。物理天下中,颠末签名的文件或合同如果被篡改了,就不能代表两边的共识,如果对于篡改活动没有合理的防御机制,违约方就可以篡改合同并抵赖。

    • 因此,数字签名应当有防止篡改的机制,一经篡改数字签名就失效。

  • 签名必须保证签名者本人签署,不能伪造。物理天下中常常发生伪造签名的情况,比方找领导签名,领导不在场就由他人代签。这种活动违背了签名的原则,违约后可以以不知情为由抵赖。

    • 因此,数字签名应当有防止假冒的机制,必须保证签名由本人签署而不能伪造。

2. 数字签名的实现原理是哈希散列和非对称加密

以开辟者给软件程序签署数字签名为例,解说数字签名的实现原理。
签名过程

  • 软件开辟者写好程序后,利用哈希函数,通过程序文件(任意长度)计算出一个哈希值(长度固定),叫做这个文件的指纹,或择要。
  • 利用非对称密钥对的私钥,加密择要,形成数字签名。
  • 将数据文件、加密过的择要和非对称密钥对的公钥打包起来并发布,供利用者安装并验证。
验证过程

  • 程序利用者安装程序时,利用收到的公钥,解密择要。
  • 利用相同的哈希函数,通过程序文件计算出一个择要。
  • 将两份择要举行比对,如果完全相同,数字签名有效,反之,失效。
3. 数字签名必须由值得信任的机构签发,且具备防伪标识

分析上述流程:

  • 数字签名可以防止文件被其他人篡改。

    • 程序文件在网络中以明文传输,可能被攻击者截获,但攻击者无法假冒作者篡改程序,因为程序一经篡改,数字签名就会失效。

  • 然而,你利用的公钥,肯定就是原作者提供的吗?

    • 如果攻击者本身生成了一对非对称密钥对,篡改程序文件并计算择要,用本身的私钥加密择要,并将篡改后的程序文件、择要和公钥打包发布,用户安装后,利用攻击者的公钥解密择要,也会比对乐成,数字签名没有失效。
    • 此时用户可能认为这个签名是原作者的,但程序已被植入病毒。

  • 数字签名谁都可以生成,无法辨别真伪,所以数字签名不可信。

    • 这就比如,如果身份证无法辨别真伪,那么在地摊上办的假身份证和在公安局办的真身份证将毫无区别。
    • 如果原作者本身向程序中植入病毒,用户安装运行后造成丧失,而数字签名又无法辨别真伪,原作者将会抵赖,将责任推卸给莫须有的攻击者。

  • 结论:数字签名必须由值得信任的机构签发,且具备防伪标识。

    • 身份证起作用的前提是身份证必须由公安部门签发,且具备防伪标识,没有防伪标识的身份证不可信。
    • 数字签名起作用的前提是数字签名必须由值得信任的机构签发,且具备防伪标识,没有防伪标识的数字签名不可信。

(四)数字证书

前文提到,未经值得信任的机构签发的数字签名,没有防伪标识,是不可信的。
因此,合理的机制是:作者向值得信任的机构申请数字证书,值得信任的机构验证作者的干系信息后,作者就可以利用数字证书处理数字签名,从而使数字签名具备防伪标识。
这些值得信任的机构称作证书颁发机构(CA)。每一个证书颁发机构建立之初都生成了一对非对称密钥对(下称 CA),并将 CA 的公钥发布,本身留存 CA 的私钥:这个 CA 的私钥是整个机制的底子,绝对不能泄露。
签发过程

  • 证书颁发机构会生成一对非对称密钥对(下称 A)发给作者,用来做文件的数字签名。
  • 证书颁发机构还应当利用哈希函数计算出 A 的公钥的择要,并利用 CA 的私钥加密这个择要,也发给作者。
作者发布文件时,会打包以下内容

  • 初始的文件。
  • 利用 A 的私钥加密数据文件的择要,形成的数字签名。
  • A 的公钥。
  • 利用 CA 的私钥加密的 A 的公钥的择要。
用户接收文件时

  • 查到 CA 的公钥,利用 CA 的公钥破解 A 的公钥的择要。
  • 查到 A 的公钥是否已经吊销,如果没有吊销举行下一步。
  • 利用哈希函数通过作者提供的 A 的公钥计算出择要。
  • 比对两个择要是否同等,如果同等,阐明数字签名是可信的。
A 的公钥验证通过后,用户就可以放心利用 A 的公钥验证数据文件是否被篡改了。


  • 如果数据文件没有被篡改,用户就可以放心利用这个文件了,如果再出现问题,原作者就抵赖不掉了。
  • 如果数据文件被篡改,用户将放弃利用这个文件,并联系原作者重新提供。
对于作者,如果数字证书不慎泄露,则须要第一时间向证书颁发机构“挂失”,并重新申请证书。此时,证书颁发机构会吊销作者的旧证书,并公示在吊销证书列表中。由于攻击者可能已经利用这份泄露的数字证书假冒作者给用户发恶意文件,思量最坏的情况,用户在接收文件时就必须得查数字证书是否已经在证书颁发机构的吊销列表中。
(五)安全套接字 SSL 与 HTTPS 协议

1. 什么是安全套接字?

安全套接字是 Internet 上利用的一种安全协议,工作在传输层和应用层之间。

在发送方:

  • 安全套接字接收应用层数据,如 HTTP 报文。
  • 安全套接字对数据举行加密,利用的加密技能是非对称加密。
  • 安全套接字将加了密的数据送往 TCP 套接字。
在接收方:

  • 安全套接字从 TCP 套接字中读取数据。
  • 安全套接字对数据举行解密,还原成 HTTP 报文。
  • 安全套接字将 HTTP 报文交给应用层。
2. 为什么要利用安全套接字?



  • 用户访问网站时利用 HTTP 协议传输数据,HTTP 本身不具备加密功能,数据会被明文放在 HTTP 报文中。
  • 如果传输的数据中包罗了账号、暗码等敏感信息,一旦数据报文被攻击者捕获,用户信息将泄露,造成丧失。
  • 因此,一旦涉及到关键信息的传输,我们就要利用安全套接字举行加密处理。
我们访问网站时:


  • 不利用安全套接字加密时,利用 HTTP 协议。
  • 利用安全套接字加密时,利用 HTTPS 协议。背面的“S”代表“Security”,即安全的意思。
  • HTTP 默认利用 TCP 80 端口;HTTPS 默认利用 TCP 443 端口。
3. 安全套接字实现过程

当客户端和服务器建立连接后,两边起首协商对称密钥:

  • 服务器将利用了证书颁发机构的数字证书签名的公钥发送给客户端。
  • 客户端验证公钥合法性后,产生一串随机序列作为对称密钥。
  • 客户端利用服务器提供的公钥加密这个对称密钥,并发送给服务器。
  • 服务器利用私钥解密对称密钥。
至此,两边乐成协商对称密钥,后续将利用这个对称密钥对数据举行加密解密。
4. 安全套接字的其他功能:服务器辨别与客户端辨别

如果用户要求访问的网站必须合法,而不是攻击者伪造的网站,用户可以要求网站出示数字证书,并利用安全套接字验证;
同时,如果网站要求来访的用户必须合法,也可以要求用户出示数字证书,并利用安全套接字验证。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

飞不高

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表