IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 网络协议 -> 关于SSL原理的详解 -> 正文阅读

[网络协议]关于SSL原理的详解


SSL原理详解

其实SSL从网上看到的资料很多了,但是发现还是没有将原理讲得特别清楚,尤其是对CA,433端口与80端口的数据传输原理,都没有说得很清楚。通过在网上找相关资料,写此博客也便以后自己回顾。
SSL主要解决的问题是什么?是解决防钓鱼网站,防中间人攻击。利用非对称加密,让客户端和服务端进行密码协商,然后用对称加密进行数据传输,以确保数据传输的安全性。那么怎么解决传输的中间人截取信息后伪造数据的问题就是SSL的原理。


一、SSL是什么?

SSL(Secure Sockets Layer 安全套接字协议)。传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。TLS与SSL在传输层与应用层之间对网络连接进行加密。
SSL协议位于TCP/IP协议与各种应用层协议之间,为数据通讯提供安全支持。可分为两层:

应用层
SSL Handshake Protocol
SSL Record Protocol
TCP

1、SSL记录协议(SSL Record Protocol):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密支持。 确保机密性、完整性
2、SSL握手协议(SSL Handshake Protocol):它建立在SSL记录协议之上,该协议允许服务器和客户机相互验证,协商加密和MAC算法以及保密密钥,用来保护在SSL记录中发送的数据。握手协议是在应用程序的数据传输之前使用的。
3、警报协议(SSL Alert protocol)客户机和服务器发现错误时,向对方发送一个警报消息。如果是致命错误,则算法立即关闭SSL连接,双方还会先删除相关的会话号,密钥。每个警报消息共2个字节,第1个字节表示错误类型,如果是警报,则值为1,如果是致命错误,则值为2;第2个字节制定实际错误类型。

二、建立SSL通道过程

1.简化篇

客户端向跟服务端443端口说:哥们,建立一个安全连接吧,你在不在?
服务端回应说:在的,我有DES、AES、IDEA加密算法,你看用哪个?
客户端说:我们用DES吧,私钥是abc123;
服务器端说:收到,我们建立连接吧。
于是客户端利用DES算法将请求信息利用密钥abc123加密,向服务器端80端口发送请求;服务器端获取数据后,利用DES算法和密钥abc123解密,并将结果发回给客户端。由于私钥只有客户端和服务端知道,这样保证数据通信的安全性。

那么问题来了,怎么保证客户端和服务端商量算法和密钥的时候是安全的,不会被中间人获取后,伪造信息呢?

2.具体建立过程

Client GoodRouter BadRouter Server CA 申请证书,注册域名和公钥 CA利用CA的私钥加密Server(域名和公钥),由于GoodRouter和BadRouter只有CA的公钥, 没有私钥信息,所以无法篡改,只能老老实实转发 利用CA公钥解密,获得Server公钥 利用Server的公钥加密“Server, Client想和你建立个连接” “Server, Client想和你建立个连接” 我想篡改,但是我只有Server的公钥, “Server,Client想和你建立个连接”也是用公钥加密过的,只能转给Server 利用私钥解密,得到 Client想跟我建立连接的请求 利用私钥加密,“在的,我有DES、AES、IDEA加密算法,你看用哪个” 中间传输过程因为都是加密的,所以中间人无法篡改,我就忽略了 用Server的公钥加密“我们用DES吧,私钥是abc123” 用Server的私钥加密“收到,我们建立连接吧” DES算法和私钥abc123加密请求,将数据发送给服务端,获取数据 Client GoodRouter BadRouter Server CA

那么还有一个问题,CA的公钥是怎么下发给Client的呢,因为CA如果是通过网络下发的,都有可能有中间人(BadRouter)伪装自己是CA公司,将假证书下发给Client,这样Client的任何请求都可能以假证书的公钥加密,发给BadRouter,BadRouter将解密的信息再包装后发给Server,Server回的信息就都给了BadRouter,BadRouter把造假信息以Server的名义回给Client。这样信息就被劫持了,你的银行卡就被盗了。
那怎么解决,其实是通过操作系统来保证的。操作系统安装时就已经安装了公认安全的CA公司的数字证书,怎么找呢?看下面的截图
CA证书
所以如果安装的盗版操作系统,可能会被植入伪造的CA证书。具体操作可以看看我的另外一篇博客内网数字证书的生成与使用


总结

以上就是我总结的网上资料关于SSL的安全加密的过程,当然TCP协议握手属于比较基础的知识,就不在这里赘述了。简单的说整个过程就是建立在CA证书的签发机构的公信力之上,如果CA本身安全性无法保证,那整个安全通信的机制就瓦解了。

  网络协议 最新文章
使用Easyswoole 搭建简单的Websoket服务
常见的数据通信方式有哪些?
Openssl 1024bit RSA算法---公私钥获取和处
HTTPS协议的密钥交换流程
《小白WEB安全入门》03. 漏洞篇
HttpRunner4.x 安装与使用
2021-07-04
手写RPC学习笔记
K8S高可用版本部署
mySQL计算IP地址范围
上一篇文章           查看所有文章
加:2022-05-05 11:56:47  更:2022-05-05 12:01:46 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 2:04:33-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码