SSL相关理论知识

SSL/TLS详解 TLS,SSL,安全,key_share 阅读详情

1. SSL及证书相关理论知识

wiki关于证书及SSL的部分说明如下:

内容URL
Transport Layer Securityhttps://en.wikipedia.org/wiki/Transport_Layer_Security
PKCShttps://en.wikipedia.org/wiki/PKCS
X.509https://en.wikipedia.org/wiki/X.509
X.690https://en.wikipedia.org/wiki/X.690
传输层安全协议https://zh.wikipedia.org/wiki/%E5%82%B3%E8%BC%B8%E5%B1%A4%E5%AE%89%E5%85%A8%E5%8D%94%E8%AD%B0
公钥密码学标准https://zh.wikipedia.org/wiki/%E5%85%AC%E9%92%A5%E5%AF%86%E7%A0%81%E5%AD%A6%E6%A0%87%E5%87%86
X.509https://zh.wikipedia.org/wiki/X.509
ASN.1https://zh.wikipedia.org/wiki/ASN.1

以下为wiki中部分较重要内容的摘录。

1.1. Transport Layer Security

传输层安全协议(英语:Transport Layer Security,缩写:TLS),及其前身安全套接层(Secure Sockets Layer,缩写:SSL)是一种安全协议,目的是为互联网通信,提供安全及数据完整性保障。网景公司(Netscape)在1994年推出首版网页浏览器,网景导航者时,推出HTTPS协议,以SSL进行加密,这是SSL的起源。IETF将SSL进行标准化,1999年公布了第一版TLS标准文件。随后又公布了 RFC 5246 (2008年8月)与 RFC 6176 (2011年3月)。在浏览器、电子邮件、即时通信、VoIP、网络传真等应用程序中,广泛支持这个协议。主要的网站,如Google、Facebook等也以这个协议来创建安全连接,发送数据。目前已成为互联网上保密通讯的工业标准。

SSL包含记录层(Record Layer)和传输层,记录层协议确定了传输层数据的封装格式。传输层安全协议使用X.509认证,之后利用非对称加密演算来对通信方做身份认证,之后交换对称密钥作为会谈密钥(Session key)。这个会谈密钥是用来将通信两方交换的数据做加密,保证两个应用间通信的保密性和可靠性,使客户与服务器应用之间的通信不被攻击者窃听。

1.2. 发展历史

1.2.1. SSL 1.0、2.0和3.0

SSL(Secure Sockets Layer)是网景公司(Netscape)设计的主要用于Web的安全传输协议,这种协议在Web上获得了广泛的应用。

2014年10月,Google发布在SSL 3.0中发现设计缺陷,建议禁用此一协议。攻击者可以向TLS发送虚假错误提示,然后将安全连接强行降级到过时且不安全的SSL 3.0,然后就可以利用其中的设计漏洞窃取敏感信息。Google在自己公司相关产品中陆续禁止向后兼容,强制使用TLS协议。Mozilla也在11月25日发布的Firefox 34中彻底禁用了SSL 3.0。微软同样发出了安全通告。

  • 1.0版本从未公开过,因为存在严重的安全漏洞。
  • 2.0版本在1995年2月发布,但因为存在数个严重的安全漏洞而被3.0版本替代。
  • 3.0版本在1996年发布,是由网景工程师完全重新设计的。较新版本的SSL/TLS基于SSL 3.0。SSL 3.0作为历史文献IETF通过 RFC 6101 发表。

1.2.2. TLS 1.0

IETF将SSL标准化,即 RFC 2246 ,并将其称为TLS(Transport Layer Security)。从技术上讲,TLS 1.0与SSL 3.0的差异非常微小。但正如RFC所述"the differences between this protocol and SSL 3.0 are not dramatic, but they are significant enough to preclude interoperability between TLS 1.0 and SSL 3.0"(本协议和SSL 3.0之间的差异并不是显著,却足以排除TLS 1.0和SSL 3.0之间的互操作性)。TLS 1.0包括可以降级到SSL 3.0的实现,这削弱了连接的安全性。

