学习笔记之加密解密,PKI,CA

1.加密解密

背景:在网络通信中为了达到安全需要,比如通信保密性,保证信息完整性和可用性,这就需要一些技术,下面就来介绍相关的技术

技术包括:加密和解密

服务(用于抵御攻击的服务,也即是为了上述安全目标而特地设计的安全服务)

加密和解密:

传统加密方法:替代加密方法、置换加密方法

现代加密方法:主要是现代块加密方法

注:真正的加密主要依赖密钥而不是加密算法

服务:

认证机制

访问控制机制

加密包括:

对称加密

公钥加密

单向加密

认证加密

2.对Linux系统:为了实现上述安全目标需要一些工具需要一些服务来实现上述功能,而linux的常用工具如下:

linux常用于上述功能(就是的加密算法、协议或服务等)

解决方案的工具主要有两个OpenSSL(ssl),GPG(pgp)

OpenSSL(ssl):是ssl协议和加密解密的实现

GPG(pgp):是gpg协议的实现

3. OpenSSL是什么?

OpenSSL由三部分组成:

libencrypt库(用于实现加密解密的库)

libssl库(用于实现ssl安全通信机制的库)

openssl多用途命令行工具(能实现加密解密等)

4.详解加密解密

加密算法和协议:(我们了解工作模式就行了)

4.1对称加密:加密和解密使用同一个密钥

常见的方式:

DES:data encryption standard 使用16位加密

3DES:Triple DES(即三倍的DES)

AES:advanced encryption standart高级加密

(128bits,192bits,256bits,384bits)

blowfish

twofish

IDEA

RC6

CASTS

加密算法特性:

1、加密解密使用同一个密钥

2、将原始数据分隔成为固定大小的块逐个进行加密

缺陷:

1、密钥过多()

2、密钥发放困难

4.2公钥加密:密钥分为公钥和私钥

公钥:从私钥中提取产生;可公开给所有人;pubkey

私钥:通过工具创建,使用者自己留存,必须保证其私密性:secret key

特点:用公钥加密的数据,只能使用与之配对儿的私钥解密;反之亦然

公钥加密的算法:

算法:RSA,DSA,ELGamal

dsa不能用于加密解密,仅能用于签名

rsa:既能加密解密又能用于签名

DSS:Digital Signature Standard(数字签名标准)

DSA:Digital Signature Algorthm

公钥加密用途:

数字签名:主要在于让接收方确认发送方的身份

密钥交换:发送方用对方公钥加密一个对称密钥,并发送给对方

数据加密

主要是前两种

双方通信的加密过程步骤:

第一:发送方(A)先生成一份数据,为了保证数据安全无误保密的送达给接收方(B),A要先用单向加密的算法计算出这段数据的特征码

第二:A会用自己的私钥加密这段特征码,并将结果附加在数据后面,

第三:A生成一个临时的对称密钥,并使用这对称密钥加密整段数据

第四:A会获取B的公钥,并使用B的公钥去再加密上一步已经加密的整段数据,并发送给B,实现秘密通信

双方的解密过程:

第一:B用自己的私钥去解密发送过来的对称密钥

第二:用对称密钥解密整段加密的内容

第三:用A的公钥去解密这段特征码,能解密则判断是A发送过来的,A的身份得到验证。

第四:B再用同样的对称加密算法去计算这段数据的特征码,并与解密出来的进行比较,如果相同,数据完整性得到验证,同时保密性也得到验证。

思考:这中间存在安全隐患就是,中途有个人在冒充,同时冒充AB,这时中间人就将AB的信息全部看了一遍。为了解决这个问题于是就有了第三方CA

   4.3 单向加密:即提取数据指纹(特征码),只能加密,不能解密

特性:定长输出,雪崩效应(初始结果的微小改变将导致结果的巨大变化)

功能:实现数据的完整性校验

算法:md5:Message Digest5,128bits消息摘要算法

sha1, sha256,sha224,  sha384,  sha512

sha1:secure hash algorthm 1,安全的hash算法

