当前位置: 首页 > news >正文

网络安全之安全协议浅谈

安全协议

  • 安全协议概述
  • 安全协议分类
  • 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自身都能够通过证书予以认证。

相关文章:

网络安全之安全协议浅谈

安全协议 安全协议概述安全协议分类IPSecIPSec安全协议IPSec架构IPSec封装模式AH协议ESP协议SET协议SET协议电子交易模型SET协议安全目标认证中心CA 安全协议概述 安全协议是信息交换安全的核心,它在网络不同层次上、针对不同应用,通过对各种密码学技术…...

华为云部署前端项目发生的事

今天刚买了一个云服务,想着部署一下前端项目: 使用的是 docker nginx 部署 部署方法,在以往的文章中有介绍,如有兴趣可以看看docker 部署; 结果发现部署成功之后,竟然无法访问,从命令来看&…...

需求:实现一个可以统计代码的运行时间

需求:有一个做加法计算的函数,要统计执行这个加法函数代码运行了多久 import timedef add(a, b):time.sleep(1)return a bst time.time() add(100, 200) et time.time() print("该函数运行时间为:", et - st) 学了闭包&#x…...

软考高级之redis中使用zset实现延迟队列,你答对了么?

实现延迟队列的思路 zset的特性,带有分数的排序,以时间戳作为分数进行排序 添加任务 zdd取出任务 zrangbyscore执行任务 zrem 定时任务 public static void main(String[] args) {Jedis jedis new Jedis("ip", 6379);TimerTask task new …...

CS 下载安装详解

目录 CS简介: CS下载地址: CS的安装: CS简介: CS为目前渗透中常用的一款工具,它的强大在于控制windows木马,CS主要控制windows木马。 CS下载地址: 链接:https://pan.baidu.com/…...

前端canvas项目实战——在线图文编辑器(十):小地图MiniMap(上)

目录 前言一、 效果展示二、 实现步骤0. 行动前的思考1. 为小地图更新「背景图」2. 为小地图更新「滑动窗口」2.1 获取新的滑动窗口「宽高」2.2 获取新的滑动窗口「位置」3. 为小地图更新「遮罩」后记前言 上一篇博文中,我们引入了「逻辑画布」的概念,让整个工具的页面看起来…...

linux的chmod的数字太难记了,用u, g, o, a更简单!

u, g, o, 和 a是用来设置或查看文件或目录权限在类Unix或Linux系统中的特殊字符,它们分别代表文件或目录的所有者(user)、所属组(group)、其他用户(others)和所有用户(all users)。 而权限方r和w是其中的两种,分别代表读权限(read&#xff0…...

牛客热题:有效括号

📟作者主页:慢热的陕西人 🌴专栏链接:力扣刷题日记 📣欢迎各位大佬👍点赞🔥关注🚓收藏,🍉留言 文章目录 牛客热题:有效括号题目链接方法一&#x…...

利用SQL语句实现多表联合查询——多表关系介绍

1.多对多查询 先创建一个student表和course表,应该利用外键来实现,通过一个中间表分别对应student和course中的id CREATE TABLE student (id INT unsigned PRIMARY KEY,name VARCHAR(255),no VARCHAR(50) ); CREATE TABLE course (id INT PRIMARY KEY,…...

Java中IO流类的体系

Java为我们提供了多种多样的IO流,我们可以根据不同的功能及性能要求挑选合适的IO流,如图所示,为Java中IO流类的体系。 从上图发现,很多流都是成对出现的,比如: FileInputStream/FileOutputStream&#xff0…...

【调试笔记-20240521-Linux-编译 QEMU/x86_64 可运行的 OpenWrt 固件】

调试笔记-系列文章目录 调试笔记-20240521-Linux-编译 QEMU/x86_64 可运行的 OpenWrt 固件 文章目录 调试笔记-系列文章目录调试笔记-20240521-Linux-编译 QEMU/x86_64 可运行的 OpenWrt 固件 前言一、调试环境操作系统:Ubuntu 22.04.4 LTS编译环境调试目标 二、调…...

GitLab的原理及应用详解(六)

本系列文章简介: 随着软件开发的不断进步和发展,版本控制系统成为了现代软件开发过程中不可或缺的一部分。而GitLab作为其中一种流行的版本控制工具,在软件开发领域享有广泛的应用。GitLab不仅提供了强大的版本控制功能,还集成了项…...

【调和级数】100321. 优质数对的总数 II

本文涉及知识点 调和级数 质数、最大公约数、菲蜀定理 LeetCode100321. 优质数对的总数 II 给你两个整数数组 nums1 和 nums2,长度分别为 n 和 m。同时给你一个正整数 k。 如果 nums1[i] 可以被 nums2[j] * k 整除,则称数对 (i, j) 为 优质数对&#…...

Java SE入门及基础(54) 函数式接口

目录 1. 什么是函数式接口 函数式接口 示例 示例 2. 函数式编程 示例 3. Lambda 表达式延迟执行 应用场景 示例 4. Consumer 接口 解释说明 示例 5. BiConsumer 接口 解释说明 示例 6. Predicate 接口 解释说明 示例 练习 7. Function 接口 解释说明 示例…...

轻松同步:将照片从三星手机传输到iPad的简便方法

概括 想要在新 iPad 上查看三星照片吗?但是,如果您不知道如何将照片从三星手机传输到 iPad,则无法在 iPad 上查看图片。为此,本文分享了 7 个有用的方法,以便您可以使用它们在不同操作系统之间轻松发送照片。现在&…...

MySQL查询某个字段含有字母数字的值

在MySQL中,要查询某个字段含有字母和数字的值,可以使用正则表达式配合REGEXP操作符。以下是一个详细的示例,说明如何编写这样的查询。 假设我们有一个名为my_table的表,其中有一个名为my_column的字段,我们想要查询这…...

通关!游戏设计之道Day14

力量与你同在 所有类型的游戏里,赛车类,解谜类,动作冒险类和射击类你都能找到强化道具。 强化道具 设计强化道具时,设计师应该开动脑筋琢磨下面几个问题 1.强化道具有什么用? 2.他长什么样子,在整个游戏…...

实现一个自定义 hook,用于强制刷新当前组件

写在前面 在 react 中,如果 state 数据发生变化,我们知道,会重新渲染该组件。 但是这个前提是我们需要依赖 state 数据的变化,那比如我们并不想定义 state,又或者说我们的操作不能引起 state 的变化,此时…...

牛客热题:滑动窗口的最大值

📟作者主页:慢热的陕西人 🌴专栏链接:力扣刷题日记 📣欢迎各位大佬👍点赞🔥关注🚓收藏,🍉留言 文章目录 牛客热题:滑动窗口的最大值题目链接方法一…...

Adobe产品安装目录修改

进入安装包目录&#xff0c;进入到products文件夹 编辑driver.xml文件 将“InstallDir”修改为你需要安装的软件的目录&#xff0c;我这里是修改到D:\Adobe目录 <DriverInfo> <ProductInfo> xxxxxxxxxxxxxxxxx </ProductInfo> 拷贝RequestInfo这部分…...

CVPR 2025 MIMO: 支持视觉指代和像素grounding 的医学视觉语言模型

CVPR 2025 | MIMO&#xff1a;支持视觉指代和像素对齐的医学视觉语言模型 论文信息 标题&#xff1a;MIMO: A medical vision language model with visual referring multimodal input and pixel grounding multimodal output作者&#xff1a;Yanyuan Chen, Dexuan Xu, Yu Hu…...

3.3.1_1 检错编码(奇偶校验码)

从这节课开始&#xff0c;我们会探讨数据链路层的差错控制功能&#xff0c;差错控制功能的主要目标是要发现并且解决一个帧内部的位错误&#xff0c;我们需要使用特殊的编码技术去发现帧内部的位错误&#xff0c;当我们发现位错误之后&#xff0c;通常来说有两种解决方案。第一…...

循环冗余码校验CRC码 算法步骤+详细实例计算

通信过程&#xff1a;&#xff08;白话解释&#xff09; 我们将原始待发送的消息称为 M M M&#xff0c;依据发送接收消息双方约定的生成多项式 G ( x ) G(x) G(x)&#xff08;意思就是 G &#xff08; x ) G&#xff08;x) G&#xff08;x) 是已知的&#xff09;&#xff0…...

大数据零基础学习day1之环境准备和大数据初步理解

学习大数据会使用到多台Linux服务器。 一、环境准备 1、VMware 基于VMware构建Linux虚拟机 是大数据从业者或者IT从业者的必备技能之一也是成本低廉的方案 所以VMware虚拟机方案是必须要学习的。 &#xff08;1&#xff09;设置网关 打开VMware虚拟机&#xff0c;点击编辑…...

论文浅尝 | 基于判别指令微调生成式大语言模型的知识图谱补全方法(ISWC2024)

笔记整理&#xff1a;刘治强&#xff0c;浙江大学硕士生&#xff0c;研究方向为知识图谱表示学习&#xff0c;大语言模型 论文链接&#xff1a;http://arxiv.org/abs/2407.16127 发表会议&#xff1a;ISWC 2024 1. 动机 传统的知识图谱补全&#xff08;KGC&#xff09;模型通过…...

Ascend NPU上适配Step-Audio模型

1 概述 1.1 简述 Step-Audio 是业界首个集语音理解与生成控制一体化的产品级开源实时语音对话系统&#xff0c;支持多语言对话&#xff08;如 中文&#xff0c;英文&#xff0c;日语&#xff09;&#xff0c;语音情感&#xff08;如 开心&#xff0c;悲伤&#xff09;&#x…...

拉力测试cuda pytorch 把 4070显卡拉满

import torch import timedef stress_test_gpu(matrix_size16384, duration300):"""对GPU进行压力测试&#xff0c;通过持续的矩阵乘法来最大化GPU利用率参数:matrix_size: 矩阵维度大小&#xff0c;增大可提高计算复杂度duration: 测试持续时间&#xff08;秒&…...

在WSL2的Ubuntu镜像中安装Docker

Docker官网链接: https://docs.docker.com/engine/install/ubuntu/ 1、运行以下命令卸载所有冲突的软件包&#xff1a; for pkg in docker.io docker-doc docker-compose docker-compose-v2 podman-docker containerd runc; do sudo apt-get remove $pkg; done2、设置Docker…...

Web 架构之 CDN 加速原理与落地实践

文章目录 一、思维导图二、正文内容&#xff08;一&#xff09;CDN 基础概念1. 定义2. 组成部分 &#xff08;二&#xff09;CDN 加速原理1. 请求路由2. 内容缓存3. 内容更新 &#xff08;三&#xff09;CDN 落地实践1. 选择 CDN 服务商2. 配置 CDN3. 集成到 Web 架构 &#xf…...

Netty从入门到进阶(二)

二、Netty入门 1. 概述 1.1 Netty是什么 Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients. Netty是一个异步的、基于事件驱动的网络应用框架&#xff0c;用于…...