1.2.3. TLS 1.1

TLS 1.1在 RFC 4346 中定义,于2006年4月发表,它是TLS 1.0的更新。

1.2.4. TLS 1.2

TLS 1.2在 RFC 5246 中定义,于2008年8月发表。它基于更早的TLS 1.1规范。

1.2.5. TLS 1.3(草案)

截至2016年1月,TLS 1.3还是一个互联网草案,细节尚属临时并且不完整。它基于更早的TLS 1.2规范。

1.3. PKCS

参考 https://en.wikipedia.org/wiki/PKCS 。

公钥加密标准(Public Key Cryptography Standards, PKCS),此一标准的设计与发布皆由RSA信息安全公司所制定。

RSA信息安全公司旗下的RSA实验室为了发扬公开密钥技术的使用,便发展了一系列的公开密钥密码编译标准。只不过,虽然该标准具有相当大的象征性,也被信息界的产业所认同;但是,若RSA公司认为有必要,这些标准的内容仍然可能会更动。所幸,这些变动并不大;此外,这几年RSA公司也与其他组织(比较知名的有IETF、PKIX)将标准的制定通过standards track程序来达成。

PKCS# 7 密码消息语法标准(Cryptographic Message Syntax Standard) 参见RFC 2315。规范了以公开密钥基础设施(PKI)所产生之签名/密文之格式。其目的一样是为了拓展数字证书的应用。其中,包含了S/MIME与CMS。

PKCS# 12 个人消息交换标准(Personal Information Exchange Syntax Standard) 定义了包含私钥与公钥证书(public key certificate)的文件格式。私钥采密码(password)保护。常见的PFX就履行了PKCS# 12。

1.4. X.509

在密码学中,X.509是由ITU-T为了公开密钥基础建设(PKI)与授权管理基础建设(PMI)提出的产业标准。X.509标准,规范了公开密钥认证、证书吊销列表、授权证书、证书路径验证算法等。

1.5. ASN.1

在电信和计算机网络领域,ASN.1(Abstract Syntax Notation One) 是一套标准,是描述数据的表示、编码、传输、解码的灵活的记法。它提供了一套正式、无歧义和精确的规则以描述独立于特定计算机硬件的对象结构。

ASN.1是ISO和ITU-T的联合标准,最初是1984年的CCITT X.409:1984的一部分。由于其广泛应用,1988年ASN.1移到独立标准X.208,1995年进行全面修订后变成X.680系列标准。

ASN.1本身只定义了表示信息的抽象句法,但是没有限定其编码的方法。各种ASN.1编码规则提供了由ASN.1描述其抽象句法的数据的值的传送语法(具体表达)。标准的ASN.1编码规则有基本编码规则(BER,Basic Encoding Rules)、规范编码规则(CER,Canonical Encoding Rules)、唯一编码规则(DER,Distinguished Encoding Rules)、压缩编码规则(PER,Packed Encoding Rules)和XML编码规则(XER,XML Encoding Rules)。

描述ASN.1记法的标准:
ITU-T Rec. X.680 | ISO/IEC 8824-1
ITU-T Rec. X.681 | ISO/IEC 8824-2
ITU-T Rec. X.682 | ISO/IEC 8824-3
ITU-T Rec. X.683 | ISO/IEC 8824-4

描述ASN.1编码规则的标准
ITU-T Rec. X.690 | ISO/IEC 8825-1 (BER, CER and DER)
ITU-T Rec. X.691 | ISO/IEC 8825-2 (PER)
ITU-T Rec. X.692 | ISO/IEC 8825-3 (ECN)
ITU-T Rec. X.693 | ISO/IEC 8825-4 (XER)

1.6. Protocols and standards supporting X.509 certificates

TLS/SSL
S/MIME (Secure Multipurpose Internet Mail Extensions)
IPsec
SSH
Smart card
HTTPS
EAP
LDAP
Trusted Computing Group (TNC TPM NGSCB)
CableLabs (North American Cable Industry Technology Forum)
WS-Security
XMPP
Microsoft Authenticode
OPC UA

