网络安全之安全协议浅谈

安全协议

  • 安全协议概述
  • 安全协议分类
  • IPSec
  • IPSec安全协议
    • IPSec架构
    • IPSec封装模式
    • AH协议
    • ESP协议
    • SET协议
    • SET协议电子交易模型
    • SET协议安全目标
    • 认证中心CA

安全协议概述

  • 安全协议是信息交换安全的核心,它在网络不同层次上、针对不同应用,通过对各种密码学技术的应用与结合,为网络传输协议增加安全算法协商和数据加/解密等安全机制,从而实现信息交换的安全性。
  • 数据交换中的机密性、完整性、真实性和不可否认性主要通过密码技术实现。通信双方需要在数据交换之前采用加密算法、签名算法和密钥交换算法等问题进行协商,并达成一致;在数据交换过程中通信双方按所达成的协议进行加密和认证处理,以保证信息交换的安全性。

安全协议分类

  • 按网络体系结构层次划分,安全协议可分为:
  1. 链路层安全协议:局域网安全协议IEEE 802.10、虚拟局域网VLAN协议IEEE 802.1Q、点对点隧道协议PPTP、L2TP等。
  2. 网络层安全协议:IP安全协议IPsec等。
  3. 传输层安全协议:安全套接层协议SSL等。
  4. 应用层安全协议:安全电子邮件协议PGP、PEM、S-MIME,安全超文本传输协议S-HTTP、安全电子交易协议SET、安全电子付费协议SEPP等。

IPSec

  • IPSec是一种开放标准的网络层安全框架结构,通过使用加密为基础的安全服务以确保在IP网络上进行安全通信。比如,Windows系列用的就是IETF IPSec 工作组开发的标准。
  • 安全:IPSec是IETF的IPSec小组建立的一组IP安全协议集。IPSec定义在网际层使用的安全服务,其功能包括数据加密、对网络单元的访问控制、数据源地址验证、数据完整性检查和防止重放攻击。
  • 协商:IPSec的安全服务要求支持共享密钥。其必须支持手工输入密钥的方式,目的是保证IPSec协议的互操作性。同时,也引入密钥管理协议(Internet密钥交换协议——IKE),该协议可以动态认证IPSec对等体,协商安全服务,并自动生成共享密钥。
  • IPSec有两个安全目标:
    1. 保护IP数据包的内容
    2. 通过数据包筛选和受信任通信来抵御网络攻击

  • IPSec协议工作在网络层,使其在单独使用时可以同时保护基于TCP或UDP的协议数据。与传输层或更高层的安全协议相比,IPsec协议提供的安全保护更为基础;但它必须处理可靠性和分片的问题,同时也增加了复杂性和处理开销。

IPSec安全协议

IPSec架构

在这里插入图片描述
IPSec(Internet Protocol Security)是一种用于保护网络通信的安全协议套件。它通过提供加密、身份验证和完整性保护等功能,确保数据在传输过程中的机密性、完整性和可信性。

IPSec的架构包括以下几个主要组件:

  1. 安全关联IPSec安全联盟SA(Security Association):SA是IPSec通信的安全参数集合,包括加密算法、身份验证方法、密钥管理和安全参数的生命周期等。

    • 每个SA都有唯一的标识符,用于识别通信中使用的安全参数。
    • 安全联盟是IPSec的基础, 是通信双方建立的一种协定,决定了用来保护数据包的协议、转码方式、密钥以及密钥有效期等。AH和ESP都要用到安全联盟,IKE的一个主要功能就是建立和维护安全联盟。
  2. 访问控制列表(Access Control List,ACL):ACL用于确定哪些数据包需要进行IPSec处理。它可以基于源IP地址、目标IP地址、协议类型等条件来匹配数据包,并指定相应的IPSec策略。

  3. 安全策略数据库(Security Policy Database,SPD):SPD用于存储与IPSec相关的安全策略信息,包括SA的参数、ACL规则等。它决定了数据包的处理方式,即是否需要进行IPSec保护。

  4. 安全关联数据库(Security Association Database,SAD):SAD用于存储已建立的SA的信息,包括标识符、加密算法、密钥等。在数据包传输过程中,根据SA的标识符可以找到相应的安全参数。

  5. 密钥管理协议(Key Management Protocol):密钥管理协议用于生成、分发和更新IPSec通信所需的密钥。常见的密钥管理协议有Internet Key Exchange(IKE)和Internet Security Association and Key Management Protocol(ISAKMP)。

