加密、解密以及openssl建立CA

首先先科普一下OpenSSL,我们知道OpenSSL,全名叫Open Secure Sockets Layer,这是一个强大的安全套接字层密码库,主要包括密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的程序供测试或其它目的使用。此外,OpenSSL是基于SSL协议的,SSL要求建立在可靠的传输层协议之上。它优势在于它是与应用层协议独立无关的,高层的应用层协议(例如:HTTPFTPTELNET等协议)能透明地建立于SSL协议之上。SSL协议在应用层协议通信之前就已经完成加密算法、通信密钥的协商及服务器认证工作。在此之后应用层协议所传送的数据都会被加密,从而保证了通信的私密性。

然后对于区分数据加密和身份认证。加密是将数据加密,即使非法用户获得加密过的数据,也无法探测其真实数据内容,侧重点在于数据的安全性;身份认证其实就是用来判断某个身份的真实性,然后再给予其相应的权限,其侧重点在用户的真实性。

1.几种常用的加密算法

1.对称加密----加密和解密都是使用同一个密钥

特性:

1)加密和解密使用同一密钥

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

缺陷:密钥分发过多

2.非对称加密---也称公钥加密,分为私钥和公钥,私钥仅给个人使用,公钥是给所有人公开获取的。常用算法:RSA、DSA(只能实现数据签名)

特性:

1)密钥长度较大,比如有512bits、2048bits、4096bits等,所以一般不用于对数据加密,而大部分用于对密码加密。

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

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

用处:

1)身份验证(即私钥拥有者用自己的私钥加密的数据,只要用其公钥就能解密,即可验证其身份;反之,公钥拥有者用自己的公钥加密的数据,采用其私钥也能解密,即可实现数据的机密性)

2)密钥交换(与被通信方通信之前,首先获取到对方的公钥,自己生成一个加密密码,用对方的公钥加密,然后传给对方)

3.单项加密---实质上主要就是提取数据的特征码。常用算法: MD5(128bits定长输出)、SHA1、SHA256、SHA384、SHA512等

特性:

1)定长输出:无论原来的数据是多大级别,其加密结果长度一样;
              2)雪崩效应:原始数据微小改变,将会导致结果巨大变化;
              3)不可逆

2.一次加密解密通信,实现身份验证,数据完整性和数据加密的过程

对于发送方A来说,A首先要对要传输给B的数据data用单向加密算法获取得到相应的特征码,并把特征码附在data的后面;然后A采用非对称加密算法,用自己的私钥对特征码进行加密;对特征码进行非对称加密之后,A再采用对称加密算法生成临时密钥,临时密钥用于对整个数据以及特征码进行加密;此后A再采用接收方B的公钥对整个临时密钥进行加密,附加 到对称加密的后方。然后就发给接收方B

对于接收方B来说,收到A发来的信息之后,首先用自己的私钥解密已加密的临时密钥,得到临时密钥之后,再采用对称加密算法解密临时密钥,从而得到数据和已加密的特征码;然后用A的公钥解密已加密的特征码,得到特征码;而后再采用同样的单向加密算法对得到的数据进行特征码提取;最后用自己生成的特征码与A生成的特征码进行比对,于是就实现了身份验证。A--B整个通信过程就实现了身份验证、数据完整性和数据加密的过程。

3.采用openssl工具建立私有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 -days #

-new: 生成新的证书签署请求;
                         -key:私钥文件路径,用于提取公钥;
                         -days N: 证书有效时长,单位为“天”;
                         -out:输出文件保存位置;
                         -x509:直接输出自签署的证书文件,通常只有构建CA时才这么用;

3、提供辅助文件

  # touch /etc/pki/CA/index.txt
  # echo 01 > /etc/pki/CA/serial

4.数字证书

CA:简答的说就是签证机构。它的功用是用于保证公钥信息安全分发;

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

    版本号(version)
               序列号(serial number):CA用于惟一标识此证书;
               签名算法标志(Signature algorithm identifier)
               发行者的名称:即CA自己的名称;
               有效期:两个日期,起始日期和终止日期;
               证书主体名称:证书拥有者自己的名字
               证书主体公钥信息:证书拥有者自己的公钥;
               发行商的惟一标识:
               证书主体的惟一标识:
               扩展信息:
               签名:CA对此证书的数字签名;

5.给节点发证书
               1、节点申请证书
                    在证书申请的主机上进行如下步骤:
                         (1) 首先生成私钥;
                         (2) 然后生成证书签署请求;

【注意:
                              (a) 其中的subject(表示国家地区省份等)信息部分,要与CA的保持一致;
                              (b) Common Name要使用此主机在通信真实使用名字;不能使用ip地址】

(3) 最后把请求发送给CA;

2、CA签发证书
                    (1) 首先验正请求者信息
                    (2) 然后签署证书

# openssl ca -in /PATH/FROM/CSR_FILE -out /PATH/TO/CRT_FILE -days N

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

6.吊销证书:
               1、获取吊销证书的序列号;

