1.SSL原理

     Secure Sockets Layer(安全的套接字层)位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。用于保障在Internet上数据传输之安全,利用数据加密技术,可确保数据在网络上之传输过程中不会被截取及窃听。

2.SSL的会话过程

SSL会话主要分为三步:

1.客户端向服务器端索要并验正证书;

2.双方协商生成“会话密钥”;对成密钥

3.双方采用“会话密钥”进行加密通信;

3.加密算法和协议

3.1 对称加密

加密和解密使用同一个密钥

常见的加密算法:

DES、3DES、AES、Blowfish、Twofish、IDEA、RC6、CAST5

特性:

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

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

缺陷:

1、密钥过多;

2、密钥分发困难;

3.2 公钥加密

密钥分为公钥与私钥

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

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

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

用途:

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

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

数据加密:

3.3  单向加密

 提取数据指纹(特征码);只能加密,不能解密;

常见算法:md5、sha1

特性:定长输出、雪崩效应;

功能:完整性;

3.4 密钥交换

    IKE(Internet Key Exchange互联网密钥交换)

1.公钥加密

2.DH(Deffie-Hellman地狱男爵)

4.PKI

PKI是Public Key Infrastructure的首字母缩写,翻译过来就是公钥基础设施;PKI是一种遵循标准的利用公钥加密技术为电子商务的开展提供一套安全基础平台的技术和规范

公钥基础设施主要包含以下四个:

签证机构:CA

注册机构:RA

证书吊销列表:CRL

证书存取库

5.openssl命令

openssl有众多子命令,基本可分为三类:

1.标准命令

2.消息摘要命令(dgst子命令)

3.加密命令(enc子命令)

5.1 对称加密

1

2

加密:~]# openssl enc -e -des3 -a -salt -in fstab -out fstab.ciphertext

解密:~]# openssl enc -d -des3 -a -salt -out fstab -in fstab.ciphertext

5.2 单向加密

1

        ~]# openssl dgst -md5 /PATH/TO/SOMEFILE

 5.3 生成用户密码

1

         ~]# openssl passwd -1 -salt $(openssl rand -hex 5)

5.4 生成随机数

1

2

        ~]# openssl rand -hex NUM    

        ~]# openssl rand -base64 NUM

 5.5 公钥加密

1

2

生成私钥:~]# (umask 077; openssl genrsa -out /PATH/TO/PRIVATE_KEY_FILE NUM_BITS)

提取公钥:~]# openssl rsa -in /PATH/FROM/PRIVATE_KEY_FILE -pubout

6.构建私有CA