IPSec可以运用于IP层或者在IP层之上的传输层,提供对IP数据包的安全保护。它可以用于虚拟私有网络(VPN)、远程访问控制、数据中心互连等场景,保障网络通信的安全性和机密性。

IPSec封装模式

  • 隧道模式(Tunnel Mode):用户的整个IP数据包被用来计算AH或ESP头,AH或ESP头以及ESP加密的用户数据被封装在一个新的IP数据包中。通常,隧道模式应用在两个安全网关之间的通信。

  • 传输模式(Transport Mode):只是传输层数据被用来计算AH或ESP头,AH或ESP头以及ESP加密的用户数据被放置在原IP包头后面。通常,传输模式应用在两台主机之间的通信,或一台主机和一个安全网关之间的通信。

AH协议

  • AH(Authentication Header) 协议:AH用来向IP数据包(IP 报头+数据负载)提供身份验证、完整性与抗重播攻击。但不提供机密性,即它不对数据进行加密。数据可读,但禁止修改。AH使用哈希算法签名数据包

  • 例如,使用计算机 A 的 Alice 将数据发送给使用计算机 B 的 Bob。IP 报头、AH 报头和数据的完整性都得到保护。这意味着 Bob 可以确定确实是 Alice 发送的数据并且数据未被修改。

  • AH被置于IP报头与IP负载之间。在IP 报头的协议字段使用 51 来标识AH。AH可以独立使用,也可以与ESP协议组合使用。
    在这里插入图片描述
    在这里插入图片描述

字段描述
Next Header使用IP协议字段的协议标识符来标识IP负载
AH Length表示AH报头的长度
Reserved保留字段
SPI安全参数索引,与目标地址及安全协议(AH或ESP)组合使用,以确保通信的正确安全关联
Sequence Number用于该数据包的抗重放攻击
Authentication Data身份与完整性认证数据

ESP协议

  • ESP(Encapsulated Security Payload) 协议:ESP封装安全负载协议是IPsec体系结构中另一个主要协议,它提供IP层加密和验证数据源,以抵御网络监听,保证机密性
  • 因为AH虽然可以保护通信免受篡改,但并不对数据进行加密
  • ESP通过加密需要保护的数据以及在ESP的数据部分放置这些加密的数据来提供机密性,且其加密采用对称密钥加密算法。

    • 传输模式:ESP头放置在IP头之后、上层协议头之前(IP数据负载部分之前),加密一个传输层的段(如:TCP、UDP、ICMP、IGMP)
    • 隧道模式:ESP头在被封装的IP头之前,加密一整个的IP 数据报
  • 封装受保护数据可以为整个原始数据报提供机密性

  • IANA分配给ESP的协议标识值为50,在ESP头前的协议头总是在“next head”字段(IPv6)或“协议”(IPv4)字段里包含该值 50。

  • ESP提供机密性、数据起源验证、无连接的完整性、抗重放和有限业务流机密性。ESP可以独立使用,也可与 AH 组合使用。
    在这里插入图片描述

字段描述
SPI安全参数索引(32位),用来标识处理此数据包的特定安全关联
Sequence Number序号(32位),用于抵抗重放攻击的唯一、递增序号
受保护数据通过加密保护的传输层协议内容(传输模式)或IP包(隧道模式)
填充用于满足加密算法对明文长度要求、保证填充长度字段和下一个头字段排列、提供部分业务流机密性
填充长度填充字节的数量(8位)。
下一个头标识受保护数据的协议标识,如上层协议标识符(8位)。
验证数据包含完整性校验值(ICV)的可变长度字段,用于验证数据完整性。
  • 验证数据(可变):完整性检查值。验证数据是可变长字段,它包含一个完整性校验值(ICV),ESP分组中该值的计算不包含验证数据本身。字段长度由选择的验证函数指定。验证数据字段是可选的,只有安全联盟SA选择验证服务,才包含验证数据字段。验证算法规范必须指定ICV长度、验证的比较规则和处理步骤。

