网络安全复习笔记

news2024/11/27 7:37:32

概述

要素

  • CIA:可用性;完整性;保密性。
    可控性;不可否认性;可审查性。

攻击

  • 被动:窃听 - 保密性;监听 - 保密性
  • 主动:假冒 - 完整性;重放 - 完整性;改写 - 完整性;拒绝服务 - 可用性。

服务和机制

在这里插入图片描述

模型

  • PDR:保护;检测;响应。
  • P2DR:整体安全策略; → \to 严密防护 → \to 动态检测 → \to 快速响应 → \to
  • WPDRRC:技术 ⊃ \supset 策略 ⊃ \supset 人员; → \to 预警 → \to 保护 → \to 检测 → \to 响应 → \to 恢复 → \to 反击 → \to

密码学

对称加密

  • 分组密码:不随时间变化加解密方法;扩散性好,插入敏感;加解密速度慢,存在错误传播。
  • 序列密码:随时间变化的加解密方法;加解密速度快,有限错误传播;扩散性差,插入及修改不敏感。

散列函数

  • 目的:消息未被篡改;消息由合法发送者发送;不为重放攻击(序列号/时间戳)。
  • 要求:任意长度输入;固定长度输出;软硬件易于实现;不可逆性;抗碰撞性;输入微小变化时输出变化极大。

数字签名

  • 信息发送者才能产生的无法伪造的数字串,用以证明消息发送者身份真实性。
    发送方私钥签名 → \to 接收方公钥加密 → \to 不安全信道 → \to 接收方私钥解密 → \to 发送方公钥验证。

密钥分发

  • 无中心密钥分发
    (1)A → \to B: R e q u e s t ∣ ∣ N 1 {\rm Request}||N_1 Request∣∣N1 R e q u e s t {\rm Request} Request 密钥更新请求, N 1 {N_1} N1 现时值(Nouce)时间戳/序列号。
    (2)B → \to A: E K M K [ K s ∣ ∣ R e q u e s t ∣ ∣ N 1 ∣ ∣ I D B ∣ ∣ f ( N 1 ) ∣ ∣ N 2 ] E_{K_{MK}}[K_s||{\rm Request||N_1||ID_B||f(N_1)||N_2}] EKMK[Ks∣∣Request∣∣N1∣∣IDB∣∣f(N1)∣∣N2] K s K_s Ks 随机密钥发生器生成的新密钥, K M K K_{MK} KMK 共享的主密钥, I D B {\rm ID}_B IDB 数字签名避免冒充, f f f 共享的函数运算避免重放。
    (3)A → \to B: E K s [ f ( N 2 ) ] E_{K_s}[f(N_2)] EKs[f(N2)];避免重放,确认新密钥。
  • 有中心密钥分发
    KDC:密钥分发中心。
    (1)A → \to KDC: R e q u e s t ∣ ∣ N 1 {\rm Request}||N_1 Request∣∣N1
    (2)KDC → \to A: E K A [ K s ∣ ∣ ] R e q u e s t ∣ ∣ N 1 ∣ ∣ E K B ( K s , I D A ) ] E_{K_A}[K_s||]{\rm Request}||N_1||E_{K_B}(K_s,ID_A)] EKA[Ks∣∣]Request∣∣N1∣∣EKB(Ks,IDA)] K A K_A KA KDC 和 A 共享的密钥, K B K_B KB KDC 和 B 共享的密钥。
    (3)A → \to B: E K B ( K s , I D A ) E_{K_B}(K_s,ID_A) EKB(Ks,IDA)
    (4)B → \to A: E K s ( N 2 ) E_{K_s}(N_2) EKs(N2)
    (5)A → \to B: E K s [ f ( N 2 ) ] E_{K_s}[f(N_2)] EKs[f(N2)];避免冒用,确认新密钥。
  • 公钥分发
    CA:公钥管理机构。
    (1)A → \to CA: R e q u e s t ∣ ∣ T i m e 1 {\rm Request}||{\rm Time}_1 Request∣∣Time1
    (2)CA → \to A: E S K U [ P K B ∣ ∣ R e q u e s t ∣ ∣ T i m e 1 ] E_{SK_U}[PK_B||{\rm Request}||{\rm Time}_1] ESKU[PKB∣∣Request∣∣Time1] S K U SK_U SKU CA私钥, P K B PK_B PKB B 公钥。
    (3)B → \to CA: R e q u e s t ∣ ∣ T i m e 2 {\rm Request}||{\rm Time}_2 Request∣∣Time2
    (4)CA → \to B: E S K U [ P K A ∣ ∣ R e q u e s t ∣ ∣ T i m e 2 ] E_{SK_U}[PK_A||{\rm Request}||{\rm Time}_2] ESKU[PKA∣∣Request∣∣Time2] P K A PK_A PKA A 公钥。
    三次握手
    (5)A → \to B: E P K B ( N 1 ∣ ∣ I D A ) E_{PK_B}(N_1||ID_A) EPKB(N1∣∣IDA)
    (6)B → \to A: E P K A ( N 1 ∣ ∣ N 2 ) E_{PK_A}(N_1||N_2) EPKA(N1∣∣N2)
    (7)A → \to B: E P K B ( N 2 ) E_{PK_B}(N_2) EPKB(N2)

