SSL是什么?SSL怎么用?

2023-10-27

SSL是什么

        SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。如今被广泛使用,如网页,电子邮件,互联网传真,即时消息和语音在IP电话(VoIP)。其中网站是通过使用TLS来保护WEB浏览器与服务器之间的通信安全。

        SSL介于应用层和TCP层之间。应用层数据不再直接传递给传输层,而是传递给SSL层,SSL层对从应用层收到的数据进行加密,并增加自己的SSL头。

SSL协议的三个特性

① 保密:在握手协议中定义了会话密钥后,所有的消息都被加密;

② 鉴别:可选的客户端认证,和强制的服务器端认证;

③ 完整性:传送的消息包括消息完整性检查(使用MAC)。

SSL 的工作原理

  • 握手协议(Handshake protocol)
  • 记录协议(Record protocol)
  • 警报协议(Alert protocol)

1.握手协议

握手过程

可以人为的将握手协议分为四个阶段

握手协议的第一个阶段

客户端首先发送 client hello 消息到服务端,服务端收到 client hello 信息后,再发送 server hello 消息到客户端
随机数: 32 位时间戳 +28 字节随机序列,用于计算摘要信息和预主密钥或主密钥的参数。
会话 ID :一次性会话 ID ,防止重放攻击。

握手协议的第二个阶段()

服务器的证书:包含服务端公钥的证书,用于客户端给服务端发送信息时加密。
server key exchange 服务端密钥交换:决定密钥交换的方式,比如 DH,RSA ,会包含密钥交换所需的一系列参数。 

握手协议的第三个阶段

client key exchange 客户端密钥交换:根据服务端随机数算出一个 pre-master ,发给服务器,服务器收到后根据pre-master 密钥生成一个 main-matser  
预主密钥 与主密钥的关系
客户端随机数+服务端随机数---->预主密钥参数---->主密钥----->共享密钥+HMAC认证密钥+初始化向量
初始化向量用法

 

握手协议的第四个阶段

会话恢复

2.记录协议

记录协议主要用来实现对数据块的分块、加密解密,压缩解压缩,完整性校验,封装。

记录协议在客户机和服务器握手成功后使用,即客户机和服务器鉴别对方和确定安全信息交换使用的算法后,进入SSL记录协议,记录协议向SSL连接提供两个服务:

(1)保密性:使用握手协议定义的秘密密钥实现

(2)完整性:握手协议定义了MAC,用于保证消息完整性

SSL 记录协议包含信息:
  • 内容类型
  • 协议版本号
  • 数据长度
  • 数据的有效载荷
  • 散列算法的认证代码

记录协议的过程

3.警报协议

        客户机和服务器发现错误时,向对方发送一个警报消息。如果是致命错误,则算法立即关闭SSL连接,双方还会先删除相关的会话号,秘密和密钥。每个警报消息共2个字节,第1个字节表示错误类型,如果是警报,则值为1,如果是致命错误,则值为2;第2个字节制定实际错误类型。

以下是一些警告信息:

(1)unexpected_message:接收了不合适的报文。

(2)bad_record_mac:收到了不正确的MAC。

(3)decompression_failure:解压缩函数收到不适当的输入。

(4)illegal_parameter:握手报文中的一个字段超出范围或与其他字段不兼容。

(5)certificate_revoked:证书已经被废弃。

(6)bad_certificate:收到的证书是错误的。

(7)certificate_expired:证书已经过期。

(8)handshake_failer:握手过程失败。

SSL协议的应用---SSL VPN

1.SSL VPN的优势

2.SSL VPN的实现 (★★★★★)

虚拟网关

SSL VPN 每个虚拟网关可以独立管理,可以配置各自的资源,用户、认证方式,访问控制以及管理员。并且相互隔离。

WEB 代理
实现过程

实现方式:
  • web-link:使用activeX控件方式,对页面进行请求
  • web改写:将所请求页面上链接进行改写,其他内容不变。
实现结果
实现对内网 web 资源的安全访问 内网 web 资源只有私网地址,在不做 NAT 的情况下,可以通过 SSL VPN 实现对其的代理安全访问。
  • 内网web资源只有私网地址,在做NAT的情况下,公网用户可以实现对其访问,但是web资源没有
  • 使用安全传输协议,SSL VPN可以实现对其https安全访问。
文件共享

实现过程

实现原理
  • 协议转换技术:无需客户端,直接通过浏览器安全访问转换为内网文件共享的相应协议格式。使用activeX控件。
支持协议:
  • SMB windows
  • NFS linux

端口转发  

实现过程

 实现原理:安装activeX控件,本质是NAT过程

  • 提供内网TCP资源的访问,C/S资源
  • 提供丰富的静态端口的TCP应用
    • 单端口单服务:telentSSHMS RDP VNC
    • 单端口多服务:notes
    • 多端口多服务:outlook
  • 动态端口TCP应用
    • 动态端口:FTP
  • 提供端口级访问控制