SET协议

  • 电子交易安全性一直是影响电子商务发展的主要因素之一。在开放式网络环境下, 交易过程所涉及的商业信息、个人隐私和支付资金如果不能得到有效的保护, 以电子支付为基础的网上交易就不可能得到真正的发展。
  • SET(Security Electronic Transaction)是由世界两大信用卡组织Visa和Master Card联合Netscape、Microsoft等公司,于1997年6月1日推出的,基于RSA不对称密钥算法的安全电子交易标准
  • SET是以信用卡支付为基础, 在Internet上实现安全电子交易的技术协议和系统规范。该协议得到了IBM、微软、AOL、GTE、SAIC等众多公司的支持和IETF标准的认可, 是构建安全电子支付系统和网上交易环境的重要标准之一。

SET协议电子交易模型

  • 基于SET的电子交易与传统信用卡购物在交易流程上十分相似,但实施过程是在Internet上进行。数据传输和交易安全遵循SET规范。
    在这里插入图片描述
  • 在SET协议电子交易模型图中,连接各交易角色的实线代表Internet,虚线代表专用网
  1. 交易前,买方应在发卡银行开设信用卡帐户,获取信用卡,并向认证中心注册签证,成为电子交易的合法用户。卖方应与信用卡收单银行签约,并取得认证中心的电子证书, 成为Internet上提供商品或服务的可信商家。
  2. 交易时,用户通过Internet在商家Web上浏览产品目录、选择购买商品,并将定单填好、确认后连同付款指令发送给商家。其中,用户要对付款指令中的信用卡帐户信息用自己的公开密钥进行加密(以保证商家无法看到),并对全部信息进行加密和数字签名(对摘要),以保证定单和付款指令的安全性和有效性
  3. 商家收到订单和付款指令后,验证用户身份并解密取出定单信息再将用户公钥加密的帐户信息加密和数字签名后,发送给认证中心。
  4. 认证中心验证商家身份并初次解密后将信息与Internet隔绝,用用户的私有密钥再次解密,从而获得用户信用卡帐户的明文信息,然后通过专线发送给收单银行。
  5. 收单银行根据收到的付款信息,通过金融专用网络向发卡银行发出付款认证要求,发卡银行将认证结果传回收单银行。收单银行将认证结果加密和数字签名后传回商家。
  6. 商家验证收单银行身份并解密取出认证结果后,将交易是否成功的消息加密和数字签名后发送给用户。用户验证商家身份并解密,可得到交易是否成功的确认。
  7. 若交易成功,商家发送商品或提供服务,然后通知收单银行请求支付,收单银行将相应款项从发卡银行用户帐户中解付到商家帐户上,从而完成了一次电子交易过程。

SET协议安全目标

  • SET协议规定电子交易时证书信息、购买信息、认可信息及划帐信息的格式和实体间消息的传输协议,为不同交易软件遵循相同的传输协议和消息格式,具有兼容性和互操作性提供保证。
  • 基于SET协议的电子交易系统可实现以下安全目标:
    1. 信息传输的安全性:信息在Internet上安全传输, 不会被窃取或篡改。
    2. 用户资料的安全性:商家只能看到定单, 不能看到帐户信息。
    3. 多方认证:解决交易中用户支付能力、商家信誉度和通信双方身份确认等一系列认证问题。

认证中心CA

  • 为实现这些安全目标,SET协议引入认证中心,作为整个交易体系的核心。

  • 认证中心CA(Certificate Authority),是电子交易中受信任的第三方机构,负责生成、颁发、撤销和管理证书,提供对各个交易实体身份和密钥的认证

  • 根据国际电信联盟制定的X.509 标准为电子交易系统中的各个实体颁发证书。X.509证书包含版本号、证书序列号、证书有效期限、拥有者的唯一标识名、拥有者的公开密钥信息、CA的唯一标识名、CA的数字签名与签名算法等内容(见PKI证书格式)。

