您当前的位置:首页 > 电脑百科 > 安全防护 > 网络安全

网络安全之OpenSSL加密传输

时间:2019-08-12 13:15:37  来源:  作者:

概述:

两个计算机在互联网上通信时,它们之间发送的信息如果不经过特殊的处理,即加密机制,很容易被其他人给获取到,如果是普通的信息,那倒是无所谓,但是如果涉及到个人的私密信息,那这样岂不是很糟糕,本篇来说一下这个安全和加密机制。


加密算法和协议:

对称加密:数据加密(保密性)(3DES,AES)
公钥加密:身份认证、密钥交换、数据加密(不常用,比对称加密要慢3个数量级)(RSA,DSA)
单项加密:数据完整性(MD5,SHA) 
密钥交换:RSA、DH(迪菲-赫尔曼)、ECDH(椭圆曲线DH)、ECDHE(临时椭圆曲线DH)

一 、对称加密:加密和解密使用同一个密钥

 DES:Data Encryption Standard,56bits
 3DES:
 AES:Advanced (128, 192, 256bits)
 Blowfish,Twofish
 IDEA,RC6,CAST5

特性:

1、加密、解密使用同一个密钥,效率高

2、将原始数据分割成固定大小的块,逐个进行加密

缺陷:

1、密钥过多

2、密钥分发

3、数据来源无法确认


二 、非对称加密算法:即公钥加密

公钥加密:密钥是成对出现

 公钥:公开给所有人;public key
 私钥:自己留存,必须保证其私密性;secret key

特点:

用公钥加密数据,只能使用与之配对的私钥解密;反之亦然

功能:

1 数字签名:主要在于让接收方确认发送方身份

2 对称密钥交换:发送方用对方的公钥加密一个对称密钥后发送给对方

3数据加密:适合加密较小数据

缺点:

密钥长,加密解密效率低下

算法:

RSA(加密,数字签名),DSA(数字签名),ELGamal

具体实现:

基于一对公钥/密钥对:
用密钥对中的一个加密,另一个解密
接收者
 生成公钥/密钥对:P和S
 公开公钥P,保密密钥S
发送者
 使用接收者的公钥来加密消息M
 将P(M)发送给接收者
接收者
 使用密钥S来解密:M=S(P(M))

三、单项加密:将任意数据缩小成固定大小的“指纹”

特点:

1 任意长度输入

2 固定长度输出

3 若修改数据,指纹也会改变(“不会产生冲突”)

4 无法从指纹中重新生成数据(“单向”)

功能:

数据完整性

常见算式:

md5: 128bits、sha1: 160bits、sha224

sha256、sha384、sha512

常用工具:

md5sum | sha1sum [ --check ] file

openssl、gpg

rpm -V


密钥交换:IKE(Internet Key Exchange )

公钥加密:

DH (Deffie-Hellman):

DH:
1、A: a,p协商生成公开的整数a,大素数p
 B: a,p
2、A:生成隐私数据:x (x<p ),计算得出a^x%p,发送给B
 B:生成隐私数据:y,计算得出a^y%p,发送给A
3、A:计算得出(a^y%p)^x = a^xy%p,生成为密钥
 B:计算得出(a^x%p)^y = a^xy%p, 生成为密钥
此时,A和B便生成了一个相同的密钥,注意这个密钥交换协议算法只能用于密钥的交换,而不能用于消息的加密处理,当双方确定要用的密钥后,要使用其他的对称加密操作实际加密和解密数据

注意:

以上所说的加密算法和协议虽然能够实现两个两个计算机之间的加密通信,可是保证不了其他计算机的干预消息。

例如:A和B是互联网上的两台主机,A拥有自己的私钥,B拥有自己的私钥,此时如若A要给B发送消息,但是第一次它并不知道谁是B,如果此时有另一台机器C告诉A说我就是B,然后把自己的公钥发送给A,A此时还以为和它通信的真的是B,然而却是A和C在通信。
那么问题来了,如何确定B的身份呢?如果此时有一个双方都信任的第三方机构,由它来确认B的身份,那么问题就可以解决了,随之而来的是谁来确定这个第三方机构的身份呢,如果是一个假的机构呢?所以还需要这个机构的上级来确定它,知道到了顶层。当然这个顶层是我们所有人在心底都默认知道和了解的。