5. PKI:public key infrastructure

     公钥基础设施

它是以CA为核心生成的另一个安全机构

其组成:

签证机构:CA

注册机构:RA

证书吊销列表:CRL

证书存取库

证书包含的内容:

X509v3(数字证书结构标准v3版):定义了证书的结构以及认证协议标准

版本号:

序列号: serial

签名算法ID(用什么算法算的)

发行者名称

有效期限

主体名称(拥有者的信息)

主体公钥

发行者的唯一标识

主体的唯一标识

扩展

发行者的签名

部分截图:如下

6. CA:

  CA种类:公共信任的CA,私有CA;

建立私有CA:(只在私有范围内使用时)

工具:openssl:使用范围很小就可以用此来生成CA

OpenCA

6.1 构建私有CA:

在确定配置为CA的服务上生成一个自签证书,并为CA提供所需要的目录及文件即可;

步骤:(要做到耳熟能详)

(1) 生成私钥;

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

(2) 生成自签证书;

~]# openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 3655

  以上命令内容说明:

-new:生成新证书签署请求;

            -x509:生成自签格式证书,专用于创建私有CA时使用;

            -key:生成请求时用到的私有文件路径;

            -out:生成的请求文件路径;如果自签操作将直接生成签署过的证书;

            -days:证书的有效时长,单位是day;

(3) 为CA提供所需的目录及文件;

~]# mkdir  -pv  /etc/pki/CA/{certs,crl,newcerts}##一般就已经存在

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

~]# echo  01 > /etc/pki/CA/serial  ##此为给一个序列号

注意:只有创建私建CA时,就是只有作为CA主机的时候才在/etc/pki/CA/目录下进行创建,即上面的例子。在用到证书目录下的服务器要在其对应目录下创建,比如下面的例子实现,以httpd服务器为例。其目录为/etc/httpd/ssl

6.2 某服务器要用到证书进行安全通信的服务器,需要向CA请求签署证书:

步骤123在服务器172.18.26.22上执行

步骤4在主机172.18.26.21上执行

步骤:(以httpd为例)

(1) 用到证书的主机A生成私钥;

~]# mkdir  /etc/httpd/ssl

~]# cd  /etc/httpd/ssl

~]# (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  -days  365

(3) 将请求通过可靠方式发送给CA主机;

比如远程复制:

#scp httpd.csr [email protected]:/tmp/

(4) 在CA主机上签署证书;

先创建文件

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

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

再签署

~]# openssl ca  -in  /tmp/httpd.csr  -out  /etc/pki/CA/certs/httpd.crt  -days  365

注:在第二步的时候配置服务地址比如httpd注意是以www开头的。

查看证书中的信息:

~]# openssl  x509  -in /etc/pki/CA/certs/httpd.crt  -noout  -serial  -subject

-serial表示查看序列号

-subject 查看

知识补充:1.scp 命令:把本机文件复制到远程主机上

时间: 2024-10-29 19:12:00

学习笔记之加密解密,PKI,CA的相关文章

Linux学习笔记一 加密解密介绍,以及运用Openssl创建私有CA

互联网高速发展的今天,确保通信数据能够在互联网上安全可靠的传输是极为重要的.为此,各种安全算法,协议纷纷诞生.Openssl只是其中之一,Openssl为网络通信提供安全及数据完整性的一种安全协议,包括了主要的密码算法.常用的密钥和证书封装管理功能(CA)以及SSL协议,并提供了丰富的应用程序供测试或其它目的使用 美国NIST给出了数据安全可靠传输的明确标准: 保密性: 数据保密性 隐私性 完整性: 可用性: 加密:使用加密算法对明文加工处理,转换成不可识别的代码信息,确保信息安全. 解密:运用

马哥linux学习笔记:加密,解密基础