以下为上述文档中部分与实际使用相关的重要内容的翻译。

1.7. DER encoding(X.690)

DER是BER的一个受限制的变体,用于对ASN.1描述的数据结构产生明确的传输语法。像CER一样,DER编码是合法的BER编码。DER除了部分发送者选项被移除外,其余与BER相同。

DER是BER的一个子集,提供了一种精确的方式对ASN.1的值进行编码。DER被设计为在需要唯一编码的场景进行使用,例如在密码学中,以及确保一个需要数字签名的产生独特的序列化表示的数据结构。DER可以被认为是BER的一种典型形式。

DER广泛用于数字证书,如X.509。

1.8. Certificates(X.509)

在X.509体系中,当一个组织需要使用签名证书时,需要通过证书签名请求(certificate signing request,CSR)的方式获取。

为了完成上述操作,首先需要产生一个密钥对,保证私钥的保密性,并用私钥对CSR进行签名。CSR中包含了申请人的识别信息,以及用于验证CSR签名的申请人公钥。除以上信息外,CSR中还包含了识别名(Distinguished Name,DN),需要使用该证书的域名全称。CSR中可能还包含了其他的凭证,或证书授权中心(certificate authority,CA)要求的身份证明。

证书颁发机构颁发的证书绑定公钥到一个特定的识别名。

一个组织的受信任的根证书可以分发给所有的员工,这样他们就可以使用公司PKI系统。浏览器如Internet Explorer, Firefox, Opera, Safari and Chrome都预先安装了一系列的根证书,所以大厂商的SSL证书能够立刻生效。事实上,浏览器的开发人员可以决定哪些CA能够作为浏览器用户的受信任三方机构。

1.9. Certificate filename extensions(X.509)

X.509证书的常用文件扩展名如下。

扩展名说明
.pemPrivacy-enhanced Electronic Mail,隐私增强电子邮件,Base64编码的DER证书,被包含在"-----BEGIN CERTIFICATE-----“与”-----END CERTIFICATE-----"之间。支持存储单个证书,不支持存储私钥或证书路径。
.cer, .crt, .der通常为二进制DER证书,Base64编码格式的证书也很常见。支持存储单个证书,不支持存储私钥或证书路径。
.p7b, .p7cPKCS# 7签名数据结构,不包含数据,仅包含证书或证书吊销列表(Certificate revocation list,CRL)。PKCS# 7格式支持存储证书和证书路径中的所有证书。
.p12PKCS# 12,可以包含公钥证书和受密码保护的私钥。PKCS# 12是可用于导出证书及其私钥的文件格式。
.pfxPKCS# 12的前身(通过包含PKCS# 12格式的数据)

PKCS# 7是用于对数据进行签名或加密的标准。由于在验证签名数据时需要使用证书,它可能将证书包含在签名的数据结构中。.P7C文件是退化的签名的数据结构,不包含需要签名的数据。

PKCS# 12从个人信息交换(personal information exchange,PFX)进化而来, 它被用来使用单个文件交换公钥与私钥。

【MQTT】mosquitto库中SSL/TLS相关API接口 Mosquitto 是一个流行的 MQTT 消息代理(broker),它支持使用 SSL/TLS 来保障通信的安全性。 阅读详情

相关推荐

OpenSSL之十五:SSL相关指令

OpenSSL 中 SSL 相关指令

wzfgd的博客 3460

SSL/TLS 协议介绍

SSL/TLS 协议(RFC2246 RFC4346)处于 TCP/IP 协议与各种应用层协议之间,为数据通讯提供安全支持。从协议内部的功能层面上来看,SSL/TLS 协议可分为两层:1. SSL/TLS 记录协议(SSL/TLS Record Protocol),它建立在可靠的传输层协议(如 TCP)之上,为上层协议提供数据封装、压缩、加密等基本功能。2. SSL/TLS ...

weixin_34097242的博客 291

RFC之IPSec-SSL

