ATECC508A配置案例

本文为ATECC508A一个典型配置案例。

配置案例

方案目标

 本次基于ATECC508A实现非对称加密配置案例,实现signer与设备2种角色配置。具体使用中,使用其中1种角色配置即可。

 本例中,ATECC508A共有3组密钥,具体如下:

  1. signer:出于批量制作考虑。signer的私钥需要从外部写入,使用CA对signer进行签名。对该组密钥设置如下:slot0存储私钥,slot9存储公钥,slot10存储CA签名。其中私钥由外部写入,公钥和签名设置为直接读取,私钥限定使用次数;
  2. device:私钥/公钥对采用生成方式,利用signer对device进行签名。对该组密钥设置如下:slot1存储私钥,slot11存储公钥,slot12存储signer签名。其中私钥使用508A生成,公钥和签名设置为直接读取,私钥限定使用次数;
  3. 测试slot15使用次数功能device2:slot15对应LastKeyUse中使用次数,测试该功能。对该组密钥设置如下:slot15存储私钥,slot13存储公钥,slot14存储signer签名。其中私钥使用508A生成,公钥和签名设置为直接读取,私钥限定使用次数;
  4. slot8存储公司信息以及生产信息等;

SlotConfig与KeyConfig配置

 SlotConfig的配置如下(0-7):

bit name slot0(signer_pri) slot1(dev1_pri) slot2 slot3 slot4 slot5 slot6 slot7
all SlotConfig 0x20AF 0x20AF 0x8F8F 0x8F8F 0x8F8F 0x8F8F 0x8F8F 0x8F8F
15-12 WriteConfig 0010(Never) 0010(Never) 1000(Never) 1000(Never) 1000(Never) 1000(Never) 1000(Never) 1000(Never)
11-8 WriteKey 0000 0000 1111 1111 1111 1111 1111 1111
7 IsSecret 1 1 1 1 1 1 1 1
6 EncryptRead 0 0 0 0 0 0 0 0
5 LimitedUse 1 1 0 0 0 0 0 0
4 NoMac 0 0 0 0 0 0 0 0
3-0 ReadKey 1111 1111 1111 1111 1111 1111 1111 1111
DeriveKeyConfig NoAuthRoll NoAuthRoll NotAllowed NotAllowed NotAllowed NotAllowed NotAllowed NotAllowed
ReadConfig Secret Secret Secret Secret Secret Secret Secret Secret

KeyConfig的配置如下(0-7):

bit name slot0(signer_pri) slot1(dev1_pri) slot2 slot3 slot4 slot5 slot6 slot7
all KeyConfig 0x0033 0x0033 0x003C 0x003C 0x003C 0x003C 0x003C 0x003C
15-14 X509id 00 00 00 00 00 00 00 00
13 RFU 0 0 0 0 0 0 0 0
12 IntrusionDisable 0 0 0 0 0 0 0 0
11-8 AuthKey 0000 0000 0000 0000 0000 0000 0000 0000
7 ReqAuth 0 0 0 0 0 00 00 0
6 ReqRandom 0 0 0 0 0 0 0 0
5 Lockable 1 1 1 1 1 1 1 1
4-2 KeyType 100(P256) 100(P256) 111(NotECC) 111(NotECC) 111(NotECC) 111(NotECC) 111(NotECC) 111(NotECC)
1 PubInfo 1 1 0 0 0 0 0 0
0 Private 1 1 0 0 0 0 0 0

SlotConfig的配置如下(8-15):

bit name slot8 slot9 slotA slotB slotC slotD slotE slotF(dev2_pri)
all SlotConfig 0x0F0F 0x0F0F 0x0F0F 0x0F0F 0x0F0F 0x0F0F 0x0F0F 0x20AF
15-12 WriteConfig 0000(Always) 0000(Always) 0000(Always) 0000(Always) 0000(Always) 0000(Always) 0000(Always) 0010(Always)
11-8 WriteKey 1111 1111 1111 1111 1111 1111 1111 0000
7 IsSecret 0 0 0 0 0 0 0 1
6 EncryptRead 0 0 0 0 0 0 0 0
5 LimitedUse 0 0 0 0 0 0 0 1
4 NoMac 0 0 0 0 0 0 0 0
3-0 ReadKey 1111 1111 1111 1111 1111 1111 1111 1111
DeriveKeyConfig NotAllowed NotAllowed NotAllowed NotAllowed NotAllowed NotAllowed NotAllowed NoAuthRoll
ReadConfig ClearText ClearText ClearText ClearText ClearText ClearText ClearText Secret

KeyConfig的配置如下(8-15):

bit name slot8 slot9 slotA slotB slotC slotD slotE slotF(dev2_pri)
all KeyConfig 0x003C 0x003C 0x003C 0x003C 0x003C 0x003C 0x003C 0x0033
15-14 X509id 00 00 00 00 00 00 00 00
13 RFU 0 0 0 0 0 0 0 0
12 IntrusionDisable 0 0 0 0 0 0 0 0
11-8 AuthKey 0000 0000 0000 0000 0000 0000 0000 0000
7 ReqAuth 0 0 0 0 0 00 00 0
6 ReqRandom 0 0 0 0 0 0 0 0
5 Lockable 1 1 1 1 1 1 1 1
4-2 KeyType 111(NotECC) 111(NotECC) 111(NotECC) 111(NotECC) 111(NotECC) 111(NotECC) 111(NotECC) 100(P256)
1 PubInfo 0 0 0 0 0 0 0 1
0 Private 0 0 0 0 0 0 0 1

配置流程

配置区配置

 SlotLocked配置为0xFF,KeyConfig.Lockable配置为1。当数据区配置完毕后,将所有slot全部锁定,禁止修改。

 此时,对于slot0、slot1和slotF,SlotConfig配置为0x208F,其余配置与上表一致。

 配置区配置完成后,进行锁定。

文章目录
  1. 1. 配置案例
    1. 1.1. 方案目标
    2. 1.2. SlotConfig与KeyConfig配置
    3. 1.3. 配置流程
      1. 1.3.0.1. 配置区配置
|