信息加密是计算机网络安全中一項重要的技术利用密码学的原理和方法对数据传输提供保护的手段。信息加密的一般模型
输入的原始信息;密文是明文经过加密变换后嘚结果;公开密钥加密也称为是参与密码变换的参数包括加密公开密钥加密也称为和解密公开密钥加密也称为;加密算法是将明文变换為密文的变换函数,相应的变换过程称为加密;解密算法是将密文恢复为明文的变换函数相应的变换过程称为解密。信息加密的要求是滿足:
即用加密算法得到的密文总是能用一定的解密算法恢复出原始的明文来最理想的加密技术是无论攻击者获取了多少密文,都无法唯一地确定对应的明文这种情况称为无条件安全或者理论上不可破译。但在实际情况中只要给予足够的时间和配备足够强大的计算资源,几乎任何密码体制都是可以破译的因此,人们更加关心的是在一定的时间和计算资源限制下密码体制是否可以被破译。如果某一密码体制在有限的时间内被可以使用的计算资源破译则称该密码体制在计算上是不安全的。
密码体制根据加密原理的不同可以分为对称公开密钥加密也称为密码体制和非对称公开密钥加密也称为密码体制两种类型
1. 对称公开密钥加密也称为密码体制
对称公开密钥加密也称為密码体制又称单公开密钥加密也称为密码体制,是指加密公开密钥加密也称为和解密公开密钥加密也称为相同的密码体制对称公开密鑰加密也称为密码体制的保密性主要取决于对公开密钥加密也称为的保密,其加密和解密算法是公开的在进行加密之前,首先要产生一個公开密钥加密也称为该公开密钥加密也称为或者由信息发送方生产,然后通过保密的信道传递给接收方;或者由可信的第三方生成嘫后通过保密的信道分别发送给发送方和接收方。要保证对称公开密钥加密也称为密码体制的安全性其加密算法必须足够复杂,同时其公开密钥加密也称为必须保密并且有足够大的公开密钥加密也称为空间从而使得攻击者在截获密文和知道加密算法的情况下,仍然无法還原出明文最有影响的对称公开密钥加密也称为密码体制是 1977 年美国国家标准局颁布的数据加密标准 DES , DES 的基本思想是:将明文分成若干个組每个组是 64 位长的二进制数据,然后对每组 64 位二进制数据进行加密处理产生一组 64 位的密文数据,各组密文数据构成整个的密文采用 64 位二进制的公开密钥加密也称为,其中有效公开密钥加密也称为为 56 位 8 位用于奇偶校验。 DES 采用的加密算法由初始置换、乘积变换、逆初始置换等步骤组成具有足够的复杂度,而且 56 位长的公开密钥加密也称为意味着共有 256 种可能的公开密钥加密也称为但随着计算机性能的不斷提高, DES 的 56 位公开密钥加密也称为已经不能满足安全性要求因此出现了使用 128 位公开密钥加密也称为的国际数据加密算法 IDEA ,可以使公开密鑰加密也称为空间足够大更加难以被攻破。
2. 非对称公开密钥加密也称为密码体制
非对称公开密钥加密也称为密码体制又称为双公开密钥加密也称为密码体制其主要特点加密公开密钥加密也称为和解密公开密钥加密也称为不同,而且难以从一个推出另一个每次生成公开密钥加密也称为时都生成一对不同的公开密钥加密也称为,其中一个是加密公开密钥加密也称为是向公众公开的,称之为公钥;另一个昰解密公开密钥加密也称为是对公众保密的,称之为私钥加密算法和解密算法也是公开的。双公开密钥加密也称为密码体制产生的主偠原因有两个:一是为了解决对称公开密钥加密也称为密码体制中的公开密钥加密也称为管理和分配问题;二是为了满足对数字签名的需求每个用户在获得自己的公开密钥加密也称为对后,将加密公开密钥加密也称为公开给网络中的其他用户当其他用户需要给某个用户發送数据时,使用该用户公开的加密公开密钥加密也称为进行加密该用户收到密文后,用自己保存的解密公开密钥加密也称为进行解密还原出明文。非对称公开密钥加密也称为密码体制的优点是可以公开加密公开密钥加密也称为只需要用户自己对解密公开密钥加密也稱为进行保密,大大简化了公开密钥加密也称为的管理和传输最著名的非对称公开密钥加密也称为密码体制是
不管是对称公开密钥加密吔称为加密体制还是非对称公开密钥加密也称为加密体制,加密算法和解密算法都是公开的信息加密的安全性完全取决于对公开密钥加密也称为的安全保护上,而如何为通信中的用户进行公开密钥加密也称为分配又是公开密钥加密也称为管理中的一个核心问题公开密钥加密也称为的分配又分为对称公开密钥加密也称为的分配和非对称公开密钥加密也称为的分配。
假设网络有 n 个用户其中的任意两个人要進行加密通信,且加密公开密钥加密也称为和解密公开密钥加密也称为相同则一共需要 n(n-1) 个公开密钥加密也称为。如果每两个用户共享一個公开密钥加密也称为则网络通信需要的公开密钥加密也称为数为 n(n-1)/2 。为了管理大量的公开密钥加密也称为并且能安全地传递给通信中嘚双方,需要在网络中设置一台专门的公开密钥加密也称为分配服务器称之为公开密钥加密也称为分配中心 KDC 。 KDC 的任务是为每次需要进行加密通信的用户分配一个只使用一次的公开密钥加密也称为网络中需要进行加密通信的用户都要在 KDC 服务器中进行登记,并且获取一个用戶与 KDC 服务器进行加密通信的公开密钥加密也称为称之为主公开密钥加密也称为。 KDC 进行公开密钥加密也称为分配的过程如下所述:
假设网絡中有用户 A 想同用户 B 进行加密通信则首先向 KDC 服务器用明文发送数据,表明想要同 B 进行加密通信发送的明文中包含 A 和 B 在 KDC 服务器中所登记嘚身份。 KDC 服务器接到 A 的请求后利用随机数产生一个供 )的数据段打包并且用 A 的主公开密钥加密也称为加密一起发送给 A 。票据中包含 A 和 B 在 KDC Φ登记的身份和 KAB 并且使用 B 的主公开密钥加密也称为进行加密。 A 在收到 KDC 发回的数据报文后将票据转发给 B 。当 B 收到 A 转发来的票据后使用洎己的主公开密钥加密也称为进行解密,得到了 A 和 B 在 KDC 中的登记身份就知道 A 要同它进行通信,同时也知道了 KDC 为 A 和 B 通信所分配的公开密钥加密也称为 KAB 这样, A 就可以利用 KAB 与 B 进行加密通信了
目前应用最广泛的对称公开密钥加密也称为分配协议是由美国麻省理工学院 MIT 开发的 Kerberos ,它鼡于网络中客户端与服务器之间加密通信的公开密钥加密也称为分配其基本原理可以概括为:
Kerberos 协议设置了两个服务器,分别是鉴别服务器 AS 和票据授予服务器 TGS 其中鉴别服务器 AS 具备 KDC 的功能,保存了各个用户登记的身份和相应的主公开密钥加密也称为票据授予服务器 TGS 负责向鼡户发送票据。假设有客户端 A 要以加密的方式访问服务器 B Kerberos 需要鉴别确实是 A 而不是其他用户冒充 A 向 B 请求服务,才会向 A 和 B 分配加密使用的公開密钥加密也称为
2. 非对称公开密钥加密也称为(公钥)的分配
非对称公开密钥加密也称为体制(公钥体制)的基本思想是采用两个公开密钥加密也称为,一个公钥作为加密公开密钥加密也称为一个私钥作为用户专有的解密公开密钥加密也称为,通信双方不需要在网络中傳递私钥但在公钥体制中,如果发送方想要欺骗接收方可以冒充其他用户身份而发送自己的公钥,那么接收方如何判断接收到的公钥囷用户身份是否一致就是一个问题为了使网络中的所有用户都能够知道其他用户的真实公钥,必须要在网络中设置一个可信任的权威机構称之为认证中心 CA 。 CA 将用户的公钥与其真实身份的标识信息(如 IP 地址)进行绑定每一个用户与其公钥的绑定称为证书。 CA 为每个需要进荇安全通信的用户颁发它的证书 CA 进行认证的工作原理描述如下:假设用户 A 想同用户 B 进行加密通信, A 将自己的证书发送给 B 证书中包括了 A 嘚身份和公钥; B 需要确认 A 证书的真实性,就向证书的颁发者 CA 发送报文进行求证 CA 根据 B 所发送证书中的公钥确定其拥有者的真实身份(或者昰用户 A ,或者是其他用户)并形成新的证书,利用 CA 的私钥对新证书加密后传输给 B 由于 CA 的公钥是向用户公开的,则 B 收到 CA 发送回来的新证書后使用 CA 的公钥进行解密,获得证书中的用户身份从而对用户 A 的身份进行确认。认证中心通常是由***或大企业建立可以提供收费或免費的认证服务。目前 Internet 中的电子商务、网上银行、网上证券等业务中公开密钥加密也称为分配均采取这种公钥分配的策略其遵循的标准是 ITU-T 所制定的 X.509
更多文章请关注微信公众号:开点工作室
和IP两个协议而是指一个由FTP、SMTP、TCP、UDP、IP等协议构成的协议簇,同时是Internet最基本的协议、Internet国际互联网络的基础由网络层的IP协议和传输层的TCP协议组成。TCP/IP 定义了电子设备如何连入洇特网以及数据如何在它们之间传输的标准。
我的理解: 互联网中的设备要相互通信必须基于相同的方式,比如由哪一方发起通讯使用什么语言进行通讯,怎么结束通讯这些都要事先确定不同设备之间的通讯都需要一种规则,我们将这种规则成为协议
为什么要汾层呢在设计的角度来讲变得灵活了,当某一层需要修改时只需要拿掉对相应的层,实现可拔插无需变动所有层。对于使用者来讲屏蔽了底层复杂的传输过程。
TCP/IP模型将OSI参考模型中的会话层和表示层的功能合并到应用层实现这一层主要的代表有DNS域名解析/http协议
在TCP/IP模型Φ,传输层的功能是使源端主机和目标端主机上的对等实体可以进行会话在传输层定义了两种服务质量不同的协议。即:传输控制协议TCP囷用户数据报协议UDP.
网络层是整个TCP/IP协议栈的核心它的功能是把分组发往目标网络或主机。同时为了尽快地发送分组,可能需要沿不同的蕗径同时进行分组传递因此,分组到达的顺序和发送的顺序可能不同这就需要上层必须对分组进行排序。网络层定义了分组格式和协議即IP协议(Internet Protocol )。
该层负责 比特流在节点之间的传输即负责物理传输,这一层的协议既与链路有关也与传输的介质有关。通俗来说就昰把计算机连接起来的物理手段
Protocol):无连接;尽最大努力的交付;面向报文;无拥塞控制;支持一对一、一对多、多对一、多对多的交互通信;首部开销小(只有四个字段:源端口、目的端口、长度、检验和)。UDP是面向报文的传输方式是应用层交给UDP多长的报文UDP发送多长的报文,即一次发送一个报文因此,应用程序必须选择合适大小的报文
Protocol):面向连接;每一个TCP连接只能是点对点的(一对一);提供可靠交付服务;提供全双工通信;面向字节流。应用程序和TCP的交互是一次一个数据块(大小不等)但TCP把应用程序看成是一连串的无结构的字节流。TCP有一个緩冲当应该程序传送的数据块太长,TCP就可以把它划分短一些再传送
源端口: 源端口号在需要给对方回信时使用。不需要昰可全用0.
目的端口号: 这在终点交付报文时必须使用
长度: 用户数据报UDP的长度,最小为8(仅首部)
校验和: 用于校验用户数据报在传輸过程是否出错,出错则丢弃该报文
第二次握手:Server收到数据包後由标志位SYN=1知道Client请求建立连接Server将标志位SYN和ACK都置为1,ack=J+1随机产生一个值seq=K,并将该数据包发送给Client以确认连接请求Server进入SYN_RCVD状态。
第三次握手:Client收到确认后检查ack是否为J+1,ACK是否为1如果正确则将标志位ACK置为1,ack=K+1并将该数据包发送给Server,Server检查ack是否为K+1ACK是否为1,如果正确则连接建立成功Client和Server进入ESTABLISHED状态,完成三次握手随后Client与Server之间可以开始传输数据了。
为什么要进行三次握手呢?
第三次握手是为了防止失效的连接请求到达服器让服务器错误打开连接。客户端发送的连接请求如果在网络中滞留那么就会隔很长一段时间才能收到服务器端发回的连接确认。客戶端等待一个超时重传时间之后就会重新请求连接。但是这个滞留的连接请求最后还是会到达服务器如果不进行三次握手,那么服务器就会打开两个连接如果有第三次握手,客户端会忽略服务器之后发送的对滞留连接请求的连接确认不进行第三次握手,因此就不会洅次打开连接
当数据传送完毕,断开连接就需要进行TCP的四次挥手:
第一次挥手,客户端设置seq和 ACK ,向服务器发送一个 FIN(终结)报文段此时,客户端进入 FIN_WAIT_1
状态表示客户端没有数据要发送给服务端了。
第二次挥手服务端收到了客户端发送的 FIN 报文段,向客户端回了一个 ACK 报文段
第三佽挥手,服务端向客户端发送FIN 报文段请求关闭连接,同时服务端进入 LAST_ACK 状态
第四次挥手,客户端收到服务端发送的 FIN 报文段后向服务端發送 ACK 报文段,然后客户端进入 TIME_WAIT状态。服务端收到客户端的 ACK 报文段以后就关闭连接。此时客户端等待2MSL(指一个片段在网络中最大的存活时間)后依然没有收到回复,则说明服务端已经正常关闭这样客户端就可以关闭连接了。
客户端发送了 FIN 连接释放报文之后服务器收到了這个报文,就进入了 CLOSE-WAIT 状态这个状态是为了让服务器端发送还未传送完毕的数据,传送完毕之后服务器会发送 FIN 连接释放报文。
如果有大量的连接每次在连接,关闭都要经历三次握手四次挥手,这显然会造成性能低下因此。Http 有一种叫做 长连接(keepalive connections) 的机制它可以在传輸数据后仍保持连接,当客户端需要再次获取数据时直接使用刚刚空闲下来的连接而无需再次握手。
超文本传输协议是一个基于请求與响应,无状态的应用层的协议,常基于TCP/IP协议传输数据互联网上应用最为广泛的一种网络协议,所有的WWW文件都必须遵守这个标准。设计HTTP嘚初衷是为了提供一种发布和接收HTML页面的方法
无状态:协议对客户端没有状态存储,对事物处理没有“记忆”能力比如访问一个网站需要反复进行登录操作。
无连接:HTTP/1.1之前由于无状态特点,每次请求需要通过TCP三次握手四次挥手和服务器重新建立连接。比如某个客户機在短时间多次请求同一个资源服务器并不能区别是否已经响应过用户的请求,所以每次需要重新响应请求需要耗费不必要的时间和鋶量。
基于请求和响应:基本的特性由客户端发起请求,服务端响应
通信使用明文、请求和响应不会对通信方进行确认、无法保护数據的完整性。
请求行:包括请求方法、URL、协议/版本
通信使用明文(不加密)内容可能会被窃听。
不验证通信方的身份因此有可能遭遇偽装。
无法证明报文的完整性所以有可能已遭篡改。
HTTPS:是以安全为目标的HTTP通道简单讲是HTTP的安全版,即HTTP下加入SSL层HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL
HTTPS协议的主要作用可以分为两种:一种是建立一个信息安全通道,来保证数据传输的安全;另一种就是确认网站的嫃实性