(以下详细命令参考http://ch666.blog.51cto.com/10870222/1761516)

1.在CA的服务器上生成私钥

1

[root@ch sysroot]# (umask 077;openssl genrsa -out /etc/pki/CA/private/cakey.pem 4096)

2.生成自签证书

1

2

3

4

5

6

7

8

9

[root@ch sysroot]# openssl req -new -x509 -key /etc/pki/CA/private/cakey.pem -out /etc/pki/CA/cacert.pem -days 365 

3.为CA提供所需的目录及文件

1

2

3

[root@ch sysroot]# mkdir  -pv  /etc/pki/CA/{certs,crl,newcerts}

[root@ch sysroot]# touch  /etc/pki/CA/{serial,index.txt}

  [root@ch sysroot]# echo  01 > /etc/pki/CA/serial

以上步骤是在CA服务器端操作

http服务器向CA请求签署证书

a.主机生成私钥

b.生成证书签署请求

c.将请求通过可靠方式发送给CA服务器

以上操作是在http服务器端操作

4.在CA主机上签署证书

5.查看证书中的信息

(1)客户端获取要吊销的证书的serial

(2)CA服务器根据客户提交的serial和subject信息,对比其与本机数据库index.txt中存储的是否一致

(3)CA服务器吊销证书

(4)生成吊销证书的吊销编号(仅在第一次吊销证书时执行)

(5)更新证书吊销列表

查看crl文件

图解SSL和加密解密-原理篇相关推荐

  1. java加密解密代码_base64位加密解密原理及js代码实现

    base64位加密解密原理及js代码实现 在网上找了很多关于Base64加密解密的原理以一个比较通俗易懂的方式理解整理了一下大致原理如下 先上base64对照表 #加密 #1:将明文对照以acsii码 ...

  2. 图解HTTPS协议加密解密全过程

    为什么80%的码农都做不了架构师?>>>    我们都知道HTTPS能够加密信息,以免敏感信息被第三方获取.所以很多银行网站或电子邮箱等等安全级别较高的服务都会采用HTTPS协议. ...

  3. laravel cookie加密解密原理

    通过控制台的 cookie 信息我们会发现,每次请求之后,关键的 cookie,如PHPSESSID.XSRF-TOKEN 都会发生变化,并且都是很长的一串字符串. 其实这是一个 json 数组,其中 ...

  4. 【C 语言】文件操作 ( 文件加密解密 | 加密解密原理 | 对称加密 | 非对称加密 | 散列函数 )

    文章目录 一.加密类型 二.加密解密三要素 三.加密应用场景 四.散列函数 一.加密类型 数据加密操作 分为 对称加密 和 非对称加密 ; 对称加密 : 加密密钥 与 解密密钥 相同 ; 非对称加密 ...

  5. rot13加密解密原理

    ROT13(回转13位,rotate by 13 places,有时中间加了个连字符称作ROT-13)是一种简易的替换式密码.它是一种在英文网络论坛用作隐藏八卦(spoiler).妙句.谜题解答以及某 ...

  6. 【C 语言】文件操作 ( 文件加密解密 | 加密解密原理 | 对称加密原理 | 非密钥整数倍长度的数据加密处理 )

    文章目录 一.对称加密原理 二.非密钥整数倍长度的数据加密处理 一.对称加密原理 给定一个 密钥 , 密钥的 长度不确定 , 可能是 323232 字节 , 也可能是 646464 字节 ; 将 被加 ...

  7. png图片结构分析与加密解密原理

    PNG文件格式分为PNG-24和PNG-8,其最大的区别是PNG-24是用24位来保存一个像素值,是真彩色,而PNG-8是用8位索引值来在调色盘 中索引一个颜色,因为一个索引值的最大上限为2的8次方既 ...

  8. Windows系统EFS加密解密原理分析/无密码解密思路

    EFS加密是windows系统自带的加密方式,一个系统用户对文件加密后,只有以该用户的身份登陆才能读取该文件.EFS加密的文件和文件夹名字颜色是绿色,或者在该文件或文件夹的高级属性是加密属性.这样做在 ...

  9. 探讨:网银数字证书加密解密原理

    首先要先理解一些概念,这样才能更好的理解. 公钥和私钥 在现代密码体制中加密和解密是采用不同的密钥(公开密钥),也就是非对称密钥密码系统,每个通信方均需要两个密钥,即公钥和私钥,这两把密钥可以互为加解 ...

最新文章

  1. 怎么申请 bing api key
  2. 从原理上理解MySQL的优化建议
  3. AttributeError: ‘set‘ object has no attribute ‘items‘
  4. gcc对C语言的扩展:标签变量(Labels as Values)
  5. spring batch(批处理)
  6. lr压测mysql数据库_jmeter压测mysql数据库
  7. 秒杀系统 后端设计方案
  8. MFC 子对话框多了任务栏图标?
  9. Tilemap瓦片资源
  10. 百度安卓开发一二面面经
  11. Java jmap与jcmd命令dump内存heap堆
  12. linux 僵尸进程处理
  13. stm32第一章cortex-M3处理器概述
  14. android导出txt文件格式,安卓端数据导出成txt文件
  15. SmartNavigation苗条版ClientNavigation增肥
  16. 今日头条安卓_我为什么开始对今日头条和抖音反感了
  17. 关于IOS应用签名不一致的问题解决方法
  18. 怎么用光功率计测试两台光端机间的传输距离
  19. [SV]合并数组和非合并数组
  20. 倒排索引的数据结构:Term index、Term Dictionary、Posting List

热门文章

  1. 求列表中个元素的数量
  2. 文件分类tkinter UI小程序,界面点击,后台自动归档到某个文件夹
  3. CAS Server(二):基于SpringBoot搭建客户端
  4. idea中生成mapper xml文件,快速从代码跳转到mapper及从mapper返回代码的插件安装
  5. 「后端小伙伴来学前端了」Vue中学会使用Echarts生成各种各样的图表,得学学了,必须要会的基本操作了
  6. MySQL锁机制(myisam表所与innoDB锁)
  7. java用继承编写宠物乐园_MoreThanJavaDay 5:面向对象进阶继承详解
  8. mysql 查询每天 如果没有显示为0_「15」MySQL的系统信息函数
  9. java对象赋值给另一个对象_java面向对象编程
  10. mysql 透明代理_透明代理MySQL_基于zbus的MySQL透明代理(100行)-云栖社区