费了很大劲,找到的这个,看了看,很受益,不能独享受,共享之,希望看到的人能有收获,那就不胜荣幸。

SSL/TLS默认重协商漏洞原理、RFC 5746安全重协商

记录个人学习

qq_37432174的博客 2102

ssl_tls协议RFC5246文档_ssl_ssl标准文档_

RFC4366标准文档,RFC5246标准文档,方便学习ssl协议

投入产出表之直接消耗系数和完全消耗系数计算--基于Excel

介绍 上篇博客已介绍投入产出表的结构类型及意义解读,在此就不重复写了。 投入产出法中相对稳定的因素是一些系数,根据投入产出表可以计算很多系数: 案例 案例数据即流量矩阵,采用的是中国2012年的部分行业数据,若有不对,请批评指正哈。 直接消耗系数的计算 根据上表和直接消耗系数的计算公式,直接消耗系数矩阵通常用A表示。农林牧渔产品和服务部门对其他部门产品的直接消耗系数分别为: 这些消耗系数的经济意义是,农、林、牧、渔产品和服务部门每生产单位(1亿元)总产出,要直接消耗0.1378亿元本部门产品,0.26

m0_46271335的博客 7万+

RFC5246解读:ClientHello——国密SSL专题

RFC5246解读:ClientHello——国密SSL专题TLS1.2ClientHello TLS1.2 TLS1.2协议 ClientHello 当发送消息时:   当客户端第一次连接服务端,需要发送ClientHello。客户端也可以发送ClientHello作为对HelloRequest的响应,或主动发送以便重新协商现有连接中的安全参数。 ClientHello的结构:   Client...

shuaigezhou123的博客 2218

Google 人机验证(reCaptcha)无法显示解决方案

Google 人机验证无法显示解决方案第一步 安装插件Chrome/Edge 电脑版Firefox 电脑版第二步 配置插件原理参考文章 前言:为了防止机器人攻击,国外很多网站都使用了 Google reCaptcha 验证码。reCaptcha 对于国外用户非常的友好,但是… 对于国内用户就不怎么友好了。究其原因,则是国内网络全线屏蔽 Google 服务,导致 reCaptcha 完全加载不出来。这样,国内玩家就无法在对应的网站进行下一步操作了。本方案可以解决 reCaptcha 无法加载的问题。 适用

qq_40713201的博客 8万+

驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。

在连接SQLServer数据库的时候报错:驱动程序无法通过使用安全套接字层(SSL)加密与 SQL Server 建立安全连接。

ZL_1618的博客 2385

手把手教你用YOLOv5和OpenCV实现DNF全自动刷图(含自动拾取与Boss战逻辑)

本文详细介绍了如何使用YOLOv5和OpenCV构建DNF全自动刷图系统,包括环境配置、游戏画面采集、目标检测、场景导航及操作控制等核心模块。通过实战案例,帮助开发者掌握游戏自动化技术,实现自动拾取与Boss战逻辑,提升游戏效率。

weixin_42628941的博客 448

深入解析MATLAB四旋翼仿真案例asbQuadcopter的核心模块与优化技巧

本文深入解析了MATLAB/Simulink中的四旋翼无人机官方案例asbQuadcopter,详细拆解了其指令、传感器、控制器、本体与环境等核心模块的工作原理。重点探讨了经典的PID双环控制结构、传感器噪声模拟、模型替换方法以及系统化的PID参数调优技巧,旨在帮助用户从“开箱即用”过渡到深度定制与优化,构建更精准的仿真模型。

weixin_29171087的博客 361

kubernetes证书证书过期和相关报错解决步骤

任何关于证书报错的信息和日志仔细看,证书过期、 certSAN 不匹配和不是一套 ca 导致校验不通过等是不一样的事情,不要无脑找到啥证书文章博客就跟着瞎操作,证书操作前要备份已有证书,产生 kubeconfig 文件的时候,要使用 kubectl 指定新路径生成,不要动老的。k8s 采用的是基于 X.509 V3 标准的双向 SSL,客户端和服务端通信,都会验证双方证书,根据双方是否是一样的 CA 签署的证书,而 CA 私钥是自己生成的,你可以看到 k8s 组件的 cmdline 都有指定参数。

