码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • TLS/SSL(十) session缓存、ticket 票据、TLS 1.3的0-RTT


    一  TLS优化手段

    1. TLS 为了提升'握手速度'而提出'优化'手段,主要是减少TLS握手中'RTT'消耗的时间
    2. 关于'session cache'和'session ticket',nginx关于'ssl'握手的地方都有'影子 [指令]'

    https面经

    ①  session 缓存

    resume: '重用','复用'

    1. 案例: 第二次访问'www.baidu.com'
    2. 说明: 第二次访问是没有'Session ID'的

    细节点: 没有'Server Key Exchange'的过程

    1. 1、第一次握手后,服务器会生成一个session id,这个session id 会传给'浏览器'
    2. 2、当在'一定'时间之内,浏览器或'客户端'携带这个'session id'访问服务器
    3. 3、服务器从'自己的内存'或'其它缓存中'获取到这个'session id'对应的'加密密钥'
    4. 4、服务端给'客户端'说就使用'上一次'的'加密密钥'就可以,不需要使用'DH|ECDH'再次生成新的密钥
    5. 备注:
    6. 1、对'client'的要求: 在一定的时间内缓存'session id'以及自身所对应的'加密密钥'
    7. 2、对'server'的要求:在一定的时间内缓存'session id'以及自身所对应的'加密密钥'

    ②  session ticke

    1. +++++++++++++ 'session 缓存'具有'两个'问题 +++++++++++++
    2. 问题1: 负载均衡导致'session id'不生效
    3. 1、server端往往是在'内存'中存放'session id' 和对应的'密钥'信息
    4. 2、对于不同主机的server是'没有办法分享'session id 和对应的密钥信息
    5. 备注: server往往是以'反向代理集群'的方式提供'服务'的
    6. 3、A为client 生成一个session id,当B访问时候,请求到Server B上,Server B需要重新握手
    7. 问题2: session id存储在内存中,是有'内存消耗'的,到底'缓存多长时间'呢?
    8. 思考: server 之间如何共享复用session id 呢? --> '引出了session ticket'

    1. 1、 session ticket的处理方式与'session id 缓存'完全不同的
    2. 2、 server端不需要'耗费'内存来存放session信息 'session id'和'密钥'
    3. 3、 而是基于一个'独有'的密码,这个密码是'server 集群'共同分享的密码
    4. 4、 基于这个密码把'相关的信息'加密,发送给'client'
    5. 5、 客户端'下一次'需要握手的时候,把相关的'加密信息'发送给'server端'
    6. 6、 只有这个'server 集群'内的机器才知道这个'密码',然后解密,获取上一次握手成功后的'密钥'
    7. 7、 基于此,server端就可以与'基于内存中保存的密钥的client'进行通信

    ③  TLS1.3的0-RTT握手

    TLS 1.3和0-RTT

    1. 特点: 第一次'握手'的时候就'携带'相关数据,第二次握手才能实现'0-RTT'
    2. 备注: TLS1.3 中是省去了'安全套件的协商',直接'把五种密钥'都发过去

    ④  0-RTT 面临的重放攻击  了解

     TLS与量子通讯的原理    量子通讯BB84协议的执行流程

  • 相关阅读:
    Tuxera Ntfs For Mac 2023的具体使用方法
    go语言学习-基本概念与流程控制
    【Docker】设置容器系统字符集zh_CN.UTF-8退出失效:关于Docker容器配置环境变量,再次进入失效问题
    【每日一题】补档 CF1765N. Number Reduction | 单调栈 | 简单
    嵌入式 - 瑞萨宣讲
    当两界交汇:前端开发、后端开发与全栈开发的对比与选择
    Docker套件之Mysql服务配置
    云原生之容器编排实践-minikube传递秘钥使用阿里云私有镜像仓库
    SpringBoot多模块项目中无法注入其他模块中bean
    基于springboot安全电子投票系统的设计与实现-计算机毕业设计源码+LW文档
  • 原文地址:https://blog.csdn.net/wzj_110/article/details/133241634
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号