news 2026/5/21 8:55:07

从HTTPS到SSH登录:图解AES和RSA在真实场景中是如何‘打配合’的

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
从HTTPS到SSH登录:图解AES和RSA在真实场景中是如何‘打配合’的

HTTPS与SSH中的加密协作:AES和RSA如何构建安全通道

当你在浏览器地址栏看到那个绿色小锁图标,或是通过一行命令远程登录服务器时,背后是两套加密算法在精密配合。本文将用真实数据流拆解HTTPS和SSH两个经典场景,展示对称加密(AES)和非对称加密(RSA)如何解决安全通信的核心难题——既保证效率,又确保密钥交换绝对安全。

1. HTTPS握手:RSA护送AES密钥的接力赛

访问https://example.com时发生的加密协作,远比表面看到的复杂。以下是抓包工具捕获的实际流程:

客户端 -> 服务器:ClientHello(支持的加密套件列表) 服务器 -> 客户端:ServerHello(选定加密套件)+ 证书(含RSA公钥) 客户端 -> 服务器:Premaster Secret(用RSA公钥加密) 服务器 -> 客户端:Change Cipher Spec(切换至AES加密)

关键阶段解析

  1. 证书验证阶段(非对称加密主场):

    • 服务器发送的X.509证书包含RSA公钥,由CA机构用私钥签名
    • 客户端用内置CA公钥验证证书真实性(典型RSA签名验证流程)
  2. 密钥交换阶段(RSA的核心价值):

    # 模拟客户端生成Premaster Secret并加密 from Crypto.PublicKey import RSA from Crypto.Cipher import PKCS1_OAEP import os premaster_secret = os.urandom(48) # 实际为46字节随机数+2字节版本号 server_pub_key = RSA.import_key(open('server_public.pem').read()) cipher_rsa = PKCS1_OAEP.new(server_pub_key) encrypted_premaster = cipher_rsa.encrypt(premaster_secret)
  3. 会话加密阶段(AES接管通信):

    • 双方用Premaster Secret推导出AES会话密钥
    • 后续所有HTTP数据均用AES-GCM等模式加密传输

注意:现代TLS 1.3已优化此流程,但RSA密钥交换仍广泛存在于1.2版本

2. SSH密钥登录:非对称信任建立对称通道

执行ssh -i id_rsa user@host时发生的加密协作:

完整流程对照表

阶段使用算法作用典型数据量
TCP连接-建立基础通信3个包
协议协商-确定加密套件2个往返
密钥交换ECDH/RSA生成会话密钥300-800字节
用户认证RSA签名验证客户端身份签名数据约256字节
会话加密AES-CTR加密后续通信每个包增加16字节认证标签

关键代码解析

# 查看SSH握手细节(实际命令) ssh -vvv -i ~/.ssh/id_rsa user@example.com 2>&1 | grep -E 'encrypt|handshake' # 典型输出示例: debug1: SSH2_MSG_KEXINIT sent debug1: SSH2_MSG_KEX_ECDH_REPLY received debug1: Server host key: RSA SHA256:AbCdEf... debug1: Authentication succeeded (publickey)

RSA在SSH中的双重角色

  1. 主机验证:服务器用RSA私钥签名,客户端用known_hosts中的公钥验证
  2. 客户端认证:用户用RSA私钥签名挑战,服务器用authorized_keys中的公钥验证

3. 性能对比:为什么需要混合加密系统

通过实际基准测试展示两种算法的差异:

OpenSSL速度测试结果(AWS c5.xlarge实例):

算法操作类型速度(次/秒)典型用途
AES-256-GCM加密1,200MB/s大数据量加密
RSA-2048加密1,200次/s小数据量加密
RSA-2048解密60次/s关键操作
ECDSA-secp256r1签名800次/s身份认证

数据说明:非对称加密比对称加密慢3-5个数量级

混合系统的优势组合

  • RSA的长处:安全交换密钥(解决密钥分发问题)
  • AES的长处:高效加密数据(解决性能瓶颈)
  • 完美配合:RSA保护AES密钥,AES保护业务数据

4. 实战中的安全陷阱与最佳实践

常见配置错误

  1. RSA密钥长度不足

    # 检查服务器RSA密钥长度(示例) openssl x509 -in server.crt -text -noout | grep 'Public-Key'

    输出应显示至少(2048 bit),3072位更安全

  2. AES模式选择不当

    • 避免使用ECB模式(相同明文生成相同密文)
    • 优先选择GCM模式(提供加密+认证)

强化安全性的配置示例

对于Nginx的SSL配置:

ssl_protocols TLSv1.2 TLSv1.3; ssl_ciphers 'ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384'; ssl_prefer_server_ciphers on; ssl_ecdh_curve secp384r1;

对于OpenSSH服务端配置:

# /etc/ssh/sshd_config 关键参数 HostKey /etc/ssh/ssh_host_rsa_key KexAlgorithms ecdh-sha2-nistp521 Ciphers aes256-gcm@openssh.com MACs hmac-sha2-512

在云服务器部署时,记得定期轮换密钥。曾经有团队使用静态预共享密钥长达三年,最终在审计时被发现存在重大风险。现代工具如HashiCorp Vault可以自动化密钥轮换过程,将人工干预降到最低。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/5/21 8:55:06

智慧园区平台架构设计⑤:一站式企业服务平台(物业 + 政务 + 商务)

智慧园区平台架构设计⑤:一站式企业服务平台(物业 + 政务 + 商务) 💡 摘要: 本文是《产品架构师实战笔记》专栏"智慧园区综合服务平台"系列的第 5 篇,深度解析一站式企业服务平台的完整架构设计。涵盖物业服务(报事报修、投诉建议、费用缴纳)、政务服务(政策…

作者头像 李华
网站建设 2026/5/21 8:54:36

ROS2 Humble下colcon编译实战:从创建workspace到运行自定义节点

ROS2 Humble下colcon编译实战:从创建workspace到运行自定义节点 在机器人开发领域,ROS2已经成为事实上的标准框架,而colcon作为其官方推荐的构建工具,掌握它的使用技巧能显著提升开发效率。本文将带您完成一个完整的ROS2项目构建流…

作者头像 李华
网站建设 2026/5/21 8:54:03

从“它激”到“自激”:三引脚压电陶瓷片在低成本报警器设计中的妙用

从“它激”到“自激”:三引脚压电陶瓷片在低成本报警器设计中的妙用 在物联网设备井喷式发展的今天,低成本、高可靠性的声学报警装置需求激增。无论是烟雾报警器、防盗传感器还是工业设备状态提示器,如何在有限的预算内实现稳定高效的声学输出…

作者头像 李华
网站建设 2026/5/21 8:49:43

Display Driver Uninstaller:彻底解决显卡驱动问题的专业工具指南

Display Driver Uninstaller:彻底解决显卡驱动问题的专业工具指南 【免费下载链接】display-drivers-uninstaller Display Driver Uninstaller (DDU) a driver removal utility / cleaner utility 项目地址: https://gitcode.com/gh_mirrors/di/display-drivers-u…

作者头像 李华
网站建设 2026/5/21 8:49:11

【程序地址空间:进程眼中的“超级大饼”】

虚拟地址空间、页表、写时拷贝、mm_struct——一篇讲透进程如何“独占”内存 文章目录 前言一、一个进程,一个虚拟地址空间二、页表:虚拟地址到物理地址的“翻译官”2.1 页表是什么?2.2 映射关系 三、写时拷贝(Copy-on-Write&…

作者头像 李华