运维老生常谈 1403

Android应用隐私合规自动化检测:Frida与Camille实战指南

在移动应用安全与隐私合规领域,动态代码插桩技术已成为核心检测手段。其原理是通过运行时注入,实时监控和修改应用行为,从而绕过传统静态分析的局限。这项技术的核心价值在于能够精准捕获应用在运行时的敏感数据调用与网络传输行为,为隐私合规审计、安全测试提供直接证据。在实际应用场景中,它尤其适用于自动化检测违规收集个人信息、追踪数据流向等任务。本文聚焦于利用Frida这一动态插桩框架,结合Camille隐私合规检测工具集,构建自动化监控环境。通过注入JavaScript代码,实现对Android敏感API(如获取设备标

weixin_34254464的博客 388

关于ssl的一些资料来源总结

以前写ssl验证时找的资料,一些网址,大家可以去看看,或许有收获 Windows下编译OpenSSL (VS2010)    点击打开链接 相关函数介绍 点击打开链接 点击打开链接 单双认证代码 点击打开链接 理论知识 点击打开链接 具体单双向验证流程 点击打开链接 这个最全 点击打开链接 就不抄别人的了,大家有需要点进去看吧,支持

enjoy.day 392

Altium Designer应用技巧13: 四层板的拼版方法

本文介绍在Altium Designer中,进行4层板的拼版方法。Altium Designer有多种拼版方法,本文选择最直观的复制、删帖方法来完成,步骤如下: 1、看一下原始文件,如下图所示,我们要对该板进行拼版操作。 2、通过菜单“报告”-“板子信息”得到板子大小,在这里一般切换为mm比较好操作,我们可以使用快捷键"q"。 3、如果是水平拼版,我们需要关心水平长度;如果是垂直拼版...

snmplink的博客 1万+

计算机网络实验报告实验七可靠传输TCP协议分析

计算机网络实验报告实验七可靠传输TCP协议分析

m0_56638814的博客 966

SSL 及其相关知识

摘要: 1. TCP/IP 2. SSL1. TCP/IP TCP/IP协议并不完全符合OSI的七层参考模型。传统的开放式系统互连参考模型,是一种通信协议的7层抽象的参考模型,其中每一层执行某一特定任务。该模型的目的是使各种硬件在相同的层次上相互通信。这7层是:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层。而TCP/IP通讯协议采用了4层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。这4层分别为: 应用层:应用程序间沟通的层,如简单电子邮件传输(SMTP)、文件传输协议(FT

garybrother的专栏 1488

【声纳与人工智能融合——从理论前沿到自主系统实战】第一章 声纳AI的数据基础:仿真、数据集与表征学习

该数据集的特点是包含了多种底质背景(沙地、泥地、碎石区)与噪声条件,适合验证模型的背景抑制能力。Urashima数据集由日本海洋研究开发机构(JAMSTEC)发布,基于自主水下航行器(AUV)采集,包含前视声纳序列数据,主要用于水下导航与避障算法评估,其数据包含了精确的姿态与深度标注,支持三维场景重建算法的训练。北约海洋研究与实验中心(CMRE)发布的CMRE datasets包含侧扫与合成孔径声纳数据,特别适用于跨传感器域自适应研究,数据集中包含了同一区域的多种声纳成像结果,为跨模态学习提供了基准。

u012133341的博客 103

SSL认证之相关证书的生成

目录 相关知识点之Kafka支持的认证处理 SSL相关证书的生成 服务器端SSL证书签发 准备工作:修改/etc/hosts文件,自定义一个hosts名 第一步:为了方便证书的保存管理,这里先专门创建几个目录来保存证书 第二步:生成server.keystore.jks文件(即:生成服务端的keystore文件) 第三步:生成CA认证证书(为了保证整个证书的安全性,需要使用CA进行证...

JustryDeng 1万+

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

SSL是什么?SSL怎么用?

目录SSL是什么SSL协议的三个特性SSL 的工作原理1.握手协议2.记录协议3.警报协议SSL协议的应用---SSL VPN1.SSL VPN的优势2.SSL VPN的实现 (★★★★★)3.SSL VPN要求的终端安全 SSL(Secure Sockets Layer 安全套接层),及其继任者传输层安全(Transport Layer Security,TLS)是为网络通信提供安全及数据完整性的一种安全协议。如今被广泛使用,如网页,电子邮件,互联网传真,即时消息和语音在IP电话(VoIP)

weixin_62107875的博客 1万+

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

websocket 之 SSL连接相关

SSL连接相关MQTT and Websocketspaho.mqtt.clibwebsocketsServerClient关于QTopenssl生成证书参考链接 MQTT and Websockets paho.mqtt.c ssl_opts.CApath = opts.capath; //指向一个包含PEM格式的CA证书的目录。 ssl_opts.keyStore = opts.cert; /...

拒绝黑盒,享受开源 3976

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

HTTP、HTTPS、SSL协议以及相关报文讲解

HTTP(Hypertext Transfer Protocol)基本概念HTTP是用于从万维网(www)服务器传输超文本到本地浏览器的超文本传输协议,所有的HTML文件(网页文件)都是遵循这个标准进行传输的并且HTTP是一种分布式、通用的、无状态的面向应用层的协议(C/S架构,也支持B/S)HTTP的分布式特性分布式指的是一个网站上的内容分布到多个服务器上HTTP的无状态性web服务器不会针对用户的访问过程做记录。

m0_49864110的博客 5568

eCapture函数钩子:SSL相关函数拦截与监控原理

在网络安全领域,SSL/TLS加密通信的监控一直是技术人员的痛点。传统方法需要安装CA证书进行中间人攻击,不仅操作复杂,还可能影响系统稳定性。eCapture(旁观者)项目基于eBPF技术,创新性地实现了无需CA证书的SSL/TLS明文捕获,其核心技术就是通过函数钩子(Function Hook)技术对SSL相关函数进行拦截和监控。 ## eBPF函数钩子技术原理 ### 什么是eBPF函数钩...

gitblog_00078的博客 952

HAProxy中与ssl相关的配置项

与ssl相关的众多配置项出现在不同的模块,语法中,主要包括global,bind,server等 一、global ca-base {dir} crt-base {dir} ssl-default-bind-ciphers {ciphers} ssl-default-bind-options [{option}]… ssl-default-server-ciphers {ciphers} ssl-default-server-options [{option}]… ssl-sh-param-file {fi

vanexph的博客 2039

SSL/TLS相关知识

SSL/TLS是一种广泛应用的密码通信框架,结合了对称密码、公钥密码、数字签名等多种密码学技术。SSL由Netscape公司于1994年设计,而TLS是IETF在SSL 3.0基础上开发的后续版本。SSL/TLS支持HTTP、SMTP/POP3等协议,确保数据传输的安全性。TLS协议分为记录协议和握手协议两层,后者负责协商加密算法和密钥交换。HTTPS是HTTP的安全版本,通过SSL/TLS加密数据,使用443端口,并需要CA颁发的数字证书。虽然HTTPS提供了更高的安全性,但也带来了更高的服务器资源消耗和

00后的程序员 1084

Nginx的SSL相关指令

Nginx的SSL相关指令 因为刚才我们介绍过该模块的指令都是通过ngx_http_ssl_module模块来解析的。 》ssl:该指令用来在指定的服务器开启HTTPS,可以使用 listen 443 ssl,后面这种方式更通用些。 语法 ssl on | off; 默认值 ssl off; 位置 http、server server{ listen 443 ssl; } 》ssl_certificate:为当前这个虚拟主机指定一个带有PEM格式证书的证书。 .

Leon_Jinhai_Sun的博客 3838
上一篇: Chrome HTTPS双向认证配置
下一篇: Java密钥库及keytool使用详解
adrninistrat0r
博客等级 码龄18年 395粉丝 136原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值