在计算机网络建设的初期,由于能使用到计算机的人少之又少,并没有考虑到有数据加密需求,随着社会的发展,互联网已俨然成为我们生活中不可或缺的一部分,人们不管是交流,购物,还是工作都已经离不开互联网.在电脑,手机,各种电子设备构建的互联网中,数据的安全问题已经成为人们很是关注一个重要环节. 现在,我们就来了解一下linux下是如何实现数据加密及解密的. 对于确保数据的安全性,我们要达成的目标有三个: 保密性,完整性,可用性. 现今蛇龙混杂的互联网,总是有很多拥有强烈好奇心的不安分的人想尽办法要获知其他

马哥Linux学习笔记之三——加密

1.明文传输 ftp,http,smtp,telnet 2.机密性:plaintext-->转换规则-->ciphertext ciphertext-->转换规则-->plaintext 完整性:单项加密算法,提取数据特征码.输入一样,输出必然一样:雪崩效应,输入的微小改变,将会引起结果的巨大改变:无论原始数据是多少,结果大小都是相同的:不可逆,无法根据特征码还原原来的数据. 3.密钥 4.对称加密:有加密算法,有密钥 5.密钥交换算法 IKE(Internet Key Excha

https学习笔记三----OpenSSL生成root CA及签发证书

在https学习笔记二,已经弄清了数字证书的概念,组成和在https连接过程中,客户端是如何验证服务器端的证书的.这一章,主要介绍下如何使用openssl库来创建key file,以及生成root CA及签发子证书.学习主要参考官方文档:https://www.feistyduck.com/library/openssl-cookbook/online/ch-openssl.html# 一.openssl 简介 openssl 是目前最流行的 SSL 密码库工具,其提供了一个通用.健壮.功能完备

Linux学习笔记—— 基于CentOS创建私有CA及应用

这篇文章应该是有史以来,历时最长最纠结的一次,毫不夸张的讲总结到词穷的地步了.现在每次一到理论知识梳理的过程,总有种茶壶里的饺子,稍微懂点但有说不出来,哎!这辈子估计当不了老师了,话不多说还得撸起袖子接着写不是. 第一章.详细描述一次加密通讯的过程,结合图示最佳. HTTPS在基于SSL建立会话前,会经历4次握手过程以获取会话密钥.流程如下: 图示1 HTTPs 通讯流程详细说明 1. 客户端请求(ClientHello) 客户端向服务器发送会话请求,这一步称为ClientHello.Clien

加密解密私有CA构建

加密方式: 对称加密.公钥加密.单向加密 对称加密: 加密算法+口令+文明数据   --> 密文 -->    使用同一个口令->明文    (ps 严重依赖口令   算法可能是公开的) 破解方法:字典攻击  枚举猜测 (拒绝简单密码)(1秒可1e次,不算快  假如20位密码  键盘100个  100^20/10^8=10^32 秒) 对称加密原理:将原文按照固定大小切换block  逐块加密  将第一块加密结果与第二块加密结果异或运算结果作为第二块结果输出(块链) 对称加密算法: DE

加密解密以及CA签证

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

Cryptography I 学习笔记 --- 认证加密

1. 认证加密,Alice与Bob共享一个密钥k,Alice可以发送密文E给Bob,Bob可以确定接收到的E一定是拥有密钥k的Alice产生的.而不是攻击者随便产生的. 2. 认证加密必须能抵挡住选择密文攻击 3. 认证加密无法抵挡重放攻击 4. tls,两边维护一个相同的自增计数器,可以抵挡重放攻击 5. 先对明文加密,然后在对密文做MAC是安全的.其他次序都是有隐患的.

加密解密基础、PKI及SSL、创建私有CA

基本概念: 加密作为数据安全保障的一种方式,它不是近代才产生的,历史已经相当久远:加密算法就是加密的方法. 数据加密解密: 数据加密的基本过程就是对原来为明文的文件或数据按特定算法进行处理,使其成为不可读的一段代码,通常称为"密文",使其只能在输入相应的密钥之后才能显示出本来内容,通过这样的途径来达到保护数据不被非法人窃取.阅读的目的.该过程的逆过程为解密,即将该编码信息转化为其原来数据的过程 为什么需要对数据加密:加密在网络上的作用就是防止有用或私有化信息在网络上被拦截和窃取:比如个