数据安全及OpenSSL

一、数据安全特性

1、数据保密性

保密性就是把明文传输的数据使用具体的某种加密算法进行加密,使得第三方截获数据也无从知晓其中内容,必须使用对应的密钥进行解密。

2、数据完整性

为防止第三方篡改数据信息,可以使用单向加密算法,对数据提取特征码。接收方收到数据后,可以使用相同加密算法对接收到的数据进行特征码提取,再将接收到的特征码与自己计算的特征码进行比对。

3、用户身份验证

接收方为了验证接收到的数据是否是合法的发送方发来的,发送方在发送数据时,将提取出的特征码用自己的私钥加密后再发送给接收方。接收方接收到数据后,使用发送方的公钥解开加密后的特征码,这样就确定是合法的发送方发送的。

二、加密算法

1、对称加密算法

对称加密是指加密和解密操作都是使用相同的密钥,或者加密的密钥和解密的密钥能够推算出彼此;

发送方与接收方在通信之前,需要协商一个用于加密数据的密钥;

对称加密过于依赖密钥的安全性,如果密钥泄露,则通信过程不再安全;

在分布式系统环境中,每对用户在使用对称加密算法时,都需要使用唯一的密钥,这样会使得密钥的数量成几何式的增长,对密钥的管理上变得很困难;

而与非对称密钥相比,对称密钥没有签名功能,使得对称密钥的使用范围缩小;

但是,对称加密算法计算量下、加密速度快、加密效率高,所以仍然有其用武之地。

常见的对称加密算法:DES、3DES、Blowfish、R5等。

2、非对称加密算法

非对称加密算法有两个密钥:公钥和私钥。在使用非对称加密算法通信过程前,双方各自生成一对公钥和私钥,把公钥发送给需要跟自己通信的一方,自己保管好自己的私钥;

公钥加密的数据,只能由与之匹配的私钥解密,私钥加密的数据,也只能由与之匹配的公钥才能解开;

安全性的提高,势必带来效率低的后果。非对称密钥算法的特点就是算法复杂、加解密的速度远低于对称加密算法。

常见的非对称加密算法:DH、RSA、DSA等。

3、信息摘要

也就是单向加密算法,可以检验数据的完成性,防止数据被篡改。

常见的单向加密算法:MD5、SHA1等。

三、实现数据安全传输基本原理

一般实现数据安全传输的过程:先将发送的数据进行特征码提取,即为单向加密;再由发送方自己的私钥,对特征码进行加密,接收方收到后只能用发送方的公钥进行解密,这样能够确认发送方的身份;由于对称加密算法的效率要远高于非对称算法,这里再使用对称加密算法对数据以及加密后的特征码一起进行对称加密;最后使用接收方的公钥对上步中对称加密的密钥进行加密。

到现在为止,由于最后一步使用接收方公钥来加密密钥,这样一来,发送方还是无从得知自己手上接收方的公钥是否合法。如果第三方伪造了一个接收方的公钥,那么第三方就能够用假冒的公钥所对应的私钥获取对称密钥,从而解开数据。

为了验证公钥的合法性,就出现了CA(Certificate Authority)的概念。通信方向CA提供自己的Public Key以及其他相关信息,CA签署成功后,再使用自己的私钥加密,最终生成一个证书发送给通信方。以后发送方和接收方就直接发送证书给对方,对方接收到证书后,就用CA的公钥进行解密,从而获取到里面对方公钥。

CA如果要验证自己的公钥合法性,要么向上级CA获取证书,要么就自己给自己颁发证书。

四、OpenSSL实现私有CA

Secure Sockets
Layer(SSL,安全套接层协议)服务于传输层,基于可靠的TCP协议。可以对传输层协议(HTTP,FTP等)提供加密算法、密钥协商、认证等服务。

CentOS 7.2内置的OpenSSL为openssl-1.0.1e-42.el7.9.x86_64版本。

1、生成私钥

由于公钥是按照一定方式从私钥中提取出来的,所以可以理解为公钥和私钥是成对生成的。

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

查看公钥方法:

 openssl rsa -in private/cakey.pem -pubout -text

2、生成自签证书 

 openssl req -new -x509 -key private/cakey.pem -out cacert.pem -days 365

3、创建文件

 touch index.txt serial
 echo 01 > serial   #证书序号

4、web服务器生成请求待签证书

 (umask 077 ; openssl genrsa -out http.key 2048)
 openssl req -new -key http.key -out http.csr -days 365

将http.csr传给CA,让CA对其进行签证。

5、CA签证

 openssl ca -in http.csr -out http.crt

再将证书http.crt传回给web服务器,可以使用openssl
x509 -in http.crt -text来查看证书里的具体内容了。

