PGP协议
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
浅析PGP协议
PGP技术
PGP PRETTY GOOD PRIVACY技术是一种加密电子邮件的技术,加密之后,信息会变成无意义的混乱字符。
安全性很高。
也可以作为数字签名,确保真实性。
PGP可以做成插件,提供给很多应用程序使用,PGP本身就是一个软件。
可以永久的擦除文件、文件夹和磁盘空间。
PGP 不是一种完全的非对称加密体系,它是个混合加密算法,它是由一个对称加密算法(IDEA)、一个非对称加密算法(RSA)、
一个单向散列算法(MD5)以及一个随机数产生器组成的,每种算法都是PGP 不可分割的组成部分,它集中了的几种加密算法的优点,使它们彼此得到互补。
对称、不对称的加密体系
有两种加密体系--对称的和不对称的,PGP是基于不对称的加密体系的。
对称加密时仅有一个key,双方都用这个key加密和解密。
对称加密的算法有:blowfish, Triple-DES, AES(Advanced Encryption Standard), CAST (CarlisleAdams and Stafford Tavares) , IDEA (International Data Encryption Algorithm)。
128bit的key 足够安全,少于等于56bit 的则是易破解的。
非对称的加密体系有公钥和私钥,公钥是自由发布的,但是私钥则是接受者秘密保管的。
信息是用接收者的公钥加密,但是只有接收者的私钥才能打开。
非对称的加密算法有: RSA (Rivest, Shamir, and Adleman)和 DH (Diffie-Hellman),2048bit的key足够安全了。
RSA算法
RSA Algorithm—Factorization 因数分解
p, q—prime numbers (secret and normally > 100 digits);
n=pq, function Φ(n)=(p-1)(q-1) (that’s the number of
numbers that ≤ n and prime to n);
Let a big integer “e” (<n, public) be “encryption index”
that prime to Φ(n);
Equation ed=1mod Φ(n); figure out “decryption index”“d”;
X=Plaintext明码 while Y=Ciphertext密码;
Encryption process: Y=Xemod n
Decryption process: X=Ydmod n
Keys: (n, e)—public key, (n, d)—private key;
To get X, have to get “d” directly, otherwise…
RSA 算法是一种基于大数不易质因数分解假设的非对称算法。
简单地说,就是找到两个很大的质数,一个称之为“公钥”对外公开,另一个称为“私钥”自己保存。
这两把密钥组成一个密钥对,用公钥加密的密文可以用私钥解密,反过来也一样。
但想由密钥对中的一个推算出另一个是相当困难甚至是不可能的。
AES算法
AES 算法是一种对称加密算法,其加密和解密使用同一把密钥。
这个算法在2000 年最终被确定并形成标准。
当采用128 位长度密钥加密数据时,即使用当前世界上最快的计算机运算,也需要约1023 年才能破解。
对于更重要的数据,还可以采用192 位甚至256 位的密钥加密。
PGP协议格式
PGP 采用的是一系列混合的公钥加密,包含有对称和非对称的加密方法。
邮件信息---->128bit key1,对称加密算法 --->加密了的邮件体---->采用2048bit的接收者的公钥key2,以加密key1---->经过加密了的邮件正文和key1,------>组装起来---->被接受者接收到。
PGP的key 生成
采用IDEA, RSA , SHA-1或 MD5 ,随机数生成器
PGP邮件加密
以下过程是使用了PGP协议的邮件发送过程。
演示Alice如何发邮件给Bob:
假定双方为Alice和Bob,双方都持有各自的自由公钥算法所界定的私密密钥SKA和SKB,同时相互持有对方的公钥PKA和PKB。
发送方Alice对邮件明文M利用MD5报文摘要算法计算获得固定长度的128bit信息摘要,然后利用其持有的RSA私密密钥SKA对信息摘要签名加密得到H.
将H 与明文M拼接成M1,注意此时M并没有加密,只对摘要数据加了密。
M1经过ZIP压缩后得到压缩文件M1.Z
对M1.Z进行IDEA加密运算,IDEA是一种分组对称加密算法,密钥Km长128bit,加密后得到M2。
同时使用Bob的RSA公钥PKb对Km加密,得到K''m
M2 与K''m 拼接,再用base64编码,得到一个ASCII码文本。
这个文本只含有52个字符、10个数字0~9,和“+ 、 =、/”三个符号。
此时可发送到因特网上。
接收端bob的动作如下:
首先进行base64解码
然后用秘密密钥SKb解出IDEA算法的密钥Km,并用Km恢复出M1.Z
解压缩还原出M1
Bob接着分开明文M和加了密的摘要数据,然后用Alice的公钥PKa 解除摘要数据的加密,获得H
Bob同时要对明文M进行MD5摘要算法运算,运算的结果和H进行比较,如果相同,则证明
邮件报文在传递过程中未经改变,邮件确实是Alice发来的。
浅析IPSec协议
IPSec 协议是IETF 开发的一组用来保障TCP/IP 网络上数据安全传输的协议套件,目前存在多种不同的软件实现与硬件实现方案。
IPSec,Linux 的2.6 版本目前已经内嵌了IPSec 的功能。
IPSec 在IP 层上对数据包进行安全处理,提供数据源验证、无连接数据完整性、数据机密性、抗重播和有限业务流机密性等安全服务。
IPSec 可连续或递归应用,在路由器、防火墙、主机和通信链路上配置,实现端到端安全、虚拟专用网络(VPN)、Road Warrior 和安全隧道技术.
由于IPSec在TCP/IP协议的核心层——IP层实现,因此可以有效地保护各种上层协议,并为各种安全服务提供一个统一的平台。
IPSec也是被下一代Internet 所采用的网络安全协议。
IPSec协议是现在VPN开发中使用的最广泛的一种协议,它有可能在将来成为IPVPN的标准。
IPSec的基本目的是把密码学的安全机制引入IP协议,通过使用现代密码学方法支持保密和认证服务,使用户能有选择地使用,并得到所期望的安全服务。
由于IPSec是一个网络层协议,因此可以当作网络层的一部分来实现。
IPSec 层需要IP 层的服务来构建IP 头。
IPSec使用AH或ESP协议完成数据包的封装,从而实现数据加密和数据完整性校验. 数据包的封装格式支持传输模式和隧道模式,传输模式只为高层协议提供安全服务,隧道模式可以保护整个IP数据包.
IPSec 协议实施和配置的物理位置有:终端主机之间,安全网关L 路由器之间,以及终端主机与安全网关、路由器之间。
用户对安全保密的要求和实施的逻辑拓扑结构决定协议实现的模式。
IPsec 的安全服务是由通讯双方建立的安全联盟(SA) 来提供的。
SA 为通讯提供了安全协议、模式、算法和应用于单向IP 流的密钥等安全信息。
SA 通过安全关联库(SAD) 来进行管理。
每一个IPsec 节点包含有一个局部的安全策略库(SPD) 。
IPsec 系统在处理输入/ 输出IP 流时必须参考该策略库,并根据从SPD 中提取的策略对IP 流进行不同的处理:拒绝、绕过、进行IPsec 保护。
如果策略决定IP 流需要经过IPsec处理,则根据SPD 与SAD 的对应关系,找到相应的SA ,并对IP包进行指定的IPsec 处理。
安全联盟是构成 IPSec的基础。
SA是两个通信实体经协商建立起来的一种协定。
它们决定了用来保护数据包安全的IPSec 协议、转码方式、密钥以及密钥的有效存在时间等。
IPSec的实施必须构建一个 SA数据库 ,由它来维护用来保障数据包安全的 SA记录。
SAD与 SPD存在着密切的对应关系 ,一条 SP对
应着一个 SA的束(SA bundles) ,在包处理过程中 ,可以根据它的目标 IP地址、协议类型和 SPI在相应策略的 SAbundels中查找相符的 SA ,进行 IPsec处理。
IPSec 在IP 层上对数据包进行安全处理,提供数据源验证、无连接数据完整性、数据机密性、抗重播和有限业务流机密性等安全服务。
IPSec 可连续或递归应用,在路由器、防火墙、主机和通信链路上配置,实现端到端安全、虚拟专用网络(VPN)、Road Warrior 和安全隧道技术。
LINUX对内核对IPSEC的支持
Linux 2.6 内核中的IPSec 支持机构涵盖并遵循了RFC2401~RFC2406 中规定的AH 和ESP 协议的实现, 在内核算法函数库中提供了对HMAC-MD5-96、HMAC- SHA1- 96、DES- CBC 的支持。
由于IPSec协议中的IKE 部分需在应用层实现, 内核中并未涵括, 仅提供了用户空间与内核IPSec 的Netlink 套接字通信机构, 为用户态的IKE 提供了调用接口。
IPSec协议体系结构
IPSec将几种安全技术结合形成一个完整的安全体系,它包括安全协议部分和密钥协商部分。
图1 IPSEC的协议结构
(1)安全关联和安全策略:安全关联(Security Association,SA)是构成IPSec的基础,是两个通信实体经协商建立起来的一种协定,它们决定了用来保护数据包安全的安全协议(AH协议或者ESP协议)、转码方式、密钥及密钥的有效存在时间等。
(2)IPSec 协议的运行模式:IPSec协议的运行模式有两种,IPSec隧道模式及IPSec传输模式。
隧道模式的特点是数据包最终目的地不是安全终点。
通常情况下,只要IPSec双方有一方是安全网关或路由器,就必须使用隧道模式。
传输模式下,IPSec 主要对上层协议即IP包的载荷进行封装保护,通常情况下,传输模式只用于两台主机之间的安全通信。
(3)AH(Authentication Header,认证头)协议:设计AH认证协议的目的是用来增加IP 数据报的安全性。
AH协议提供无连接的完整性、数据源认证和抗重放保护服务,但是AH不提供任何保密性服务。
IPSec验证报头AH是个用于提供IP数据报完整性、身份认证和可选的抗重传攻击的机制,但是不提供数据机密性保护。
验证报头的认证算法有两种:一种是基于对称加密算法(如DES),另一种是基于单向哈希算法(如MD5或SHA-1)。
验证报头的工作方式有传输模式和隧道模式。
传输模式只对上层协议数据(传输层数据)和IP头中的固定字段提供认证保护,把AH插在IP报头的后面,主要适合于主机实现。
隧道模式把需要保护的IP包封装在新的IP包中,作为新报文的载荷,然后把AH插在新的IP报头的后面。
隧道模式对整个IP数据报提供认证保护。
(4)ESP(Encapsulate Security Payload,封装安全载荷)协议:封装安全载荷(ESP)用于提高Internet协议(IP)协议的安全性。
它可为IP提供机密性、数据源验证、抗重放
以及数据完整性等安全服务。
ESP属于IPSec的机密性服务。
其中,数据机密性是ESP的基本功能,而数据源身份认证、数据完整性检验以及抗重传保护都是可选的。
ESP主要支持IP 数据包的机密性,它将需要保护的用户数据进行加密后再重新封装到新的IP数据包中。
(5)Internet 密钥交换协议(IKE):Internet密钥交换协议(IKE)是IPSec默认的安全密钥协商方法。
IKE通过一系列报文交换为两个实体(如网络终端或网关)进行安全通信派生会话密钥。
IKE建立在Internet安全关联和密钥管理协议(ISAKMP)定义的一个框架之上。
IKE是IPSec目前正式确定的密钥交换协议,IKE为IPSec的AH和ESP协议提供密钥交换管理和SA管理,同时也为ISAKMP提供密钥管理和安全管理。
IKE具有两种密钥管理协议(Oakley和SKEME安全密钥交换机制)的一部分功能,并综合了Oakley和SKEME的密钥交换方案,形成了自己独一无二的受鉴别保护的加密材料生成技术。
Iptables防火墙
由netfilter项目组开发
Iptables策略是由一组有序的规则建立的,它告诉内核如何处理某些类别的数据包。
每一个iptables规则,应用于一个表中的一个链。
一个iptables链式一个规则集。
INPUTl链作为iptables的构建块,作用是控制目标为本地系统的数据包(即经过内核的路由计算出来数据包的目的地址为本地的ip地址的数据包)是否可以和本地的套接字进行通信。
由于ARP协议工作在数据链路层而不是网络层,而iptables只能过滤网络层及其之上的协议的数据包,所以iptables不能过滤ARP协议的报文。
Linux防火墙技术
防火墙技术是用来保护主机的,对主机与局域网以外的机器进行通信时,进行保护。
防火墙技术主要涉及防火墙运行的软硬件平台以及防火墙的实现原理。
Linux防火墙的主要类型
包过滤应用代理状态监视
(1)包过滤型防火墙
包过滤型防火墙是基于osi网络模型中的网络层和传输层的,是监控各种tcp/ip 协议的数据包的头部协议地址端口类型等信息,将这些信息与防火墙的过滤规则进行核对,这就是静态的包过滤技术。
后来,发展了动态包过滤技术,对与主机连接的数据进行跟踪,判断连接中发送的数据包,是否会对主机造成影响,若触发了判断机制,防火墙会自动添加规则,或者自动修改这些规则,
包过滤型防火墙缺点
包过滤规则与防火墙的性能是反比的。
包过滤防火墙工作在网络层和传输层,不能判断高层协议里的数据包是否有害。
(2)代理型防火墙
代理服务器作为防火墙服务器,分别与外部网络和内部主机之间建立连接,所有交互数据都要经过代理服务器,代理服务器对数据包进行审核。
代理服务器作为一个为用户保密,或者为用户突破访问限制的数据转发通道,应用广泛。
防火墙在一个具有数据检测的功能的服务器上,作为代理服务器,与需要保护的主机进行通信,代理服务器上应用的是一种叫做“应用协议分析”的新技术。
“应用协议分析”工作在osi模型的最高层----应用层。
这一层的数据都是数据包的最终形式。
工作在应用层,防火墙可以在过滤外部网络数据危害的同时,也监控着内部网络的信息。
数据传输是要经过代理进程的,代理进程本身就执行很复杂的协议规则,数据免不了会发生迟滞的现象。
状态监视技术,保留了对每个数据包的头部协议地址端口类型等信息进行分析的基础上,进一步发展了“会话过滤”功能。
在每个连接建立时,防火墙都会对这个连接建立一个会话状态,里面包含了该连接数据包的所有信息,以后的连接都要参照这个连接信息,会话的时间也是有限制的,规定时间内不进行会话传输,该包就会被丢弃。
状态检测可以对包的内容进行分析,从而摆脱了传统防火墙只对包头部进行检测的缺点,而且,状态检测防火墙也不必开放过多的端口。
Linux下的Iptables防火墙
由netfilter项目组开发的Iptables防火墙。
该防火墙的策略是由一组有序的规则建立的,它告诉内核如何处理某些类别的数据包。
每一个iptables规则,应用于一个表中的一个链。
一个iptables链式一个规则集。
该防火墙已经集成到linux内核中。
如果Linux 系统连接到因特网或LAN、服务器或连接LAN 和因特网的代理服务器,则该系统有利于在Linux 系统上更好地控制IP 信息包过滤和防火墙配置。
netfilter/iptables IP 信息包过滤系统是一种功能强大的工具,可用于添加、编辑和除去规则,这些规则是在做信息包过滤决定时,防火墙所遵循和组成的规则。
这些规则存储在专用的信息包过滤表中,而这些表集成在Linux 内核中。
在信息包过滤表中,规则被分组放在我们
所谓的链(chain)中。
iptables 组件是一种工具,也称为用户空间(userspace),它使插入、修改和除去信息包过滤表中的规则变得容易。
除非您正在使用Red Hat Linux 7.1 或更高版本,否则需要下载该工具并安装使用它。
iptables的命令行选项
规则链维护选项
1.建立新的规则链(-N)
2.删除一个空的规则链(-X)
3.改变一个内置规则链的策略(-P)
4.列出一条规则链中的规则(-L)
5.擦写一条规则链中的规则(-F)
规则维护
1.在一条规则链中加入一条新的规则(-A)
2.删除一条规则链中某个位置的规则(-D)
iptables的优点
在讨论各种iptables配置工具之前,让我们看一下iptables的优点,尤其是netfilter比ipchains具有的优势。
iptables允许建立状态(stateful)防火墙,就是在内存中保存穿过防火墙的每条连接。
这种模式对于有效地配置FTP和DNS以及其它网络服务是必要的。
iptables能够过滤TCP标志任意组合报文,还能够过滤MAC地址。
系统日志比ipchains更容易配置,扩展性也更好。
对于网络地址转换(Network Address Translation)和透明代理的支持,netfilter更为强大和易于使用。
iptable能够阻止某些DOS攻击,例如SYS洪泛攻击。