当前位置: 首页 > 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这部分…...

第19节 Node.js Express 框架

Express 是一个为Node.js设计的web开发框架&#xff0c;它基于nodejs平台。 Express 简介 Express是一个简洁而灵活的node.js Web应用框架, 提供了一系列强大特性帮助你创建各种Web应用&#xff0c;和丰富的HTTP工具。 使用Express可以快速地搭建一个完整功能的网站。 Expre…...

Chapter03-Authentication vulnerabilities

文章目录 1. 身份验证简介1.1 What is authentication1.2 difference between authentication and authorization1.3 身份验证机制失效的原因1.4 身份验证机制失效的影响 2. 基于登录功能的漏洞2.1 密码爆破2.2 用户名枚举2.3 有缺陷的暴力破解防护2.3.1 如果用户登录尝试失败次…...

19c补丁后oracle属主变化,导致不能识别磁盘组

补丁后服务器重启&#xff0c;数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后&#xff0c;存在与用户组权限相关的问题。具体表现为&#xff0c;Oracle 实例的运行用户&#xff08;oracle&#xff09;和集…...

Vue记事本应用实现教程

文章目录 1. 项目介绍2. 开发环境准备3. 设计应用界面4. 创建Vue实例和数据模型5. 实现记事本功能5.1 添加新记事项5.2 删除记事项5.3 清空所有记事 6. 添加样式7. 功能扩展&#xff1a;显示创建时间8. 功能扩展&#xff1a;记事项搜索9. 完整代码10. Vue知识点解析10.1 数据绑…...

【kafka】Golang实现分布式Masscan任务调度系统

要求&#xff1a; 输出两个程序&#xff0c;一个命令行程序&#xff08;命令行参数用flag&#xff09;和一个服务端程序。 命令行程序支持通过命令行参数配置下发IP或IP段、端口、扫描带宽&#xff0c;然后将消息推送到kafka里面。 服务端程序&#xff1a; 从kafka消费者接收…...

Admin.Net中的消息通信SignalR解释

定义集线器接口 IOnlineUserHub public interface IOnlineUserHub {/// 在线用户列表Task OnlineUserList(OnlineUserList context);/// 强制下线Task ForceOffline(object context);/// 发布站内消息Task PublicNotice(SysNotice context);/// 接收消息Task ReceiveMessage(…...

【SpringBoot】100、SpringBoot中使用自定义注解+AOP实现参数自动解密

在实际项目中,用户注册、登录、修改密码等操作,都涉及到参数传输安全问题。所以我们需要在前端对账户、密码等敏感信息加密传输,在后端接收到数据后能自动解密。 1、引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId...

Matlab | matlab常用命令总结

常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...

Java面试专项一-准备篇

一、企业简历筛选规则 一般企业的简历筛选流程&#xff1a;首先由HR先筛选一部分简历后&#xff0c;在将简历给到对应的项目负责人后再进行下一步的操作。 HR如何筛选简历 例如&#xff1a;Boss直聘&#xff08;招聘方平台&#xff09; 直接按照条件进行筛选 例如&#xff1a…...

push [特殊字符] present

push &#x1f19a; present 前言present和dismiss特点代码演示 push和pop特点代码演示 前言 在 iOS 开发中&#xff0c;push 和 present 是两种不同的视图控制器切换方式&#xff0c;它们有着显著的区别。 present和dismiss 特点 在当前控制器上方新建视图层级需要手动调用…...