AttributeCertificate ::= SEQUENCE {
  acinfo               AttributeCertificateInfo,
  signatureAlgorithm    AlgorithmIdentifier,
  signatureValue        BIT STRING
  }
  AttributeCertificateInfo ::= SEQUENCE {
  version               AttCertVersion, --version is v2,
  holder                Holder,
  issuer                AttCertIssuer,
  signature             AlgorithmIdentifier,
  serialNumber          CertificateSerialNumber,
  attrCertValidityPeriod   AttCertValidityPeriod,
  attributes             SEQUENCE OF Attribute,
  issuerUniqueID        UniqueIdentifier  OPTIONAL,
  extensions            Extensions  OPTIONAL
  }
  • 在SET协议下,不同的CA结点构成多个信任层次,呈树型结构。如果通信实体对签发证书的CA结点本身不信任,可通过回溯祖先结点的方法向上层CA验证该CA结点的身份,以确定证书的有效性,依此类推,可一直追溯到公认权威的Root CA处。
  • 不同层次的CA结点之间,也可通过回溯共同祖先结点的方法进行相互认证。这样,SET协议下电子交易系统中的各种实体或角色包括CA自身都能够通过证书予以认证。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

006、API_单线程

Redis使用了单线程架构和I/O多路复用模型来实现高性能的内存数据库 服务,本节首先通过多个客户端命令调用的例子说明Redis单线程命令处理 机制,接着分析Redis单线程模型为什么性能如此之高,最终给出为什么理 解单线程模型是使用和运维Redis的…

面向对象------多态

1.多态的定义 通俗来说,当同一种行为或者事情发生在不同的对象上,这些行为或者事情最终得到的结果不同。 注意:多态要发生在继承的基础上。 例如:彩色打印机和黑白打印机。 彩色打印机和黑白打印机是不同的对象,但…

微信小程序源码-基于Java后端的小区租拼车管理信息系统毕业设计(附源码+演示录像+LW)

大家好!我是程序员一帆,感谢您阅读本文,欢迎一键三连哦。 💞当前专栏:微信小程序毕业设计 精彩专栏推荐👇🏻👇🏻👇🏻 🎀 Python毕业设…

跟TED演讲学英文:How to escape education‘s death valley by Sir Ken Robinson

How to escape education’s death valley Link: https://www.ted.com/talks/sir_ken_robinson_how_to_escape_education_s_death_valley Speaker: Sir Ken Robinson Date: April 2013 文章目录 How to escape educations death valleyIntroductionVocabularySummaryTranscri…

使用残差网络识别手写数字及MNIST 数据集介绍

MNIST 数据集已经是一个几乎每个初学者都会接触的数据集, 很多实验、很多模型都会以MNIST 数据集作为训练对象, 不过有些人可能对它还不是很了解, 那么今天我们一起来学习一下MNIST 数据集。 1.MNIST 介绍 MNIST 数据集来自美国国家标准与技术研究所, National Institute of S…

Spring MVC+mybatis项目入门:旅游网(四)用户注册——mybatis的配置与使用以及Spring MVC重定向

