在当今网络的时代中,到底是如何保证数据传输的安全的呢?下面在原理上来阐述实现过程。
一、安全标准
网络信息安全标准由美国国家标准与技术研究院(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
算法的特点:
定长输出:加密后的指纹是固定长度的。
雪崩效应:原文件微小的变化都会引起指纹信息的巨大变化。
三、网络上传输数据的加密过程
真正在网络上传输的数据时采取每种加密算法的优点来实现,基本模型如下:
假设 A 主机要向 B 主机传输数据,为了保证数据的安全,大致传输过程是这样的:
A主机要将传输的明文信息采取单向加密算法提取明文数据的指纹,使用 A 的私钥加密指纹信息,将加密后的私钥附加到明文后面,定义这种(笔者自定义)信息为第一次加密信息。此时在利用某种算法生成一串秘钥(对称加密的秘钥),将第一次加密信息结合生成的秘钥利用对称加密算法生成第二次加密信息,然后在利用 B 的公钥信息加密秘钥后附加到第二次加密信息后生成最终的加密信息。B 主机在接收到 A 主机的加密信息后,尝试利用自己的私钥解密收到的信息,如果能解密,就会得到对称加密的秘钥,然后提取这个秘钥来解密剩余的信息,得到对称解密后的数据。完成这一步的工作之后,利用 A 的公钥来验证身份确定是 A,此时会得到明文和指纹信息,利用相同的单向加密算法,将提取的指纹信息与公钥解密后的指纹信息对比来实现数据的完整性。
但是,上面得以实现最重要的一环是 A 如何可靠的获取 B 的公钥呢?
所以就出现了第三方机构 CA,通常 CA 是一个公认的,值得信赖的机构。由它来提供相应的公钥信息。大致流程如下:
最重要的一环的实现如上图,大致的流程是:A 要想获得 B 的公钥信息时,首先 B 的向 CA 机构申请注册;申请成功后 CA 会向 B 返回一个证书,证书里面包括的内容 B 提供的公钥信息和组合或者各个的名称等信息,有效期,最后附加的是 CA 的签名等信息;A 要向 B 传输数据时,A 首先向 B 请求获得证书,在 B 同意后,将证书传送给 A;A 获得证书后会去验证CA 的身份和完整性,此时也会询问 CA 证书是否吊销,一切符合条件时,A 就可以向 B 开始传输数据了。
四、PKI
PKI(public key infrastructure,公共秘钥基础建设):是一组由硬件、软件、参与者、管理政策与流程组成的基础架构,其目的在于创造、管理、分配、使用、存储以及撤销数字凭证(摘自维基百科)。是现代电子商务和网路安全的重要基于规范。
以上在网络上的数据传输过程以及 CA 认证都可由 PKI 实现。
PKI的组成包括:
签证机构:CA
注册机构:RA
证书吊销列表:CRL
证书存取库:用户接口
详细介绍请参照:http://en.wikipedia.org/wiki/Public_key_infrastructure
总结:本文主要介绍了加密算法的类型和实现过程,以及如何通过 CA 获得证书。