Linux之加密解密基础、openssl及CA基础应用

加密解密基础简介

数据在网络中传输过程中要保证三个要点:

(1)数据的完整性:防止数据在传输过程中遭到未授权用户的破坏或篡改

(2)数据的机密性:防止文件数据泄漏给未授权用户从而让其利

(3)数据的可用性:保证授权用户能按需访问存取文件数据

因此加密技术是最常用的安全保密手段,利用技术手段把重要的数据变为乱码(加密)传送,到达目的地后再用相同或不同的手段还原(解密)。加密技术包括两个元素:算法和密钥。算法是将普通的信息或者可以理解的信息与一串数字(密钥)结合,产生不可理解的密文的步骤,密钥是用来对数据进行编码和解密的一种算法

解密:将密文转换成能够直接阅读的文字(即明文)的过程称为解密

常见加密类型: 对称加密、公钥加密、单向加密

(1)对称加密:加密和解密同一个密钥,依赖于算法和密钥。

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

缺点:密钥过多、密钥分发

常见的加密算法:DES、3DES(DES增强版)、AES(加密位数128bits、192bits、458bits、384bits、512bits)

大致的实现原理如下图:

(2)公钥加密:有两个不同的密钥:私钥(private key)和公钥(public key),使用公钥加密的数据只能由对应的私钥解密

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

常见加密算法:RSA 、 DSA(数字签名算法)

大致的实现原理如下图:

(3)单向加密:只能加密不能解密,提取数据特征码

特性:输入一样,输出必然相同;输入的微小改变,会造成结果的巨大变化;无法根据特征码还原原来的数据;定场输出

常见加密算法:MD1,MD5,SHA1,SHA512,CRC-32

大致的实现原理:单向加密通常用于验证数据的完整性,在数据发送之前,对数据进行单向加密得出特征码,然后接受者再次对接收的数据使用同样的单向加密,如果得到的特征码相同,则说明数据是完整的。因此单纯的使用单向加密,无法保证数据被篡改,因此还需要借助其他加密算法(如数字签名)。

以上加密的各种算法只是对文件进行了加密,如何保证在网络上进行安全的传输,而不被窃听,篡改等?

这里先阐述一次加密传输原理过程:

发送端:

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

2)、使用自己的私钥加密特征码附加在数据后面

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

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

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

接收端:

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

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

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

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

阐述中提到的公钥,用来加密/验章用;私钥是用来解密/签章。公钥与私钥的作用是:用公钥加密的内容只能用私钥解密,用私钥加密的内容只能用公钥解密。

随着传统模式开始走向电子化和网络化,网络传输迫切需要解决真实身份、数据完整性、机密性、准确性、不可否认性,引入了基于加密技术的数字签名。

PKI(Public Key Infrastructure)是使用公开密钥密码技术来提供和实施安全服务的基础设施,主要组成部分有:认证中心(CA )、注册中心(RA)、密钥管理中心(KMC)、证书发布;其中CA(Certificate Authority)系统是PKI体系的核心,主要实现数字证书的发放和密钥管理等功能。数字证书由权威公正的CA中心签发,是网络用户的***明。使用数字证书,结合数字签名、数字信封等密码技术,可以实现对网上用户的身份认证,保障网上信息传送的真实性、完整性、保密性和不可否认性。数字证书目前已广泛应用于安全电子邮件、网上商城、网上办公、网上签约、网上银行、网上证券、网上税务

等行业和业务领域。

数字证书:数字证书为实现双方安全通信提供了电子认证。在因特网、公司内部网或外部网中,使用数字证书实现身份识别和电子信息加密。数字证书中含有密钥对(公钥和私钥)所有者的识别信息,通过验证识别信息的真伪实现对证书持有者身份的认证

证书格式是 x509 格式,主要内容有:

版本号(version)

序列号(serial number),CA 用于唯一标志此证书

签名算法标志(signatur algotithm ientifier)

发行者的名称,即 CA 自己的名称

有效期,起始日期和终止日期

整数主题明还曾,整数拥有者自己的公钥

发行商的唯一标识

整数主题的唯一标志

扩展信息

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

SSL:Secure Socket layer(安全套接字层)

1995年由网景公司设计,发布SSL2.0版本,后推出3.0版本,1999年推出TLS1.0,相当于SSL3.0升级版,现在常用TLS1.2版本

分层设计:

1)、最低层:基础算法原语的实现,aes, rsa, md5

2)、向上一层:各种算法的实现

3)、再向上一层:组合算法实现的半成品

4)、用各种组件拼装而成的种种成品密码学协议/软件:tls, ssh

openssl应用

OpenSSL是一个强大的安全套接字层密码库,Apache使用它加密HTTPS,OpenSSH使用它加密SSH。

