网络通信安全基础与信息加密交换原理及示例
Linux Services and Security
OpenSSL :Open Secure Socket Layer , 安全套接字层
OpenSSH :Open Secure SHell ,安全shell
OpenSSL 通信机制
NIST :国家安全署定义的安全元素
- 保密性:
数据保密性
隐私性
- 完整性:
数据完整性
系统完整性
- 可用性
安全攻击的方式:
被动攻击:窃听
主动攻击:伪装、重放、消息篡改、拒绝服务
安全机制:
加密、数字签名、访问控制、数据完整性、认证交换、流量填充、路由控制、公证
安全服务:
认证服务
访问控制服务
数据保密性服务
- 连接保密性
- 无连接保密性
- 选择域保密性
- 流量保密性
数据完整性服务
不可否认性服务
密码算法和协议:
对称加密
公钥加密
单向加密
认证协议
Linux系统常用的加密算法和协议的实现
OpenSSL 和 gpg(pgp协议)
加密算法和协议
对称加密:加密和解密使用同一个秘钥
DES :Data Encryption Standard
DES3 :Data Encryption Standard - Triple
AES :Anvanced Encryption Standard
Blowfish
Twofish
IDEA
RC6
CAST5
- 其中 DES3 和 AES 算法较为常用
特性:加密、解密使用同一秘钥;将原始数据分隔成固定大小的块,逐个进行加密
缺陷:密钥过多;密钥分发安全性差
公钥加密:密钥是成对出现
公钥:公开给任何人, pubkey
私钥:通过工具创建,自己留存,必须保证其私密性;private(secret) key
特点:用公钥加密的数据,只能使用与之配对的私钥解密,反之亦然,用私钥加密的数据,仅对应的公钥可以解密;但加密解密过程很慢
公钥加密的用途
- 数字签名:主要在于接收方确认发送方的身份
- 密钥交换:发送方用对方的公钥加密一个对称秘钥,并发送给对方,此数据仅持有私钥的人可以解密,加密一方都无法解密
- 数据加密:常用于加密非常小规模的数据,因加解密效率过低
算法:RSA,DSA,ELGamal
CA :权威的第三方证书颁发机构,保证大家能够获得真实的对象的公钥:
单向加密:只能加密,不能解密;提取数据特征码(指纹);
特性:定长输出、雪崩效应;
算法:
md5: Message Digest 5 , 128bits
sha1:Secure Hash Algorithm 1 , 160bits
sha224
sha256
sha512
功能:
完整性:验证数据完整性
网络通信过程信息加密传输的完整示例
双方保证安全的前提是保证对方的身份信息与获得的对方公钥是匹配对应的,可以通过公信证明机构 CA 实现
- user1与user2进行信息交换
user1将要发出的明文数据A进行如下操作
- 首先对要发送的明文数据A进行【单向加密】,提取特征码B
- 然后用自己的私钥,采用【私钥加密】对特征码B进行加密,并附加在数据A后面
- 采用【对称加密】算法,对明文数据A和特征码B二者的整体进行加密,将对称加密的密码C附加在已经加密过的 “A+B整体” 的后面
- 使用对方(即user2)的公钥D-pub,对密码C进行【公钥加密】,得出密文E,并将E附加在已经加密过的 “A+B整体” 后面,得出整个要发送的数据包F
- 将数据包F通过Internet四层协议发送至user2
user2接收到F数据包将进行如下操作
- 通过Internet四层协议拆包,得到数据包F
- 用自己的私钥D-sec对密文E采用【私钥解密】,得到了对称加密的密码C ,完成密钥交换
- 用密码C,采用【对称解密】将加密过的 “A+B整体” 解密,得到数据A和加密的特征码B;保证了数据安全传输
- 用对方(即user1)的公钥采用【公钥解密】将特征码B解密,得出user1发来数据的特征码B;如果能解密,说明该文件的发出方是user1;保证了身份可靠性
- 采用【单向加密】将数据A进行加密,将自己单向加密得出的特征码G和特征码B进行比对,如果一致,则保证了传输信息的完整性。
至此,数据传输过程的通信方身份可靠性、保密性、安全性和完整性一一完成并得到保证。