加密、解密原理和openssl自建CA

openssl协议简介

SSL(Secure Socket
Layer)是netscape公司提出的主要用于web的安全通信标准。一般情况下的网络协议应用中,数据在机器中经过简单的由上到下的几次包装,就进入网络,如果这些包被截获的话,那么可以很容易的根据网络协议得到里面的数据。

SSL就是为了加密这些数据而产生的协议,可以这么理解,它是位与应用层和TCP/IP之间的一层,数据经过它流出的时候被加密,再往TCP/IP送,而数据从TCP/IP流入之后先进入它这一层被解密,同时它也能够验证网络连接俩端的身份。所以对网络中数据的加密解密的安全知识的理解就显得尤为重要。

一、信息安全的标准

网络信息安全与保密的三个要素(CIA):

保密性
完整性 可用性

除了CIA外,还有另外两个标准也被经常提醒:

真实性
可追溯性

二、加密方式和算法

(1)对称加密:采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密。

对称加密的算法:

DES
: 数据加密标准(56位密钥)

3DES

AES
:高级加密标准(128,192,256,384,512)

Blowfish

Twofish

IDEA

RC6

CAST5

对称加密的特性:

a)加密、解密使用同一口令;

b)将明文分隔成固定大小的块,逐个进行加密

对称加密的缺陷:

a)密钥过多;

b)密钥传输;

密钥交换、身份验正、数据完整性

(2)公钥加密:由对应的一对唯一性密钥(即公开密钥和私有密钥)组成的加密方法。

(公钥是从私钥中提取出来的。)

(公钥加密,只能私钥解密。私钥加密,也只能公钥解密。)

密钥:public
key, secret key (p/s)

常用加密算法:

RSA,
DSA, EIGamal

(DSA:只能用于身份验证)

(3)单向加密:不可逆的加密

单向加密特性:

定长输出:
无论原始数据是多大,结果大小都相同的

雪崩效应:
输入的微小改变,将会引起结果的巨大改变

单向加密算法:MD5(128位)、SHA1、SHA256、SHA384、SHA512

三、加密过程及原理

四、自建私有CA过程

A

①生成密钥

[[email protected] ~]# (umask 077; openssl genrsa -out /etc/pki/CA/private/cakey.pem 2048)
Generating RSA private key, 2048 bit long modulus
...............+++
....+++
e is 65537 (0x10001)
[[email protected] ~]#

②自签证书

[[email protected] ~]# openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 365
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‘.‘, the field will be left blank.
-----
Country Name (2 letter code) [XX]:CN                
State or Province Name (full name) []:Henan
Locality Name (eg, city) [Default City]:Zhenzhou
Organization Name (eg, company) [Default Company Ltd]:mageedu
Organizational Unit Name (eg, section) []:OPS
Common Name (eg, your name or your server‘s hostname) []:bogon
Email Address []:[email protected]

③初始化环境(第一次必须)

# touch /etc/pki/CA/{index.txt,serial}

# echo 01 >> /etc/pki/CA/serial   (指定序列号从那个数字开始)

B

①节点申请证书:

(1) 节点生成请求

mkdir /etc/httpd/ssl

[[email protected] ~]# ls /etc/httpd/
conf/    conf.d/  logs/    modules/ run/     ssl/

②生成密钥对儿

[[email protected] ~]#  (umask 077; openssl genrsa -out /etc/httpd/ssl/httpd.key 2048)
Generating RSA private key, 2048 bit long modulus
..................................................................................................................................+++
................+++
e is 65537 (0x10001)
[[email protected] ~]#................+++

③、生成证书签署请求

[[email protected] ~]#  openssl req -new -key /etc/httpd/ssl/httpd.key -out /etc/httpd/ssl/httpd.csr
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter ‘.‘, the field will be left blank.
-----
Country Name (2 letter code) [XX]:CN
State or Province Name (full name) []:Henan
Locality Name (eg, city) [Default City]:Zhenzhou
Organization Name (eg, company) [Default Company Ltd]:mageedu
Organizational Unit Name (eg, section) []:OPS
Common Name (eg, your name or your server‘s hostname) []:bogon
Email Address []:[email protected]

Please enter the following ‘extra‘ attributes
to be sent with your certificate request
A challenge password []:00woaioo
An optional company name []:00woaioo

C、 CA签署证书

①、验正证书中的信息;

②、签署证书

[[email protected] ~]# openssl ca -in /etc/httpd/ssl/httpd.csr -out /etc/httpd/ssl/httpd.crt -days 1000   
Using configuration from /etc/pki/tls/openssl.cnf
Check that the request matches the signature
Signature ok
Certificate Details:
        Serial Number: 1 (0x1)
        Validity
            Not Before: Aug  3 21:05:10 2014 GMT
            Not After : Apr 29 21:05:10 2017 GMT
        Subject:
            countryName               = CN
            stateOrProvinceName       = Henan
            organizationName          = mageedu
            organizationalUnitName    = OPS
            commonName                = bogon
            emailAddress              = [email protected]
        X509v3 extensions:
            X509v3 Basic Constraints:
                CA:FALSE
            Netscape Comment:
                OpenSSL Generated Certificate
            X509v3 Subject Key Identifier:
                CA:6B:7E:1F:CD:78:D7:E6:9D:EE:65:86:E0:F0:8C:A3:64:4D:01:B2
            X509v3 Authority Key Identifier:
                keyid:1E:B0:D5:A7:25:BF:58:40:13:76:10:6B:8E:F6:7B:BA:AB:8D:86:5A

Certificate is to be certified until Apr 29 21:05:10 2017 GMT (1000 days)
Sign the certificate? [y/n]:

③、发送给请求者;

加密、解密原理和openssl自建CA

时间: 2024-12-17 00:21:05

加密、解密原理和openssl自建CA的相关文章

加密、解密原理和openssl自建CA过程详解

一.加密和解密相关知识简介 1.信息安全标准 NIST(National Institute of Standards and Technology)美国国家标准与技术研究院,制定了网络信息安全与保密的三个要素: 保密性(confidentiality):信息不泄露给非授权用户.实体或过程,或供其利用的特性.(一般包括数据保密性.隐私性.) 完整性(Integrity):数据未经授权不能进行改变的特性.即信息在存储或传输过程中保持不被修改.不被破坏和丢失的特性.(一般包括数据完整性.系统完整性.

加密解密原理和OPENSSL基本应用

前言: 在互联网诞生初期,接入互联网的主机数量不多,应用也很少,因此早起设计的网络协议都没有考虑到网络安全的概念,数据在网络中传输都是以明文传输的.随着互联网的迅猛发展,网络通信已经成为信息传递的主要途径,而数据在明文传输的的环境下是非常不安全的,如果没有一套数据加密机制,就使得数据在网络传输过程中存在被窃听,篡改等安全问题,会给用户带来不可估量的损失 一.信息安全定义: 1.NIST定义了计算机安全三元组:CIA 保密性(Confidentiality):只有授权用户可以获取信息: 数据保密性

加密解密基础及openssl构建私有CA初步

方今社会,互联网的普及给我们的生活带来了极大的便利,但任何事物都有其两面性:窗户打开了,阳光和新鲜的空气进来了,苍蝇也进来了.如何在利用互联网带来便利的同时,又尽量规避其风险,保护自己网络通信中信息的安全及私密,成为了一个热门话题,下面本文将主要探讨两个方面的问题,不当之处还请各位前辈不吝斧正. (一)加密解密基础 首先要搞清楚的一个问题是,我们平时的网络通信存在哪些风险呢?目前互联网上常见的攻击方式有两种:主动攻击和被动攻击.主动攻击包括报文伪装.重复.消息篡改.拒绝服务等:被动攻击主要是监听

加密 解密过程详解及openssl自建CA  

            加密 解密过程详解及openssl自建CA 为了数据信息能够安全的传输要求数据要有一定的安全性那么数据的安全性包含哪些方面的特性呢?    NIST(美国信息安全署)做了如下的定义:    保密性:       1,数据的保密性 指的是数据或隐私不向非授权者泄漏                   2,隐私性  信息不被随意的收集    完整性:       1,数据的的完整性:信息或程序只能被指定或授权的方式改变不能被随意的             修改        

互联网安全机制及OpenSSL自建CA

网络诞生的早期,能够接入网络的主机非常少,在当时基本上没有什么网络安全的概念,后来随着接入互联网的主机越来越多,之前的网络接入环境也越来越不适应后来网络的发展,俗话说"林子大了什么鸟都有"所以网络安全也越来越显得尤为重要,接下来这篇博文我们就浅谈一下网络安全的概念. 一:互联网安全的几大重要特征 网络安全几大重要标准:数据保密性:数据完整性:不可否认性.想要实现数据保密性需要对传输过程进行加密.要想让数据没有被非法授权,侵入,修改等破环行为,保护数据的完整性,需要对数据进行身份认证,而

使用OpenSSL 自建CA 以及颁发证书

OpenSSL是套开放源代码的软件库包,实现了SSL与TLS协议.其主要库是以C语言所写成,实现了基本的加密功能. OpenSSL可以运行在绝大多数类Unix操作系统上(包括Solaris,Linux,Mac OS X与各种版本的开放源代码BSD操作系统),OpenVMS与 Microsoft Windows.它也提供了一个移植版本,可以在IBM i(OS/400)上运作. 此软件是以Eric Young以及Tim Hudson两人所写的SSLeay为基础所发展的,SSLeay随着两人前往RSA

加密解密数据安全1 OpenSSL 安装

加密解密数据安全1  OpenSSL 安装 OpenSSL官方网站:https://www.openssl.org/source/ 解压,编译,安装 解压OpenSSL [email protected]:~ $ cd openssl/ [email protected]:~/openssl $ tar xf openssl-1.1.0 [email protected]:~/openssl $ cd openssl-1.1.0/ 编译环境检查 [email protected]:~/opens

Linux之加密解密基础、openssl及CA基础应用

加密解密基础简介 数据在网络中传输过程中要保证三个要点: (1)数据的完整性:防止数据在传输过程中遭到未授权用户的破坏或篡改 (2)数据的机密性:防止文件数据泄漏给未授权用户从而让其利 (3)数据的可用性:保证授权用户能按需访问存取文件数据 因此加密技术是最常用的安全保密手段,利用技术手段把重要的数据变为乱码(加密)传送,到达目的地后再用相同或不同的手段还原(解密).加密技术包括两个元素:算法和密钥.算法是将普通的信息或者可以理解的信息与一串数字(密钥)结合,产生不可理解的密文的步骤,密钥是用来

加密、解密,以及OpenSSL建立私有CA

概述: 理论部分主要介绍了: 对称加密.非对称加密.单向加密.密钥交换.CA.PKI 操作部分主要有: 对称加密.非对称加密.单向加密的实现,已经openssl常用功能,生成密码.生成随机数已经使用openssl创建私有CA 系统环境说明: [[email protected] ~]# cat /etc/redhat-release  CentOS release 6.6 (Final) [[email protected] ~]# uname -rm 2.6.32-504.el6.x86_64