加密、解密、openssl的基本应用以及自己创建CA

简介:

  在现实生活中密码的重要不言而喻,在我们的计算机上密码的更是重中之重,本文主要简单的讲述加密解密的实现机制,openssl的基本应用以及如何自己制作CA证书

一、加密解密的基本分类

   加密方式现在最要分为三类:对称加密、公钥加密、单向加密

1)、对称加密

    对称加密由加密算法加口令组成,比较著名的对称加密算法有DES(56bits),3DES,AES(128bits),Blowfish,Twofish,IDEA,RC6,CSAT5,Serpent等

    特性:

    1、加密/机密使用统一的口令

    2、将原文分割成固定大小的数据块,对这些块进行加密

    存在的缺陷

    1、口令的传输无法确保其安全性

    2、密钥太多,不方便管理

2)、非对称加密

    非对称加密由一个公钥和一个私钥组成,其中公钥所有人都可以获取,只有私钥才是自己保存,比较著名的算法有RSA,EIGmal,DSA等

    特性:

    1、主要用于密钥的交换

    2、用户身份认证

    存在的缺陷

    算法加密比较耗时耗资源

3)单向加密

    单向机密主要是用来提前数据的特征码,确保数据的完整性,比较著名的算法有MD5,SHA1,SHA512,CRC-32等

    特性:

    1、雪崩效应

    2、定长输出

二、Openssl基本应用

1)、组成

   openssl是一个套件,有libcrypto、libssl、openssl组成,其中

   libcrypto:通用功能的加密库

   libssl:用于实现TLX/SSL的功能

   openssl:多功能命令工具,用于生成密钥,创建数字证书,手动加密解密数据

2)、openssl的常用功能

   对称算法:

    加密:openssl enc -des3 -a -salt -in /ets/fstab -out /tmp/fstab.cipher

    解密:openssl enc -d -dec3 -a -salt -in /tmp/fstab.cipher  -out /tmp/fstab

    解释:env为对称加密算法的固定使用格式 -des3表示已des3的方式进行加密,-salt表示密码里面加入一些盐,-in 表示加密/解密的文件来源 -out表示加密/解密的文件输出,-d 表示解密

   单向加密:

    加密:openssl dgst [-md5|-md4|-md2|-sha1|-sha|-mdc2|-ripemd160|-dss1][-out filename] /path/to/somefile

    解释:dgst为单向加密的固定使用格式,-md5|-md4|-md2|-sha1|-sha|-mdc2|-ripemd160|-dss1表示使用的加密算法,-out表示加密的文件输出

   非对称加密包括公钥加密和数字签名两种,其中公钥加密使用公钥加密,私钥解密。而数字签名使用私钥加密,公钥解密

三、数字证书

    数字证书是有第三方机构使用一种安全的方式将公钥发布出来的表现形式,证书的格式有X509.PKCS等,本文主要讲解X509格式的证书

   X509格式的证书由公钥和有效期限,持有者的个人合法身份信息(一遍表示为主机名),证书的使用方式,发放机构的信息,发放结构的数字签名

  第三方机构的作用有自签证书,签署证书,将证书发放给用户,维护证书吊销列表

  数字证书分为两种,分别为第三方机构的自签证书和用户申请的证书

  1)、生成自签证书

