A. 网络安全基础
网络安全通信所需要的基本属性:
1. 机密性
2. 消息完整性
3. 可访问与可用性
4. 身份认证
1. 窃听
2. 插入
3. 假冒
4. 劫持
5. 拒绝服务DoS和分布式拒绝服务DDoS
6. 映射
7. 嗅探
8. IP欺骗
数据加密
明文:未被加密的消息
脊隐 密文:被加密的消息
加密:伪装消息以隐藏消息的过程,即 明文 密文 的过程.
解密: 密文 明文 的过程
1. 替代密码 :用密文字母替代明文字母。
移位密码加密函数:
:加密过程
:明文信息
:密钥,表示移几位
:如果是26个字母,那q就是26
解密函数:
:解密过程
:密文
:密钥
2. 换位密码 :根据一定规则重新排列明文。
【 例题 】如果对明文“bob.i love you. Alice",利用k=3的凯撒密码加密,得到的密文是什么?利用密钥 "nice" 进行列置换加密后得到的密文是什么?
【 答案 】 凯撒密码 加密后得到的密文是:
"ere l oryh brx Dolfh"
列置换密码 加密后得到的密文是:
iex bvu bly ooo"
【 解析 】 凯撒密码 :
以明文字母b为例,M=2(b的位置为2),k=3,q=26,则:
密文 ,对应字母e,故b经过加密转为了e
将明文全部替换后得到的密文 "ere l oryh brx Dolfh"
列置换密码:
密钥 "nice" 字母表先后顺序为 "4,3,1,2" ,因此,按这个顺序读出表中字母,构成密文:"iex bvu bly ooo",(密钥有几位就有几列,如果明文不够就补x,然后按列读取)
1. 对称密钥 密码:加密秘钥和解密秘钥相同( ),例如用一个锁将箱子锁起来,这个锁有2把相同的钥匙,锁好之后把另一把钥匙派人送给他。
2. 对称密钥密码 分类 :
分组密码:DES、AES、IDEA等。(分组处理)
1) (数据加密标准):56位密钥,64位分组。(56位二进制数,每位的取值是0或1,则所有的取值就是 个)
2) :使用 两个秘钥 (共 112位 ),执行三次DES算法。(用1个密钥樱告厅执行一次加密,再用另一个密钥执行一次解密,共执行三次)
3) (高级加密算法):分组128位,密钥 128/192/256 位。
4)IDEA:分组64位,密钥 128 位。
流密码(挨个处理)
1. 非对称密钥 密码:加密密钥和解密密钥不同, ,其中一个用于加密,另一个用于解密。( 私钥 :持有人所有 公钥 :公开的)
2. 加密密钥可以公开,也称公开密钥加密。
3. 典型的公钥算法:
Diffie-Hellman算法
RSA算法
密码散列函数
1. 特性:
定长输出;
单向性(无法根据散列值逆推报文)
抗碰撞性(无法找到具有相同散列值的两个报文)
2. 典型的散列函数
MD5:128位散列值
SHA-1:160位散列值
报文认证是使消息的接收者能够检验收到的消息是否是真实的认证方法。来源真实,未被篡改。
1. 报文摘要(数字指纹)
2. 报文认证方法
简单报文验证:仅使用报文友梁摘要,无法验证来源真实性
报文认证码:使用共享认证密匙,但无法防止接收方篡改
身份认证、数据完整性、不可否认性
1. 简单数字签名:直接对报文签名
2. 签名报文摘要
1. 口令:会被窃听
2. 加密口令:可能遭受回放/重放攻击
加密的口令可能会被截获,虽然不知道口令是什么,但他将加密口令提交给服务器,说这是我加密的口令,这叫重放.
3. 加密一次性随机数:可能遭受中间人攻击
Alice发给Bob说她是Alice,但Bob说你要向我证明,Bob生成一个随机数发给Alice,让Alice用自己的私钥进行加密,加密后再把数据发给Bob,然后Bob再向Alice要公钥进行解密解出来的随机数如果和Bob发给Alice的随机数一样的话,那就说明她是Alice。
这种方法会被中间人攻击,Alice发送的私钥加密被Trudy更换为自己用私钥加密的数据然后发给Bob,公钥也被Trudy换了,最后Bob用公钥加密数据发给Alice,Trudy截获了,用自己的私钥进行解密,获得了数据。
密钥分发存在漏洞:主要在密钥的分发和对公钥的认证环节,这需要密匙分发中心与证书认证机构解决
双方通信时需要协商一个密钥,然后进行加密,每次通信都要协商一个密钥,防止密钥被人截获后重复使用,所以密钥每次都要更换,这就涉及到密钥分发问题。
基于 KDC 的秘钥生成和分发
认证中心CA:将公钥与特定的实体绑定
1. 证实一个实体的真实身份;
2. 为实体颁发 数字证书 (实体身份和 公钥 绑定)。
防火墙 :能够隔离组织内部网络与公共互联网,允许某些分组通过,而阻止其它分组进入或离开内部网络的软件、硬件或者软硬件结合的一种设施。
前提 :从外部到内部和从内部到外部的所有流量都经过防火墙
1. 无状态分组过滤器
基于特定规则对分组是通过还是丢弃进行决策,如使用 实现防火墙规则。
2. 有状态分组过滤器
跟踪每个TCP连接建立、拆除,根据状态确定是否允许分组通过。
3. 应用网关
鉴别 用户身份 或针对 授权用户 开放 特定服务 。
入侵检测系统(IDS):当观察到潜在的恶意流量时,能够产生警告的设备或系统。
1. 电子邮件安全需求
1)机密性
2)完整性
3)身份认证性
4)抗抵赖性
2. 安全电子邮件标准:
1. SSL是介于 和 之间的安全协议.
2. SSL协议栈
(传统的TCP协议是没有安全协议的,传输都是明文,所以在TCP上面设置SSL协议保证安全性)
3. SSL握手过程
协商密码组,生成秘钥,服务器/客户认证与鉴别。
1. VPN
建立在 上的安全通道,实现远程用户、分支机构、业务伙伴等与机构总部网络的安全连接,从而构建针对特定组织机构的专用网络。
关键技术 : ,如IPSec。
2. 典型的 网络层安全协议 ——
提供机密性、身份鉴别、数据完整性和防重放攻击服务。
体系结构: 认证头AH协议 、 封装安全载荷ESP协议 。
运行模式: 传输模式 (AH传输模式、ESP传输模式)、 隧道模式 (AH隧道模式、ESP隧道模式)
本文主要介绍了网络安全基本概念、数据加密算法、消息完整性与数字签名、身份认证、密钥分发中心与证书认证机构、防火墙与入侵检测以及网络安全协议等内容。
回顾:
1. 网络安全基本属性
2. 典型数据加密算法;
3. 消息完整性、数字前面以及身份认证原理。
B. SSL/TLS协议解析
本文借助wireshark抓包详细的讲解SSL/TLS协议。HTTPS是为了解决http报文明文传输过程中的安全问题。HTTPS是“HTTP over SSL”的缩写。所以要了解HTTPS就必须先了解SSL/TLS协议。
HTTP协议中所有消息都是明文传播,存在如下三大风险
为了解决这个三个风险,分别对应如下三个解决方案。
由于SSL的2个版本都已经退出历史舞台了,所以本文后面只用TLS这个名字。 一般所说的SSL就是TLS。
TLS建立连接的过程如下图,先有个大概的印象,后面我们再详细分析。整个需要四次握手。
SSL/TLS工作在应用层和传输层之间 ,在建立连接的之前需要先建立TCP连接(三次握手),如下图。
记录协议根据rfc描述 记录协议(Record Layer) 有如下4种类型,即上图中Content Type可以取的值。
记录协议(Record Layer) 数据结构
握手协议(Handshake Protocal) 有如下10种类型。
握手协议(Handshake Protocal) 数据结构
wireshark抓包显示客户端支持的加密套件有31种。 cipher的格式为:认证算法 密钥交换算法 加密算法_ 摘要算法 。server会从这些算法组合中选取一组,作为本次SSL连接中使用。
这个包告诉我们服务器和客户端是通过Diffie-Hellman算法来生成最终的密钥(也就是Sessionkey会话密钥),pubkey是Diffie-Hellman算法中的一个参数,这个参数需要通过网络传给客户端,即使它被截取也不会影响安全性。具体见参考文献三。
在client hello和server hello包中都有Random字段,上面我们是没有说明的,client和server这两个随机数加Diffie-Hellman算法生成出来的这个key。一共三个数字生成最终对称加密的key
从现在开始发送的数据就是采用上述步骤协商出的对称加密密钥加密过的数据了
再回过头来看一下这张图,加密过程总结如下:
C. 消息认证码与加密算法的区别求大神指教
消息认证码MAC(带密钥的Hash函数):密码学中,通信实体双方使用的一种验证机制,保证消息数据完整性的一种工具。构造方法由M.Bellare提出,安全性依赖于Hash函数,故也称带密钥的Hash函数。是一种消息认证算法。消息认证码是基于密钥和消息摘要所获得的一个值,可用于数据源发认证和完整性校验。消息认证是强调消息的完整性。可以验证消息的完整性,当接收方收到发送方的报文时,接收方能够验证收到的报文是真实的和未被篡改的。一是验证消息的发送者是真正的而非冒充的,即数据起源认证,二是验证消息在传输过程中未被篡改。
而加密算法主要是保证消息的保密性,各种加密算法就不说了,网络很详细。。。