一、前言
进入21世纪,人们的生活已经严重依赖于互联网,衣、食、住、行,互联网已经渗透到生活的第一个角落,这也给某些不良网民们提供了一个绝佳的环境去窃取我们的信息,让我们的信息不再安全。为了应对这些hacker和script boys,我们的白帽们也一直在努力,从没松懈过。
因为我还距白帽的能力有些差距,所以这里就简单介绍一下互联网的加密、解密方式、openssl的基本应用及CA的实现过程。
二、加密方式
1、对称加密
加密和解密使用同一密钥:具体使用的算法;
DES:通用加密标准,56bits密钥
3DES(triple):
AES:高级加密标准,128Bbits,196、256...
特性:
1)、加密方、解密方使用同一个口令
2)、将原文分割成固定大小的块,对这些块逐个进行加密
缺陷:
1)、加解密使用同一个密钥
2)、密钥分发困难
在加密数据时,由于逐字符加密速度实在是太慢了,所以就选择了对其按块进行加密,而且在加密时通常把第一个块加密以后,再把第二个块加密,将第一个块加密后的结果与第二个块加密之后的结果做异或运算,然后再做为第二个块的输出,前后块形成了块链。所以如果想要看第一块的内容,必须拿到前一个块做异或运算,才能得到结果。
对于一些大的购物网站来说,它需要保存每个用户的密钥,这就造成了一定的麻烦。而且在数据传输的过程中是很容易被窃取并篡改,然后进行字典攻击,无法保证用户身份认证和数据的完整性的。
2、公钥加密
公钥加密会在本地生成一对密钥对儿:公钥和私钥。公钥任何人都可以拥有,但私钥只有自己拥有
公钥:从私钥中提取生成,公开给所有人
私钥:通过加密工具创建,使用者自己保留
公钥加密的特性和用途
特性:
通过公钥加密的数据只能够使用对应私钥解密,反之亦然
用途:
1)数字签名:让接受放确认发送方的身份
身份认证:发送方使用自己的私钥加密一个文件的特征码给接收方--》
接收方使用发送方的公钥能够解密确认文件为发送方发送
2)密钥交换:发送方使用接受放的公钥加密加密一个对称加密的机密发送给接收方,而后接收方使用私钥进行解密得到对称加密密码使
公钥证书,通常简称为证书,是一种数字签名的声明,它将公钥的值绑定到持有对应私钥的个人、设备或服务的标识。证书的主要好处之一是主机不必再为单个使用者维护一套密码,这些单个使用者进行访问的先决条件是需要通过身份验证。相反,主机只需在证书颁发者中建立信任。大多数普通用途的证书基于 X.509 v3 证书标准。
所以,对于服务器而言,在与用户进行交互的过程中,需要时直接管用户要其公钥就可以了,只有其对应的私钥才能解密,再也不需要记录那么多的密钥了。在密钥交换的过程中,依然存在密钥被截取、伪造。
另外,就算法本身的实现来讲,公钥加密技术比对称加密技术的速度慢上差不多3个数量级,一个数量级就是10倍,所以3个数量级不是30倍,而是1000倍。因此,在加密数据时是很少用到公钥去加密的。同样的,私钥加密也会很慢。
公钥加密算法:
DSA:只能够签名,不可以加解密
RSA:既能够签名,又可以加解密
EIGamal
3、单向加密
单向加密是提取数据的特征码,保证了数据的完整性
特性:
1)、one-way:单向的
2)、定长输出、雪崩效应
功能
验证数据完整性
就好比我们在互联网上下载东西一样,好多网站都会提供一个MD5码,我们把下载下来的数据做一个MD5运算就会得到一个特征码,只要这个特征码与网站提供的一样,那么就说明这个数据没有被修改过,那如果二都不一致,那肯定就是被修改过了的。这也就是传说中的单向性和雪崩效应,微小的改变会导致结果的巨大变化。
一些单向加密算法:
MD5:128bits
sha1:160bits
sha512:512bits
三、加密方式详解
如上述三种加密方式而言,单单使用哪一种都不能保证数据的完整性和身份认证。尤其在当今互联网上的信息传输一定得保证私密性、身份认证和数据完整性。
下面用一张图来详解一下当今互联网加密、解密的流程:
Bob传送数据给Alice
解释:
加密过程:
1)、使用单向加密技术提取数据指纹,生成一个特征码。
2)、用Bob的私钥对生成的特征码进行加密。因只有Bob有对应私 钥,确认身份认证。(注意私钥一般只会用于加密数据特征)
3)、使用对称加密技术对数据和特征码进行加密
4)、用Alice的公钥对上一步使用对称加密的数据和数据特征码 进行加密
解密过程:
1)、使用Alice的私钥先解密对称加密密码。(密钥交换)
2)、用得到的对称加密密码去解密被加密了的数据和特征码。
3)、使用BOB的公钥解密特性码,得到在Bob发送数据的特征码,并确认了数据的来源可靠性(身份认证)
4)、Alice使用相同的单向加密算法提取数据指纹和之前的指纹进行比较。(数据完整性)
存在问题:
虽然用了这么多步加密算法去加密整个过程,但在数据的传输过程中还是存在漏洞的。因为Bob和Alice的公钥依然会在网上传输,所以这两个公钥仍然有可能被窃取、掉包。这个过程还是不完美的,这就需要一个权威的第三方认证机构CA来给他们发证。
原文地址:http://blog.51cto.com/8950428/2120652