在当今网络的时代中,到底是如何保证数据传输的安全的呢?下面在原理上来阐述实现过程。
一、安全标准
网络信息安全标准由美国国家标准与技术研究院(National Institute of Standards and Technology,NIST)制定的,标准有:
保密性(Confidenciality)
确保信息在存储、使用、传输过程中不会泄漏给非授权用户或实体。
完整性(Integrity)
确保信息在存储、使用、传输过程中不会被非授权用户篡改,同时还要防止授权用户对系统及信息进行不恰当的篡改,保持信息内、外部表示的一致性。
可用性(Availability)
确保授权用户或实体对信息及资源的正常使用不会被异常拒绝,允许其可靠而及时地访问信息及资源。
这就是我们通常说的信息安全的三原则。
现在往往还需要真实性和可追溯性。
二、密码算法类型
1、对称加密
对称加密是加密和解密使用同一秘钥。具体如下:
关键字说明:
明文:加密之前的文本
秘钥:其实就是一串字符串,在加密和解密时结合密码算法实现加密解密
密文:加密和后的字符串
加密,解密算法:DES,3DES,AES,Blowfish,Twofish,IDEA
对称加密的特性:
加密和解密使用同一秘钥
将明文分隔成固定大小的块,逐个进行加密
缺陷:
A主机和很多机器在很多机器在通行时,需要获得每个主机的秘钥,会导致秘钥过多,从而导致了秘钥传输不安全,身份认证和数据完整性得不到保证。
2、公钥加密
加密和解密使用的不同的秘钥,一般成对出现。分别称为秘钥和公钥。公钥:长度过长,现在一般都是2048为以上。
,常用的加密算法:
RSA:既可以加密也可以身份认证
DSA:只能做身份认证
ELGamal:商业版的对称加密算法
使用这种方式的加密是加密速度慢。而且也不能保证数据的完整性,就是在 B 收到 A 的数据之后不能确保数据是否被篡改过。
所以它的应用体现在以下2方面的应用:
1、身份认证
自己私钥加密特征码(指纹),对方公钥加密,实现验证身份
2、 IKE(Internet Key Exchange,秘钥交换)
用对方的公钥加密传送给对方可能会暴力破解。因此会采用 DH 算法来实现,类似于银行的电子口令卡。关于 DH 的详细介绍可参照:http://en.wikipedia.org/wiki/Diffie–Hellman_key_exchange
3、单向加密
单向加密(数据完整性算法):提取数据指纹,具有不可逆的特性。
常用的单向加密算法有:MD5,SHA1,SHA384,SHA512
算法的特点:
定长输出:加密后的指纹是固定长度的。
雪崩效应:原文件微小的变化都会引起指纹信息的巨大变化。
三、网络上传输数据的加密过程
真正在网络上传输的数据时采取每种加密算法的优点来实现,基本模型如下: