openssl 构建CA及加密解密

OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。主要通过在传输层与应用层间构建SSL安全套接字层实现安全传输。可选择通过SSL层进行加密传输,需要事先建立通信通道的层

加密算法和协议:

1、对称加密

特性:

1、加密、解密使用同一密钥;

2、将明文分隔成固定大小的块,逐个进行加密;

缺陷:

1、       密钥过多;

2、        密码分发方式;

3、    常见算法:

DES:Data EncryptionStandard, 56bits

3DES:

AES: Advanced Encrpytion Standard, (128bits, 192, 256,384, 512bits)

Blowfish

Twofish

IDEA

RC6

CAST5

2公钥加密:非对称加密

因非对称加密的产出才使得互联网交易快速发展,更加安全。

有2个密钥称为密钥对儿:公钥和私钥

私钥:secret key 仅允许个人使用

公钥:public key 给所有人获取

公钥从私钥中提取而来;使用公钥加密的数据,只能使用与此公钥配对儿的私钥解密;反之亦然;

用处:

身份认证:公钥密码公开,用自己的私钥加密数据,对方用公钥能解密则身份确认。

密钥交换:与被通信方通信之前,首先获取到对方的公钥,自己生成一个加密密码,用对方的公钥加密,并发送给对方;

数据加密:加密效率低很少用非对称加密方式数据

算法:

RSA:既能做身份认证又能做数据交换

DSA:通常只用作身份认证(只用做数字签名)

ELGamal

特性:

1、密钥长度较大,例如512bits, 2048bits,4096bits

2、加密解密分别使用密钥对儿中的密钥相对进行;

3、常用于数据签名和密钥交换;

3、单向加密 :数据能加密但是不能解密,主要提取数据的特征码

特性:

1、    定长输出,无论原来数据是多大级别其加密结果长度一样。

2、    雪崩效应原数据微小改变,将会导致结果巨大改变;

3、    不可逆。

算法: MD5 128bits定长输出;/etc/shadow cents5 MD5

SHA1 160bits定长输出;

SHA256

SHA384

SHA512       /etc/shadow        Cents6/7

CRC32:奇偶校验

无需解密,在认证时只需要将用户输入的密码以相同的方式加密与数据库中存在的密码匹配

数字签名:

密钥交换机制:IKE (Internet Key Exchange)

首先通过IKE和对方取得联系,然后用对方的公钥加密(非对称加密)对称码给对方 对方通过自己的私钥解密获得对称码,然后就可以通过对称加密方式进行通信。

常用的密钥交换机制:

公钥加密

DH

PKI:公钥基础设施

    1、CA 签证机构 (签名)

    2、RA 注册机构 (接收用户注册请求)

    3、CRL证书吊销列表(规整不正常的证书如私钥丢失等放入列表不在受信使用)

    4、证书存取

 

CA是PKI系统中通信双方都信任的实体,被称为可信第三方(Trusted Third Party,简称TTP)

数字证书:

CA:签证机构

功用:保证公钥信息安全分发;

数字证书的格式(x.509 v3):

版本号(version)

序列号(serial number):CA用于惟一标识此证书;

签名算法标志(Signature algorithmidentifier)

发行者的名称:即CA自己的名称;

有效期:两个日期,起始日期和终止日期;

证书主体名称:证书拥有者自己的名字

证书主体公钥信息:证书拥有者自己的公钥;

发行商的惟一标识:

证书主体的惟一标识:

扩展信息:

签名:CA对此证书的数字签名;

证书通常有两类用途:

用户证书

主机证书(httpd)

 

SSL:secure socket layer 安全套接字层

sslv1, sslv2, sslv3

数据安全传输完整性协议现在流行的为两种:

SSL 安全套接字层

TLS传输层安全协议

他们都是在传输层对网络连接进行加密

openssl

openssl的组成部分:

1、     libcrypto:算法库

2、     libssl:协议库

3、     openssl:应用程序

openssl:子命令分类

standard commands :标准命令

message digest commands:消息摘要命令

cipher commands :加密、解密相关的命令

加密文件(对称加密):

工具:openssl enc, gpg

算法:des, 3des, aes, blowfish, twofish, idea, cast5

enc工具:

# openssl enc -e -CIPHERNAME -a-salt -in /PATH/FROM/SOMEFILE -out /PATH/TO/SOMECIPHERFILE

e.g openssl enc -e –des3 -a -salt in /tmp/fstab out /tmp/fstab1

# openssl enc -d -CIPHERNAME -a-salt -in /PATH/FROM/SOMECIPHERFILE -out /PATH/TO/SOMEFILE

e.g openssl enc -d –des3 -a -salt in/tmp/fstab1 out /tmp/fstab

单向加密:

算法:md5, sha1

工具:openssl dgst, md5sum,sha1sum, sha224sum, sha256sum, sha384sum, sha512sum

# openssl dgst-CIPHER /PATH/TO/SOMEFILE...

#md5sum

#sha tab tab

#sha1sum, sha224sum,sha256sum, sha384sum, sha512sum

公钥加密

   工具:gpg,oppenssl rsautl

数字签名

算法: RSA ,DSA(只能用于数字签名) ,ELGamal

密钥交换:

算法:公钥加密,DH

因公钥是从私钥中提取出来的,所以公钥的生成操作是先创建私钥然后从私钥中提取公钥。

1、生成密钥对儿:

操作过程:生成私钥,从私钥中提取公钥;

# openssl genrsa -out/PATH/TO/PRIVATE_KEYFILE NUM_BITS

因私钥信息比较敏感,可默认创建时可通过umask创建其默认权限例如

(umask 077 ;openssl genrsa –out/tmp/key/testkey 2048)

2、从私钥中提取公钥

# openssl rsa -in/PATH/FROM/PRIVATE_KEY_FILE -pubout

CA证书格式

CA用自己的私钥给每个用户发放的证书签名

用户通过CA证书里的公钥解密证书签名,

CA私钥用于签发证书时,向证书添加证书签名时使用

证书:用于通信时验证证书合法性验证。

构建私有CA

openssl默认配置文件:/etc/pki/tls/openssl.cnf及其相关配置字段

配置文件/etc/pki/tls/openssl.cnf

[CA_default]定义自己作为CA时的配置

dir  : 工作目录

certs:已颁发证书的存储位置

crl_dir:已吊销证书吊销列表位置

database:证书索引文件

new_certs_dir:放置新证书的位置

certificate:证书自己的证书位置

serial:序列号

crlnumber:证书吊销编号

crl:当前正在使用的吊销列表文件位置

private_key:CA自己的私钥文件

RANDFILE:随机数获取的位置

X509_extensions:证书扩展段

工作目录:/etc/pki/CA/

/etc/pki/CA目录中分别有certs,crl,newcerts,private

目录每个目录分别

certs:已颁发证书文件存放位置

crl:证书吊销文件存放

newcerts:新证书存放位置

private:CA自己私钥存放位置

构建私立CA:

1、    生成私钥文件: /etc/pki/CA/private/cakey.pem

#(umask 077;openssl genrsa -out/etc/pki/CA/private/cakey.pem 2048)

2、    生成自签署文件

openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem-out /etc/pki/CA/cacert.pem

键入相关信息:

You are about to be asked to enter informationthat will be incorporated

into your certificate request.

What you are about to enter is what is calleda Distinguished Name or a DN.

There are quite a few fields but you can leavesome blank

For some fields there will be a default value,

If you enter ‘.‘, the field will be leftblank.

-----

Country Name (2 letter code) [XX]:CN

State or Province Name (full name) []:HA

Locality Name (eg, city) [Default City]:ZZ

Organization Name (eg, company) [DefaultCompany Ltd]:XU

Organizational Unit Name (eg, section)[]:ops

Common Name (eg, your name or your server‘shostname) []:www.xuphoto.cn

Email Address []:[email protected]

给节点发证书:   web 位置一般在 /etc/httpd

1、节点申请证书

在证书申请的主机上进行如下步骤:

(1)       生成私钥;

(umask 077;openssl genrsa -out httpd.key 1024)

(2)       生成证书签署请求;

openssl req -new -key httpd.key -out httpd.csr

2、CA签发证书

(1) 验正请求者信息

(2) 签署证书

#openssl ca -in /etc/httpd/httpd.csr-out /etc/httpd/http.crt -days 3650

(3) 把签署好的证书发还给请求者

时间: 2024-10-26 21:44:14

openssl 构建CA及加密解密的相关文章

通过OpenSSL搭建私有CA及加密解密介绍

加密incode:对明文(可读懂的信息)进行翻译,使用不同的算法对明文以代码形式(密码)实施加密.该过程的逆过程称为 解密(descode),即将该编码信息转化为明文的过程 常见的加密算法和协议: 1.对称加密 2.公钥加密(非对称加密) 3.单向加密 4.认证协议 对称加密:加密和解密使用同一个密钥,依赖于,算法和密钥,其安全性依赖于密钥而非算法常见算法:DES.3DES. AES.Blowfish.IDEA.Twofish.CAST5.Rc6 特性:1)加密解密使用同一密钥         

C/C++使用openssl进行摘要和加密解密(md5, sha256, des, rsa)

openssl里面有很多用于摘要哈希.加密解密的算法,方便集成于工程项目,被广泛应用于网络报文中的安全传输和认证.下面以md5,sha256,des,rsa几个典型的api简单使用作为例子. 算法介绍 md5:https://en.wikipedia.org/wiki/MD5 sha256:https://en.wikipedia.org/wiki/SHA-2 des: https://en.wikipedia.org/wiki/Data_Encryption_Standard rsa: htt

加密/解密&利用OpenSSL构建私有CA

在互联网安全及个人隐私状况日益严峻的今天,加密技术变得尤为重要并且不可或缺.在密码雪中,加密是指将明文信息隐匿起来,使之在缺少特殊信息时不可读.本文所讲的主要是在互联网传输数据时所用的加密方式.我们都知道OSI&TCP/IP网络参考模型,通常我们会把这两个模型分为通信子网和资源子网两部分,但是在构建网络的初期,信息从发送端送达到接受端都非常困难所以在设计模型之初并没有考虑过多的安全因素,以至于通信子网和资源子网都没有涉及到数据加密的内容.为了解决这个问题,网景公司在资源子网和通信子网之间添加了半

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

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

加密解密原理和基于Openssl构建自有CA

一.加密解密过程描述: 互联网数据传输需要实现:数据隐秘性,数据完整性,身份认证和密钥交换: 例如:Alice向Bob传输数据: 数据加密过程: 1.Alice生成原数据,用单向加密算法计算出原数据的特征码: 2.用自己的私钥加密原数据特征码并附加在原数据的后面: 3.用对称加密算法为整个数据加密生成对称加密密匙: 4.用Bob提供的公钥加密对称加密密匙,并附加在加密的数据后面一并发送给Bob. 数据解密过程: 1.Bob接收到数据,用自己的私钥解密对称加密密匙:确定数据接收方Bob的身份: 2

加密解密、openssl、私有CA创建过程

一.加密解密 加密技术是对信息进行编码和解码的技术,编码是将原来可读信息(又称明文)译成代码形式(又称密文),其逆过程就是解码(解密),加密技术的要点是加密算法. 明文:发送人.接受人和任何访问消息的人都能理解的消息 密文:明文消息经过某种编码,得到的密文消息 加密:将明文消息变成密文消息 解密:将密文消息变成明文消息 算法:取一个输入文本,产生一个输出文本 加密算法:发送方进行加密的算法 解密算法:接收方进行解密的算法 单向加密算法:只能加密,不能解密,其作用是提取数据的特征码,来验证数据的完

加密、解密以及openssl建立CA

首先先科普一下OpenSSL,我们知道OpenSSL,全名叫Open Secure Sockets Layer,这是一个强大的安全套接字层密码库,主要包括密码算法.常用的密钥和证书封装管理功能及SSL协议,并提供丰富的程序供测试或其它目的使用.此外,OpenSSL是基于SSL协议的,SSL要求建立在可靠的传输层协议之上.它优势在于它是与应用层协议独立无关的,高层的应用层协议(例如:HTTP,FTP,TELNET等协议)能透明地建立于SSL协议之上.SSL协议在应用层协议通信之前就已经完成加密算法

加密、解密的原理及Openssl创建CA和ssh的基础应用

加密.解密的原理及Openssl创建CA和ssh的基础应用 随着互联网的不断发展和技术的不断成熟,在互联网上传输文件不在安全,在需要传送重要的数据时就必须加密处理. 密码算法分为三种:分别是对称加密,公钥加密,单向加密:以及需要对加密算法的认证,叫做认证协议.下面为大家概述对称加密,公钥加密,单向加密及认证协议 对称加密: 采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单密钥加密. 需要对加密和解密使用相同密钥的加密算法.由于其速度快,对称性

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

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