openssl基础应用

一、前言

什么是openssl?讲 openssl之前我们先了解下什么是ssl?ssl是secure socket layer的简称,其使用对称加密解密,非对称加密解密(公钥加密解密),单向加密解密结合证书实现数据传输安全。openssl默认是在系统安装时就安 装上去的。

二、加密解密基础

2.1.1、对称加密

对称加密解密使用同一个口令,它将明文分割成固定大小的块,逐个进行加密解密。对称加密可以使用加密算法实现,如DES,3DES,AES,RC6等。基本上基于口令加密都容易遭到暴力破解,特别是弱口令。

对称加密过程示意图

解析:1.hostA中有一段明文plain text,它使用对称加密算法加密,加密后的结果是一段密文,假设密文内容为cipher text

2.密文cipher text在网络中传输到达hostB

3.hostB使用对称解密开这段密文得到内容为plain text

2.1.2对称加密演示

2.2.1、非对称加密(公钥加密)

非对称加密使用一组密钥来进行加密,启动公钥通过某种方式从私钥中取出。当使用公钥加密时只有对应的私钥可以解密,当使用私钥加密时,只有对应的公钥可以解密。非对称加密常用的加密算法有RSA,DSA,EIGamal等。

非对称加密过程示意图

使用公钥加密

解析:1.alice与bob通信,alice使用bob的公钥对plaintext加密

2.然后把加密的数据传输给bob

3.bob使用自己的私钥解密这段密文,得出plaintext

使用私钥加密

解析:1.alice与bob通信,alice使用自己的私钥加密plaintext

2.加密的数据传输给bob

3.bob使用alice的公钥解密,得出plaintext

2.2.2、非对称加密演示

2.3、单向加密

单向加密是一个定长输出一段特征码,当数据改变时,那么其特征码也变了。无法再还原回去,即雪崩效应。常用的单向加密算法有MD5,SHA1,SHA256,SHA512等等。

2.4、数据包在网络中安全传输过程

如下图

三、基于证书的认证

由于在网络上传输公钥,很容易 被别有用心的人莫名顶替,从而造成一些麻烦事。如果我们不直接传送公钥,而是证书,并且可以通过第三方认证机构来验明证书是否有效,那么就安全多了。 PKI正是(Publick Key Infrastructure)公钥基础设施提供公钥加密和数字签名,目的是为了了管理密钥和证书,一个机构通常采用PKI架构管理密钥和证书可以建立一 个安全的网络环境。提到PKI,我们不得不提下X.509定义了证书的格式,大体如下图

3.1、自建CA

在内网环境中,我们如果对数据传输安全性要求较高,又不想投入大量的金钱。那么自建一个CA是一个不二的选择。

CA工作过程如下图

实际过程可能比图中所示更复杂,这里这个给出个大概,下面将讲解自建CA的基本过程,对于需要CA实地考察公司之类,发送文件给CA或者CA把证书发送给客户端中这些过程由于是做实验,这些一笔带过。

3.1.1、服务器端建立CA

1.生成密钥

2.自签证书

3.初始化工作环境

3.1.2、客户端申请证书

1.生成密钥对及证书请求

3.把签署请求文件发给CA服务器

由于我们是同一台主机上做实验,故不需要把my.csr证书请求文件发送给ca服务器

3.2、服务器签署证书

3.2.1 服务器签署证书

3.2.2发送给请求者

由于在一台主机上操作,服务器端和客户端都是自己,故不需要发送给请求者

3.3、证书吊销

四、总结

对称加密、非对称加密、单向加 密这三个算法需要了解其加密过程,对于了解如何在网络上安全传输数据有很大的帮助,openssl是个强大的工具,但是其命令也非常多。故我们使用过程中 可能会忘记这个命令的使用方法,这个时候只有man下这个命令。由于本人画图技术水平太烂,故一不小心去copy了下其他人的图片,文章开头已指明参考文 档。

本文分享自微信公众号 - 马哥Linux运维(magedu-Linux),作者:成吉思汗

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2015-12-01

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Openssl加密解密原理+CA自建实现

    前言 互联网的惊人发展使企业和消费者都感到非常兴奋,它正改变着我们的生活和工作方式。但是,互联网的安全程度如何——尤其是在通过它发送机密信息时的安全性——已...

    小小科
  • Linux基于OpenSSL实现私有CA构建

    前言 随着互联网的迅猛发展,网络通信已经成为传递信息的主要途径。而通信时的数据传输大部分却是明 文传输的,在网络这个不安全的环境下,如果没有一套数据加密机制,就...

    小小科
  • 浅谈Openssl与私有CA搭建

    随着网络技术的发展、internet的全球化,信息共享程度被进一步提高,各种基于互联网的应用如电子政务、电子商务日益增多并愈加被人们工作和生活依赖。但是,由于...

    小小科
  • Linux基于OpenSSL实现私有CA构建

    前言 随着互联网的迅猛发展,网络通信已经成为传递信息的主要途径。而通信时的数据传输大部分却是明 文传输的,在网络这个不安全的环境下,如果没有一套数据加密机制,就...

    小小科
  • Openssl加密解密原理+CA自建实现

    前言 互联网的惊人发展使企业和消费者都感到非常兴奋,它正改变着我们的生活和工作方式。但是,互联网的安全程度如何——尤其是在通过它发送机密信息时的安全性——已...

    小小科
  • HTTPS科普扫盲帖

    本文作者:IMWeb 陈映平 原文出处:IMWeb社区 未经同意,禁止转载 为什么需要https HTTP是明文传输的,也就意味着,介于发送端、接收端...

    IMWeb前端团队
  • HTTPS科普(转) 为什么需要https

    为什么需要https HTTP是明文传输的,也就意味着,介于发送端、接收端中间的任意节点都可以知道你们传输的内容是什么。这些节点可能是路由器、代理等。 举个最常...

    柴小智
  • HTTPS科普扫盲帖

    HTTP是明文传输的,也就意味着,介于发送端、接收端中间的任意节点都可以知道你们传输的内容是什么。这些节点可能是路由器、代理等。

    IMWeb前端团队
  • 最详细的 HTTPS 科普扫盲帖

    HTTP是明文传输的,也就意味着,介于发送端、接收端中间的任意节点都可以知道你们传输的内容是什么。这些节点可能是路由器、代理等。

    哲洛不闹
  • .Net中的加密解密

    在一些比较重要的应用场景中,通过网络传递数据需要进行加密以保证安全。本文将简单地介绍了加密解密的一些概念,以及相关的数字签名、证书,最后介绍了如何在.NET中对...

    张子阳

扫码关注云+社区

领取腾讯云代金券