加密解密私有CA构建

加密方式:

对称加密、公钥加密、单向加密

对称加密:

加密算法+口令+文明数据   --> 密文 -->    使用同一个口令->明文    (ps 严重依赖口令   算法可能是公开的)

破解方法:字典攻击  枚举猜测 (拒绝简单密码)(1秒可1e次,不算快  假如20位密码  键盘100个  100^20/10^8=10^32 秒)

对称加密原理:将原文按照固定大小切换block  逐块加密  将第一块加密结果与第二块加密结果异或运算结果作为第二块结果输出(块链)

对称加密算法:

DES(56bits)容易破解  -> 3DES  3轮DES

AES(128bits)    用的比较多

Blowfish,Twofish, IDEA(付费), RC6, CAST5, Serpent

对称加密缺陷:密钥交换(口令),用户认真,数据完整性

工具:gpg, openssl enc

对称加密:

[[email protected] ~]# openssl enc -des3 -a -salt -in a.html  -out a.html.cipher

对称解密:

[[email protected] ~]# openssl enc -d -des3 -a -salt -in a.html.cipher  -out a.html.new

密钥交换:DH算法 如图:

非对称加密

公钥加密(发送给别人)   私钥解密

公钥加密比对称加密速度上慢3个级别(一个级别10倍)所以一般不用来加密数据

公钥加密算法:RSA, EIGamal, DSA

实现:

密钥交换  (用过公钥加密)

身份认真

工具:gpg, openssl rsautl

单向加密

保证数据完整性

抽取数据特征码算法:MD5, SHA1, SHA512, CRC-32

单向加密特效:雪崩效应  定长输出

#消息认证:某种机制加密特征码  无法修改  只认真消息本事靠谱

#消息认证算法:MAC (Message Authentication Codes)

#     CBC-MAC

#     HMAC:

工具:sha1sum, md5sum, cksum, openssl dgst

加密:

[[email protected] ~]# openssl dgst -sha1 a.html 
SHA1(a.html)= a87b6990046b707e1b71c5c872f4debf2ee37b79
[[email protected] ~]# sha1sum a.html
a87b6990046b707e1b71c5c872f4debf2ee37b79  a.html

数据交换需要实现:私密性,完整性,身份认证

数字证书:

证书格式:x509、pkcs

x509格式:

公钥和有效期限;

持有者的个人合法身份信息;(主机名)

证书的使用方式;(用来干嘛)

CA的信息;(颁发机构信息)

CA的数字签名;(把前4项加密)

证书申请条件:

生成一对密钥

把所需信息和公钥按照固定格式制成证书申请

CA需要条件:

自签证书(需要密钥对)

签署证书

证书吊销

证书有效期

标准工具openCA   自己实验用openssl

用openssl实现私有CA :

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

[ CA_default ]
dir             = /etc/pki/CA            #工作目录
certs           = $dir/certs             #发布证书位置
crl_dir         = $dir/crl               #吊销列表
database        = $dir/index.txt         #索引文件数据库
new_certs_dir   = $dir/newcerts          # 刚签署证书位置
certificate     = $dir/cacert.pem        # CA 自己证书
serial          = $dir/serial            # 当前发出去证书编号
crlnumber       = $dir/crlnumber         #吊销证书编号
crl             = $dir/crl.pem           # 当前正在使用的CRL 证书吊销列表文件
private_key     = $dir/private/cakey.pem # ca私钥(400)
RANDFILE        = $dir/private/.rand     # 随机数种子
x509_extensions = usr_cert               # x509扩展 用户证书

ca自签

[[email protected] CA]# cd /etc/pki/CA
[[email protected] CA]# (umask 077; openssl genrsa -out private/cakey.pem 2048)     #用子shell生成2048位的ca私钥
[[email protected] CA]# openssl rsa -in private/cakey.pem -pubout -text   #查看  从私钥提取公钥输出
[[email protected] CA]# openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 800  # 默认一年
[ req_distinguished_name ]
countryName_default             = XX   #默认国家2字
stateOrProvinceName_default    = Default Province #省或州
localityName_default    = Default City   #默认城市
0.organizationName_default      = Default Company Ltd  #公司名
#organizationalUnitName_default =       #部门
commonName                      = Common Name (eg, your name or your server\‘s hostname) #很重要host
emailAddress                    = Email Address #邮件
[email protected] CA]# touch index.txt  serial crlnumber #索引文件数据库   当前发出去证书编号   吊销证书编号
[[email protected] CA]# echo 01 >serial
req: 生成证书签署请求
     -news: 新请求
     -key /path/to/keyfile: 指定私钥文件
     -out /path/to/somefile: 指定生成证书位置
     -x509: 生成自签署证书
     -days n: 有效天数    有默认值一年

CA完毕

客户端:

(以httpd为例)

[[email protected] httpd]# mkdir  /etc/httpd/ssl 
[[email protected] httpd]# cd /etc/httpd/ssl 
[[email protected] ssl]# (umask 077; openssl genrsa  -out httpd.key 2048)   #生成私钥
[[email protected] ssl]# openssl req -new -key httpd.key -out httpd.csr  #证书签署请求 自动提取公钥
A challenge password []:   #证书请求需要加密存放,如果添加密码,需要将密码一同给CA   (这里为空)
私有CA,SERVICE证书上的信息应该和节点信息是一样的,如果不一样,验证就不会通过。
[[email protected] ssl]# scp httpd.csr [email protected]:/tmp/

