加解密技术,以及私有CA的搭建

一、前言

进入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

时间: 2024-10-11 13:35:25

加解密技术,以及私有CA的搭建的相关文章

数据加解密原理及私有CA的搭建以及撤销

简单罗列基础命令,只分享我的想法! 一.数据加/解密原理说明 客户端双方在互联网上通信,为了保证信息的安全,有了SSL协议,就是在TCP/IP模型传输层之上应用层之下,叫做安全的套接字层.目的就是为了把应用层的数据进行加密传递给客户端,而在Linux上实现这个协议或这个功能的软件就是OpenSSL. 原理其实就是,双方客户端的SSL层进行协商应用哪种加/解密的方式,ok,如果双方SSL达成一致,上层应用协议又通过SSL进行加密的话,那么双方在互联网上传输的数据就是加密的,这个加密之后的数据到达客

openssl加解密原理及私有CA的建立

一.openssl加解密原理 数据加密解密过程数据加密需要实现的功能:数据私密性,数据完整性,身份认证和秘钥交换. 美国NIST,为了计算机的安全,提出了几个要求: 1.数据保密性   数据保密性   隐私性 2.完整性    数据完整性   系统完整性 3.可用性 4.真实性 && 可追溯性 OSI:x.800  安全攻击:   被动攻击:窃听   主动攻击:伪装.重播.消息修改.拒绝服务  安全机制:   加密.数字签名.访问控制.数据完整性.认证交换.流量填充.路由控制.公证  安全

OpenSSL以及私有CA的搭建

首先我们肯定会问什么是OpneSSL,以及OpenSSL有什么用?当让这不仅是刚接触Linux的我想知道,相信大多数人和我一样也非常想知道,因为OpenSSL是linux上基础的服务之一,了解它的应用可以帮助我们更好的了解linux.那么我们先了解下什么是OpenSSL已经它有什么用. 一.OpenSSL及其应用 首先我们要了解SSL是什么?SSL是Secure Sockets Layer(安全套接层协议)的缩写,可以在Internet上提供秘密性传输.Netscape公司在推出第一个Web浏览

10.Java 加解密技术系列之 DH

Java 加解密技术系列之 DH 序 概念 原理 代码实现 结果 结束语 序 上一篇文章中简单的介绍了一种非对称加密算法 — — RSA,今天这篇文章,继续介绍另一种非对称加密算法 — — DH.当然,可能有很多人对这种加密算法并不是很熟悉,不过没关系,希望今天这篇文章能帮助你熟悉他. 原理 整个通信过程中g.g^a.g^b是公开的,但由于g.a.b都是整数,通过g和g^a得到a还是比较容易的,b也是如此,所以最终的“密钥”g^(a*b)还是可以被计算出来的.所以实际的过程还需要在基本原理上加入

8.Java 加解密技术系列之 PBE

Java 加解密技术系列之 PBE 序 概念 原理 代码实现 结束语 序 前 边的几篇文章,已经讲了几个对称加密的算法了,今天这篇文章再介绍最后一种对称加密算法 — — PBE,这种加密算法,对我的认知来说,并没有 DES.3DES.AES 那么流行,也不尽然,其实是我之前并没有这方面的需求,当然接触他的机会也就很少了,因此,可想而知,没听过显然在正常不过了. 概念 PBE,全称为“Password Base Encryption”,中文名“基于口令加密”,是一种基于密码的加密算法,其特点是使用

11.Java 加解密技术系列之 总结

Java 加解密技术系列之 总结 序 背景 分类 常用算法 原理 关于代码 结束语 序 上一篇文章中简单的介绍了第二种非对称加密算法 — — DH,这种算法也经常被叫做密钥交换协议,它主要是针对密钥的保护.同时,由于水平的限制,打算这个系列就到此为止了,这篇文章就算是一个总结吧,回顾一下这几个月来都写了些什么. 背景 其 实,在开始写这个系列之前,我对于 Java 的加解密也并不是那么了解.之所以要写这些文章,还主要是由于工作的原因.记得几个月以前,当时项目要做一个数字证书,证书的生成.存储.传

6. Java 加解密技术系列之 3DES

Java 加解密技术系列之 3DES 序 背景 概念 原理 代码实现 结束语 序 上一篇文章讲的是对称加密算法 — — DES,这篇文章打算在 DES 的基础上,继续多讲一点,也就是 3 重 DES — — Triple DES. 背景 至于 3DES 为什么会出现呢?其实,这个不难想到.由于 DES 是一种非常简便的加密算法,但是密钥长度比较短,计算量比较小,相对来说,比较容易被破解.因此,在 DES 的基础上,使用三重数据加密算法,对数据进行加密,这样来说,破解的概率就小了很多. 概念 3D

9.Java 加解密技术系列之 RSA

Java 加解密技术系列之 RSA 序 概念 工作流程 RSA 代码实现 加解密结果 结束语 序 距 离上一次写博客感觉已经很长时间了,先吐槽一下,这个月以来,公司一直在加班,又是发版.上线,又是新项目太紧,具体的就不多说了,想听我吐槽的小伙伴, 可以私信给我(*^__^*) .上一篇文章,已经把对称加密的算法讲完了.从今天开始,要说说非对称加密了.因为,非对称加密真的是太重要了,我们的日常生活中,都离不开非对称加密. 概念 在说 RSA 之前,首先聊聊什么是非对称加密.在讲对称加密的时候,就曾

5.Java 加解密技术系列之 DES

Java 加解密技术系列之 DES 序 背景 概念 基本原理 主要流程 分组模式 代码实现 结束语 序 前 几篇文章讲的都是单向加密算法,其中涉及到了 BASE64.MD5.SHA.HMAC 等几个比较常见的加解密算法.这篇文章,以及后面几篇,打算介绍几个对称加密算法,比如:DES.3DES(TripleDES).AES 等.那么,这篇文章主要是对 DES 大概讲一下. 背景 在 讨论 DES 之前,首先了解一下什么是对称加密算法吧.对于对称加密算法,他应用的时间比较早,技术相对来说比较成熟,在

7.java 加解密技术系列之 AES

java 加解密技术系列之 AES 序 概念 原理 应用 代码实现 结束语 序 这篇文章继续介绍对称加密算法,至于今天的主角,不用说,也是个厉害的角色 — — AES.AES 的出现,就是为了来替代原先的 DES 标准.现在来说,AES 的用途还是非常广泛的. 概念 AES, 全称为“Advanced Encryption Standard”,中文名“高级加密标准”,在密码学中又称 Rijndael 加密法,是美国联邦政府采用的一种区块加密标准.AES 加密算法作为新一代的数据加密标准汇聚了强安