0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

以太网系统如何将附加功能添加到嵌入式IP核中

星星科技指导员 来源:嵌入式计算设计 作者:Paul Diillien 2022-06-23 11:53 次阅读

在第 1 部分中,我们查看了有关加密的一些注意事项。在第 2 部分中,我们介绍了消息身份验证的概念,以增加我们的安全系统中提供的保护。在许多应用中,消息的加密和认证足以保护有价值的数据。然而,随着攻击者变得越来越老练,有必要为安全性添加更多功能。我一直认为它增加了安全层,就像洋葱皮一样。如果恶意代理克服了其中一个保护层,那么他将面临另一个保护层。在这里,我将讨论以太网系统如何将附加功能添加到嵌入式 IP 核中。

以太网传输已经发展到主导通信,因为它既高效又可扩展到高速传输。已指定对以太网的扩展,在 IEEE 802.1AE 规范下添加了一系列全新的安全措施,该规范具有集成的安全系统,可加密和验证消息以及检测和抵御网络上的一系列攻击。该规范被称为媒体访问控制安全标准,或者更常见的是 MACsec。

MACsec 在它所基于的 AES-GCM 加密之外提供了三种基本的安全功能。首先,MACsec 通过安全通道的概念增加了密钥管理,允许将不同的密钥用于不同的通信链路。其次,MACsec 提供重放保护,防止攻击者通过捕获有效数据包并再次发送它来破坏系统。第三,除了通过加密阻止攻击外,它还提供统计数据收集以允许检测攻击并采取更高级别的措施来应对攻击,例如调查其来源。

MACsec IP 核是一种复杂的硬件设计,用于嵌入在第 2 层工作的 FPGA。MACsec 方案基于网络节点,这些节点形成一组称为安全实体 (SecY) 的可信实体。每个 SecY 都被分配了一个唯一的安全通道来传输数据包。该通道最多可以链接四个安全关联 (SA),每个安全关联都有一个密钥。因此,每个节点都使用不同的密钥,这意味着只有系统管理员提供该密钥的节点才能解密该节点发送的数据包。

MACsec 在每个数据包离开以太网 LAN 时对其进行解密和验证。因此,通过两个 LAN 之间的网桥的数据包​​将在离开第一个时被解密,并在进入第二个时再次加密,因此该系统被称为逐跳方案。这意味着可以验证所有数据包。身份验证是通过将数据附加到消息末尾的一个称为完整性检查值 (ICV) 的字段中来实现的。这与加密密钥一起工作以验证帧,包括标头和 MACsec 标记,以确保即使是帧的源地址或目标地址也不会被操纵。

解密的消息(有时称为明文)现在可以在机器内部使用,以供上层软件进行进一步的可选处理。这可能是深度数据包检查,以识别数据包是否包含恶意软件或病毒。明文数据包也可以被送入流量管理器,该流量管理器调节数据的流出或在出现过载情况时决定丢弃哪些数据包。请记住,将安全标签 (SecTag) 和 ICV 添加到数据包意味着减少了链路的最大容量。当系统准备好转发数据包时,它将被重新加密,但这一次使用本地机器的安全通道传输 SecY。

此外,SecY 在数据包级别收集和记录一系列统计信息。这允许系统管理员查看有多少数据包因多种不同的原因被 MACsec 拒绝。例如,它们可能会被拒绝,因为它们由于无效的解密密钥或使用了错误的密钥而未能通过完整性检查。这可以帮助识别和击败网络上尝试的拒绝服务 (DoS) 攻击。每个数据包也被编号,如果数据包到达时已经被处理,这个重放可能表明所谓的中间人攻击。同样,MACsec 统计数据可以记录和标记尝试的重放事件。

IP 核使用 MACsec 数据包的 SecTag 标头中的安全通道标识符 (SCI) 在解密消息之前检索适当的密钥。一些 IP 内核支持多个虚拟 SecY,使一个以太网 MAC 能够拥有多个与其关联的 MACsec SecY,用于多路访问 LAN 等应用。因此,对于系统而言,该设备可能看起来像是多个消息源(每个消息源都有一个唯一的加密密钥)。这有利于将系统划分为逻辑域,例如,工厂员工无法使用会计数据,而工程设计仅可供授权人员使用。

MACsec 最初的设想是支持城域网,但现在它也可用于数据中心和云等一系列应用,这增加了对基于 FPGA 的嵌入式解决方案的整体需求。

工程师选择使用第 2 层连接的原因是为了在数据包中以最小的延迟和开销数据实现高速。逐跳设计还有助于在组织边界的防火墙中进行数据包检查,在这种情况下,像 IPsec 这样的端到端加密系统将通过防火墙传递加密数据并屏蔽其不受检查。MACsec 核心包括一个 AES-GCM 加密引擎和附加逻辑,用于执行协议处理、密钥查找、统计整理和存储功能。核心速度可以轻松达到 10 Gigabit 以太网,并将随着以太网速度的增加而扩大。另一个重要的考虑因素是,与使用软件解决方案执行加密功能等算法相比,FPGA 的能效要高得多。