OpenSSL提供的功能相当强大和全面,囊括了主要的密码算法、常用的密钥和证书封装管理功能以及SSL协议,并提供了丰富的应用程序供测试或其它目的使用。主要组成部分:libcrypto(通用功能密码算法库)、libssl(SSL协议库,用于实现TLS/SSL的功能)、OpenSSL多功能命令行工具(能够实现生成密钥、创建数字证书、手动加密解密数据)

openssl命令常见参数选项:

-e:指定为加密,可以不写默认为加密。

-des3:指定算法算法

-salt:默认设置,生成一段字符串放在密码最前面进行加密,提高解密难度。

-a:基于base64处理数据。加密结果进行base64编码处理

-in:读取那个文件进行加密

-out:输出到那里

-d:指定为解密

练习:

1)、用3des 加密/tmp/fstab ,存放于/var/目录中

2)、解密var/fstab,并存放为/var/fstab.new

3)、提取tmp/fstab特征码

openssl私有CA应用

私有 CA 先要生产 CA 自己的证书,CA的家目录是在/etc/pki/CA,各个目录保存的内容为:

certs:签发的证书存放的地方

private:存放CA的私钥(很重要)

crl:吊销的证书存放的地方

newcerts:签发新证书存放的地方

serial:签发证书的序列号(需创建),serial 起始序列号需要指定

index.txt:数据库的索引文件(需创建)

crlnumber:吊销证书的序列号(需创建)

CA证书的路径在 /etc/pki/tls/openssl.conf 中配置, 在 [ 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             #签发证书的序列号,一般从01开始

crlnumber=  $dir/crlnumber       #帧数吊销列表的序列号

crl=  $dir/crl.pem               #证书吊销列表文件

private_key=  $dir/private/cakey.pem     #CA的私钥文件

RANDFILE =  $dir/private/.rand           #随机数生产文件,会自动创建

default_days= 365                        #默认签发有效期

建立私有CA

1)、在/etc/pki/CA/private生成CA私钥文件

注:-out为输出私钥的位置 ;2048为密钥的长度

2)、在/etc/pki/CA目录下生成自签署证书

注:-new 为生成新的证书,会要求用户填写相关的信息;–x509通常用于自签署证书,生成测试证书或用于CA自签署;–key私钥位置;–days申请的天数(默认30天);-out生成位置

3)、创建所需文件:serial序列号文件、index.txt索引文件、crlnumber文件

4)、假设给http服务器(192.168.2.10)发放证书,其位置为/etc/httpd/ssl,ssl自己创建文件夹,在http上申请证书生成私钥

5)、在CA上给http服务器签署证书(需要书拷贝到CA服务器上,任意位置这里放在/tmp/临时目录下),并回传给http服务器

时间: 2024-12-27 02:45:33

Linux之加密解密基础、openssl及CA基础应用的相关文章

linux下加密解密之OpenSSL

一.为什么要加密 在网络这个大森林里面,所有的数据传输都是不安全的,在数据传输中必须要给数据加密,以防止被别人劫持盗取 二.数据在网络中怎么传输 数据从发送出去到目的地都经过了哪些步骤? 1.ISO国际标准组织定义了数据在网络传输中的七层模型:数据从 应用层--会话层--表达层--传输层--网络层--数据链路层--物理层 逐层封装传输,数据到达最底层后传送出去,到达目标主机后在从底层往上层传输并逐层解压封装. 2.在TCP/IP定义的四层模型里,数据传输也是一样的道理,应用层--传输层--网络层

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

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

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

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

linux关于加密解密技术基础、KPI及创建私有CA

linux加密和解密技术基础.KPI及创建私有CA 一.加密方式分为:1.对称加密:加密和解密使用同一个密钥:      对称加密:采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,在对称加密算法中常用的算法有:DES. 3DES.TDEA.AES.    Blowfish.Twofish          IDE.ARC6.CAST5等.    特性:      1.加密.解密使用同一个密钥:      2.强原始数据分割成固定大小的块,逐个进行加密

Linux之加密解密基础技术

下文主要介绍了什么是加密解密:为何要用到加密解密技术:加密解密技术能够为我们带来什么样的好处:常见的几种加密解密技术介绍以及Linux中的openssl. 一.什么是加密,解密 加密技术是一种常用的安全保密手段,利用各种技术手段把重要的数据进行加密传送:再用对应的技术手段进行解封,该过程的逆过程就称为解密.这里用一个不太恰当的例子说一下:也就好比你去办一张银行卡,需要你设置一个密码,就可以理解成在为这张银行卡做一个加密的操作:用银行卡到提款机取钱需要你输入密码,这就是一个解密的操作. 二.为什么

加密解密与OpenSSL建立私有CA

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

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

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

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

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

加密、解密以及openssl建立CA

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