Openssl及加密解密(一)数据加密解密及CA原理

明文:plaintxt或者cleartext,也就是没有加密的,直接可以看懂的内容。密文就是通过特殊方式处理过的内容,无法直接看懂。

常见的加密方式:

  • 对称加密

  • 公钥加密

  • 单向加密

加密原理:将原文按固定大小切割成数据块,逐个数据块进行加密,因为逐字符加密的速度太慢了。在加密是通常把第一个块加密,然后再把第二个块加密,输出的第二个块还不是加密以后的第二个块,而是将第一个块加密后的结果和第二个块加密后的结果做异或操作作为第二个块的输出,所以你每拿到一个块之后要想还原就必须拿到前一个块,来做异或操作。


秘钥交换(IKE):DH算法。也就是在秘钥交换过程中没有发送任何密码,A经过计算生成一些数据给了B,B自己再生成一些数据传给A,A和B拿着对方给的数据经过计算得出口令,而且这个口令是一样的。


对称加密:

加密算法+口令,把要转换的数据也就是明文数据,通过加密算法内部转换明文变成密文。这个算法可能是公开的,但口令只有你自己知道。为了更加安全,那么加密本身不能过于依赖算法,因为算法固定而且一旦算法遭到破解,那么基于这个算法的所有密文都可以破解,所以算法固然重要,但是最重要的是口令,口令可以变,就算算法破解了,口令不知道也是没有用的。对称加密是加密和解密都使用相同的口令。比如DES(56bits)、AES(128bits)、AES(192bits)、AES(256bits)、3DES。

对称加密有个问题,算法对方可以拿到,但是口令呢?所以这是它最大的问题。如果通信涉及到多个方面而且口令不能使用相同的,那么你需要记录的密码就非常多。所以对称加密无法解决秘钥交换的问题,还有我给你密码如何保证收到密码的就是你也就是认证问题,另外就是别人截获密文然后做了修改收到的人解密后信息不对但是他并不知道这就数据完整性问题。

公钥加密(非对称加密):

相对于对称加密而言,公钥加密是非对称加密,它会生成公钥和私钥,公钥可以给任何人是公开的,A使用B的公钥进行加密,B使用自己的私钥进行解密。它解决了对称加密中需要记录众多口令的问题。但是公钥加密的密码长度很长,早期的512位到现在的2048位,这种加密方式造成加密速度很慢所以公钥加密一般不用来加密数据,而是用来加密口令,数据还是用对称加密。A生成口令加密数据,然后用B的公钥加密口令,然后把加密后的口令和数据传递给A,A用私钥解密口令,得到口令后再用口令解密数据。常用的公钥加密算法:RSA、DSA、DES、AES

这个过程也实现了秘钥交换过程,同时它还可以实现用户身份的认证即发信息的人是它声称的人,它是这么实现的,A用自己的私钥加密,如果要想解密就只能使用A的公钥,虽然公钥任何人都能获得,但是你用A的公钥一旦解密了信息,就证明这个信息是用A的私钥加密的,只有A才有A自己的私钥,所以就证明了发信息的这个人就是A。这时候你会想到,用自己的私钥加密数据那不等于没加密一样么,因为公钥谁都可以得到。再说公钥加密算法速度慢,用私钥加密也一样。所以通常都在引入另外一种方式,也就是单向加密。

单向加密:

单向加密可以保证数据完整性,经过加密的数据如何保证不被篡改,它本身不是一种加密技术而是一种不可逆的抽取数据指纹的技术,常见的有MD5、SHA1、SHA512、CRC32等。那么如果篡改了如何发现?A对数据抽取一段使用单向加密来获取特征码,也叫指纹信息。但是如何保证指纹信息不被篡改和重新生成呢?这就是上面说的和公钥加密结合。A抽取数据一段进行单向加密,生成特征码,然后用自己的私钥加密特征码,发送给B,这时候C截获了数据,然后使用A的公钥解密了特征码,然后再篡改了数据,这时候C再想加密特征码而他没有A的私钥所以C只能用自己的私钥加密特征码,当B收到数据以后,B使用单向加密获取数据的特征码,然后用A的公钥来解密发过来的加密特征码,显然无法成功,假设C没有篡改特征码而是修改的数据,那么B使用单向加密获取数据特征码,然后用A的公钥解密加密的特征码,两者一对比肯定不一样。虽然上述过程没有考虑数据本身的加密,但由于可非对称加密结合,实现了秘钥交换、身份验证、数据完整性,但无法保证数据私密性。那如何同时实现数据加密、数据完整性和身份认证呢

那如何同时实现数据加密、数据完整性和身份认证呢

三种方法融合在一起

  1. A生成原始数据,使用单向加密计算数据特征码(保证数据完整性),然后用A自己的私钥加密特征码(保证身份验证)

  2. A再找一个密码,用对称加密算法把数据、特征码整体加密(实现了对数据的加密,因为对称加密算法速度快)

  3. A再使用B的公钥,第二不中的对称加密算法中的密码进行加密。

  4. 上述三步完成后,发送给B。

