ATECC508A芯片开发笔记(四):自定义配置508功能,规划DataZone数据存储



ATECC508A芯片开发笔记(四):自定义配置508功能,规划DataZone数据存储

  • 508A内部存储区介绍
  • Data Zone
  • Config Zone
  • 508A Config Zone配置(自定义)

ATECC508A芯片在使用之前,需要自定义配置ConfigZone与DataZone,并同Lock命令将两个区域锁住,否则无法正常使用功能。而一旦锁上就是永久性的,配置区不能够进行解锁操作,这也是为了考虑到安全因素。

一、508A内部存储区介绍

–由官方Datasheet可知,508A内部具有整片安全EERPOM和SRAM buffer。
–其中EEPROM总大小为11200 bits,并且分成三个区:Data、Configuration、OTP。(如下图,图片看不清可右键新窗口打开,不知道Markdown为啥会缩放图片)

这里写图片描述

如上图可知,Data Zone主要存放数据,而config Zone是决定芯片配置,并且决定Data zone存放什么数据的关键配置区。

Data Zone

–Data Zone共有1208 byte存储空间,以slot作为一个存储单元,每个508A内部共有16个slot。如下图:

这里写图片描述

–Slot 0-7每个空间大小为36 Byte,推荐用来存储私钥或secret;slot 8空间比较大(416byte),所以官方推荐用来存储整个证书等数据;9-15(72 Bytes)推荐存储一些公钥或者签名、证书subject。
如下图为Slot 0 的空间示意图:
这里写图片描述

Config Zone

–>Configuration zone共有128 byte的空间大小,里面包含了工厂生产数据、设备信息(如串号和I2C地址),以及我们需要配置的Data Zone Slot的读写权限配置等等。
–>Config Zone空间示意图如下:其中有淡红背景色的是不能更改的出厂数据

这里写图片描述

–》图中在I2C_Address之后就是我们可以自定义的空间了,比较重要的就是SlotConfigxx区域,每一个区域的配置都会影响到相应Slotxx的读写权限、命令执行以及功能的实现。
–》这也是为什么我们需要进行Provisional的原因,必须提前规划好,公私钥以及secret、证书信息存储在哪里。否则一旦配置后Lock,就不能更改了。

Slot/KeyConfig 详细配置(精确到每一个Bit)可参见:https://blog.csdn.net/HowieXue/article/details/92433541
这里写图片描述

上图是config区剩下的空间分布,其中keyConfigxx就是对应了SlotConfigxx,Slot被配置成存储密钥后,还要进行Keyconfig来配置,该Slot能存储什么密钥,并且能执行什么命令、以及操作。是不是略复杂,嗯 大坑还在后面。

OTP Zone

OTP(One Time Programmable) Zone大小为64 Byte,是一个只读存储区,在ConfigZone里面配置使用该Zone,并且在ConfigZone Lock之前,OTP Zone是不能进行读写操作。
我实际使用中并没有用到过OTP Zone,所以不再展开介绍了


二、508A Config Zone配置(自定义)

这里主要讲重要的SlotConfig,其官方解释为:Two bytes of access and usage permissions and controls for each slot of the Data zone,如下图:

Slot/KeyConfig 详细配置(精确到每一个Bit)可参见:https://blog.csdn.net/HowieXue/article/details/92433541
这里写图片描述

–>SlotConfig bits如下图(部分),根据官方Datasheet来看,SlotConfig每一个bit的配置都是与508应用功能息息相关,如想让508A 通过加密I2C通信方式去读取其中某一个Slot数据,则该Bit 6 必须设置为 1,否则EncryptRead命令执行会失败。
–>再比如,如果想利用该Slot完成ecdh操作,则Bit 2 必须为1等等。因此一开始的配置过程是非常耗时的,要非常仔细阅读Datasheet,才能根据功能一个一个去查询比对。希望Atmel今后能推出个自动化工具,能直接算出来。

这里写图片描述

–>KeyConfig Bits如下图,与slot config相对应,个人理解,Slotconfig就是规定了Slot能存什么,外界能够对该slot数据进行怎么样的读写,以及能执行什么命令。而KeyConfig就是规定了存的东西到底是什么,这个slot里面存储的什么密钥,该密钥能做什么等等。

–例如,Keyconfig第一个bit就表明了,该slot存储的key是否是ECC私钥,如果置位,则该slot就默认存储的是ECC 私钥,并且能够执行Sign、Genkey以及PrivWrite命令,否则就不能执行这些命令。实际应用中这些Bit之间 有很多都是相互牵制的。

这里写图片描述

这里不再一一 说明每个bit的功能,只是介绍需要这个流程去配置,才能正常使用508。我们实际中应用也没有相对复杂,而且由于我们的 security policy,不具体细说配置结果,正常使用就看datasheet自己配置就好。

具体每个bit的功能,可参见ATECC508A芯片开发笔记(十):ConfigZone中 SlotConfig/KeyConfig详细解释 & 配置工具Tools


