码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • 通信流程:https【SSL/TLS】,git仓库【https/SSH】,蓝牙【面对面快传/AirDrop】


    目录

    HTTPS = HTTP(80端口) + SSL/TLS协议(传输层,443端口)

    密文传输:SSL的后续版本TLS

    TLS1.2握手

    1.摘要算法(散列函数 Hash Function):验证信息的完整性,不可逆

    第三方认证

    引入场景:中间人篡改数据和公钥

    引入场景:中间人篡改证书

    1.1数字签名:保证数据不被篡改

    1.2安全证书:保证公钥不被篡改

    包含公钥、域名、有效期、数字签名(第三方机构私钥生成)

    存于服务器端,可下载

    应用:yarn/npm certificate has expiredHTTPS 证书过期

    2.非对称加密(一对秘钥):身份认证,加密解密会话秘钥

            2.1服务端发送公钥,作为身份认证

            2.2客户端用密钥交换算法(如 RSA 或 ECDHE)生成的随机对称秘钥,作为协商的会话密钥

            2.3 RSA :客户端用公钥加密会话密钥,服务端用私钥解密该预主密钥(pre-master secret)

    3.对称加密(一个秘钥):密文通信,加密和解密数据

          3.4. 服务端用会话密钥加密/解密数据,客户端用会话密钥解密/加密数据

    SSL重连

    A.通过session ID:只能是同一个服务器

    B.通过session ticket:包含对话秘钥和加密方法的加密

    git远程仓库

    https:参照上述

    SSH:传输层(TCP的22端口)

    与TLS同:公钥加密,对称会话秘钥,哈希

    公钥加密来安全交换或生成对称会话密钥

    对称加密来保护数据传输

    使用哈希或MAC防篡改数据。

    与TLS区别:身份验证

    SSH 常用秘钥对

    TLS 多用证书和公钥

    1.客户端生成密钥对SSH Key(公钥和私钥)

    2.客户端:私钥 签名 随机数 或 特定挑战(challenge)

    3.服务器:公钥来验证签名,确认身份

    4.通常使用 Diffie-Hellman共同生成一个会话秘钥

    5.哈希函数加密数据,会话秘钥加密解密秘文

    蓝牙

    1.初始配对:互输PIN码(传统),公钥私钥加密

    2.基于PIN,设备地址,随机数等生成一个共享/链路秘钥

    3.会话秘钥加密解密

    应用:面对面快传/AirDrop

    蓝牙/wifi/定位:免流量,识别附近对象

    参考链接

    HTTPS = HTTP(80端口) + SSL/TLS协议(传输层,443端口)

    用SSL/TLS对数据进行加密和解密

    SSL的全称是Secure Sockets Layer,即安全 套接 层协议

    TLS的全称是Transport Layer Security,即安全 传输 层协议

    密文传输:SSL的后续版本TLS

    TLS1.2握手

    1.摘要算法(散列函数 Hash Function):验证信息的完整性,不可逆

    用散列/哈希函数得到摘要/哈希值

    MD5: 128位散列值 (要被淘汰了)

    SHA-1: 160位散列值

    SHA-256: 产出256位的散列值

    第三方认证
    引入场景:中间人篡改数据和公钥

    引入场景:中间人篡改证书

    1.1数字签名:保证数据不被篡改

    一般收发双方会约定好签名串的需要包含哪些内容。

    如微信支付规定包含: HTTP请求方法、 URL、 请求时间戳、 请求随机串、 请求报文主体

    1. 发送方A散列处理(不可逆)签名串(固定信息),得到摘要HashA
    2. 私钥加密摘要得到签名,发送给接收方B
    3. 接收方B使用公钥验证签名,得到摘要HashA
    4. 接收方B根据双方规定的构造签名串的方法,按照1的步骤生成新的摘要HashB
    5. 比较哈希值HashA。HashB是否一样,如果一样,则证明数据没有被篡改(签名串包含了请求报文主体(传输的数据),请求体改了则摘要会变).
    1.2安全证书:保证公钥不被篡改
    包含公钥、域名、有效期、数字签名(第三方机构私钥生成)

    存于服务器端,可下载
    1. 浏览器安装后会本地自带 权威第三方机构公钥,对数字签名进行解密,拿到HashA
    2. 使用数字证书中的摘要算法计算一遍数字证书相关内容,生成摘要HashB,比对

    证书机构(CA: Certification Authority)的权威:

    证书链(上层证书给下层证书认证)+系统自带自签根证书

    证书一个一层套一层的链式关系,

    上层证书给下层证书颁发证书和数字签名,下层证书找上层证书认证。

    最后认证到根证书,最高层的根证书是自签的(自己给自己颁发证书)。

    一般微软等公司会根据一些权威安全机构的评估,选取一些信誉很好,并且通过一定的安全认证的证书发布机构,把这些证书发布机构的证书默认就安装在操作系统里面了。

    已安装的信任证书:

    windows:win+R -> 输入certmgr.msc.

    mac:钥匙串中证书

    应用:yarn/npm certificate has expiredHTTPS 证书过期

    a.淘宝镜像过期

    b.镜像源不符合SSL安全套接协议

    2.非对称加密(一对秘钥):身份认证,加密解密会话秘钥

            2.1服务端发送公钥,作为身份认证
            2.2客户端用密钥交换算法(如 RSA 或 ECDHE)生成的随机对称秘钥,作为协商的会话密钥
            2.3 RSA :客户端用公钥加密会话密钥,服务端用私钥解密该预主密钥(pre-master secret)

            2.3 ECDHE:客户端和服务器通过椭圆曲线 Diffie-Hellman 交换来共同生成会话密钥。

    3.对称加密(一个秘钥):密文通信,加密和解密数据

          3.4. 服务端用会话密钥加密/解密数据,客户端用会话密钥解密/加密数据
    • TLS 1.2,消息认证码(MAC,Message Authentication Code):发送方使用共享密钥和MAC算法对消息进行哈希处理
    • TLS 1.3,GCM(Galois/Counter Mode):加密密钥与非加密的MAC密钥相关联来工作。它使用Counter模式和Galois Field运算来实现加密和认证。

    SSL重连

    A.通过session ID:只能是同一个服务器

    目前所有的浏览器都支持这一种方法。

    但是这种方法有一个缺点是,session ID 只能够存在一台服务器上,如果我们的请求通过负载平衡被转移到了其他的服务器上,那么就无法恢复对话。

    B.通过session ticket:包含对话秘钥和加密方法的加密

    session ticket 是服务器在上一次对话中发送给客户的,这个 ticket 是加密的,只有服务器能够解密,里面包含了本次会话的信息,比如对话秘钥和加密方法等。这样不管我们的请求是否转移到其他的服务器上,当服务器将 ticket 解密以后,就能够获取上次对话的信息,就不用重新生成对话秘钥了。

    git远程仓库

    https:参照上述

    SSH:传输层(TCP的22端口)

    SSH(Secure Shell)是一种加密的网络协议,用于安全地远程登录服务器、传输数据和执行命令。

    与TLS同:公钥加密,对称会话秘钥,哈希

    公钥加密来安全交换或生成对称会话密钥
    对称加密来保护数据传输
    使用哈希或MAC防篡改数据。

    与TLS区别:身份验证

    SSH 常用秘钥对
    TLS 多用证书和公钥

    1.客户端生成密钥对SSH Key(公钥和私钥)

    ssh-keygen 命令

    公钥在 ~/.ssh/authorized_keys 文件中,添加到远程服务器

    私钥在 ~/.ssh/id_rsa(默认名称)或其他自定义名称的文件中,保留在本地机器上。

    RSA(Rivest-Shamir-Adleman)算法是一种非对称加密算法,广泛用于加密和数字签名

    2.客户端:私钥 签名 随机数 或 特定挑战(challenge)

    3.服务器:公钥来验证签名,确认身份

    4.通常使用 Diffie-Hellman共同生成一个会话秘钥

    5.哈希函数加密数据,会话秘钥加密解密秘文

    蓝牙

    1.初始配对:互输PIN码(传统),公钥私钥加密

    无线公钥基础设施(Wireless Public Key Infrastructure,WPKI)的安全连接可能不需要输入

    2.基于PIN,设备地址,随机数等生成一个共享/链路秘钥

    3.会话秘钥加密解密

    应用:面对面快传/AirDrop

    蓝牙/wifi/定位:免流量,识别附近对象

    参考链接

  • 相关阅读:
    Linux 查看 CPU核数 及 内存
    stable diffusion十七种controlnet详细使用方法总结
    ChatGPT架构师:语言大模型的多模态能力、幻觉与研究经验
    编程要搞明白的东西(二)
    普通人做自媒体怎么赚钱?
    python结合excel数据轻松实现接口自动化测试
    【明年找到好工作】:面试题打卡第三天
    【附源码】计算机毕业设计JAVA移动电商网站
    有一个是对的,就是坚持去做难的事情。
    yolov5+bytetrack算法在华为NPU上进行端到端开发
  • 原文地址:https://blog.csdn.net/qq_28838891/article/details/140162250
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | 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号