# openssl x509 -in /PATH/FROM/CRT_FILE -noout -serial -subject

2、实现证书吊销
                    (1) 吊销证书

# openssl ca -revoke /PATH/FROM/CRT_FILE

(2) 生成吊销证书的编号

#   echo 01 > /etc/pkie/CA/crlnumber

(3) 更新证书吊销列表

# openssl crl -gencrl -out THISCA.crl

最后发点小总结用于记忆这些常用命令。

总结:

genrsa(生成私钥文件),

req(生成自签证书),

ca(签署或吊销(附加-revoke)证书),

x509(获取吊销证书的序列号),

crl(更新证书吊销列表)

rsa(从私钥中提取公钥)

哎。。。。。黑夜那么短,我想go bed了!

时间: 2024-11-08 19:50:25

加密、解密以及openssl建立CA的相关文章

加密解密与OpenSSL建立私有CA

安全规范: 1)NIST规定的数据安全性标准: ①保密性:数据保密性:隐私性: ②完整性:数据完整性:系统完整性 ③可用性:数据与服务随时可用 2)OSI,X.800:定义了安全攻击,安全机制,安全服务 ①安全攻击 被动攻击:监听 主动攻击:报文伪装.重放.消息篡改.拒绝服务(将有限资源耗尽,使得正常资源无法访问DDOS) ②安全机制 加密/解密,数字签名,访问控制,数据完整性保证,认证交换,数据填充,路由控制,人为公证 ③安全服务 认证 访问控制 数据保密性: 连接保密性 无连接保密性 选择域

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

一次加密通信过程的建立: 发送方: 使用单向加密算法提取数据的 特征码:[单向加密算法] 单向加密>特征码+特征码 使用自己的 私钥 加密 特征码,附加在数据的后面:[公钥加密(非堆成加密)] 公钥加密>[特征码密文+数据] 生成用于 对称加密 的 临时密钥,并用此临时密钥 加密数据和加密的数据特征码.[对称加密] 对称加密>[密文[特征码密文+数据]] 使用接受方的公钥加密 临时密钥,附加在对称加密后的数据后方. 公钥加密(对方)>[临时密钥][密文[特征码密文+数据]] 接受方

linux中加密解密以及Opensll建立CA

现在如今个人以及公司对自己的数据以及隐私越来越关注,之前美国斯诺登事件的爆出,又将通讯安全话题引发激烈的讨论.下面我们就来说下linux中的加密解密,以及通讯过程中如何确保通讯的安全. 常见的加密方法有三种:对称加密.单向加密.非对称加密,下面简单说下这三种加密方式. 对称加密:加密和解密使用同一个密钥:依赖于算法和密钥:安全性依赖于密钥,而非算法常见算法有DES:Data Encryption Standard, 56bits.3DES.AES: Advanced Encrpytion Sta

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

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

Openssl建立CA,在组织内部基于ca的认证

Openssl建立CA,在组织内部基于ca的认证 1.给自己生成一对密钥 2.自签署证书 节点:1.生成密钥对   2.申城证书签署请求    3.把请求发送给CA CA: 1.验证请求者信息     2.签署证书 一.建立CA服务器 /etc/pki/CA/private用于存放CA的私钥 1.(umask 077:openssl genrsa -out /etc/pki/private/cakey.pem 2048)   生成密钥 2.req -x509 自签署证书,常用于CA自己签署自己的

通过openssl建立CA

1 CA简介   CA是证书的签发机构,它是PKI的核心.CA是负责签发证书.认证证书.管理已颁发证书的机关.它要制定政策和具体步骤来验证.识别用户身份,并对用户证书进行签名,以确保证书持有者的身份和公钥的拥有权.比如Alice和Bob通信,中间通信万一被黑客C监听到,冒充Alice和Bob,这样信息就会泄密,这时候通过CA来验证双方身份的真实性.证书内容包括1,证书的持有者的相关信息2,CA的相关信息3,证书的使用方法4,公钥信息PKI-public key instruction 公钥基础设

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

加密.解密,以及OpenSSL建立私有CA 加密技术是互联网最常用的安全保密手段,其利用技术手段把重要的数据加密后传送,到达目的地后再用相同或不同的手段进行解密. 加密技术包括两个元素:算法和密钥 常用的加密技术:对称加密.非对称加密.单向加密 以上几种加密技术各有千秋,经常组合起来使用 1.对称加密 加密和解密使用同一个密钥,将明文分隔成固定大小的块,逐个进行加密: 常见算法:DES  3DES  Twofish  IDEA  IDEA  CAST5  RC6 Blowfish 2.非对称加密

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

OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法.常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用.大多数开源程序,商业软件加密核心都是基于openssl实现的. 数据安全性的基本法则: (1)数据的保密性:信息加密就是把明码的输入文件用加密算法转换成加密的文件以实现数据的保密.加密的过程需要用到密钥来加密数据然后再解密.没有了密钥,就无法解开加密的数据.数据加密之后,只有密钥要用一个安全的方法传送.加密过的数据可以公开地传送. (2)完整性:

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

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