下一节会介绍配置Provision的代码,只需一步实现508Provision,将公私钥、Secret、以及证书数据一次性写入508中,并在今后设备认证和数据通信中进行verify和加解密。


博主热门文章推荐:

一篇读懂系列:

LoRa Mesh系列:

网络安全系列:

嵌入式开发系列:

AI / 机器学习系列:


在这里插入图片描述

ATECC508A芯片开发笔记(八):ECDH算法配置方法、执行过程及实现原理 AATECC508A芯片开发笔记(八):ECDH算法配置方法、过程原理及示例代码 1、ECDH介绍及原理 2、ECDH执行过程 3、508A某一slot执行Ecdh需要配置的参数 4、示例代码 508A芯片硬件可以实现ECDH算法,大大提高了算法执行效率,实际使用中,需要配置好508A使其能够执行ECDH,之后才可以调用库函数的API正确执行该算法。 1、ECDH介绍及原 阅读详情

相关推荐

ATECC508A芯片开发笔记(九):加密读写508芯片数据的流程及相应设置

ATECC508A芯片开发笔记(九):标准加密通讯读写流程解析 Contents Encrypted Read. 1.1 Standard Encrypted Read Flow. 1.2 Simple Encrypted Read Flow Diagram. 2. Encrypted Write. 2.1 Standard Encrypted Write Flow. 2.2 Sim...

HowieXue 薛永浩的博客 1万+

ATECC508A芯片开发笔记(一):初识加密芯片

近年来,随着黑客网络攻击事件频繁发生,网络安全问题亟待解决,同时security方面的软件解决方案也正快速更迭,相关软件开发人员也变得更紧缺。 使用传统纯软件的方法实现网络安全加解密、身份认证等算法存在较多缺陷,如执行各类算法的时间、资源消耗较大,并且无法实现密钥等secret的安全存储,这时各类芯片厂商推出了硬件加密芯片来解决上述问题,在增加系统安全性的同时,也极大提高了软件效率。 因此针...

HowieXue 薛永浩的博客 4万+

ATECC508A芯片开发笔记(十):ConfigZone中 SlotConfig/KeyConfig详细解释 & 配置工具Tools

ATECC508A芯片开发笔记(十):508A ConfigZone中 SlotConfig及KeyConfig详细配置 &Tools 使用 前言 在《https://blog.csdn.net/HowieXue/article/details/75212476 ATECC508A芯片开发笔记(四):自定义配置508功能,规划DataZone数据存储》中提到,需要根据需求配置好508A的...

HowieXue 薛永浩的博客 1万+

基于STM32、HAL库的ATECC508A安全验证及加密芯片驱动程序设计

/ 最大32字节随机数 + 状态 + CRC。// 32字节摘要 + 状态 + CRC。// 数据 + 状态 + CRC。// 最大允许的SHA块大小。#define ATECC508A_WAKE_DELAY 1500 // 微秒。#define ATECC508A_CMD_DELAY 1500 // 微秒。if (mode == 0x02) { // 只在最后获取摘要。if (cmd_len > 98) { // 最大命令长度。// 读取头部 (1字节长度 + 2字节CRC)

corlin6688的博客 445

ATECC508A芯片开发笔记(三):获取508A串号、随机数源码及I2C抓包分析

ATECC508A芯片开发笔记(三):读取508A串号、获取随机数源码及I2C抓包分析 APP层函数编写及源码分析 At508_GetSernum() GetSernum抓包记录 At508_GetRandom( ) GetRandom抓包记录 经过前两章节,CryptoAuthlib库已经成功适配在代码中了,下面简单测试一下API函数,并分析下I2C通讯流程: APP层函数编写及源码分析利用li

HowieXue 薛永浩的博客 2万+

ATECC508A芯片开发笔记(二):开发准备之 CryptoAuthLib 库简介与移植

ATECC508A芯片开发笔记(二):开发准备之 CryptoAuthLib 库简介与移植 Atmel两个官方lib介绍 CryptoAuthLib简介 bitbang方式移植CryptoAuthLib 从逻辑和代码上分析CryptoAuthLib的底层驱动调用结构关系 508A 另一个小型libATECC108A-508A Library简介 Atmel两个官方lib介绍 At

HowieXue 薛永浩的博客 3万+

ATECC508A芯片开发笔记(七):实现数字签名(Sign)并校验(Verify)证书签名

ATECC508A芯片开发笔记(七):实现对数据数字签名(Sign)并验证(Verify)证书签名 一、数据签名、验证基本流程 二、利用508对数据签名并验证 代码实现: 三、X.509证书验证 本节介绍利用508对证书数据进行签名、验证的步骤和原理。 一、数据签名、验证基本流程由网络安全知识我们知道,对数据进行签名,其实就是用私钥加密而已,而验证签名就是用该私钥对应的公钥进行解密。而如果对整个数

HowieXue 薛永浩的博客 1万+

ATECC508A芯片开发笔记(十一):NXP 平台移植ATECCx08 CryptoAuthLib库(I2C)

