计算机网络安全技术 笔记6


六、SSL 及 HTTPS

传输层安全协议 SSL

传输层安全协议概述

  • 网络层安全协议:
    • 提供端到端的网络层安全传输.
    • 无法处理同一端系统中不同应用的安全需求.
    • 需要在传输层和更高层提供网络安全传输服务.
  • 传输层安全服务:
    • 保证两个应用之间的保密性和安全性, 提供应用层安全服务.
  • 常用协议: SP4、TLSP、SSH、SSL.

SSL 协议概述

  • 发展历程:
    • 保护基于 WEB 的通信.
    • 服务器认证.
    • 客户认证 (可选).
    • SSL 链路上的数据完整性和保密性.
  • 设计目标:
    • 工作在 TCP 协议上 (不支持 UDP), 保护正常运行于 TCP 上的任何应用层协议 (HTTP、FTP、SMTP、Telnet 能透明建立于 SSL 上).
    • 在应用层协议传输前, SSL 协议完成客户端和服务器的身份认证、加密算法和密钥协商, 建立一条安全可信的通信信道.
    • 应用层协议传送的数据会被加密, 在传输过程中不被修改, 是最安全的在线交易模式, 广泛用于互联网财务等敏感信息处理.
  • 安全保护:
    • 机密性保护:
      • SSL 客户机和服务器传送数据经过了加密处理.
    • 完整性保护:
      • 利用消息认证技术保证信息完整性, 避免信息受到破坏.
    • 认证保护:
      • 利用证书和可信第三方认证, 客户机和服务器相互认证对方身份.
      • 证书持有者在握手时交换数字证书, 验证证书保证对方身份合法性.
  • 使用步骤:
    • 用户: 浏览器输入.
    • HTTP 层: 将用户需求翻译成 HTTP 请求.
    • SSL 层: 借助下层协议信道安全地协商加密密钥, 加密 HTTP 请求.
    • TCP 层: 与 Web Server 443 端口连接, 传递 SSL 处理后的数据.
    • SSL 在 TCP 上建立了加密通道, 通过这层的数据经过加密.

SSL 体系结构

  • 两个实体:
    • 客户机/服务器.
    • 基于证书在客户机和服务器间完成身份认证.
  • 两个概念:
    • 会话 Session:
      • 客户端和服务器之间的一个关联, 即虚拟连接关系.
      • 通过握手协议建立, 协商密码算法、主密钥等.
      • 一个会话协商可由多个连接共享.
    • 连接 Connection:
      • 一个特定的通信信道, 常映射成一个 TCP 连接.
      • 一般短暂, 如 HTTPS 一次访问可能需要多个连接, 共享同一会话协商的密码算法、主密钥.
  • SSL 协议:
    • 握手协议: 数据传输前进行身份认证, 协商算法、密钥、初始向量等.
    • 记录协议: 定义传输格式, 为高层协议提供数据封装、压缩、加密基本功能, 安全通信.
    • 告警协议.
    • 修改密码规约协议.

SSL 记录协议

  • 安全服务:

    • 保密性:
      • 用握手协议定义的共享密钥, 用传统密钥算法加密 SSL 载荷.
    • 报文完整性:
      • 用握手协议定义的共享密钥计算报文认证码 MAC.
  • 操作过程:

    • 分段.
    • 压缩 (可选): 不能丢失信息.
    • 增加 MAC: 使用共享密钥.
    • 加密: 对称加密算法.
    • 增加首部.
  • 形成 SSL 记录协议数据单元.

SSL 握手协议

  • 在传递应用数据之前使用.

  • 安全服务: 认证、密钥和算法协商.

    • 握手协议允许 Client 和 Server 相互认证.
      • Server 身份认证在 Client 身份认证之前.
      • Client 身份认证可选.
    • 协商加密算法和 MAC 算法.
    • 协商主会话密钥 (Master Secret).
    • 保护数据使用密钥通过 SSL 记录传送.
  • 消息类型: 10 种报文.

  • 四个阶段:

    • 建立安全能力:

      • client_hello/server_hello 报文: 包括 Version, Random, session id, cipher suite, compression method.

      • cipher suite: 包括

        • 密钥交换方法 (RSA, Diffie-Hellman, Fortezza).
        • 加密算法 (RC4, RC2, DES, 3DES, IDEA, Fortezza).
        • MAC 算法 (MD5, SHA-1).

    • 服务器认证和密钥交换:

      • 服务器发送 SSL 数字证书 Certificate.

      • (*) 如果服务器使用 SSL 3.0, 需要客户端提交数字证书, 发出 certificate_request 报文.

      • 根据密钥交换算法:

        • 匿名 DH 算法, 不需要服务器发送证书, 但难防止中间人攻击.
        • DH 算法/RSA 算法, 发送 server_key_exchange, 交换密钥.
      • 服务器发送 sever_hello_done, 等待客户端响应.

    • 客户认证和密钥交换:

      • 客户端验证服务器证书是否有效.

      • (*) 如果收到 certificate-request, 则发送 SSL 数字证书 Certificate, 同时发出签有客户端专用密钥的 certificate_verify, 服务器验证此消息签名, 可以验证客户端数字证书所有权; 否则发送 no_certificate alert, 服务器应用程序使会话失败.

      • 客户端发送 client_key_exchange, 含 pre_master_secret 和消息认证码密钥, 后续阶段用来计算 master_secret.

      • 主密钥 master_secret 不直接用于数据加密和认证, 而是产生连接所需的一系列密钥.

    • 结束:

      • 客户端将 pre_master_secret 转为 master_secret, 派生所有密钥.

      • 客户端发出 change_cipher_spec, 服务器转换为新协商密码对.

      • 客户发送 finished, 验证密钥交换认证过程是否成功.

      • 服务器发送 change_cipher_spec, 挂起状态迁移到当前 cipher_spec, 发送结束报文.

      • 握手完成, 可以交换应用层数据.