说了这么多,这个所谓的第三方机构就叫做CA,当CA每确认一台机器的时候,就会给它颁发一个证书,具体如下:


CA和证书

PKI: Public Key Infrastructure
 签证机构:CA(Certificate Authority)
 注册机构:RA
 证书吊销列表:CRL
 证书存取库:
X.509:定义了证书的结构以及认证协议标准
 版本号
 序列号
 签名算法
 颁发者
 有效期限
 主体名称
 主体公钥
 CRL分发点
 扩展信息
 发行者签名
证书类型:
 证书授权机构的证书
 服务器
 用户证书
获取证书两种方法:
 使用证书授权机构
 生成签名请求(csr)
 将csr发送给CA
 从CA处接收签名
 自签名的证书
 自已签发自己的公钥

证书签发过程:如下图所示

网络安全之OpenSSL加密传输

 

  • 1、A将自己的公钥发送给CA
  • 2、CA在确定A的身份后,会将证书颁发给A,其中过程如下
 1)CA会将应有内容整合到证书上,证书的内容结构如上。
 2)然后将此内容使用单向加密算法生成特征码(用于验证证书完整性)
 3)最后,CA会使用自己的私钥来对此特征吗进行加密,生成数字签名(用来验证是否为CA签署的证书),然后发给A
  • 3)B的过程与A相同

当B验证A的身份时,就是通过证书来验证的,步骤如下

  • 1 使用CA的公钥来解密数字签名,如果成功,则验证了CA身份
  • 2 利用相同的单项加密算法来计算证书内容结构的特征码,与原来的特征码相比较,如果相同,则保证了证书的完整性
  • 3 从证书内容中取出A的公钥

加密通信过程详解

 

网络安全之OpenSSL加密传输

 

第一阶段:ClientHello:客户端向服务器端发起加密通信的请求

1 向服务器发送自己支持的协议版本,比如tls1.2
2 客户端生成一个随机数,稍后用户生成”会话密钥“
3 自己支持的各种加密算法,比如AES,RSA等 支持的压缩算法;

第二阶段:ServerHello(回应)

1 确认使用的加密通信协议版本,比如tls1.2;(如果版本不一样,则拒绝通信)
2 服务器端生成一个随机数,主要在稍后用户生成”会话密钥“
3 确认使用的加密方法
4 发送服务器证书
5 索要客户端证书(不过一般服务器端都不会验证客户端)

第三阶段:

1 验证服务器证书,确认无误后,取出其公钥;(验证发证机构、证书签名、证书完整性、证书持有者、证书有效期、吊销列表)
2 发送一下信息给服务器端
3 一个随机数:用于服务器公钥加密
4 编码变更通知:表示随后的信息都将用双方商定的加密方法和密钥发送
5 客户端握手结束通知

第四阶段:

1 收到客户端发来的第三个随机数-pre-master-kty后,计算生成本次会话用到的会话密钥
2 向客户端发送如下消息
3 编码变更通知:与上相同
4 服务器端握手结束通知

此时双方已经彼此确认了对方的身份,并且建立一条安全的通道,接下来就可以传输信息了。此过程如下图所示:

网络安全之OpenSSL加密传输

 

(1)A-->B

1)使用单向加密算法计算要传输的数据的特征码(并没有对原数据内容加密)
2)使用自己的私钥来加密这段特征码生成数字签名
3)使用对称加密算法加密上面的所有数据(包括原数据,特征码,数字签名),将生成的对称加密的密码附加在加密过的数据后面
4)使用B的公钥来加密这段对称加密的密码,并将以上所有数据发送给B

(2)B收到A发送的数据后