1
2
3
4
5
[root@station125 tls]# (umask  077 ; openssl genrsa -out  private /cakey.pem  2048 )
Generating RSA  private  key,  2048  bit long modulus
..+++
...............+++
is  65537  ( 0x10001 )

 路径为/etc/pki/tls下,配置文件为openssl.cnf,可以通过修改此配置文件来修改一些默认选项,本出不做详细解释,如有需要的朋友,请自行查看本文档

  查看数字证书

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
[root@station125 tls]# openssl rsa - in  private /cakey.pem -pubout -text -noout
Private-Key: ( 2048  bit)
modulus:
     00 :c3: 21 :a0:b1: 84 : 23 :d5: 02 :c8:3e:a8: 69 :1c:5d:
     fb: 49 :d6:9a: 05 :6b:cd: 76 : 54 :4e:3b:5e: 52 :f0:a0:
     0d:b2:da:4e:0e:3d: 36 : 07 : 64 :4b: 74 : 71 : 73 : 84 :df:
     c6:9e:d7: 15 : 40 : 02 : 65 :f6: 59 : 08 : 36 :3d:f4: 29 :f4:
     16 : 91 :e5:d0:eb:fc:c8: 04 :8c: 05 :2f: 38 :b9:2e:3e:
     24 : 03 :bd: 40 :e7: 80 :8a: 82 : 19 :f9: 39 :5c:2c: 41 :7c:
     3e: 10 :a1:e4: 51 : 03 :3b:b2: 81 :c3:d1:0f: 10 :b3:e0:
     e0:6d:bf:a3:f6:bb:a2:c2:b1:b8:0c:ec:e7:1c: 49 :
     de:6c:5d:e6: 88 : 98 :d1:e5: 32 :8a:e3: 08 : 32 :cb:f0:
     45 :f2:fa:f9: 66 :2e:e8: 79 :a7:d6:bc: 95 :2d:d9:c1:
     db:7e: 59 :7b:c7: 99 : 44 :9f: 15 : 63 : 97 :0b:f8:e7: 84 :
     46 :2f: 67 : 51 :5e:3f: 50 :2b:6b: 62 : 37 : 76 :9f:b3:5f:
     eb:8d:d7:c7: 94 :a9:e5:5d:4c: 62 : 08 : 81 :e4:3e:e0:
     20 :e6:ee: 51 : 32 :2a:bf:ef:d7: 35 :e9: 72 : 21 : 03 :9c:
     b5:5c: 11 : 83 : 77 :3f:a5:6b: 06 : 15 : 58 : 57 :6c: 74 :3e:
     14 :db: 06 : 41 :5b:d3: 92 : 36 :f4:f4:6a:f1:a9:da: 86 :
     e7: 39 :7e:2a:de:e5:fd:de:3e:ec:af: 22 :b9:ec: 16 :
     c6:2b

生成自签证书

wKioL1MZ4EmjfNjKAAKXYQl3A_k357.jpg

   其中req为表示创建证书的命令,-new表示创建一个新的证书,-x509表示创建证书的格式,-key创建私钥,-out证书的保存位置,-days表示证书的有效期限

   创建文件,并为证书编号

1
2
[root@station125 tls]# touch index.txt serial crlnumber
[root@station125 tls]# echo  01  > serial

 2)、用户申请证书的流程

    在主机上生成密钥,保存至应用此证书的服务的配置文件目录下, 本文以http为例;

1
2
[root@station125 tls]# mkdir /etc/httpd/ssl
[root@station125 tls]# cd /etc/httpd/ssl/

    用户生成私钥

1
2
3
4
5
[root@station125 ssl]# (umask  077 ; openssl genrsa -out httpd.key  1024 )
Generating RSA  private  key,  1024  bit long modulus
..++++++
...............................++++++
is  65537  ( 0x10001 )

  生成证书签署请求,与生成自签名证书类似

wKioL1MZ40CzU7NTAAKdISGnxOo023.jpg

  用户将自己生成的httpd.csr文件传输给证书颁发机构

 证书颁发机构签署证书

1
[root@station125 tls]# openssl ca - in  http.crs -out http.crt -days  3650

 证书颁发机构将生成的crt证书回传给用户即可

 用户将证书放置在自己的证书服务的路径下

3)、证书的吊销

1
[root@station125 tls]# openssl ca -revoke httpd.crt

  由于本人水平有限,欢饮大家批评指正!



本文转自wangfeng7399 51CTO博客,原文链接:http://blog.51cto.com/wangfeng7399/1370098,如需转载请自行联系原作者