ATECC508A芯片开发笔记(十一):NXP 平台移植x08库(I2C) CryptoAuthLib最新库 Nxp RT10xx平台上移植CryptoAuthLib 驱动代码分析 硬件环境: Nxp的i.Mx RT1060 MCU 软件环境: cryptoauthlib-20190903 (MicroChip官网下载) 之前在Nxp平台上使用过ATECC608A,所以将CryptoAuth...

HowieXue 薛永浩的博客 9299

ATECC508A加密芯片全面解析

ATECC508A是由Microchip公司生产的高性能、低功耗的加密芯片,提供多种硬件加密功能,被广泛应用于各类安全敏感型应用中。它结合了密码学算法、密钥存储和加密引擎于一体,为系统提供了一种安全、高效且成本效益高的数据保护方案。硬件加密引擎是集成在半导体芯片中,用于执行加密算法的专用硬件单元。相比软件加密,硬件加密引擎以其专用性和并行性,能提供更高效的加密解密性能。它对于保证数据的机密性、完整性、认证性和抗抵赖性至关重要。

weixin_31139479的博客 1489

0032期基于深度学习的大米识别-含数据集

083基于深度学习的手势识别小程序版本_含10多种模型包括alexnet、DenseNet、DLA、GoogleNet、Mobilenet、ResNet、ResNeXt、ShuffleNet、VGG、EfficientNet和Swin transformer等10多种模型。117nlp自然语言处理-文本情感分类-joy-sadness-anger-fear-love-surprise。运行02深度学习模型训练.py就会将txt文本中记录的训练集和验证集进行读取训练,训练好后会保存模型在本地。

grehtsfrs的博客 1502

HFSS入门学习笔记——微带一分四功分器的设计与仿真

功率分配器是将输入信号功率分成相等或不相等的几路功率输出的一种多端口无源微波网络,用于功率分配和功率合成。工程上常用的微带功分器有T型功分器和威尔金森功分器。经典的威尔金森功分器有几个缺点:①、多应用于低频段,高频段时,波长会与隔离电阻的尺寸相比拟,此时需要考虑电阻的分布参数效应;②、大功率应用时,隔离电阻的耗散功率要很大,因此隔离电阻的体积也会比较大。

weixin_42126696的博客 2万+

基于C#的软PLC梯形图编辑器开发实战

本文详细介绍了基于C#开发软PLC梯形图编辑器的实战过程。文章从核心数据结构设计入手,阐述了如何利用C#的面向对象特性构建梯形图元素模型,并实现了图形编辑、指令表输入、逻辑连接拓扑重建等关键功能。重点剖析了模拟PLC执行引擎的扫描周期与能流传递算法,让梯形图逻辑在PC上“活”起来。最后探讨了定时器指令实现、性能优化及项目集成等进阶内容,为工业自动化软件集成提供了灵活高效的解决方案。

weixin_28314575的博客 396

【论文精读】Latent Diffusion

Latent Diffusion

weixin_44934783的博客 4467

vmware vsphere5---部署vCSA(VMware vCenter Server)附带第二阶段安装报错解决方案

因为这份文档我是边做边写的,遇到问题重新装了好几次所以IP会很乱ESXI主机为192.168.20.10VCSA为192.168.20.7,后台为192.168.20.7:5480后期请自行对应,后面的192.168.20.57请对应192.168.20.7,或根据自己的来。

m0_70212665的博客 5695

ArcGIS Pro 3.0实战:5分钟搞定GDB批量转SHP的Python脚本(附常见错误修复)

本文详细介绍了在ArcGIS Pro 3.0中使用Python脚本将地理数据库(GDB)中的要素类批量转换为Shapefile(SHP)格式的实战方法。文章提供了从基础到增强的完整脚本,重点解决了中文路径报错、字段名截断和属性表乱码等常见问题,并分享了错误处理与编码修复技巧,帮助用户高效、准确地完成数据格式转换与交换。

happy2的博客 762

LaTex的下载与安装(2024小白+windows系统)

本文主要介绍了Latex的下载与安装,还包括安装过程中遇到的小问题的解决。

m0_53096519的博客 2万+

模组 RG500Q入网问题分析

- [ ] 不同于公网,在5G专网环境中, 通常使用很多非标准的网络配置,如PLMN/APN等。因此,5G模组在专网环境下通常要做一些专门的配置才能正常入网,本文分析一例在专网环境, 5G终端无法入网问题的定位过程。 - [ ] 具体涉及到以下模组操作: 恢复出厂、SA only、锁BAND、配置MBN等

十年通信老兵的技术修炼之路——从3G到5G,从地面基站到卫星通信。 926

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

上一篇: ATECC508A芯片开发笔记(三):获取508A串号、随机数源码及I2C抓包分析
下一篇: ATECC508A芯片开发笔记(五):Provision执行过程及代码分析
HowieXue
HowieXue 领域专家: 嵌入式与硬件开发技术领域 领域专家: 嵌入式与硬件开发技术领域
博客等级 码龄10年 17万+粉丝 108原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

HowieXue

求打赏~

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值