在第 4 部分中,我将讨论嵌入式 IP 内核如何加速常用的第 3 层技术,称为 IPsec。

审核编辑:郭婷

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 嵌入式
    +关注

    关注

    4981

    文章

    18274

    浏览量

    288361
  • 以太网
    +关注

    关注

    40

    文章

    5075

    浏览量

    166216
  • 数据中心
    +关注

    关注

    15

    文章

    4184

    浏览量

    69959
收藏 人收藏

    评论

    相关推荐

    如何将F-RAM™添加到现有的PSoC™ Creator项目?

    ™Creator 添加 的示例。所有示例似乎都使用了 Modus 工具箱。是否有任何文档显示如何将F-RAM™添加到现有的PSoC™ Creator 项目?
    发表于 03-01 12:14

    FCX3是否具有PTS或SCR添加到映像帧的功能

    问题 1) FCX3是否具有PTS或SCR添加到映像帧的功能,如随附的USB规范中所述? 如果可能,请提供有关如何配置每个 PTS 和 SCR 的详细信息。 问题 2) CAN FCX3 支持1080x1280@120fps传
    发表于 02-26 08:23

    如何将TC1798器件添加到MDK KEIL?

    我正在尝试使用 KEIL MDK(µVision)为英飞凌TC1798编程,但我不确定如何将TC1798器件添加到MDK KEIL。 谁能帮我拿到 .pack 或者.zip 对于 TC1798?
    发表于 02-01 08:18

    安装python怎么添加到环境变量

    Python是一种简单易学的脚本语言,广泛应用于开发各种类型的应用程序。为了在Windows操作系统上使用Python的命令行工具,需要将Python添加到系统的环境变量中。本文将向您详细介绍如何在
    的头像 发表于 11-23 16:40 746次阅读

    基于dsp嵌入式uiptcp_ip协议栈的应用研究

    系统接入网络实现音频传输的功能。 本文首先搭建了一个基于DSP嵌入式系统以太网接入硬件平台,具体阐述了便携
    发表于 09-25 07:11

    车载以太网基础培训——车载以太网的链路层#车载以太网

    车载以太网
    北汇信息POLELINK
    发布于 :2023年09月19日 16:25:21

    车载以太网测试系统测试实例介绍#车载以太网

    车载以太网
    北汇信息POLELINK
    发布于 :2023年09月12日 17:27:48

    西门子博途S7-1200:将模块添加到机架的方法

    在网络视图中将设备从硬件目录添加到组态后,即可向设备中添加模块。
    的头像 发表于 09-04 15:22 3930次阅读
    西门子博途S7-1200:将模块<b class='flag-5'>添加到</b>机架的方法

    车载以太网快速入门#车载以太网

    车载以太网
    北汇信息POLELINK
    发布于 :2023年09月01日 17:54:31

    ETH-CH32v20x_v307在Freertos添加以太网

    NetLib路径,添加以太网TCPClinet工程下user文件夹的net_config.h文件复制到Freertos工程user文件夹
    发表于 08-09 10:41

    如何将溶解氧添加到WiFi水培套件

    电子发烧友网站提供《如何将溶解氧添加到WiFi水培套件.zip》资料免费下载
    发表于 06-14 10:00 0次下载
    <b class='flag-5'>如何将</b>溶解氧<b class='flag-5'>添加到</b>WiFi水培套件

    如何为NodeMCU添加以太网连接?

    IP 地址连接。我尝试连接到路由器 (DHCP) 并连接到我的笔记本电脑并分配一个固定的 IP 地址。在这两种情况下,连接都会失败。我使用的代码是库包含的 TcpClient 示例。 有一瞬间我以为
    发表于 06-02 08:37

    如何将RTSP视频源添加到我的“RainGauge”项目网站?

    RTSP 视频源添加到我的“RainGauge”项目网站: 视频由“Wyse Cam 3”捕获,提供给在 Windows PC 上运行的“虚幻媒体服务器”。HTML5文件内嵌WebRTC
    发表于 05-11 07:41

    如何将check() API公开添加到SPIFFS?

    SPIFFS.remove() 失败。我在 c api 中看到有一个 spiffs_check.c,但我认为它没有暴露在 SPIFFS obj 模型。有点让我头疼,但现在我认为我目前唯一的办法是重新格式化 spiff, check() API 公开
    发表于 05-08 07:00

    如何将额外数据从lwip传输到ESP8266WiFiSTA?

    我正在尝试添加从 DHCP 服务器(例如,NTP 服务器)请求和解码更多 DHCP 选项的功能,但我很难理解 2.3.0 版的所有代码循环。到目前为止,我已经选项号添加到 lwip
    发表于 05-08 06:08