PPP 协议

  • 链路层
  • PAP协议:两次握手实现对等端口令认证;初始连接建立使用;口令明文传输,无法防御重放和假冒。
  • CHAP协议:三次握手实现对等端基于 Hash 的挑战-应答认证;口令明文传输,无法防御窃听等被动攻击。

RADIUS 协议

  • 基于口令
    NAS:网络接入服务器。 AS:认证服务器。
    (1)C → \to NAS → \to AS:UDP 封装的 Access-Request。
    AS:NAS 是否注册登记;认证是否通过。
    (2)AS → \to NAS:访问接受/拒绝及数字签名。
    NAS:验证签名正确性;确认访问接受/拒绝。
  • 基于挑战-应答

Kerbros 协议

  • 第一步:分离 V 和 SA
    V:应用服务器。
    (1)C → \to AS: I D C ∣ ∣ P C ∣ ∣ I D V ID_C||P_C||ID_V IDC∣∣PC∣∣IDV P C P_C PC 用户口令。
    (2)AS → \to C: T i c k e t V = E K V ( I D C ∣ ∣ A D C ∣ ∣ I D V ) {\rm Ticket}_V=E_{K_V}(ID_C||AD_C||ID_V) TicketV=EKV(IDC∣∣ADC∣∣IDV) T i c k e t {\rm Ticket} Ticket 票据, K V K_V KV AS 和 V 共享的密钥, A D C AD_C ADC C 网络地址。
    (3)C → \to V: I D C ∣ ∣ T i c k e t V ID_C||{\rm Ticket}_V IDC∣∣TicketV
    口令明文传输;需多次输入口令。
  • 第二步:分离 SA 和 TGS
    TGS:票据授予服务器
    (1)C → \to AS: I D C ∣ ∣ I D T G S ID_C||ID_{TGS} IDC∣∣IDTGS
    (2)AS → \to C: E K C ( T i c k e t T G S ) E_{K_C}({\rm Ticket}_{TGS}) EKC(TicketTGS) T i c k e t T G S = E K T G S ( I D C ∣ ∣ A D C ∣ ∣ I D T G S ∣ ∣ T S 1 ∣ ∣ L i f e t i m e 1 ) {\rm Ticket}_{TGS}=E_{K_{TGS}}(ID_C||AD_C||ID_{TGS}||TS_1||{\rm Lifetime}_1) TicketTGS=EKTGS(IDC∣∣ADC∣∣IDTGS∣∣TS1∣∣Lifetime1) K C K_C KC C 和 AS 共享密钥, K T G S K_{TGS} KTGS TGS 和 AS 共享密钥, T S 1 TS_1 TS1 时间戳, L i f e t i m e 1 {\rm Lifetime}_1 Lifetime1 生命周期。
    (3)C → \to TGS: I D C ∣ ∣ I D V ∣ ∣ T i c k e t T G S ID_C||ID_V||{\rm Ticket}_{TGS} IDC∣∣IDV∣∣TicketTGS.
    (4)TGS → \to C: T i c k e t V = E K V ( I D C ∣ ∣ A D C ∣ ∣ I D V ∣ ∣ T S 2 ∣ ∣ L i f e t i m e 2 ) {\rm Ticket}_V=E_{K_V}(ID_C||AD_C||ID_V||TS_2||{\rm Lifetime}_2) TicketV=EKV(IDC∣∣ADC∣∣IDV∣∣TS2∣∣Lifetime2) K V K_V KV V 和 TGS 共享密钥。
    (5)C → \to V: I D C ∣ ∣ T i c k e t V ID_C||{\rm Ticket}_V IDC∣∣TicketV
    有效期过短易用性差,过长安全性差;未验证 V 的真实性。
  • 第三步:Kerbros v4
    (1.1)C → \to AS: I D C ∣ ∣ I D T G S ∣ ∣ T S 1 ID_C||ID_{TGS}||TS_1 IDC∣∣IDTGS∣∣TS1 ;防止重放。
    (1.2)AS → \to C: E K C , A S ( K C , T G S ∣ ∣ I D T G S ∣ ∣ T S 2 ∣ ∣ L i f e t i m e 2 ∣ ∣ T i c k e t T G S ) E_{K_{C,AS}}(K_{C,TGS}||ID_{TGS}||TS_2||{\rm Lifetime}_2||{\rm Ticket}_{TGS}) EKC,AS(KC,TGS∣∣IDTGS∣∣TS2∣∣Lifetime2∣∣TicketTGS) T i c k e t T G S = E K T G S , A S ( K C , T G S ∣ ∣ I D C ∣ ∣ A D C ∣ ∣ I D T G S ∣ ∣ T S 2 ∣ ∣ L i f e t i m e 2 ) {\rm Ticket}_{TGS}=E_{K_{TGS,AS}}(K_{C,TGS}||ID_C||AD_C||ID_{TGS}||TS_2||{\rm Lifetime}_2) TicketTGS=EKTGS,AS(KC,TGS∣∣IDC∣∣ADC∣∣IDTGS∣∣TS2∣∣Lifetime2);C 和 TGS 间获得安全共享密钥。
    (2.1)C → \to TGS: I D V ∣ ∣ T i c k e t T G S ∣ ∣ A u t h e n t i c a t o r C , T G S ID_V||{\rm Ticket}_{TGS}||{\rm Authenticator}_{C,TGS} IDV∣∣TicketTGS∣∣AuthenticatorC,TGS A u t h e n t i c a t o r C , T G S = E K C , T G S ( I D C ∣ ∣ A D C ∣ ∣ T S 3 ) {\rm Authenticator}_{C,TGS}=E_{K_{C,TGS}}(ID_C||AD_C||TS_3) AuthenticatorC,TGS=EKC,TGS(IDC∣∣ADC∣∣TS3);验证 C 真实性,防止窃听和重放。
    (2.2)TGS → \to C: E K C , T G S ( K C , V ∣ ∣ I D v ∣ ∣ T S 4 ∣ ∣ L i f e t i m e 4 ∣ ∣ T i c k e t V ) E_{K_{C,TGS}}(K_{C,V}||ID_v||TS_4||{\rm Lifetime}_4||{\rm Ticket}_V) EKC,TGS(KC,V∣∣IDv∣∣TS4∣∣Lifetime4∣∣TicketV) T i c k e t V = E K T G S , V ( K C , V ∣ ∣ I D C ∣ ∣ A D C ∣ ∣ I D V ∣ ∣ T S 4 ∣ ∣ L i f e t i m e 4 ) {\rm Ticket}_V=E_{K_{TGS,V}}(K_{C,V}||ID_C||AD_C||ID_V||TS_4||{\rm Lifetime}_4) TicketV=EKTGS,V(KC,V∣∣IDC∣∣ADC∣∣IDV∣∣TS4∣∣Lifetime4);C 和 V 间获得安全共享密钥,防止窃听和重放。
    (3.1)C → \to V: T i c k e t V ∣ ∣ A u t h e n t i c a t o r C , V {\rm Ticket}_V||{\rm Authenticator}_{C,V} TicketV∣∣AuthenticatorC,V A u t h e n t i c a t o r C , V = E K C , V ( I D C ∣ ∣ A D C ∣ ∣ T S 5 ) {\rm Authenticator}_{C,V}=E_{K_{C,V}}(ID_C||AD_C||TS_5) AuthenticatorC,V=EKC,V(IDC∣∣ADC∣∣TS5)
    (3.2)V → \to C: E K C , V ( T S 5 + 1 ) E_{K_{C,V}}(TS_5+1) EKC,V(TS5+1);验证 V 真实性。
  • 单点登录:多个应用系统中,用户只需登陆一次就可以访问所有互相信任的应用系统。