SERVICE验证:

[[email protected] CA]# openssl ca -in /tmp/httpd.csr -out /tmp/httpd.crt -days 800   #验证通过
[[email protected] CA]# scp /tmp/httpd.crt 172.16.178.138:/etc/httpd/ssl/                 #发给客户端

吊销证书:

[[email protected] CA]# openssl x509 -in /tmp/httpd.crt -noout -serial -subject    #查看序列号
serial=01
subject= /C=CN/ST=ZHEJIANG/O=BAIDU/OU=LINUX/CN=marco.com/[email protected]
[[email protected] CA]# cat index.txt
V	180714022051Z		01	unknown	/C=CN/ST=ZHEJIANG/O=BAIDU/OU=LINUX/CN=marco.com/[email protected]   查看是否一致
[[email protected] CA]# openssl ca -revoke /etc/pki/CA/newcerts/01.pem  #吊销证书
[[email protected] CA]# echo 01 > crlnumber  #如果是第一次吊销
[[email protected] CA]# openssl ca -gencrl -out  crl/httpd.crl  #更新证书吊销列表

完毕

时间: 2024-10-17 21:13:31

加密解密私有CA构建的相关文章

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

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

Linux基于OpenSSL实现私有CA构建

前言 随着互联网的迅猛发展,网络通信已经成为传递信息的主要途径.而通信时的数据传输大部分却是明文传输的,在网络这个不安全的环境下,如果没有一套数据加密机制,就会导致敏感信息和重要数据泄露,引起不可估量的损失.而OpenSSL正好弥补了这一缺憾,那什么是OpenSSL呢?OpenSSL是一套强大的具有加密功能的组件,它包含libcrypto(公共加密库).libssl(SSL协议的实现)和openssl(多功能命令工具),因其开源思想,现已广泛应用于数据通信加密领域.OpenSSL还可在局域网内构

加密解密以及CA签证

在当今互联网时代,数据越来越来重要.那么如何加密?解密?以及通过什么方式来认证了?? 接下来,我就会和大家谈谈加密,解密以及CA签证的实现. 首先大家的知道一些加密,解密的基本常识: 互联网上中间人一般用的攻击方式有: 窃听 篡改别人数据 劫持会话 数据加密的常用的三种方式有: 对称加密 非对称加密 单向加密 SSL:seure socket layer, 安全的套接字层 TSL:transport layer security, 传输层安全,功能 与SSL相似 随机数生成器:/dev/rand

实验:CentOS下构建私有CA

一.建立一CA颁发主机(机构)1.生成私钥:2.自签证书 [[email protected] ~]# (umask 077;openssl genrsa -out /etc/pki/CA/private/cakey.pem 4096)Generating RSA private key, 4096 bit long modulus..............................++....++e is 65537 (0x10001) [[email protected] ~]# o

OpenSSL以及私有CA的搭建

首先我们肯定会问什么是OpneSSL,以及OpenSSL有什么用?当让这不仅是刚接触Linux的我想知道,相信大多数人和我一样也非常想知道,因为OpenSSL是linux上基础的服务之一,了解它的应用可以帮助我们更好的了解linux.那么我们先了解下什么是OpenSSL已经它有什么用. 一.OpenSSL及其应用 首先我们要了解SSL是什么?SSL是Secure Sockets Layer(安全套接层协议)的缩写,可以在Internet上提供秘密性传输.Netscape公司在推出第一个Web浏览

图解openssl实现私有CA

原文地址:http://xxrenzhe.blog.51cto.com/4036116/1370114 废话不多说,先上图 说明1:蓝色部分为主要流程,黄色箭头指向具体的操作步骤 什么是openssl 1. 为网络通信提供安全及数据完整性的一种安全协议,囊括了主要的密码算法.常用的密钥和证书封装管理功能以及SSL协议,并提供了丰富的应用程序供测试或其它目的使用: 2. openssl只是OpenSSL开源套件中的多功能命令工具: 3. OpenSSL套件的组成部分有: libcrypto:通用功

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

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

openssl的加密、解密以及构建私有CA

SSL.TLS介绍: SSL:安全套接字(Secure Socket Layer,SSL)协议是Web浏览器与Web服务器之间安全交换信息的协议,提供两个基本的安全服务:鉴别与保密. TLS:安全传输层协议(Transport Layer Security)用于在两个通信应用程序之间提供保密性和数据完整性.该协议由两层组成: TLS 记录协议(TLS Record)和 TLS 握手协议(TLS Handshake).较低的层为 TLS 记录协议,位于某个可靠的传输协议(例如 TCP)上面,与具体

加密和解密技术基础、PKI及创建私有CA

一.数据加密和解密概述 数据加密和解密是一门历史悠久的技术,从古代就已经出现了,一直发展到当代.其中,数据加密的目的有很多,可以是为了保证本地数据存取的安全性,可以是为了保证数据流在网络传输过程中的保密性,也可以是为了验证数据的完整性,还可以通过数据加密来实现密钥的交换等. 数据加密依赖于某种加密算法和加密密钥,而数据解密则依赖于某种解密算法和解密密钥.而在当代加密解密技术中,加密密钥既可以与解密密钥相同,也可以和解密密钥不同,这取决于使用什么方法进行加解密. 二.安全的目标 就信息传输过程来说