相关文章
|
2月前
|
存储 数据安全/隐私保护
如何将加密和解密函数应用到Pinia状态中?
如何将加密和解密函数应用到Pinia状态中?
261 124
|
3月前
|
存储 关系型数据库 MySQL
MYSQL数据加密压缩函数应用实战指南。
总的来说,加密和压缩是维护MySQL数据库中数据安全性和效率的有效手段。使用时需权衡性能与安全,合理应用加密和压缩函数。在设计数据库架构时要考虑到加密字段的查询性能,因为加密可能使得一些索引失效。压缩数据能有效减少存储空间的占用,但在服务器负载较高时应避免实时压缩和解压,以免影响总体性能。
153 10
|
2月前
|
存储 弹性计算 安全
现有数据库系统中应用加密技术的不同之处
本文介绍了数据库加密技术的种类及其在不同应用场景下的安全防护能力,包括云盘加密、透明数据加密(TDE)和选择列加密。分析了数据库面临的安全威胁,如管理员攻击、网络监听、绕过数据库访问等,并通过能力矩阵对比了各类加密技术的安全防护范围、加密粒度、业务影响及性能损耗。帮助用户根据安全需求、业务改造成本和性能要求,选择合适的加密方案,保障数据存储与传输安全。
|
3月前
|
安全 算法 Java
在Spring Boot中应用Jasypt以加密配置信息。
通过以上步骤,可以在Spring Boot应用中有效地利用Jasypt对配置信息进行加密,这样即使配置文件被泄露,其中的敏感信息也不会直接暴露给攻击者。这是一种在不牺牲操作复杂度的情况下提升应用安全性的简便方法。
985 10
|
安全 网络安全 区块链
网络安全与信息安全:构建数字世界的防线在当今数字化时代,网络安全已成为维护个人隐私、企业机密和国家安全的重要屏障。随着网络攻击手段的不断升级,从社交工程到先进的持续性威胁(APT),我们必须采取更加严密的防护措施。本文将深入探讨网络安全漏洞的形成原因、加密技术的应用以及提高公众安全意识的重要性,旨在为读者提供一个全面的网络安全知识框架。
在这个数字信息日益膨胀的时代,网络安全问题成为了每一个网民不可忽视的重大议题。从个人信息泄露到企业数据被盗,再到国家安全受到威胁,网络安全漏洞如同隐藏在暗处的“黑洞”,时刻准备吞噬掉我们的信息安全。而加密技术作为守护网络安全的重要工具之一,其重要性不言而喻。同时,提高公众的安全意识,也是防范网络风险的关键所在。本文将从网络安全漏洞的定义及成因出发,解析当前主流的加密技术,并强调提升安全意识的必要性,为读者提供一份详尽的网络安全指南。
|
传感器 安全 物联网
量子加密技术的应用领域有哪些?
量子加密技术的应用领域有哪些?
1026 59
|
9月前
|
算法 安全 Java
探讨组合加密算法在IM中的应用
本文深入分析了即时通信(IM)系统中所面临的各种安全问题,综合利用对称加密算法(DES算法)、公开密钥算法(RSA算法)和Hash算法(MD5)的优点,探讨组合加密算法在即时通信中的应用。
128 0
|
11月前
|
存储 安全 网络安全
网络安全的盾与剑:漏洞防御与加密技术的实战应用
在数字化浪潮中,网络安全成为保护信息资产的重中之重。本文将深入探讨网络安全的两个关键领域——安全漏洞的防御策略和加密技术的应用,通过具体案例分析常见的安全威胁,并提供实用的防护措施。同时,我们将展示如何利用Python编程语言实现简单的加密算法,增强读者的安全意识和技术能力。文章旨在为非专业读者提供一扇了解网络安全复杂世界的窗口,以及为专业人士提供可立即投入使用的技术参考。
188 4
|
存储 安全 算法
网络安全与信息安全:构建数字世界的防线在数字化浪潮席卷全球的今天,网络安全与信息安全已成为维系现代社会正常运转的关键支柱。本文旨在深入探讨网络安全漏洞的成因与影响,剖析加密技术的原理与应用,并强调提升公众安全意识的重要性。通过这些综合性的知识分享,我们期望为读者提供一个全面而深刻的网络安全视角,助力个人与企业在数字时代中稳健前行。
本文聚焦网络安全与信息安全领域,详细阐述了网络安全漏洞的潜在威胁、加密技术的强大防护作用以及安全意识培养的紧迫性。通过对真实案例的分析,文章揭示了网络攻击的多样性和复杂性,强调了构建全方位、多层次防御体系的必要性。同时,结合当前技术发展趋势,展望了未来网络安全领域的新挑战与新机遇,呼吁社会各界共同努力,共筑数字世界的安全防线。