第三方如果截获了数据,它没有B的私钥所以无法获得解密数据的密码,从而无法解密数据。下面是B获得数据后的步骤:

  1. B使用自己的私钥解密获取密码(因为只有自己的私钥才可以解密,证明是发给自己的,实现了秘钥交换)

  2. B使用获得的对称加密密码进行解密数据(原始数据和数据特征码),(实现了数据加密和解密)

  3. B使用A的公钥解密特征码,然后使用单向加密算法计算数据特征码(实现了身份验证,因为只有A的公钥才能解密A的私钥加密的数据)

  4. 对比解密后的特征码和计算后的特征码,如果一致说明数据没有篡改(实现了数据完整性)

上面的过程看似完美,但实际上还有很大漏洞,A发送给B之前肯定向B索取B的公钥,而且A拿到之后必须要相信这个公钥就是B的,但如果C截取了信息,C把自己的公钥给了A,并声称自己是B,那么A是无法验证的,同样C也依然可以冒充A。所以整个过程最薄弱的环节就是交换公钥的环节。为了解决这个问题这就是需要第三方机构,也就是我们要说的CA。那么申请方向CA提交信息进行审核其中最重要的是公钥,审核通过后CA会把产生一个证书,之后把证书发给申请方。为了避免证书发送过程中伪造,则CA会计算申请者提交信息的特征码,然后用自己的私钥(CA自己的证书是自己给自己颁发的)进行加密后一起发送给申请方。申请方用CA的公钥解密,如果成功就证明是CA发的。CA对特征码进行加密就是电子签名。

这时候A要给B通讯,A向B要证书(证书中包含B的公钥,当然也可以同时包含公钥和私钥),然后A去CA获取CA的公钥,然后用公钥解密证书的数字签名得到特征码,如果成功就证明证书是CA颁发的且没有被篡改。但这里又出现上面的问题,A向CA索要公钥,万一有人冒充CA怎么办?这就是在操作系统中内置全球知名CA的公钥。你只要是通过正规渠道获取的正版系统,那么所包含的公钥都是真实可靠的。


PKI(Public Key Infrastucture):公钥基础设施,公钥发放吊销等机制。


上面都是概念,而实现这些概念的软件常用的就是openssl、gpg.



原创文章,作者:XWYXU,如若转载,请注明出处:http://www.wangzhanshi.com/n/16496.html

(0)
XWYXU的头像XWYXU
上一篇 2025年1月2日 12:39:18
下一篇 2025年1月2日 12:39:20

相关推荐

  • ssl证书的作用有什么呢

    SSL是Secure Sockets Layer 的简称,叫做安全套接字协议,SSL证书就是遵守SSL协议,由受信任的数字证书颁发机构CA,在验证服务器身份后颁发的一个数字证书。其…

    ssl证书 2025年1月2日
  • 免费ssl证书怎么申请?有用吗?

    当下的时代网络信息的传输使用频率是比较高的,而信息在传输的过程当中,很多的网站也都通过SSL证书来保障网站的安全,SSL证书是根据SSL加密协议来进行,它能够保障网站的信息数据在传…

    2025年1月2日
  • SSL证书转换操作的流程

    SSL证书转换如何操作?    对于SSL证书转换操作的流程,在一定的环境下是比较好操作的。整体流程也不是非常难。现在对于SSL数字证书的使用已经发展到网络的每…

    2025年1月2日
  • 为什么要卸载ssl

    给网站安装SSL证书之后,网站的通信协议就发生了改变,网站的通信协议就可以变成加密的,对用户来说,自己访问网站不用担心出现网络安全事故,而网站也不用担心网站的核心数据被窃取了,网站…

    2025年1月2日
  • ssl证书机构是什么

    新手们可能对SSL证书机构都不太了解,不太清楚SSL证书机构有哪些?小编就为各位新手朋友们介绍一下。 1、 全球第一名牌:美国Symantec,公司旗下品牌VeriSign,是全球…

    2025年1月2日
  • Symantec SSL证书是什么

    什么是Symantec(赛门铁克)SSL证书? SSL证书是数字证书的其中一种,主要应用于对Web网站的数据传输加密,为Web网站提供HTTPS供浏览者访问。 而SSL证书是由CA…

    2025年1月2日
  • 多个域名可不可以用一个SSL证书

    一般来说,ssl证书是绑定域名的,而且一个安全套接层证书只能绑定一个域名,但是对于有多个域名的用户怎么办呢?要买多张安全套接层证书吗?当然,这样对于此类用户来说过于麻烦,有人就会问…

    2025年1月2日
  • OpenSSL中生成自签名证书的方法有哪些

    OpenSSL的命令行数量很庞大,很吓唬人。 这是因为OpenSSL所涉及到的领域的确很多,比如各种对称/非对称算法,随机数,签名,加密,证书,结构分析,PKI体系的构建等,这些领…

    2025年1月2日
  • Java怎么使用openssl检测网站是否支持ocsp

    OCSP在线证书状态协议是为了替换CRL而提出来的。对于现代web服务器来说一般都是支持OCSP的,OCSP也是现代web服务器的标配。 但是OCSP stapling却不是所有的…

    2025年1月2日
  • 低价格通配符SSL证书以及不限制子泛域名的SSL

    低价格通配符SSL以及不限制子泛域名的SSL在哪里买?随着在线购物需求的不断增长,组织转向了在线业务,其中安全性是不可避免的一部分。即使不断上升的网络犯罪也促使组织考虑IT基础设施…

    2025年1月2日

发表回复

登录后才能评论