自动安装运行一个 ActiveX 控件,获取到管理端配置的端口转发资源列表(目的服务器 IP 、端口)。控件将客户端发起的TCP 报文与资源列表进行比对,当发现报文的目的 IP/Port 与资源列表中的表项匹配,则截获报文,开启侦听端口(目的端口经过特定算法得出),并将目的地址改写为回环地址,转发到侦听端口。对该报文加密封装,添加私有报文头,将目的地址设为USG IP 地址,经由侦听端口发往 USG 。USG收到报文进行解密,发往真实的目的服务器端口。 USG 收到服务器的响应后,再加密封装回传给用户终端的侦听端口。

特点

网络扩展 

实现过程

访问模式 

三种流量:去对方内网流量,去互联网流量,去本地局域网流量
  • 全路由模式:三种流量都走隧道,意味本地不能访问互联网,也可以通过隧道访问,也能补访问本地局域网
  • 分离模式:对方内网流量走隧道,本地局域网流量走物理网卡,互联网流量不能走。意味着,能访问对方内网,能访问本地局域网,不能访问互联网。
  • 手动模式:对方内网流量走隧道,本地局域网络流量和互联网流量走物理网卡。意味着,都能访问,并且互联网走本地。

3.SSL VPN要求的终端安全

终端安全是在请求内网主机上部署一个软件,通过该软件检查终端的安全性包括:主机检查,缓存清除。
主机检查:
  • 杀毒软件检查
  • 防火墙设置检查
  • 注册表检查
  • 端口检查
  • 进程检查
操作系统检查 缓存清除:
  • internet临时文件
  • 浏览器自动保存密码
  • cookie记录
  • 浏览器访问历史记录
  • 收回站和最近打开的文件
  • 指定文件或者文件夹
认证授权
  • vpndb认证授权
  • 第三方服务认证授权
  • 数字证书的认证
  • 短信辅助认证
4.SSL VPN 功能总结

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