1)使用B的要来解密对称加密的密码(如果可以解密,则保证接收放是B)
2)利用解密过的对称加密密码来解密这段数据
3)解密后通过利用A的公钥来解密数字签名(如果可以,则保证了数据是从A发的)
4)此时,呈现在B的有两样东西,一个是原数据,还有一个是特征码。且原数据是没有加密的。此时B需要使用相同的单项加密算法对此时的原数据计算特征码,与A发送过来的特征码相比较,如果相等,则保证了原数据的完整性。

至此。信息的加密与解密过程完成。


总结:

在以上所述的过程中,个人认为有几点需要强调:

1)单项加密并不加密原数据,只是为了计算原数据的特征码。用于数据的完整性校验

2)对称加密算法加密和解密都是用同一个密钥。用于加密数据

3)公钥加密加密的是特征码。用于生成数字签名

4)证书的颁发和验证过程和数据的传输过程是两个过程



Tags:OpenSSL   点击:()  评论:()
声明:本站部分内容及图片来自互联网,转载是出于传递更多信息之目的,内容观点仅代表作者本人,如有任何标注错误或版权侵犯请与我们联系(Email:2595517585@qq.com),我们将及时更正、删除,谢谢。
▌相关推荐
Telnet 缺乏加密,这使得 OpenSSL 成为连接远程系统的更安全的选择。telnet命令是最受欢迎的网络故障排除工具之一,从系统管理员到网络爱好者都可以使用。在网络计算的早期,teln...【详细内容】
2021-05-13  Tags: OpenSSL  点击:(223)  评论:(0)  加入收藏
为什么要使用ssl加密通讯随着互联网快速发展,网络安全越来越得到人们的关注。谁都不想自己的数据被人窃听或利用,而当我们直接使用TCP连接一个服务器通讯时,此时是明文传输的,...【详细内容】
2021-04-12  Tags: OpenSSL  点击:(333)  评论:(0)  加入收藏
通过 OpenSSL 深入了解密码学的细节:哈希值、数字签名、数字证书等。&bull; 来源:linux.cn &bull; 作者:Marty Kalin &bull; 译者:Xingyu.Wang &bull;(本文字数:11502,阅读时长大...【详细内容】
2021-03-31  Tags: OpenSSL  点击:(233)  评论:(0)  加入收藏
一、windows vs2015 编译openssl1,到openssl官网下载源码。2,安装ActivePerl,去官网(https://www.activestate.com/products/activeperl/downloads/)下载安装。ActivePerl具体安...【详细内容】
2020-08-10  Tags: OpenSSL  点击:(149)  评论:(0)  加入收藏
这本小抄风格的指南提供了 OpenSSL 命令的快速参考,这些命令在常见的日常场景中非常有用。 来源:https://linux.cn/article-12293-1.html 作者:Mitchell Anicas 译者:Xingyu.Wa...【详细内容】
2020-06-08  Tags: OpenSSL  点击:(61)  评论:(0)  加入收藏
想要入门密码学的基础知识,尤其是有关 OpenSSL 的入门知识吗?继续阅读。-- Marty Kalin(作者) 本文是使用 OpenSSL 的密码学基础知识的两篇文章中的第一篇,OpenSSL 是在 Linux...【详细内容】
2020-02-22  Tags: OpenSSL  点击:(93)  评论:(0)  加入收藏
OpenSSL是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。在OpenSSL被曝出现严重安...【详细内容】
2019-12-31  Tags: OpenSSL  点击:(118)  评论:(0)  加入收藏
要生成证书的目录下建立几个文件和文件夹,有./demoCA/ ./demoCA/newcerts/ ./demoCA/private/ ./demoCA/index.txt (空文件,生成证书时会将数据记录写入) ./demoCA/serial (在s...【详细内容】
2019-08-19  Tags: OpenSSL  点击:(410)  评论:(0)  加入收藏
概述:两个计算机在互联网上通信时,它们之间发送的信息如果不经过特殊的处理,即加密机制,很容易被其他人给获取到,如果是普通的信息,那倒是无所谓,但是如果涉及到个人的私密信息,那这...【详细内容】
2019-08-12  Tags: OpenSSL  点击:(288)  评论:(0)  加入收藏
▌简易百科推荐
(报告出品方:德勤)数字化转型网络安全及转型挑战在任何行业,保持竞争力都需要快速开发新产品和 服务并推向市场。创新型业务模式不仅仅是简单地将现有 流程数字化,其正在覆盖供应...【详细内容】
2021-12-22  认是    Tags:网络安全   点击:(29)  评论:(0)  加入收藏
10月18号, W3C中网络平台孵化器小组(Web Platform Incubator Community Group)公布了HTML Sanitizer API的规范草案。这份草案用来解决浏览器如何解决XSS攻击问题。 网络安全中...【详细内容】
2021-12-07  实战Java  博客园  Tags:脚本攻击   点击:(20)  评论:(0)  加入收藏
一、背景介绍大家在Linux的日常使用中都晓得如何通过命令行去配置Linux的端口开放规则,但是大家知道如何配置Windows入站出站规则吗?有哪些常见的危险端口呢?如何解决上述问题...【详细内容】
2021-12-01  Kali与编程    Tags:防火墙   点击:(30)  评论:(0)  加入收藏
网络安全服务商Randori公司日前发布了一份调查报告,列出了网络攻击者最有可能攻击或利用的IT资产。在遭遇Solarwinds黑客攻击一周年之际,以及在网络安全(尤其是勒索软件和供应...【详细内容】
2021-10-28  企业网D1net   企鹅号  Tags:网络攻击   点击:(57)  评论:(0)  加入收藏
0x01.背景实验利用Dns Administrators 组成员,通过远程配置Dns服务,进行Dll inject从而实现特权提升。 在域内,Dns server 通常为Dc Server,Dns服务器管理基于rpc,通过调用c:\wi...【详细内容】
2021-10-22  IT影子    Tags:特权提升   点击:(37)  评论:(0)  加入收藏
本文主要介绍和总结了CSRF跨站请求伪造的基本原理和主要防范措施,工作中有用到的朋友不妨收藏转发一下,以备您参考。什么是CSRF?CSRF跨站点请求伪造(Cross&mdash;Site Request...【详细内容】
2021-10-13  快乐中恒    Tags:CSRF   点击:(49)  评论:(0)  加入收藏
waf拦截在打某市 Hvv 第一天就找到一个文件上传的点,经过测试,可以直接任意文件上传,没有什么道理。 直接尝试上传 Php 文件,被 waf 拦截了 2021最新整理网络安全/渗透测试/安...【详细内容】
2021-10-11  KaliMa    Tags:防火墙   点击:(56)  评论:(0)  加入收藏
应用程序与文件系统的交互始终是高度安全敏感的,因为较小的功能漏洞很容易成为可利用漏洞的来源。这种观察在web文件管理器的情况下尤其正确,其作用是复制完整文件系统的功能...【详细内容】
2021-09-17  IT野涵    Tags:漏洞链   点击:(56)  评论:(0)  加入收藏
您的苹果手机尽管iPhone比Android更安全,但也可以通过各种方式入侵。避免黑客入侵的最佳方法是警惕奇怪的链接或粗略的应用程序,并仅在必要时提供信息。电池寿命差和性能低下...【详细内容】
2021-09-16  Hackers爱好者    Tags:黑客入侵   点击:(633)  评论:(0)  加入收藏
防火墙一般布置在逻辑区域的入口处,位于三层网络架构的核心和汇聚之间,起到隔离逻辑区域,为逻辑区域创建安全策略的作用。 上面就是应用区的防火墙布置方式,他布置在应用区,可以...【详细内容】
2021-09-03  知来知去    Tags:主备模式防火墙   点击:(109)  评论:(0)  加入收藏
最新更新
栏目热门
栏目头条