访问控制

  • 方法:矩阵;链表;列表(ACL);授权关系表;安全标签(细粒度)。
  • 原则:最小授权;最小泄露;多级。
  • DAC(自主):客体属主自行决定权限分配和管理;风险较高。
  • MAC(强制/非自住):系统管理员设置或系统自动设置,用户级无法修改;灵活性差。
    • 下读:主体安全级别高于客体时允许读。
    • 上读:主体安全级别低于客体时允许读。
    • 下写:主体安全级别高于客体时允许写。
    • 上写:主体安全级别低于客体时允许写。
    • BLP(下读上写):政府或军事;写给上级,不能写给下属。
    • Biba(上读下写):企业;领导写通知,员工读通知。
  • RBAC(基于角色):通过角色联系主客体权限;提升效率,便于管理。

应用层

PGP

  • 认证:SHA-1/DSS + RSA + LZ77 + Base64(CRC);私钥签名,公钥验证。
    发送方: Z = C o d e [ Z i p ( M A C ∣ ∣ M ) ] Z={\rm Code}[{\rm Zip}({\rm MAC}||M)] Z=Code[Zip(MAC∣∣M)] M A C = E S K A [ H a s h ( M ) ] {\rm MAC}=E_{SK_A}[{\rm Hash}(M)] MAC=ESKA[Hash(M)]
    接收方: M A C ′ ∣ ∣ M ′ = Z i p − 1 [ C o d e − 1 ( Z ′ ) ] {\rm MAC}'||M'={\rm Zip}^{-1}[{\rm Code}^{-1}(Z')] MAC∣∣M=Zip1[Code1(Z)] H a s h ( M ′ ) ? = D P K A ( M A C ′ ) {\rm Hash}(M'){?\atop =}D_{PK_A}({\rm MAC'}) Hash(M)=?DPKA(MAC)
  • 加密:LZ77 + ANSI X9.17 + CAST-128/IDEA/TDEA + RSA + Base64(CRC);公钥加密,私钥解密。
    发送方: Z = C o d e ( K ∣ ∣ C ) Z={\rm Code}(K||C) Z=Code(K∣∣C) K = E P K B ( K S ) K=E_{PK_B}(K_S) K=EPKB(KS) C = E K S [ Z i p ( M ) ] C=E_{K_S}[{\rm Zip}(M)] C=EKS[Zip(M)] K S K_S KS 随机生成密钥。
    接收方: K ∣ ∣ C = C o d e − 1 ( Z ) K||C={\rm Code}^{-1}(Z) K∣∣C=Code1(Z) K S = D S K B ( K ) K_S=D_{SK_B}(K) KS=DSKB(K) M = Z i p − 1 [ D K S ( C ) ] M={\rm Zip}^{-1}[D_{K_S}(C)] M=Zip1[DKS(C)]
  • 认证-加密:SHA-1/DSS + RSA + LZ77 + ANSI X9.17 + CAST-128/IDEA/TDEA + RSA + Base64(CRC)。
    发送方: Z = C o d e ( K ∣ ∣ C ) Z={\rm Code}(K||C) Z=Code(K∣∣C) K = E P K B ( K S ) K=E_{PK_B}(K_S) K=EPKB(KS) C = E K S [ Z i p ( M A C ∣ ∣ M ) ] C=E_{K_S}[{\rm Zip}({\rm MAC}||M)] C=EKS[Zip(MAC∣∣M)] M A C = E S K A [ H a s h ( M ) ] {\rm MAC}=E_{SK_A}[{\rm Hash}(M)] MAC=ESKA[Hash(M)]
    接收方: K ∣ ∣ C = C o d e − 1 ( Z ) K||C={\rm Code}^{-1}(Z) K∣∣C=Code1(Z) K S = D S K B ( K ) K_S=D_{SK_B}(K) KS=DSKB(K) M A C ′ ∣ ∣ M ′ = Z i p − 1 [ D K S ( C ) ] {\rm MAC}'||M'={\rm Zip}^{-1}[D_{K_S}(C)] MAC∣∣M=Zip1[DKS(C)] H a s h ( M ′ ) ? = D P K A ( M A C ′ ) {\rm Hash}(M'){?\atop =}D_{PK_A}({\rm MAC'}) Hash(M)=?DPKA(MAC)
    私钥签名 → \to 压缩 → \to 公钥加密密钥 → \to 编码 → \to 不安全信道 → \to 解码 → \to 私钥解密获得密钥 → \to 解压 → \to 公钥验证。
  • 密钥环
    • 私钥环:时间戳;密钥ID;公钥;加密私钥;用户ID。
    • 公钥环:时间戳;密钥ID;公钥;拥有者信任;用户ID;密钥合理性;签名;签名信任。
      拥有者信任:收到新公钥赋值;未定义信任,未知用户,一般不信任,一般信任,完全信任。
      签名信任:收到公钥已有用户签名,根据签名用户是否已在公钥环内进行赋值。
      密钥合理性:加权计算签名信任达到设定要求时,认定为有效(complete)。

S/MIME

  • 安全功能:封装/加密;签名;明文签名;签名并封装。
  • 加密方式选择优先级
    (1)接收方解密方式列表优先级最高的;
    (2)接收方发来的邮件中最近使用的;
    (3)可承受接收方无法解密风险,使用 3DES;
    (4)不可承受接收方无法解密风险,使用 RC2/40。
    PGP和S/MIME对比

HTTPS

  • HTTPS
    HTTP:明文传输无验证;无保密性和完整性。
    (1)Browser:使用 HTTPS(443端口) 的 URL 访问,发起 SSL/TLS 连接请求。
    (2)Web:发送网站公钥证书。
    (3)Browser:协商安全等级,Web 公钥加密建立的会话密钥并发送。
    (4)Web:私钥解出会话密钥并确认。
  • SSL 协议
    • 会话:Brower 到 Web 的关联,避免每个连接都要新的安全参数;会话标识符,对等实体证书,压缩方法,密码规格,主密钥,可恢复性。
    • 连接:短时有效点对点,每个连接与一个会话关联;随机数(标识连接),Web MAC 密钥,Browser MAC 密钥,Browser 密钥,初始化向量 Ⅳ,序列号。
    • 协议:握手;修改密码规格;警告(警告/致命);记录(机密性和完整性)。
    • SSL 握手协议
      (1)建立安全能力:Browser 发送 client_hello,并收到 Web 回送的 server_hello。
      版本:Browser 支持的 SSL 协议最高版本号
      随机数:32bit 时间戳和安全的 28 字节随机数;防止重放。
      会话 ID:可变长的会话标识符。
      加密套件:Browser 支持的加密算法列表,优先级降序排列;密钥交换算法、身份验证算法、对称加密算法、Hash 算法。
      压缩算法:Browser 支持的压缩算法列表。
      (2)Web 认证和密钥交换:Web 发送 X.509 证书和证书链启动;Web 发送 server_hello_done 结束。
      密钥交换:选择 D-H/ 签名 RSA 算法时,Web 发送 server_key_exchange,包含密钥交换算法参数及签名;防止重放。
      证书请求:可选项,Web 发送 certificate_request。
      (3)Browser 认证和密钥交换
      发送证书:若收到 certificate_request,Browser 发送 certificate 包含自己的 X.509 证书及证书链;若没有证书,则发送 no_certificate_alert 警告。
      密钥交换:收到 server_key_exchange 后,发送 clietn_key_exchange。
      认证确认:Brower 具备签名功能时可选;发送 certificate_verify。
      (4)完成:完成握手,并开始交换应用层数据。
      Browser:发送 change_cipher_spec,将选择但未启用的密码规则复制到当前密码规格(修改密码规格协议);用新加密算法和新密钥,发送 finish,内容为两散列值串接。
      Web:同样发送 change_cipher_spec 和 finish 以确定。
    • 密钥生成(client_key_exchange)
      (1)Browser 生成 48 字节预备主密钥;Browser 和 Web 分别独立计算并生成 48 字节一次性主密钥,仅供本次会话。
      RSA:Browser 生成预备主密钥后公钥加密发送;Web 私钥解密获得。
      D-H:Brower 和 Web 各自生成一个 D-H 公钥,交换后分别计算获得预备主密钥;pre_master_secret。
      (2)Browser 和 Web 依据主密钥分别按顺序生成密钥参数:Browser 写 MAC 密钥,Web 写 MAC 密钥,Browser 写密钥,Web 写密钥,Browser 写初始向量 Ⅳ,Web 写初始向量 Ⅳ。
      以主密钥为输入生成长度足够长的 Hash 值;master_secret。
    • SSL 记录协议
      (1)分段:应用层报文分割为不超过 214 字节的分块。
      (2)压缩:可选项,无损;增加长度不能超过 1024 字节。
      (3)加密:分组或序列,”明文/压缩后 || MAC(0/16/20字节)|| 填充“;分组加密则填充为分组长度倍数,且最后一字节说明填充长度。
      (4)添加报头:协议类型(1字节);主版本号(1字节);次版本号(1字节);以字节为单位的消息长度(8字节,明文/压缩后)。
  • TLS 协议:SSL 升级版。
    • Hash 计算额外包含 TLSCompressed.version 域。
    • 使用 PRF 随机数生成函数生成密钥;certificate_verify 和 finish 的消息 Hash 计算方法不同;生成主密钥算法不同。
    • 扩充警告代码,可以报告更多警告信息。
    • 取消了 SSL 协议支持的 Fortezza 算法。
    • 支持的证书类型有所减少。
    • SSL 填充至分组长度最小整数倍;TLS 可填充不超过 255 字节长度到分组长度的任意整数倍。

SET 协议

  • 角色:持卡人/买方/消费者;商家;发卡者(为持卡人提供信用卡);支付者(商家选择的结算机构);支付网关(连接银行专网和 Internet);CA。
  • 第一步:一般电子交易流程
    (1)消费者开立账户,收到银行签署证书。
    (2)商家开立账户,获得或生成签名密钥证书和密钥交换证书。
    (3)消费者下单;商家核对订单,向消费者发送证书副本;消费者发送订单、支付消息、证书。
    (4)商家向支付网关请求核对,核对消费者账户能够支付;商家核准订单,向消费者发送核准订单信息。
    (5)商家提供货物或服务;消费者确认;商家向支付网关请求支付;支付网关完成支付。
  • 第二步:双重签名
    • 目的
      商家:只能读取订单信息,不能读取支付信息,但能验证支付信息完整性和真实性、与订单信息的关联性。
      银行:只能读取支付信息,不能读取订单信息,但能验证订单信息完整性和真实性、与支付信息的关联性。
      参与电子交易各方能够互相认证彼此身份;支付行为与订单匹配。
    • 实现: D S = E S K C [ H a s h ( H a s h ( P I ) ∣ ∣ H a s h ( O I ) ) ] DS=E_{SK_C}[{\rm Hash}({\rm Hash}(PI)||{\rm Hash}(OI))] DS=ESKC[Hash(Hash(PI)∣∣Hash(OI))] D S DS DS 双重签名, S K C SK_C SKC 消费者私钥, P I PI PI 支付信息, O I OI OI 订单信息。
      商家:持有 D S DS DS O I OI OI P I M D = H a s h ( P I ) {\rm PIMD}={\rm Hash}(PI) PIMD=Hash(PI);验证 D P K C ( D S ) ? = H a s h [ P I M D ∣ ∣ H a s h ( O I ) ] D_{PK_C}(DS){? \atop =}{\rm Hash}[{\rm PIMD}||{\rm Hash}(OI)] DPKC(DS)=?Hash[PIMD∣∣Hash(OI)] P K C PK_C PKC 消费者公钥。
      银行:持有 D S DS DS P I PI PI O I M D = H a s h ( O I ) {\rm OIMD}={\rm Hash}(OI) OIMD=Hash(OI);验证 D P K C ( D S ) ? = H a s h [ H a s h ( P I ) ∣ ∣ O I M D ] D_{PK_C}(DS){? \atop =}{\rm Hash}[{\rm Hash}(PI)||{\rm OIMD}] DPKC(DS)=?Hash[Hash(PI)∣∣OIMD]
  • 第三步:Set 交易流程
    (1.1)消费者提交购买请求: P ∣ ∣ O ∣ ∣ P||O|| P∣∣O∣∣消费者证书( P K C PK_C PKC);支付消息 P = K ∣ ∣ C P=K||C P=K∣∣C K = E P K B ( K S ) K=E_{PK_B}(K_S) K=EPKB(KS) C = E K S ( P I ∣ ∣ D S ∣ ∣ O I M D ) C=E_{K_S}(PI||DS||{\rm OIMD}) C=EKS(PI∣∣DS∣∣OIMD);购买消息 O = O I ∣ ∣ D S ∣ ∣ P I M D O=OI||DS||{\rm PIMD} O=OI∣∣DS∣∣PIMD K S K_S KS 消费者生成的随机密钥, P K B PK_B PKB 支付网关公钥。
    (1.2)商家验证购买信息: 验证证书,验证 D P K C ( D S ) ? = H a s h [ P I M D ∣ ∣ H a s h ( O I ) ] D_{PK_C}(DS){? \atop =}{\rm Hash}[{\rm PIMD}||{\rm Hash}(OI)] DPKC(DS)=?Hash[PIMD∣∣Hash(OI)];向消费者发送购买响应。
    (2.1)商家发送支付授权请求: P ∣ ∣ C I D ∣ ∣ K ∣ ∣ P||CID||K|| P∣∣CID∣∣K∣∣ 消费者证书 ∣ ∣ || ∣∣ 商家密钥交换证书 ∣ ∣ || ∣∣ 商家签名密钥证书; C I D CID CID 商家私钥签名随机密钥加密的交易 ID, K K K 支付网关公钥加密的随机密钥, S K B SK_B SKB 商家签名私钥, P K M PK_M PKM 银行公钥。
    (2.2)支付网关验证并生成支付授权:验证证书,验证 D P K C ( D S ) ? = H a s h [ H a s h ( P I ) ∣ ∣ O I M D ] D_{PK_C}(DS){? \atop =}{\rm Hash}[{\rm Hash}(PI)||{\rm OIMD}] DPKC(DS)=?Hash[Hash(PI)∣∣OIMD],验证商家交易 ID 与消费者交易 ID 相同;向发卡者发送授权请求。
    (2.3)支付网关返回授权信息:发卡者授权信息,支付网关证书,捕获令牌(商家账户需要时可选);支付网关私钥签名,随机密钥加密,商家公钥加密随机密钥。
    (3.1)商家发送捕获请求:最终支付金额,交易 ID;随机密钥加密,支付网关公钥加密随机密钥。
    (3.2)支付网关响应捕获:解密验证捕获请求,向发卡者发送结算请求,发卡者转账到商家账户;向商家返回签名证书,随机密钥加密,商家公钥加密随机密钥。
    (3.3)商家解密并验证捕获响应,保存收据,交易结束。
    SSL和SET对比

网络层

IPsec

  • 协议簇体系:SA,IKE,AH 协议,ESP 协议,SAD,SPD,DOI(解释域)。
  • SA:单向安全关联;通信双方对工作模式、加密算法、密钥、生命周期等的约定;通信双方需要一对 SA,分为输入流和输出流。
    安全参数索引(SPI):发送方产生 32 位随机数唯一标识 SA。
    目的 IP 地址:SA 的终点地址;端系统/路由器/网关/防火墙。
    安全协议标识符:表明关联的协议是 AH 还是 ESP。
    传输模式:仅保护有效荷载。
    隧道模式:保护整个 IP 数据包,包括 IP 报头及有效荷载。
  • 组合 SA:单个 SA 不能同时使用 AH 和 ESP。
    传输邻接:传输模式下,对 IP 数据包应用多个安全协议;仅允许在一个层次组合。
    重复隧道:隧道模式下,可以多层嵌套 SA,每层 SA 的起始 IP 可互不相同。
  • SAD(安全关联数据)
    安全参数索引
    序列号计数器:64 位计数器的低 32位为序列号。
    反重放窗口:64 位计数器和位图,防止重放。
    AH 信息:AH 协议认证算法、密钥。
    ESP 信息:ESP 协议加密算法、认证算法、密钥、初始向量。
    SA 生命周期
    Path MTU(最大传输单元路径)
  • SPD(安全策略数据库)
    传输层协议(UDP/TCP);源 IP;目标 IP;源端口;目标端口;动作(通过/拒绝/丢弃/ESP 保护/AH 保护)。
    IPsec功能及模式实现
    IPsec功能及模式安全性
  • AH 协议:验证报头;保证传输 IP 分组完整性和可靠性,防止重放。
    • 报头
      下一个头部:1 字节;报头后的协议类型:TCP 为 6,UDP 为17。
      载荷长度:1 字节;长度单位为 4 字节。
      保留:2字节。
      SPI:4 字节。
      序列号:4 字节。
      验证数据:默认 12 字节,需为 4 字节倍数;包含完整性校验值 ICV 及填充。
    • 滑动窗口实现反重放
      (1)新接收报文序列号在窗口内,验证通过后,在相应槽位标记接收;
      (2)新接收报文落在窗口右侧,验证通过,窗口右移;
      (3)接收报文落在窗口左侧/验证未通过,丢弃。
  • ESP 协议:封装有效荷载;为 IP 分组提供可靠性、完整性、保密性支持。
    • 报头
      SPI:4 字节。
      序列号:4 字节。
      有效负载 + 填充(0-255 字节) + 填充长度(2 字节) + 下一个报头:4 字节倍数;填充保证右对齐。
      验证数据:可变长;前面所有字段计算得到的 Hash 值。
  • IKE v1:ISAKMP 互联网安全关联和密钥交换协议;第一阶段建立 IKE SA,第二阶段建立 IPsec SA。
    • 第一阶段:主模式
      (1)A → \to B:发送 IKE 安全协议建立请求;加密算法、完整性验证算法、身份认证方法及认证字、D-H 组、IKE SA 生存周期。
      (2)B → \to A:回送 IKE 安全协议确认。
      (3)A → \to B:发送密钥生成消息;D-H 算法交换。
      (4)B → \to A:发送密钥生成消息;各自分别生成用于 ISAKMP 消息加密及验证的对称密钥。
      (5)A → \to B:发送身份和数据认证;使用预共享密钥或数字证书验证。
      (6)B → \to A:发送身份和数据认证。
    • 第一阶段:野蛮模式
      (1)A → \to B:发送 IKE 安全协议建立请求。
      (2)B → \to A:发送密钥生成信息。
      (3)A → \to B:发送验证数据。
    • 第二阶段:快速模式
      (1)A → \to B:发送 IPsec 安全协议建立请求。采用第一阶段协商好的 IKE SA 衍生的密钥加密和验证会话。
      (2)B → \to A:回送 IPsec 安全协议确认并生成新的用于 IPsec SA 的密钥。
      (3)A → \to B:发送确认信息,确认与对方可以通信。

TLS VPN建立过程
TLS VPN和IPsec VPN比较

  • QoS(服务质量):吞吐量;时延;拥塞控制/抖动;丢包率。
    流量控制:超时重传;接收端采用滑动窗口,告知发送方允许/停止发包。
    拥塞控制:慢启动 → \to 线性增大 → \to 乘法减少 → \to 快恢复。

防火墙

  • 包过滤防火墙
    规则:源IP地址;目标IP地址;源端口;目标端口;协议类型(UDP/TCP);接口(出站/入站/转发);动作(允许/拒绝/丢弃)。
    默认规则/姿态:转发;拒绝除非允许;允许除非拒绝。
    缺点:不检查高层协议,不能阻止针对特定应用漏洞和功能的攻击,不支持高级的用户认证;对 TCP/IP 协议本身缺陷无应对措施(如假冒 IP);只根据报头信息控制,无法到整合安全策略;日志记录有效信息不充分,不便于事后安全分析。

IDS

  • CIDF(通用入侵检测框架)
    • 事件产生器:收集外部所有需要分析的数据并转换为 GIDO(统一入侵检测对象)格式。
    • 事件分析器:通过对 GIDO 分析判断网络中行为是否合法。
    • 响应单元:发现入侵行为时做出反应,如切断连接、改变文件属性、简单报警。
    • 事件数据库:存放各种中间和最终 GIDO。
  • 基于异常:通过大量观察统计建立正常行为模式;对未知特征入侵行为查出率高,但误报率也高。
    • 概率统计:审计记录;主体(进程),行为(读/写/执行/输入/输出),客体(文件/程序/设备),异常条件,资源占用,时间戳;计数器,计量器,计时器,积分器,定时器。
    • 预测模型:马尔可夫模型;时间序列模型。
    • 基于监督学习:KNN (K 邻近算法);DT (决策树);SVM (支持向量机)。
    • 无监督学习:K-means 聚类;层次聚类。
  • 基于误用:描述出入侵行为特征;误报率低,但对新入侵行为防范能力弱。
    专家系统;模式匹配与协议分析;状态建模。
  • HIDS(基于主机):检测目标是运行于网络中的主机;重要主机、服务器、工作站、关键路由器。
    • 检测对象:网络流量;主机日志(系统日志、文件系统、进程记录)。
    • 缺点:通用性不强;性能受限。
  • NIDS(基于网络):被动在网络中监听整个网段数据流,捕获数据报。
    • 优点:易于部署;节省成本;通用性强。
    • 缺点:无法发现对主机系统资源的入侵行为;只检查报头信息,无法事件对有效负载的监控;漏报率较高。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1845283.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

20212416 2023-2024-2 《移动平台开发与实践》综合实践

移动平台开放综合实践 1.实验内容2.实验过程2.1 确定基础功能2.2 设计UI界面2.3 编写程序运行代码2.4 在基本功能的基础上丰富功能 3. 代码分析3.1设置按钮的点击事件监听器3.2 比分更新模块3.3 比分存储模块 4. 运行结果5.实践中遇到的问题及解决6.学习感悟与思考参考资料 1.实…

C++ 教程 - 05 构建编译

文章目录 构建工具cmake安装与使用CMakeLists.txt编写使用案例 构建工具 cmake, Cross Platform Make, (对C)跨平台编译工具,将CMakeLists.txt 文件编译为对应的文件,如linux下的 Makefile,然后使用make命…

【数据结构与算法(C语言)】离散事件模拟- 单链表和队列的混合实际应用

目录 1. 前言2. 流程图3. 数据结构3.1 单链表3.2 链式队列 4. 核心函数4.1 银行业务模拟 void BankSimulation()4.2 初始化 void OpenForDay()4.3 客户到达 void CustomerArrived(Event en)4.4 客户离开 void CustomerArrived(Event en) 5. 非核心函数5.1 新建客户 NewCustomer…

手机天线都去哪里了?

在手机的演变历程中,天线的设计和位置一直是工程师们不断探索和创新的领域。你是否好奇,现在的手机为什么看不到那些曾经显眼的天线了呢? 让我们一起揭开这个谜题。 首先,让我们从基础开始:手机是如何发出电磁波的&…

云手机在跨平台兼容性方面优势明显?有何应用场景

跨平台设备间无缝切换和数据同步的需求现在是很多人或者企业都需要的,云手机在这些方面似乎有很大优势?下面我们来具体探讨在兼容方面,云手机有何出彩之处?又支持哪些应用场景呢 先来说说云手机跨平台兼容性优势所在,要…

web端使用高德地图

web端使用高德地图 一、申请高德key和秘钥二、在项目中引入所需功能js、css文件三、实现地图选点、回显选点四、自定义地图私密限制 一、申请高德key和秘钥 申请高德key 申请成功后可以得到key 二、在项目中引入所需功能js、css文件 <script src"https://webapi.am…

大模型网信办备案全网最详细说明(附附件)

本文共分为以下几个章节 一、大模型算法备案的强制性 二、生成式人工智能(大语言模型)安全评估要点 三、大模型备案必备材料重点说明 四、大模型备案填报流程 五、大模型备案时间成本对比 六、备案建议 附录、过程性材料 一、大模型算法备案的强制性 1、强制要求备案 …

JMeter详解

一、线程组 作用:线程组就是控制Imeter用于执行测试的一组用户 位置:右键点击测试计划’-->添加 -->线程(用户)--> 线程组 特点: 模拟多人操作线程组可以添加多个&#xff0c;多个线程组可以并行或串行取样器(请求)和逻辑控制器必须依赖线程组才能使用线程组下可以…

ECM和MEMS技术在心肺声学监测中的应用

心肺疾病是全球范围内导致死亡的主要原因。因此&#xff0c;对这些疾病迹象的准确和快速评估对于为患者提供适当的医疗保健至关重要。心血管疾病最重要的迹象之一是心脏周期的异常。大多数呼吸系统疾病则表现为呼吸周期的异常。有多种方法可以监测心脏和肺部的周期。听诊是监测…

【面试干货】Java中的访问修饰符与访问级别

【面试干货】Java中的访问修饰符与访问级别 1、public2、protected3、默认&#xff08;没有访问修饰符&#xff09;4、private &#x1f496;The Begin&#x1f496;点点关注&#xff0c;收藏不迷路&#x1f496; 在Java中&#xff0c;访问修饰符用于控制类、变量、方法和构造器…

blender 快捷键 常见问题

一、快捷键 平移视图&#xff1a;Shift 鼠标中键旋转视图&#xff1a;鼠标中键缩放视图&#xff1a;鼠标滚动框选放大模型&#xff1a;Shift B 二、常见问题 问题&#xff1a;导入模型成功&#xff0c;但是场景中看不到。 解决办法&#xff1a;视图-裁剪起点&#xff0…

“Docker入门指南:概念与安装详解“

目录 # 概念 1. Docker常见问题 2. docker概念和安装 2.1 Docker的组成 2.2 Docker 组件及关系表 2.3 docker核心思想 2.4 docker镜像与容器两个核心概念 2.5 容器概念图 2.6 docker核心技术 2.6.1 镜像 (Image) 概述 关系 示例 2.6.2 容器 (Container) 概述 关…

贪吃蛇——c语言版

文章目录 演示效果实现的基本功能技术要点源代码实现功能GameStart打印欢迎界面和功能介绍绘制地图创建蛇创建食物 GameRun打印提示信息蛇每走一步 GameEnd蛇死亡后继续游戏 演示效果 贪吃蛇1.0演示视频 将终端应用程序改为控制台主机 实现的基本功能 贪吃蛇地图绘制蛇吃食物的…

[Mysql] 数据库基本概念

前言---数据库系统发展史 当今主流数据库介绍 一、操作系统 Linux操作系统 &#xff1a;RedHat CentOS Debian Ubuntu OpenSUSE 信创标准 会让系统逐渐国产化 国产系统&#xff1a;华为 欧拉 阿里 龙蜥 腾讯 tencentOS 银河麒麟 中标麒麟…

分享:MoneyPrinterTurbo只需一个视频主题或关键词全自动生成一个高清的短视频

MoneyPrinterTurbo是基于原有的MoneyPrinter项目进行优化和重构后推出的新版本。它利用先进的AI技术&#xff0c;通过用户提供的视频主题或关键词&#xff0c;全自动生成视频文案、素材、字幕以及背景音乐&#xff0c;并最终合成高清的短视频。 功能特性 AI智能文案生成&…

redis高可用-主从同步

目录 一&#xff1a;背景 二&#xff1a;实现方式 三&#xff1a;实际使用 一&#xff1a;背景 上一节我们介绍了centos下redis下的安装配置&#xff0c;是在单台服务器部署一个redis服务&#xff0c;这种模式是单机模式下使用的&#xff0c;如果出现服务故障&#xff0c;re…

Spring AI 调用 openAI 进行语音识别

Spring AI支持语音识别功能&#xff0c;目前仅支持OpenAI的Transcription模型。 项目搭建&#xff1a; 参考 Spring AI 介绍以及与 Spring Boot 项目整合 源码示例&#xff1a; RestController RequestMapping("/openai") public class OpenAiIAudioTranscriptionC…

幂集000

题目链接 幂集 题目描述 注意点 集合中不包含重复的元素 解答思路 可以使用深度优先遍历的思想按顺序将相应的元素添加到子集中&#xff0c;并将每个子集添加到结果集 代码 class Solution {public List<List<Integer>> subsets(int[] nums) {List<List&…

VirtualBox虚拟机下安装Ubuntu24.04操作系统

目录 0 背景1 虚拟机的安装1.1 下载安装包1.2 走安装向导 2 操作系统的安装2.1 下载光盘镜像文件2.2 安装操作系统到虚拟机上 3 基本配置3.1 网络连接方式3.2 共享文件夹3.3 设置显存大小 0 背景 首先说说Ubuntu系统&#xff0c;或者更普遍一点&#xff0c;Linux系统究竟有什么…

Java项目学习(员工管理)

新增、员工列表、编辑员工整体代码流程与登录基本一致。 1、新增员工 RestController RequestMapping("/admin/employee")EmployeeController 类中使用了注解 RestController 用于构建 RESTful 风格的 API&#xff0c;其中每个方法的返回值会直接序列化为 JSON 或…