网络安全知识
网络安全出现背景
网络就是实现不同主机之间的通讯。网络出现之初利用TCP/IP协议簇的相关协议概念,已经满足了互连两台主机之间可以进行通讯的目的,虽然看似简简单单几句话,就描述了网络概念与网络出现的目的,但是为了真正实现两台主机之间的稳定可靠通讯,其实是一件非常困难的事情了,如果还要再通讯的基础上保证数据传输的安全性,可想而知,绝对是难上加难,因此,网络发明之初,并没有太关注TCP/IP互联协议中的安全问题。
对于默认的两台主机而言,早期传输数据信息并没有通过加密方式传输数据,设备两端传输的数据本身实际是明文的,只要能截取到传输的数据包,就可以直接看到传输的数据信息,所以根本没有安全性可言。
早期利用明文方式传输的协议有:FTP、HTTP、SMTP、Telnet等。
网络安全涉及的问题
网络安全问题-数据机密性
在网络传输数据信息时,对数据的加密是至关重要的,否则所有传输的数据都是可以随时被第三方看到,完全没有机密性可言。
网络安全问题-数据完整性问题
网络传输数据的完整性,也是安全领域中需要考虑的重要环节,如果不能保证传输数据的完整性,那传输过程中的数据就有可能被任何人所篡改,而传输数据双方又不能及早的进行发现。将会造成互连通讯双方所表达信息的意义完全不一致。因此,对于不完整的数据信息,接收方应该进行相应判断,如果完整性验证错误,就拒绝接收相应的数据。
网络安全问题-身份验证问题
网络中传输数据时,很有可能传输的双方是第一次建立连接,进行相互通讯,既然是第一次见面沟通,如何确认对方的身份信息,的确是我要进行通讯的对象呢?如果不是正确的通讯对象,在经过通讯后,岂不是将所有数据信息发送给了一个陌生人
网络安全知识解决问题
网络安全问题-数据机密性问题解决
a) 利用普通加密算法解决机密性
利用相应算法,对传输数据(明文数据)进行加密(密文数据);再利用对应算法,将加密数据解密变为真实数据
优点:实现了数据机密传输,避免了明文传输数据的危险性。
缺点:利用加密算法,将明文改密文,如果第三方获得加密算法,即可将传输密文再次变为明文
b) 利用对称加密算法解决机密性(重要的一种加密方式)
对称加密算法就好比将普通算法的规则手册放入到了保险柜里,只有获取保险柜和保险柜钥匙才能获取《算法手册》
优点:密钥加密算法计算速度非常快;解决了普通加密算法的安全问题
缺点:加解密过程的安全性完全依赖于密钥,并且对称加密密钥是公开的,当通讯加密对象过多时,无法解决密钥管理问题。
网络安全问题-数据完整性问题解决
a) 利用单项加密算法(全网备份数据完整性)
根据数据生成特征码(数据指纹信息);接收数据方获取数据信息算出特征码,验证是否与发送过来的特征码一致,若特征码一致,表示数据完整性没被破坏;若特征码不一致,表示数据已被破坏,直接丢弃
扩展说明:
01:不同数据的特征码(数据指纹信息)是不可能一致的
单项加密算法特征
· 数据输入一样,特征码信息输出必然相同
· 雪崩效应,输入的微小改变,将造成输出的巨大改变
· 定长输出,无论源数据多大,但结果都是一样的
· 不可逆的,无法根据数据指纹,还原出原来的数据信息。
优点:有效的解决了数据完整性问题
缺点:没有考虑中间人攻击对数据信息的影响
b) 利用单项加密算法(加密特征码)
利用对称加密算法对数据加密的同时,也对特征码进行加密;
接收方拥有和发送方一样的密钥,才可以解密加密后的数据和特征码
而中间人加密的特征码是没有办法让接收方进行解密的,所以接收方获取不了特征码,直接丢弃数据
扩展说明:
01:那么对称密钥如何有效的让通讯双方获取呢
需要进行对称密钥协商过程,即通过密钥交换机制(Internet key exchange IKE)
实现密钥交换机制的协议称为diffie-hellman协议
网络安全问题-身份验证问题解决
a)利用非对称密钥加密算法(公钥加密算法)
发送方建立私钥和公钥,将公钥发送给接收方,从而实现发送数据方的身份验证
非对称加密算法(公钥加密算法)特征概述:
发送方用自己的私钥加密数据,可以实现身份验证(非对称加密算法的主要用途)
发送发用自己的公钥加密数据,可以保证数据机密性;但是公钥加密算法很少用来加密数据,因为加密速度太慢了,因为密钥长度太长了。
非对称加密算法弥补了对称加密算法的缺陷,只要维持一对密钥即可,不用拥有更多的密钥信息
网络安全问题结论:实现网络安全性,需要解决问题的顺序为
1. 解决身份验证问题
2. 解决数据完整性问题
3. 解决数据机密性问题
网络安全证书
网络安全证书的由来
为了实现网络中通信双方的身份验证就需要借助非对称加密算法,借助私钥加密特征码,公钥解密特征码的方式,从而实现对通讯发送方的身份验证,并且通过特征码的验证对比,即可完成数据完整性的验证。因此在整个安全性验证的过程中,公钥信息的获取变的尤为重要,发送方在顺利产生出私钥和公钥的密钥对信息后,需要准确将公钥信息传输给请求公钥信息的接收者,才能正确完成上述所说的验证工作。
网络安全证书获取:通过第三方安全机构
对发送方的公钥信息进行公正步骤:(借助第三方安全机构)
1)A和B端首先生成自己的公钥和私钥的密钥对,为了使对方能相信自己的公钥信息,将自己的公钥信息告知给第三方发证机构,利用第三方机构对自己的公钥进行公证。第三方机构会制作一个数字证书(机构 编号 以及发证机构的戳),并且第三方机构也要给自己设置一个合法的公钥和私钥,并且公钥设置为第三方机构的公钥证书。
2)发证机关计算出数字证书数据的特征码,并用自己的私钥进行加密,并将加密的信息附加到特征码后成为数字签名。
3)A和B两端获得公正过的证书信息,并通过证书信息传递,得到对方的公钥。
4)A和B两端与第三方机构建立连接,获得第三方证书,通过第三方证书获得第三方公钥,利用第三方公钥只要能解密数字签名即可。
网络安全证书包含的内容
目前标准的证书存储格式是x509,还有其他的证书格式,需要包含的内容为:
1.公钥信息,以及证书过期时间
2.证书的合法拥有人信息
3.证书该如何被使用
4.CA颁发机构信息
5.CA签名的校验码
互联网上使用的SSL和TLS证书管理机制均使用x509的格式
网络安全算法知识总结
对称加密算法知识总结
对称加密算法特性是加密和解密使用同一个密钥,利用对称算法可以将明文改为密文(加密),密文还原为明文(解密)。
对称加密算法常见的有:
1.最早期的称为DES(Data Encryption Standard),是美国国家安全局征集加密算法时,由一个美国公司提出的,是公开可以使用的,使用的是56位的密钥长度,但是由于计算机的发展,可以使用计算机对56位的密钥进行暴力破解了,因此DES渐渐不再被使用。
2.一种新的算法,将DES加密后,再进行一次DES加密,然后再进行一次DES,称为3DES算法,是目前使用比较多的加密算法
更安全的加密算法,AES(高级加密标准)加密算法产生,默认使用128位的加密密钥,但是也有特殊的AES(AES192 AES256 AES512等),密钥越长安全性提高的同时,加密效率就会降低,因此应该选择比较合适的加密算法
3.blowfish加密算法,加密不是按位进行加密的,而是将数据分成大小相同的数据块进行加密的
单向加密算法知识总结
单项加密算法常见的有:
1.DH加密算法,主要用于密钥的协商交换
2.MD4 MD5(128)
3.SHA1(160) SHA(192) SHA(256) SHA(384)
4.CRC-32(循环输出校验码),不是加密机制,只是一种校验机制,不提供安全性,正常加密算法是不允许出现输入不一样,输出一样的情况,但CRC是可以有这样情况的,因为CRC只是具有校验功能,不具有加密功能
非对称加密算法知识总结
非对称加密算法可以实现身份认证功能(通过数字签名实现),数据加密功能,以及现密钥交换功能。
非对称加密算法常见的有:
1.RSA,RSA既是一个公司的名称,也是三个创始人的名称,RSA既可以加密又可以进行签名。
2.DSA,只能实现数字签名功能
3.ELGamal,属于商业化的加密算法