linux CA 加解密安全过程讲解

一、基础知识

对称加密:

加密和解密方使用同一个密钥,用来解决数据机密性,但是密钥通过何种方式传递给对方不容易实现;

公钥加密:

密钥是成对出现的,分别为Secret key(密钥)和Public key(公钥)公钥加密必须使用与其相对应的私钥进行解密并且公钥是从私钥中提取出来的,有私钥可以知道公钥是什么,但是知道公钥是不能知道私钥的,公钥是公开的,而私钥是不公开的,但是公钥加密比对称加密慢3个数量级(1000倍),加密速度相当的慢,所以单独用此加密方式也比较困难;公钥加密功能:

单向加密:

不是真正来实现加密,而是用来提取数据特征码,验证数据完整性,他有雪崩效应((蝴蝶效应):源数据有一点点不同,结果大不相同)和定长输出(通过单相加密后的结果长度一样)的特征;

单向加密常见算法:

md5:Message Degist,由麻省理工学院人工智能实验室研发,固定定长输出

128bit;

md5sum:计算文件md5格式的特征值;

sha1:Secure Hash Algorithm 1,固定定长输出160bit;

SHA256:长度越长变化越大;

SHA512: 长度越长变化越大;

二、加密过程:

1、发送方用单向加密算法计算数据的特征码;

2、发送方用自己的私钥加密这段特征码,并加在数据尾部;

3、发送方生成一个对称密钥;

4、发送方用此对称密钥加密数据和加密后特征码;

5、发送方用接收方的公钥加密这个对称密钥,附加在密文的尾部,并发送之;

解密过程:

1、接收方用自己的私钥解密加密过的对称密码;

2、接收方用密码解密密文;

3、接收方用发送方的公钥解密发送方私钥加密的特征码;

4、接收方用同样的单向加密算法计算出原始数据的特征码;

5、接收方比较两段特征码;

发送方: 计算数据特征值----> 使用私钥加密特征值 ---> 随机生成密码对称加密整个数据 ---> 使用接受方公钥加密密码  
接收方: 使用私钥解密密码 ----> 解密整个数据 ----> 使用公钥验证身份 ----> 比较数据特征值

三、CA证书的作用

Ca 证书模型

1、密钥交换密钥交换,也称为IKE:Internet Key Exchange 互联网密钥交换;

2、数字签名,用于身份验证,防抵赖;

我们发现上述加密方式中严重依赖对方的公钥,而怎样才能确定是对方的公钥呢,所以这就需要有一个专门机构来确保公钥来源的合法性并给予对方一个数字证书,其实数字证书就像我们自己的***一样,而那个专门机构就像是给我们颁发***的公安机关一样,下面来说一下

数字证书和CA(证书颁发机构);

数字证书(Digital Certificate)包含证书拥有者信息及公钥还有CA的签名并且附加CRL(证书吊销列表);

CA(证书颁发机构):对证书利用单向加密的算法提取证书数据的特征码,然后用自己的私钥加密特征码并附加在数据的尾部发送之;CA分为公共CA和私有CA两类

PKI:

Public Key Infrastructure 是实现现代互联网电子商务的核心框架,只是一种规范,其核心就是CA,还有密钥验证和密码交换机制,保证验证过程是可靠的。

ssl(Secure Socket Layer)安全套接字层;

四、linux加解密技术

在pcp5层模型中的AL(应用层)和TL(传输层)中间增加了半层就是ssl,其实ssl只是一种协议,需要靠其它软件来现,这种软件在linux中最通用和流行的就是openssl,目前openssl软件版本

有一下几种:

sslv1 已经废弃;

sslv2 目前再用;

sslv3 目前再用;

TLS:

Transport Layer security(传输层安全)协议,最常用的是tlsv1版本(与 sslv3同时代);

linux上常用的加解密的工具有两个:

1、gpg 实现rpm包签名比较常用;

2、openssl ssl的开源版本的实现,一共有一下三个组件组成:

1)libcrypto 通用库;

2)libssl 实现ssl和tls协议的;

3)openssl 多用途的加密组件;

这里我们重点讲解openssl:

openssl 是多用途的加密组件,命令行工具,其可以实现对称加密算法、非对称加密算法、单向加密算法、作为一个简单的CA (OpenCA),其依赖的配置文件默认在/etc/pki/tls/openssl.cnf中,也可以自己定义;openssl作为简单的CA其颁发的证书格式有x509(比较通用,定义了证书的格式,类似于pkcs#10),pkcs#12和pkcs#17定义了如何将证书存诸的格式;openssl也可以实现证书格式的转换。

openssl的常用工具:

1.数据的保密性  
信息加密就是把明码的输入文件用加密算法转换成加密的文件以实现数据的保密。加密的过程需要用到密匙来加密数据然后再解密。没有了密钥,就无法解开加密的数据。数据加密之后,只有密匙要用一个安全的方法传送。加密过的数据可以公开地传送。

2.数据的一致性  
加密也能保证数据的一致性。例如:消息验证码(MAC),能够校验用户提供的加密信息,接收者可以用MAC来校验加密数据,保证数据在传输过程中没有被篡改过。

3.安全验证  
加密的另外一个用途是用来作为个人的标识,用户的密匙可以作为他的安全验证的标识。SSL是利用公开密钥的加密技术(RSA)来作为用户端与服务器端在传送机密资料时的加密通讯协定。

五、实验

openssl建立私有CA:

1、生成密钥

2、自签署证书

节点:

1、生成密钥对儿

2、生成证书签署请求

3、把请求发送给CA

CA:

1、验正请求者信息;

2、签署证书;

3、把签好的证书发送给请求者;

一、建立CA服务器:

1、生成密钥

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

2、自签证书

req: 生成证书签署请求

-news: 新请求

-key /path/to/keyfile: 指定私钥文件

-out /path/to/somefile:

-x509: 生成自签署证书

-days n: 有效天数

3、初始化工作环境

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

# echo 01 > /etc/pki/CA/serial

二、节点申请证书:

(一) 节点生成请求

1、生成密钥对儿

# (umask 077; openssl genrsa -out /etc/httpd/ssl/httpd.key 2048)

2、生成证书签署请求

# openssl req -new -key /etc/httpd/ssl/httpd.key -out /etc/httpd/ssl/httpd.csr

3、把签署请求文件发送给CA服务

# scp

(二) CA签署证书

1、验正证书中的信息;

2、签署证书

# openssl ca -in /path/to/somefile.csr -out /path/to/somefile.crt -days N

3、发送给请求者;

三、吊销证书

(一)节点

1、获取证书serial

# openssl x509 -in /path/to/certificate_file.crt -noout -serial -subject

(二) CA

2、根据节点提交的serial和subject信息来验正与index.txt文件中的信息是否一致;

3、吊销证书

# openssl ca -revoke /etc/pki/CA/newcerts/SERIAL.pem

4、生成吊销证书的编号(如果是第一次吊销)

# echo 00 > /etc/pki/CA/crlnumber

5、更新证书吊销列表

# cd /etc/pki/CA/crl/

# openssl ca -gencrl -out thisca.crl

如果需要,查看crl文件的内容:

# openssl crl -in /path/to/crlfile.crl -noout -text

linux CA 加解密安全过程讲解,布布扣,bubuko.com

时间: 2024-10-28 20:14:17

linux CA 加解密安全过程讲解的相关文章

linux CA 加密解密技术

一.基础知识 对称加密: 加密和解密方使用同一个密钥,用来解决数据机密性,但是密钥通过何种方式传递给对方不容易实现: 公钥加密: 密钥是成对出现的,分别为Secret key(密钥)和Public key(公钥)公钥加密必须使用与其相对应的 私钥进行解密并且公钥是从私钥中提取出来的,有私钥可以知道公钥是什么,但是知道公钥是不能知 道私钥的,公钥是公开的,而私钥是不公开的,但是公钥加密比对称加密慢3个数量级(1000倍), 加密速度相当的慢,所以单独用此加密方式也比较困难:公钥加密功能: 单向加密

HTTPS握手-混合加解密过程

SSL协议通信过程 (1) 浏览器发送一个连接请求给服务器;服务器将自己的证书(包含服务器公钥S_PuKey).对称加密算法种类及其他相关信息返回客户端; (2) 客户端浏览器检查服务器传送到CA证书是否由自己信赖的CA中心签发.若是,执行4步;否则,给客户一个警告信息:询问是否继续访问. (3) 客户端浏览器比较证书里的信息,如证书有效期.服务器域名和公钥S_PK,与服务器传回的信息是否一致,如果一致,则浏览器完成对服务器的身份认证. (4) 服务器要求客户端发送客户端证书(包含客户端公钥C_

RSA 加解密算法

与DES不同,RSA算法中,每个通信主体都有两个钥匙,一个公钥一个私钥. 就是有2把钥匙1.使用publicKey可以对数据进行加密2.使用Key才能对数据进行解密单方向传输用公钥加密的数据,只有私钥能解开(可用于加密):同时,使用私钥加密的数据,只有公钥能解开(签名).但是速度很慢(比私钥加密慢100到1000倍),公钥的主要算法有RSA,还包括Blowfish,Diffie-Helman等 公钥与私钥1.权威数字认证机构(CA)给所有通信主体(个人或组织)颁发公钥和私钥,彼此配对,分别唯一.

DES加解密算法的简单实现

前几天刚写完一个简单的DES算法的实验,拿来作为第一次发到博客的随笔,填充一下空空如也的博客,献丑了 因为主要目的是Easy-To-Understand,再现一个直观的DES加解密的过程,所以很浪费地每一个数据位都用一个short整型存储,用来理ying解fu过zuo程ye就好(虽说DES这种对称加密算法十多年前就已经被淘汰了,现在一般建议用AES或者DES3 “1973 年,美国国家标准局(NBS)开始征集一种标准的数据加密标准算法(DES),以用于非机密性政府机构.商业部门和民间的对非机密的

DES加解密算法Qt实现

算法解密qt加密table64bit [声明] (1) 本文源码 大部分源码来自:DES算法代码.在此基础上,利用Qt编程进行了改写,实现了DES加解密算法,并添加了文件加解密功能.在此对署名为bengold1979的网友表示感谢!本文是对DES算法代码一文代码的具体描述.该源码仅供学习交流,请勿用于商业目的. (2) 图片及描述 图片及部分解析来自 http://zh.wikipedia.org/wiki/%E8%B3%87%E6%96%99%E5%8A%A0%E5%AF%86%E6%A8%9

互联网服务器的实现过程需要考虑哪些安全问题 & 加解密及哈希知识点

http://www.cnblogs.com/charlesblc/p/6341265.html 其中的一篇. 参考 https://zhuanlan.zhihu.com/p/20336461?refer=auxten 网络编程(四):互联网中TCP Socket服务器的实现过程需要考虑哪些安全问题? 在Internet环境下,安全问题我主要分为如下几类: 信息传输过程中被黑客窃取 服务器自身的安全 服务端数据的安全 首先,如果能用https,就尽量用https,能用nginx等常见服务器,就用

openssl加解密原理及私有CA的建立

一.openssl加解密原理 数据加密解密过程数据加密需要实现的功能:数据私密性,数据完整性,身份认证和秘钥交换. 美国NIST,为了计算机的安全,提出了几个要求: 1.数据保密性   数据保密性   隐私性 2.完整性    数据完整性   系统完整性 3.可用性 4.真实性 && 可追溯性 OSI:x.800  安全攻击:   被动攻击:窃听   主动攻击:伪装.重播.消息修改.拒绝服务  安全机制:   加密.数字签名.访问控制.数据完整性.认证交换.流量填充.路由控制.公证  安全

数据加解密原理及私有CA的搭建以及撤销

简单罗列基础命令,只分享我的想法! 一.数据加/解密原理说明 客户端双方在互联网上通信,为了保证信息的安全,有了SSL协议,就是在TCP/IP模型传输层之上应用层之下,叫做安全的套接字层.目的就是为了把应用层的数据进行加密传递给客户端,而在Linux上实现这个协议或这个功能的软件就是OpenSSL. 原理其实就是,双方客户端的SSL层进行协商应用哪种加/解密的方式,ok,如果双方SSL达成一致,上层应用协议又通过SSL进行加密的话,那么双方在互联网上传输的数据就是加密的,这个加密之后的数据到达客

加解密技术,以及私有CA的搭建

一.前言 进入21世纪,人们的生活已经严重依赖于互联网,衣.食.住.行,互联网已经渗透到生活的第一个角落,这也给某些不良网民们提供了一个绝佳的环境去窃取我们的信息,让我们的信息不再安全.为了应对这些hacker和script boys,我们的白帽们也一直在努力,从没松懈过. 因为我还距白帽的能力有些差距,所以这里就简单介绍一下互联网的加密.解密方式.openssl的基本应用及CA的实现过程. 二.加密方式 1.对称加密加密和解密使用同一密钥:具体使用的算法: DES:通用加密标准,56bits密