个人博客:Spring MVCmybatis项目入门:旅游网(四)用户注册2-持久化 | iwtss blog 先看这个! 这是18年的文章,回收站里恢复的,现阶段看基本是没有参考意义的,技术老旧脱离时代(2024年…

MiniMax 悄咪咪上线的这款 AI 产品,好用到爆炸!

大模型太卷了!上周国外某款多模态大模型的出现,立刻掀起了 AI 领域对话式多模态交互的热潮。不管是文字、语音,还是图片,都能与你进行实时交互。随后,谷歌也推出了类似的 Astra。 然而,国外的交互式大模型…

线性回归模型之套索回归

概述 本案例是基于之前的岭回归的案例的。之前案例的完整代码如下: import numpy as np import matplotlib.pyplot as plt from sklearn.linear_model import Ridge, LinearRegression from sklearn.datasets import make_regression from sklearn.model_selectio…

2024年弘连网络FIC大会竞赛题线下决赛题

总结: FIC决赛的时候,很多小问题没发现,在pve平台做题确实很方便。 这套题目复盘完,服务器这块的知识确实收获了很多,对pve集群平台和网络拓扑也有了一定的认识,感谢各位大佬悉心指导。 接下来&#xff0…

【数据结构】哈希表的原理及其实现

文章目录 哈希表的概念哈希函数的设计常见的哈希函数 哈希冲突1. 闭散列代码实现 2. 开散列拉链法的优点 针对开散列哈希的扩展基于开散列拉链法封装哈希表MyHash.h 基于哈希表实现unordered_map类Myunordered_map.h 基于哈希表实现unordered_set类Myunordered_map.h 哈希表的概…

ROCm上运行Transformer

10.7. Transformer — 动手学深度学习 2.0.0 documentation (d2l.ai) 代码 import math import pandas as pd import torch from torch import nn from d2l import torch as d2l#save class PositionWiseFFN(nn.Module):"""基于位置的前馈网络""&qu…

解决Error: error:0308010C:digital envelope routines::unsupported的四种解决方案

问题描述: 报错:Error: error:0308010C:digital envelope routines::unsupported 报错原因: 主要是因为 nodeJs V17 版本发布了 OpenSSL3.0 对算法和秘钥大小增加了更为严格的限制,nodeJs v17 之前版本没影响&am…

Rust后台管理系统Salvo-admin源码编译

1.克隆salvo-admin后台管理系统源码: https://github.com/lyqgit/salvo-admin.git 2.编译 编译成功 3.创建mysql数据库与执行sql脚本 输入名称ry-vue 执行sql脚本 全部执行上面3个sql 修改数据库用户名与密码: 清理及重新编译 cargo clean cargo build 4.运行并测试 cargo…

基于JAVA GUI体育馆管理系统的会员功能

Java GUI即Java图形用户界面,是一种使用图形化元素(如窗口、按钮、文本框等)来构建用户界面的技术。它基于Java的Swing框架,可以用于创建各种复杂的用户界面,包括窗口、对话框、菜单、按钮、文本框、复选框、下拉列表等…

仅需一块 4GB 的 GPU ,就能运行开源大语言模型:Llama3 70B

最强的开源大语言模型 Llama3 已经发布一段时间了,一些盆友资源有限,私信询问是否可以使用 4GB 的 VRAM 在本地运行 Llama3 70B。 与 GPT-4 相比,Llama3 的性能如何?Llama3 使用了哪些关键的前沿技术使其变得如此强大&#xff1f…

Oracle 并行和 session 数量的

这也就是为什么我们指定parallel为4,而实际并行度为8的原因。 insert create index,发现并行数都是加倍的 Indexes seem always created with parallel degree 1 during import as seen from a sqlfile. The sql file shows content like: CREATE INDE…

SwiftUI中List的样式及使用详解(添加、移动、删除、自定义滑动)

SwiftUI中的List可是个好东西,它用于显示可滚动列表的视图容器,类似于UITableView。在List中可以显示静态或动态的数据,并支持垂直滚动。List是一个数据驱动的视图,当数据发生变化时,列表会自动更新。 针对List&#x…

windows 7 10 11快捷键到启动页面

1.快速打开用户启动文件夹 shell:startup 方式2:快速打开系统启动文件夹 shell:Common Startup shell:Common Startup

燃数科技前端25-40K*14薪一面超简单,下周二面啦

​​​​​​​ 文章末尾扫描二维码领取地址 一面 1、自我介绍 2、低代码如何设计的 3、react路由原理 4、react生命周期 5、什么是回调地狱,如何解决 6、jwt和session有什么区别 7、js文件相互引用有什么问题?如何解决 8、一个很大的json文件…

腾讯TDSQL-C灰度发布列存索引; Azure Copilot集成支持Azure上各种托管数据库;

重要更新 1. Copilot for Azure新增了对Azure SQL、 Azure Database for MySQL的支持([8] [14])。Copilot for Azure是微软云提供的基于大模型技术的助手工具,主要能力包括了:该大模型可以获得最新的文档,以及客户的Azure资源情况&#xff0c…