信息安全基础(加密)
信息安全概述
信息安全的任务是保护信息财产,以防止偶然的故意为之的未授权者对信息的恶意修改、破坏以及泄漏,从而导致信息无法处理,不完整、不可靠。
信息安全具有以下基本属性:
(1)保密性(Confindentialy):保证未授权者无法享用信息,信息不会被非法泄漏而扩散;
(2)完整性(Integrity):保证信息的来源、去向、内容真实无误;
(3)可用性(Availability):保证网络和信息系统随时可用;
(4)可控性(Controllability):保证信息管理者能对传播的信息及内容实施必要的控制以及管理;
(5)不可否认性(Non-Repudiation):又称不可抵赖性,保证每个信息参与者对各自的信息行为负责;
其中,前三者又称为信息安全的目标——CIA。
CIA又可概括为如下三点:
1.机密性
2.完整性
3.身份验证
机密性:为了确保数据的机密性,就要对数据加密。为了实现数据在传输前进行加密,接收后能够对数据解密。
则必须采用对称加密。对称加密需要双方约定加密密钥。由于对称加密需要事先约定密钥,则在互联网
上无法实现密钥的安全约定。并且对称加密的密钥无法有效的管理,假如A与B、C、D、E......通讯,为
使他们之间的通讯都是安全的,A必须使用不同的密钥,随A通讯人数的增加,密钥将很难管理。综上所述
对称加密在一定程度上解决了数据机密性问题,但无法提供密钥的有效管理。
综上所述:解决机密性存在密钥无法安全约定,和无法有效管理的问题。
完整性:数据的完整性就是保证数据不被篡改。保证数据完整性的解决方案是使用单向加密算法。
单向加密算法特征:
1.输入一样,输出必然一样。
2.雪崩效应,输入微小的改变将会引起结果巨大改变。
3.定长输出,无论原始数据多长,结果长度一样。
4.不可逆。
假如:A与B通讯
A:A----->提取明文特征码------>特征码加密------>明文+特征码一起发送----->B
B:B解密特征码,然后使用相同算法提取明文特征码与A的特征码比较,如果一样则说明数据是
完整的。
以上A与B之间的通讯需要一个约定好的对称加密密钥。由于互联网不存在一个安全的渠道供双方
约定对称加密密钥。要想在互联网上实现对称密钥的约定,需要协议的支撑。最著名的密钥交换协议Diffie-Hellman协议,实现原理如下:
假如A—B之间进行密钥约定过程如下:P,g(大素数,生成数)
1.A选取一个大素数P,一个生成数g,发送给B
2.A在本机内部随机选取一个数x
B在本机内部随即选取一个数y
(A、B相互都不知道自己选取的数)
3.A将g^x%P的结果发送给B
B将g^y%P的结果发送给A
(目前在网上传输的数据有P、g、g^x%P、g^y%P;由于离散对数问题,根据这四个数无法推
算出x或者y)
4.A得到的数据为g^y%P、x、g、P四个数,根据(g^y%P)^x 生成 g^xy%P作为对称密钥;
B得到的数据位g^x%P、y、g、P四个数,根据(g^x%P)^y生成g^xy%P作为对称密钥;
5.之后A、B之间就可以使用g^xy%P作为对称密钥。
综上所述:密钥交换协议可以很容易实现对称密钥的约定,我们可以把以上过程用软件来实现密钥
的自动交换和验证数据的完整性。由于以上过程密钥是自动交换的,就会出现身份无法验证的问题。假如A、B交换密钥时,C窃取了A的数据,然后再与B交换,则B无法验证C的身份。要想保证数据的完整性,还需解决身份验证的问题。
身份验证:实现身份验证的技术是数字签名,数字签名的原理是非对称加密算法。非对称加密算法
有一个密钥对:公钥、私钥。
非对称加密算法特性:
公钥是公开的,任何人都可以看到。
私钥是私有的,只有自己知道。
利用非对称加密算法,公钥和私钥用任何一个加密,都可以用另一个解密。
公钥加密,私钥解密------>可以保证机密性。
私钥加密,公钥解密------>可以验证身份。(因为私钥只有本人自己拥有,只
要用他的公钥能解密,就能确定这个人的身份因此,私钥也可以认为是个人身份的证
明。)
私钥加密,公钥解密是唯一一种可以确定消息来源的机制————数字签名。
数字签名
要实现的功能是我们平常的手写签名要实现功能的扩展。平常在书面文件上签名的主要作用有两点,一是因为对自己的签名本人难以否认,从而确定了文件已被自己签署这一事实;二是因为自己的签名不易被别人模仿,从而确定了文件是真的这一事实。采用数字签名,也能完成这些功能:
(1)确认信息是由签名者发送的;
(2)确认信息自签名后到收到为止,未被修改过(消息的完整性);
(3)签名者无法否认信息是由自己发送的。
数字签名如下:
假如现在A向B发消息
简单解释:
A:将明文进行摘要运算后得到摘要(消息完整性),再将摘要用A的私钥加密(身份认证),得到数字签名,将密文和数
字签名一块发给B。
B:收到A的消息后,先将密文用自己的私钥解密,得到明文。将数字签名用A的公钥进行解密后,得到正确的摘要(解密
成功说明A的身份被认证了)。
对明文进行摘要运算,得到实际收到的摘要,将两份摘要进行对比,如果一致,说明消息没有被篡改(消息完整性)。
数字证书
理解了数字签名之后,数字证书就好理解了。
由于网络上通信的双方可能都不认识对方,那么就需要第三者来介绍,这就是数字证书。
数字证书由Certificate Authority( CA 认证中心)颁发。
关于数字证书的具体描述,需要百度,目前未完全理解。记一个TODO。
图解如下:
首先A B双方要互相信任对方证书。//TODO
然后就可以进行通信了,与上面的数字签名相似。不同的是,使用了对称加密。这是因为,非对称加密在解密过程
中,消耗的时间远远超过对称加密。如果密文很长,那么效率就比较低下了。但密钥一般不会特别长,对对称加密的密
钥的加解密可以提高效率。