网络安全
什么是网络安全?
加密原理
认证,报文完整性
安全电子邮件
使TCP连接安全:TLS
网络层安全性:IPSec
无线和移动网络的安全
实践中的网络安全:防火墙和IDS
什么是网络安全?
机密性:就是只有发送方和指定的接收方能够理解传输的报文内容(此报文 内容就算是被截获,截获者也不会知道具体内容的信息。)
如何实现机密性:发送方加密报文,接收方解密报文,在信道中发送的是密文。加密力度足够大,截获方是无法还原原文。
认证:发送方和接收方需要确认对方的身份(可以是单向的 [比如:客户端需要认证服务器身份或者服务器认证客户端的身份] 一般是需要双方认证对方的身份)
报文的完整性:发送方、接收方需要确认报文在传输的过程中或者事后没有被改变。
报文的完整性:在接收方接收到报文,不管报文是否得到了修改,接收方应该能够采用自己的方法将其检查出来。
访问控制和服务的可用性:服务可以接入以及对用户而言是可用的
比如:我是一个网站,我会提供服务,可以通过访问控制的方法,让正式用户访问我的服务,非正式用户不能访问我的服务
服务的可用性是靠访问控制来做区分哪些是正常用户、哪些是非正常用户、哪些是正常用户的正常访问、哪些是正常用户的非正常访问。
网络安全的一些例子
加密原理
加密需要:明文、加密秘钥、解密秘钥。
如果加密的秘钥和解密的秘钥一样的话,这种加密体系就是对称加密体系。若不一样的话,就称之为非对称加密体系又名公开秘钥加密体系。
选择明文攻击:可以将明文加密成密文,但当截获到了密文后,如何将密文还原为明文。
在对称秘钥加密体系中有个重大的问题--》秘钥分发的问题?
为什么?首先,用明文传不安全。其次,用密文传,需要用什么秘钥加密对称密钥。
DES是美国早期的美国国家安全标准
但是DES加密标准不合格
因此提出新的加密标准AES
虽然目前暴力法解密需要花费大量的时间才能够破解AES的话,若量子计算机研究出来,可以很快的 解密
使用RSA加密体系,学习公开秘钥加密算法是如何满足量大要求的
e和z互质。互质:除了1以外,不能被其他的整数整除
认证和报文完整性
怎么避免重放攻击?使用不重塑认证
不重塑认证需要一个前提条件:双方需要共享一个秘钥,由此引申出一个新的问题,如何共享这个秘钥?靠KDC秘钥分发中心来分发秘钥
采用公开秘钥加密技术
但是也有漏洞
这时如何可靠的拿到对方的公钥?
在对称加密体系中有三个可信赖的第三方:KDC,认证中心CA
使用签名签署文件,来证明该文件、报文是可靠的
数字签名 = 用自己的秘钥对保温摘要进行数字签署
使TCP连接安全:TLS
quic协议是传输层协议但是处的层次是应用层。是用户态而不是核心态,不是在操作系统内部,而是在应用进中实现的该协议(与TLS为协作关系)
TLS 的意义:有了TLS之后不需要应用再自己实现机密性、完整性等复杂的编程工作。
TLS是建立在TCP之上实现的。
如果要体现流式加密的可认证和完整性,使用MAC报文认证码 。
MAC报文认证码的作用 same 数字签名
不同的地方在于:MAC不是利用公开秘钥加密体系,而是用堆成的方法做签名。
对于流式加密,完整性检验的MAC只能放在最后,这个方法是有一定问题的:
1. 时机太迟
2. 有的应用,你不知道它什么时候 结束
所以,在数据传输时,不能像TCP那样采用的是所谓的流式传输,而是必须把它打成一个个单位,这个单位成为记录。
每个记录都会有MAC来验证这个报文的完整性。
为什么MAC要采用hash? 因为MAC实际上类似于数字签名,但是数字签名对设备的消耗比较大,若CPU的利用率太高,会计算特别慢。