SSL是什么?SSL怎么用? 的相关文章

  • Chrome 问题:“无法加载资源:net::ERR_CONNECTION_TIMED_OUT”

    我尝试通过 HTTPS 访问我的 Web 应用程序 它无法加载 JavaScript 文件并显示 无法加载资源 net ERR CONNECTION TIMED OUT 但它在 IE 和 Firefox 中按预期工作 通过 HTTP 在 C
  • SSL 速度:128 位与 256 位

    我决定使用 SSL 加密我的整个网站 即使实际上只有部分网站是必要的 最终结果是该网站现在有点慢 所以 我的问题是 我是否应该只加密网站的会员部分 请记住我在首页上有登录表单 我是否应该将加密降低到 128 位 如果站点总体较小 速度差异是
  • 将nodejs Express静态请求重定向到https

    我需要将所有 http 请求重定向到 https 包括对静态文件的请求 My code app use express static dirname public app get function req res if req secure
  • HTTPURLConnection 不遵循从 HTTP 到 HTTPS 的重定向

    我不明白为什么JavaHttpURLConnection不遵循从 HTTP 到 HTTPS URL 的 HTTP 重定向 我使用以下代码来获取页面https httpstat us https httpstat us import java
  • 如何使用httplib2进行相互证书认证

    我正在使用 httplib2 从我的服务器向另一个 Web 服务发出请求 我们想要使用相互证书身份验证 我了解如何使用证书进行传出连接 h set certificate 但是如何检查应答服务器使用的证书 这张票 http code goo
  • 从 SSLv3 迁移到 TLSv1

    对于 POODLE SSLv3 现已在服务器上禁用 客户端软件是在 NET 2 0 中开发的 并提供 TLSv1 作为唯一的替代方案 我有权并有能力更改客户端应用程序和服务器配置 ServicePointManager SecurityPr
  • 如何使用 Postgres 数据库 URL 字符串传递证书路径以进行 SSL 连接

    我正在尝试通过 SSL 为我的 Spring 启动应用程序保护与 AWS RDS 实例的连接 我看了几个博客和官方文档 https jdbc postgresql org documentation head ssl client html
  • GetClientCertificate 使用什么主题?

    我正在尝试发送请求 ActiveXObject WinHttp WinHttpRequest 5 1 但是 这需要客户端证书才能执行此操作 我们已提供该证书 在 PHP cURL 中进行测试后 我可以这样做 curl setopt SOAP
  • 什么是 boost::asio::ssl::context::load_verify_file 以及如何使用它?

    有一个谨慎的小量 boost asio ssl http en wikipedia org wiki Transport Layer Security小型 C 在线教育代码库 甚至更少boost asio ssl context load
  • 使用客户端 hello 消息进行 TLS 协议检测

    我需要检测网络流量中的 https 数据包 到目前为止 我将所有 443 标记为 https 但我不想再在这种情况下使用端口信息 检查客户端问候消息是否足够 Check 22 and version info 0300 0301 or 03
  • 有什么简单的方法可以完全忽略带有 java url 连接的 ssl ?

    我正在构建一个应用程序 定期检查一些 RSS 提要是否有新内容 其中一些提要只能通过 https 访问 有些具有自签名或以某种方式损坏的证书 我仍然希望能够检查它们 请注意 安全性在此应用程序中不是问题 目标是以最小的努力访问内容 我使用此
  • AF网络3问题

    In AFNetworking3 表示我使用的 SSL 证书无效验证证书链 false 但现在看来该字段已被删除 我无法向我的服务器发出请求 这是请求类 import UIKit import AFNetworking class Clie
  • 如何在 IIS 中将 WCF 与 basichttpbinding only、SSL 和基本身份验证结合使用?

    是否可以仅使用 IIS 中的 SSL 和基本身份验证来设置 WCF 服务BasicHttpBinding binding 我无法使用wsHttpBinding binding 该站点托管在 IIS 7 上 并设置了以下身份验证 匿名访问 O
  • WCF、REST、SSL、客户端、自定义证书验证

    我有一个无法解决的具体问题 让我详细解释一下 我是这项技术的新手 所以我可能使用了一些错误的术语 如有不明白之处 请指正并解释或要求解释 我正在创建一个自托管的 WCF REST 服务器 托管在 WPF 应用程序中 它使用 https SL
  • 该页面是通过 HTTPS 加载的,但请求了不安全的 XMLHttpRequest 端点

    我正在调用一个rest APIHttps已部署的应用程序 到Http休息 API 我使用 Angular Js 框架用 JavaScript 编写了逻辑 Web 服务调用失败并显示以下消息 https someurl 处的页面是通过 HTT
  • 解密 TLS 1.2 AES-GCM 数据包

    我正在开发一个 Java 程序来解密TLS 1 2正在使用的会话TLS RSA WITH AES 128 GCM SHA256密码 我使用wireshark 录制了一个测试会话 这大师秘密是已知的 No Time Protocol Leng
  • 导入证书时CRYPT_E_NOT_FOUND

    我正在尝试自动生成证书签名请求的过程 然后从 Windows Server 2012 R2 服务器上的 CA 导入响应 以用作 IIS 中 SSL 绑定的证书 我能够生成 CSR 然后将其提供给安全团队 然后安全团队为我提供响应 然后导入
  • 如何向 node-http-proxy 响应添加标头

    我需要在第三方服务上解决CORS 所以我想构建一个代理来添加标头 Access Control Allow Origin 为什么这段代码没有添加标题 httpProxy require http proxy var URL https th
  • Android - 除了普通 SSL 证书之外还验证自签名证书

    我有一个通过 SSL 调用 Web 服务的 Android 应用程序 在生产中 我们将拥有由受信任的 CA 签名的普通 SSL 证书 但是 我们需要能够支持自签名证书 由我们自己的 CA 签名 我已经成功实施了接受自签名证书的建议解决方案
  • HTTPS 请求仅在 iOS、Ionic 2 上失败

    我有一个Ionic 2调用一个应用程序Spring Boot用于向其他设备发送推送通知的 API API 配置为 HTTPS The API POST请求适用于一切except iOS 我在服务器上的 SSL 证书是自签名的 也许就是这样

