加密、解密,以及OpenSSL建立自己的CA证书

在互联网上,你不想你发送给别人的机密数据,被人给看到,或者被人窃取的话,那么你知道该怎么办麽,下面我来给你介绍一下用什么方法来解决这个问题咯!

一、首先我来说说加密和解密的基本分类:主要有对称加密和非对称加密(或者叫公钥加密),还有一个我们使用的最多的一个加密叫单向加密,下面我分别来介绍一下它们:

1)对称加密:加密和解密使用同一个密钥,依赖于算法和密钥,安全性依赖于密钥而非算法

常见的算法有:DES (Data Encryption standard, 56bits) ,3DES,AES,blowfish,twofish,IDEA,RC6

CAST5等等…

特点是:加密/解密使用同一个密钥;将明文分隔成固定大小的块,逐个进行加密;

缺点是:密钥过多,扣篮的传输无法保证其安全;

(2)非对称加密(公钥加密):密钥是成对的,有公钥和私钥;私钥,仅允许自己使用,公钥是可以公开给所有人获取的;使用公钥加密的数据,只能是与其配对的私钥进行解密;反之亦然;

用处:身份认证、密钥交换以及数据加密;

算法:RSA、DSA、ELGamal

RSA:算法基于一个十分简单的数论事实:将两个大素数相乘十分容易,但是想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。

特性:密钥长度较大;加密解密分别使用密钥对中的密钥相对进行;常用于数字签名和密钥交换;

(3) 单向加密:提取数据的特征码;

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

算法:MD5、SHA1、SHA256、SHA512 等等..

比如我们的/etc/shadow文件,这个文件是用来存放用户的密码的;第一个$后面是加密的算法$,第二个$后面是8bits杂质;第三个$后面才是真正的密码;CentOS 5是使用的MD5算法,CentOS6 、7 是使用的SHA512;

用处:数据的完整性; 一般网上交易都是使用这种方式的;

一次加密的通信过程:

发送者:

1、使用单向加密算法提取生成数据的特征码;

2、使用直接的私钥加密特征码附加在数据后面;

3、生成用于对称加密的临时密钥;

4、用此临时密钥加密数据和已经使用私钥加密后的特征码;

5、使用接收方的公钥加密此临时密钥,并附加在对称加密后的数据后方;

接收方:

1、使用自己的私钥解密加密的临时密钥;从而获得对称密钥;

2、使用对称密钥解密对称加密的数据和私钥加密的特征码密文;从而获得数据和特征码密文;

3、使用发送方的公钥解密特征码密文,从而获得从计算生成的特征码

4、使用 与对方同样的单向加密算法计算数据的特征码,并与解密而来的进行比较;

二、下面我们来说说OpenSSL:

OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法、常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用。

SSL是Secure Sockets Layer(安全套接层协议)的缩写,可以在Internet上提供秘密性传输。Netscape公司在推出第一个Web浏览器的同时,提出了SSL协议标准。其目标是保证两个应用间通信的保密性和可靠性,可在服务器端和用户端同时实现支持。已经成为Internet上保密通讯的工业标准。

SSL能使用户/服务器应用之间的通信不被攻击者窃听,并且始终对服务器进行认证,还可选择对用户进行认证。SSL协议要求建立在可靠的传输层协议(TCP)之上。SSL协议的优势在于它是与应用层协议独立无关的,高层的应用层协议(例如:HTTPFTPTELNET等)能透明地建立于SSL协议之上。SSL协议在应用层协议通信之前就已经完成加密算法、通信密钥的协商及服务器认证工作。在此之后应用层协议所传送的数据都会被加密,从而保证通信的私密性。

Openssl 的组成部分:

libcrypto:加密、解密库文件

libssl:ssl 协议实现

openssl:多用途命令行工具,每一种功能都使用专用的子命令来实现

  • 加密文件(对称加密):

工具: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

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

例子:

# openssl  enc  –e  –des3  –a –salt  –in  fstab –out  fstab.des3

然后输入两遍密码,这个文件就加密成功了;

# openssl  enc  –e  –des3  -a -salt  -in  fstab.des3 -out  fstab.new

解释:env为对称加密算法的固定使用格式 –e 要使用什么加密方式 -des3表示已des3的方式进行加密,-salt表示密码里面加入一些盐,-in 表示加密/解密的文件来源 -out表示加密/解密的文件输出,-d 表示解密

  • 单向加密:

算法:md5 , sha1

工具:openssldgst,md5sum,sha1sum,sha224sum,sha256sum ,sha384sum,sha512sum

加密格式:

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

解释:dgst 为单向加密的固定格式:-md5|-md4|-md2|-sha1|-sha|-mdc2|-ripemd160|-dss1表示使用的加密算法,-out表示加密的文件输出

三、最后我们来说说数字证书:

CA:签证机构

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

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

版本号(version)

序列号(serial number):CA用于唯一表示此证书;

签名算法标志(Signaturealgorithm identifier)

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

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

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

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

发行商的唯一标识;

证书主体的唯一标识:

扩展信息:

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

证书通常有两类用途:用户证书、主机证书(httpd)

撤销证书:

3.1    使用OpenSSL构建私有CA:

1)生成私钥;

2)生成自签署证书;

(a)私钥用于签发证书,向证书添加数字签名使用;

(b)证书:每个通信方都需要导入此证书至“受信任的证书颁发机构”;

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

工作目录:/etc/pki/CA

  • 生成自签署证书:

查看证书:

生成自签证书:

其中req为表示创建证书的命令,-new表示创建一个新的证书,-x509表示创建证书的格式,-key创建私钥,-out证书的保存位置,-days表示证书的有效期限

提供必要的辅助文件:

#touch /etc/pki/CA/index.txt

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

2)用户申请证书:(以http为例)

            # cd /etc/httpd/

            # ls

            # mkdir ssl

            # cd  ssl

生成用户私钥:

生成证书签署请求:(与上面生成证书相似)

 

证书颁发机构签署证书:

证书颁发机构将生成的crt证书回传给用户即可用户将证书放置在自己的证书服务的路径下;

撤销证书:

这就是在互联网上加密和解密的过程以及证书创建和撤销证书的过程咯!希望能让你有所明白咯!如果还是让你无法明白,那是本人知识浅显,希望加以谅解...

时间: 2024-09-28 20:52:27

加密、解密,以及OpenSSL建立自己的CA证书的相关文章

加密解密与OpenSSL建立私有CA

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

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

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

网络通信中的加密解密及openssl和创建私有CA详解

1.为什么网络通信要进行数据加密? 我们在网络进行通信时候,如果数据以明文的方式传输,在传输过程中,数据可以被篡改.窃听.伪装等,如图: 当A向B通信时,C可以在数据传输的过程,将数据进行抓包,例如应用wireshark抓包软件,就可以抓取通信的数据包,进行对抓到的内容进行分析,得出传输数据的内容. 2.数据加密方式有哪些? 从分类上划分,加密技术有四种: 1)对称加密 ◆ 对称加密:加密和解密使用同一个密钥 ·DES:Data Encryption Standard,56bits ·3DES:

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

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

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

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

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

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

加密、解密以及openssl建立CA

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

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

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

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

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