SSL 告警协议

  • 功能:
    • 向对等实体传递 SSL 相关警报, 告警消息按当前状态压缩和加密.
  • Level 字节:
    • 值 1 表示告警.
    • 值 2 表示致命错误.
      • SSL 立即中止连接.
      • 会话中其它连接继续进行.
      • 不会在此会话中建立新连接.

SSL 修改密码规约协议

  • 功能:
    • 握手协议结束阶段发送, 通知接收方使用协商的密码算法和密钥.
    • 接收方将会话的挂起状态复制到当前状态, 以后连接使用这些密码参数.

SSL 安全性分析

  • 逻辑严密性, 完整性, 正确性:
    • 每次安全连接产生一个 128 位长的随机连接序号, 防范重放攻击.
    • 几乎所有 Web 服务器及浏览器支持 SSL 协议, 开发成本小.
  • 保密性:
    • SSL 协议的数据安全性建立在 RSA 等算法安全性上.
  • 认证性:
    • SSL 对应用层不透明, 只能提供交易中客户与服务器的双方认证, 涉及多方电子交易中不能协调安全传输和信任关系.

应用层安全协议 HTTPS

WEB 及其安全威胁

  • Web 技术:
    • 平台独立, 系统分布.
    • 第一个网页服务器和 Web 浏览器——WWW.
    • 基础技术:
      • HTML: 编写文档的超文本标记语言.
      • HTTP: 发布资源的超文本传输协议.
      • URL: 通过互联网引用其他可访问文档或资源的统一资源定位.
    • WWW 使人们进入了网络时代.
    • WWW 技术是运行在互联网和 TCP/IP 上的一个客户/服务器程序.
  • Web 安全威胁:
    • 威胁方式:
      • 主动攻击: 伪装成其它用户, 篡改消息或 Web 站点信息.
      • 被动攻击: 在浏览器和服务器通信窃听, 获得限制使用的权限.
    • 威胁位置:
      • Web 服务器安全.
      • Web 客户端安全.
      • 服务器和客户端间的通信安全.
  • Web 流量安全方法:
    • IP 级安全:
      • IPSec 对终端用户和应用透明, 提供通用解决方案, 具有过滤功能.
    • TCP 级安全:
      • SSL 或 TLS 作为下层协议, 可对应用透明, 也可在特定包中使用.
    • 应用级安全:
      • 为应用定制安全协议, 典型应用是安全电子交易 SET.

针对 HTTP 的攻击

  • HTTP 的缺陷:
    • 明文传输, 没有数据完整性校验.
    • 无状态连接, 无法验证双方身份.
  • HTTP 攻击:
    • 监听嗅探:
      • HTTP 采用明文信息传输, 可以被直接嗅探.
    • 篡改劫持:
      • 攻击者修改通信数据包, 篡改信息和劫持会话.
    • 伪造服务器:
      • HTTP 不验证服务器可信度, 存在 ARP、DNS 欺骗及钓鱼风险.
  • ARP 欺骗:
    • 攻击者制造伪造的 ARP frame.
    • 修改网内任何计算机的映射表.
    • 切断目标主机的网络通讯, 窃取关键信息.
    • 本机网卡可以抓取到被攻击者 HTTP 请求, 获取明文密码等敏感信息.

HTTPS = HTTP + SSL

  • HTTPS 是协议的合并, 解决了数据加密、完整性校验、服务器身份认证等问题.
    • HTTP 协议是简单的无状态连接.
    • HTTPS 协议是可进行加密传输、身份认证的连接.
  • ARP 欺骗/报文篡改/服务器认证/证书替换/会话劫持.
  • HTTPS 无法避免 ARP 欺骗和嗅探攻击, 但 SSL 加密传输, 无法得到明文信息.
  • HTTPS 内容不压缩也是无法识别的密文, 攻击者无法进行报文篡改.
  • HTTPS 的加密证书在证书管理机构申请后发放, 拥有证书的单位不可被仿冒.
    • HTTP 无法验证服务器身份, 某些浏览器的网站身份验证基于网站域名的, 遇到 DNS 劫持/欺骗时无法抵抗.
  • HTTPS 通过钓鱼 WIFI 或恶意代理访问网站, 服务器证书可能被替换, 浏览器用红色表示地址栏并提示证书不受信任.
  • HTTPS 通信不全基于 HTTPS 协议, 百度只在登录采用 HTTPS 传输用户信息.

SSL 能否确保 HTTPS 安全

  • SSLStrip 是专门针对 HTTPS 的攻击.

文章作者: Chengsx
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Chengsx !
  目录