随机推荐

  • webpack升级报错之Module build failed (from ./node_modules/_vue-loader@13.7.3@vue-loader/index.js)

    webpack3 升级webpack4 老的项目依赖经常遇见以下报错 Module build failed from node modules vue loader 13 7 3 vue loader index js TypeError
  • 浅析人脸识别算法及其应用

    前言 随着深度学习和计算机硬件的快速发展 基于深度卷积神经网络的一系列算法都取得了显著的进展 其中人脸识别作为计算机视觉领域中时间最久远 应用最广泛的研究课题之一 近些年也在深度学习的加持下在性能方面获得了大幅提升 并在实际的生活场景中得到
  • 全面升级!“ChatGPT中文版”场景导航功能震撼登场

    近日 ChatGPT中文版 智元兔 平台推出全新的场景功能 为用户提供更全面 高效的智能问答服务 再也不用担心找不到适合自己的场景入口了 此次升级涵盖了60多个场景 包括论文助手 公司文案 营销文案 多语言翻译 行政公文 科研课题 招投标书
  • 绅士领域服务器不稳定,绅士云服务器

    绅士云服务器 内容精选 换一换 根据后端云服务器组的ID查询后端云服务器组详情 GET v2 0 lbaas pools pool id 无请求样例 查询后端云服务器组的详情GET https Endpoint v2 0 lbaas poo
  • vue2实现一个树型控件(支持展开树与checkbox勾选)

    目录 vue2实现一个树型控件 支持展开树与checkbox勾选 TreeItem vue Tree vue 效果 vue2实现一个树型控件 支持展开树与checkbox勾选 TreeItem vue
  • 物联网专业课程简介及理解

    写在前面 大家好 我是草莓橙须圆 毕业之前在CSDN和微信公众号活跃 欢迎关注我的公众号 草莓橙须圆 微信公众号主要就是更新大学生或者考研党的日常 CSDN主要就是学习过程中总结的笔记 以及编程分享 目录 物联网 软件工程 数据库 传感器与
  • torchsparse1.4.0 安装

    1 sudo apt get install libsparsehash dev 2 pip install upgrade git https github com mit han lab torchsparse git v1 4 0 p
  • Linux centos7关闭防火墙

    1 命令行界面输入命令 systemctl status firewalld service 并按下回车键 2 然后在下方可度以查看得到 active running 此时说明防火墙已经被打开了 root a1663303 systemct
  • 区块链系统运行逻辑

    文章目录 一 开发工具 二 程序运行完整逻辑 2 1 总体逻辑 2 2 详细过程 以添加数据 AddData 为例 一 开发工具 hyperledger fabric 1 4 7 hyperledger ca 1 4 7 ca是用来生成证书
  • [SCOI2005]骑士精神【迭代加深+IDA*】

    题目链接 P2324 SCOI2005 骑士精神 首先 我们先讲讲几个基础知识 迭代加深 我们假设深度优先搜索 DFS 的最深搜索到Max depth 那么也就是说深度到达Max depth的时候不管满不满足答案都要返回了true or f
  • 【id:120】【25分】B. 虚拟电话(构造与析构)

    时间限制 1s 内存限制 128MB 题目描述 虚拟电话包含属性 电话号 状态 机主姓名 1 电话号是一个类 它包含号码和类型 其中号码是整数类型 类型用单个字母表示用户类别 A表示政府 B表示企业 C表示个人 类操作包括构造 属性的获取和
  • 【WiFi】WIFI芯片的研发

    目录 1 硬件设计 2 软件开发 3 集成和测试 4 认证和合规性 5 量产和供应链管理 6 总结说明 1 硬件设计 首先 您需要进行WiFi芯片的硬件设计 这包括选择适当的射频 RF 芯片 基带处理器 调制解调器等组件 并进行电路设计和布
  • Unity C# The type or namespace name could not be found 解决办法

    在使用Unity写脚本的时候有可能需要用到外部的库 这个时候如果直接用VS里的NuGet安装包 安装完之后可以运行 但是重启Unity之后就会出现 CS0246 C The type or namespace name could not
  • Numpy-基础数据结构

    Numpy是python中一个运行速度非常快的的数学库 主要用于数组计算 包含 一个强大的N维数组对象 ndarray 广播功能函数 线性代数 傅里叶变换 随机数生成等功能 接下来 我会系列介绍Numpy的知识点 包含其基础数据结构 通用函
  • 【OpenGL学习】光源

    光源 本节中 LearnOpenGL 教程中的标题为投光物 表示将光线投射到物体的光源 事实上这些投光物都可以称之为光源 包括平行光 点光源 聚光灯等 不同类型的光源可以给场景带来不同的光照效果 本节主要学习定向光 Directional
  • Tinymce富文本编辑器在vue项目中的使用;引入第三方插件和上传视频、图片等

    先放张效果图 第一步 安装依赖 npm install tinymce 5 0 12 第二步 在项目中的public文件夹中新建tinymce文件夹 因为我的项目是脚手架创建的 所以公共文件夹是public 在node modules中找到
  • chrome 安装axure 插件

    一般使用chrome查看axure原型文件时 会提示安装插件 但是又连不上google扩展安装 这里提供一个简便的方式安装 1 静态原型页面路径resources chrome axure chrome extension crx 找到文件
  • RTThread中HardFault_Handler分析

    以Cortex M3为例 RTThread在运行过程如果产生fault 会进人HardFault Handler中断 RTThread对HardFault Handler进行了重定义 HardFault Handler函数在context
  • vue2+three.js实现宇宙(进阶版)

    2023 9 12今天我学习了vue2 three js实现一个好看的动态效果 首先是安装 npm install three 相关代码如下
  • SSL是什么?SSL怎么用?

    SSL是什么 SSL Secure Sockets Layer 安全套接层 及其继任者传输层安全 Transport Layer Security TLS 是为网络通信提供安全及数据完整性的一种安全协议 如今被广泛使用 如网页 电子邮件 互