在CA一端这边我们发现,在签署过一个证书后,有些文件已经发生变化:

serial文件的序号已经变成02号,等待第二个待签证书的到来;

index.txt文件:

newcerts目录中存入已签发过的证书,按照序列号命名:

6、吊销证书

 openssl ca -revoke http.crt

时间: 2024-08-02 15:08:42

数据安全及OpenSSL的相关文章

加密解密数据安全1 OpenSSL 安装

加密解密数据安全1  OpenSSL 安装 OpenSSL官方网站:https://www.openssl.org/source/ 解压,编译,安装 解压OpenSSL [email protected]:~ $ cd openssl/ [email protected]:~/openssl $ tar xf openssl-1.1.0 [email protected]:~/openssl $ cd openssl-1.1.0/ 编译环境检查 [email protected]:~/opens

linux学习指南

一.Linux系统管理基础与进阶(RH033和RH133): 1.操作系统发展史,系统架构平台概览: 2.Linux起源.理念.发展历史及各发行版: 3.Linux基础知识.命令.获得使用帮助及文件系统基础: 4.Linux用户.组及权限的基础与高级知识: 5.Bash基础及配置.标准I/O和管道: 6.文本处理工具的概念及vim编辑器的使用: 7.基本系统配置工具及管理工具的使用: 8.进程的查看及各种常见管理工具的使用: 9.文件的查及操作: 10.网络属性配置及网络客户端工具的使用: 11

安全与加密(openssl)

一.安全及威胁 NIST(National Institute of Standard and Technology,美国国家标准与技术研究院)制定了安全的数据应该具备的安全属性: 1)保密性 即认为安全的数据是具有隐私性的 2)完整性:数据不可被篡改,包括: 数据完整性: 系统完整性. 3)可用性 加密过的数据可以被还原且继续被使用 威胁我们数据安全的主要有以下攻击方式:STRIDE 1)Spoofing(假冒),arp欺骗等 2)Tampering(篡改) 3)Repudiation(否认)

openssl与数据传输安全

数据安全服务的几个方面:     1.认证             访问控制 阻止对资源的未授权访问     2.数据保密性      3.数据完整性          要保证发送方所发送的数据没有被修改...     4.不可否认性 一.怎么验证数据的完整性.也就怎么知道数据在传输的过程中没有被修改过.这就要使用到单向加密算法,提取数据的指纹(特征码). 数据的传输双方为:甲.乙 甲:在数据传输之前,提取该数据的"指纹"然后,把数据指纹附加在数据中一起发送给乙. 乙:接收到该数据以后

数据安全基础知识总结

1.数据安全 01 数据安全的原则 1)在网络上"不允许"传输用户隐私数据的"明文" 2.)在本地"不允许"保存用户隐私数据的"明文" 1.png 2.Base64 1.Base64简单说明 描述:Base64可以成为密码学的基石,非常重要. 特点:可以将任意的二进制数据进行Base64编码 结果:所有的数据都能被编码为并只用65个字符就能表示的文本文件. 65字符:A~Z a~z 0~9 + / = 对文件进行base64编

OpenSSL基础知识

1.openssl里的fips是什么意思? openssl-fips是符合FIPS标准的Openssl. 联邦信息处理标准(Federal Information Processing Standards,FIPS)是一套描述文件处理.加密算法和其他信息技术标准(在非军用政府机构和与这些机构合作的政府承包商和供应商中应用的标准)的标准. 2.OPENSSL_FIPS宏有什么作用? Intel AES指令(AES-NI)是Intel32纳米微架构上的一组新指令.这些指令对于使用 AES(Advan

linux下加密解密之OpenSSL

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

openssl 构建CA及加密解密

OpenSSL 是一个强大的安全套接字层密码库,囊括主要的密码算法.常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用.主要通过在传输层与应用层间构建SSL安全套接字层实现安全传输.可选择通过SSL层进行加密传输,需要事先建立通信通道的层 加密算法和协议: 1.对称加密 特性: 1.加密.解密使用同一密钥: 2.将明文分隔成固定大小的块,逐个进行加密: 缺陷: 1.       密钥过多: 2.        密码分发方式: 3.    常见算法: DES:Dat

openssl安装使用教程

本文简要介绍CA和证书的基础知识,并演示openssl-1.0.2d的安装,CA证书生成.用户证书申请.使用CA签发用户证书等内容.另外,可以参考本人的其他文章如nginx教程,进行生成证书的验证. By 泪痕之木 实验环境 操作系统:CentOS 6.7 主机名:centos6 openssl版本:openssl-1.0.2d.tar.gz(官网获取) 1 基础知识 1.1 PKI 为解决Internet的安全问题,世界各国对其进行了多年的研究,初步形成了一套完整的Internet安全解决方案