验证系统中数据或操作的能力是安全性的基本要求。对于开发人员来说,实现身份验证所需的详细步骤可能具有挑战性,尤其是在资源受限的系即使资源可用,上市时的压力和缺乏意识也可能导致开发过程中出现捷径,导致最终系统受到损害。
所需要的是对身份验证工作原理的基本了解,以及开发人员既包含所需的资源,又支持更快,更有效地实现身份验证。
本文将介绍Maxim Integrated的专用身份验证IC之前的对称和非对称身份验证的基础知识。然后,本文将讨论如何使用这些IC轻松添加对行业标准认证机制的支持。需要这些机制来确保在诸如物联网(IoT),系统中的安全固件更新以及授权外围设备的连接等应用中使用授权设备,仅举几例。
关键角色身份验证
身份验证仍然是安全性的核心要求之一,可以在几乎所有部门中找到应用程序,包括消费者,工业,医疗,军事/航空等。在Web上,在浏览器中使用身份验证来验证安全(https)服务器的身份。在物联网设备中,身份验证对于确保固件更新仅来自合法来源至关重要。在较小规模上,越来越多地使用认证来确保在不匹配会影响功率,安全性和可靠性的系统中使用授权外设甚至消耗品。
认证在连接应用中起着至关重要的作用,其中未经授权的设备可以作为黑客攻击整个应用程序及其底层系统资源的入口点。在关键任务应用中,对身份验证的需求变得尤为严重。
例如,意外或意图连接到工业自动化网络的未经授权的传感器设备可能会影响过程控制环路中使用的数据流。在这些应用程序中,对身份验证的需求是双向的。在向主机验证自身后,操作执行器,激光器或其他外部设备的设备应仅在验证可能导致物理伤害或损坏的命令后才能运行。
验证方法
认证方法差异很大。最简单和最常见的形式是,个人使用密码对系统和应用程序进行身份验证。这种众所周知的弱身份验证形式推动了双因素身份验证或生物识别方法的使用,例如Apple Touch ID指纹识别或Windows Hello面部识别。
然而,在数字系统中,身份验证建立在基本机制之上主机发出“质询”并验证物联网设备,外围设备或消耗品的“响应”。在此方法中,受质疑的设备使用在对称加密认证或非对称加密认证中与主机共享或不共享的密钥构造有效响应。
在对称加密认证中,从设备每个主机根据挑战数据的SHA-256哈希,共享密钥和其他数据元素计算数字签名。如果从机响应和主机计算结果匹配,则认为从机设备已通过认证(图1)。
图1:在对称加密中,主机和从设备使用共享密钥进行身份验证。 (图像来源:Maxim Integrated)
在非对称加密认证中,密钥仅驻留在从设备中,从设备将其与挑战数据的SHA-256哈希和随机数组合以生成新的椭圆曲线数字签名算法(ECDSA)签名,通常基于椭圆曲线加密(ECC)P-256曲线。反过来,主机使用挑战数据的SHA-256哈希和与设备的私钥相关联的公钥来验证新的ECDSA签名。如果结果有效,则认为从设备已通过身份验证(图2)。
图2:非对称加密身份验证消除了与使用a相关的漏洞共享密钥,使用从设备中的私钥和主机中的相关公钥进行椭圆曲线数字签名算法(ECDSA)验证。 (图片来源:Maxim Integrated)
对于开发人员来说,至少可以说这些认证方法的实施具有挑战性。如果未能使用所需数据执行精确的操作序列,则可能导致失败。缺少真正的随机数生成器或只是一个简单的错误可能会让其他安全设备受到攻击。即使技术上正确的实现也可能给熟练的黑客带来漏洞。例如,常用的身份验证协议允许重用秘密信息,即使这些秘密可以被捕获并用于正确响应身份验证挑战 - 从而危及通信和连接系统。
在许多情况下,错误由于缺乏能够更快速,更可靠地执行身份验证的强大机制,因此用于实现身份验证的快捷方式会产生漏洞或漏洞。例如,上面提到的身份验证漏洞通常出现在开发人员关心性能和重用机密而不是导致与(相对)慢的身份验证执行相关的延迟时。
在物联网中,开发人员可能面临实际限制使实现变得不可能,或者邀请使用引入漏洞的快捷方式。物联网传感器或执行器设备中使用的MCU可能缺乏正确实现或根本无法实现身份验证所需的处理器能力和内存资源。在完全缺少MCU的外围设备或耗材中,问题变得更加明显。 Maxim Integrated的DS28C36和DS28E38等集成认证器的出现显着降低了在任何系统中采用认证的复杂性。
认证IC
Maxim DS28C36和DS28E38是提供认证的IC用于质询 - 响应身份验证的插入式解决方案。除了用于私钥,私钥/公钥对,证书和应用数据的8 Kbits安全EEPROM外,DS28C36还集成了用于SHA-256和ECC-P256加密的片上引擎。这些支持对称和非对称身份验证机制。该设备还可以动态生成私钥/公钥对,以便在更高级别的身份验证协议中使用。
凭借其全面的加密引擎,存储和算法支持,该设备可以将复杂的身份验证流程转变为简单的去/不去的结果。例如,要验证MCU安全启动的固件,开发人员只需对MCU编程即可将目标固件和签名发送到通过I 2 C接口连接的DS28C36。 DS28C36依次执行认证所需的完整操作序列,并将通过/不通过结果返回到MCU GPIO引脚(图3)。
图3:Maxim Integrated DS28C36实现了完整的身份验证质询 - 响应机制,使开发人员能够使用它来提供简单的go/no-go安全启动操作中的固件验证结果。 (图像来源:Maxim Integrated)
开发人员可以使用DS28C36的可编程I/O引脚来支持激活激光器,继电器或其他执行器可能导致物理环境潜在危险的应用中的命令验证。在这里,开发人员可以将认证过程的通过/不通过结果驱动到控制缓冲晶体管的DS28C36输出引脚,例如驱动激光的Nexperia PMV65XP MOSFET(图4)。使用这种方法,只允许有效的命令来控制外设。
图4:开发人员可以使用Maxim Integrated DS28C36验证外设操作,甚至可以使用其可编程I/O端口直接启用输出驱动程序来传达验证结果处理。 (图像来源:Maxim Integrated)
但是,对于某些应用,将密钥加载到认证IC中的需要对于关键任务设备来说可能是一个潜在的安全漏洞,或者对于批量产品来说太麻烦了。耗材如打印机墨盒。对于任何应用程序,仅仅存在控制对产品访问的密钥会导致产品和底层身份验证设备成为黑客通过更复杂的攻击机制恢复密钥的目标。
物理上不可克隆功能
Maxim DS28E38认证IC提供了一种独特的方法,通过提供基于Maxim专利ChipDNA™技术的内置密钥来缓解关键威胁。 ChipDNA使用半导体器件特性的随机变化来提供物理上不可克隆的功能(PUF)。 PUF功能用于创建一个独特的密钥,该密钥在不同的操作条件下(包括工作电压和温度)随时间保持不变。 PUF输出(以及产生的密钥)改变的唯一方法是,如果有人试图探测低级芯片操作。这些操作改变了潜在的威廉希尔官方网站 特性,导致不同的PUF输出和不同的密钥。这是一种“海森堡不确定性原理”,但适用于秘密密钥存储。对于需要特定私钥的应用程序,设备允许开发人员加载和使用自己的密钥。
基于PUF的DS28E38集成了一整套安全功能,可提供交钥匙挑战 - 响应认证解。然而,与DS28C36不同,DS28E38仅支持非对称认证,返回ECDSA特征以应对挑战(图5)。主机仍然负责使用设备的ECDSA签名和相应的公钥来完成通过/失败验证过程,如图2所示。
图5:Maxim Integrated基于PUF的DS28E38认证IC实现了完整的非对称加密认证序列,可对主机提供的质询产生数字信号响应。 (图像来源:Maxim Integrated)
除了基于PUF的密钥外,该器件还提供2 Kbits的安全EEPROM存储器,以及独立的64位标识符(ROM ID)和制造标识符( MANID)。使用设备的密钥,唯一标识符和安全存储,开发人员可以在各种身份验证方案中使用DS28E38。
例如,要对打印机墨盒进行身份验证,开发人员可以使用已知值对墨盒进行身份验证MANID确认模型类型。与DS28C36一样,开发人员可以使用DS28E38动态生成私钥/公钥对,以支持更复杂的身份验证协议。
灵活的接口
对于硬件集成,DS28E38提供1 - 线路接口,可直接与MAX32625等MCU实现简单连接,包括本机1-Wire支持。对于其他MCU,开发人员可以使用单个PMV65XP MOSFET将器件连接到MCU可编程I/O(PIO)端口(图6)。
图6:DS28E38 1-Wire接口提供与1-Wire MCU(如Maxim MAX32625)的简单连接,并且只需一个额外的MOSFET即可连接到任何MCU上的可编程I/O端口。 (图像源:Maxim Integrated)
1-Wire波形时序要求完全在简单MCU的性能范围内。因此,开发人员可以使用几行软件实现1-Wire协议(清单1)。
复制 < p>//---------------------------------------------- -------------------------------
//发送1-Wire写位。提供10us恢复时间。
//
void OWWriteBit(int bit)
{
if(bit)
{
//写'1'位
输出(PORTADDRESS,0x00);//驱动DQ低
tickDelay(A);
outp(PORTADDRESS,0x01);//释放总线
tickDelay(B);//完成时间段和10us恢复
}
否则
{
//写'0'位
outp(PORTADDRESS,0x00);//驱动DQ低
tickDelay(C);
outp(PORTADDRESS,0x01);//释放总线
tickDelay(D);
}
}
//---------------------- -------------------------------------------------- -----
//写1-Wire数据字节
//
void OWWriteByte(int data)
{
int loop;
//循环写入字节中的每一位,先写LS位
for(loop = 0; loop <8; loop ++)
{
OWWriteBit(data&amp; 0x01);
< p>//移位下一位的数据字节
数据>> = 1;
}
}
清单1 :开发人员可以使用几行代码实现1-Wire协议,使用与1-Wire协议波形匹配所需的MCU相关延迟值(A,B,C和D)来驱动MCU可编程I/O端口的高低电平时序规范。 (代码源:Maxim Integrated)
或者,开发人员可以使用DS2484 1-Wire接口器件将DS28E38连接到标准MCU I 2 C端口,允许开发人员使用在他们的设计中熟悉I 2 CI/O技术。这种方法在需要额外外设的物联网设备设计中尤其具有吸引力(图7)。
图7:使用多个1-Wire器件构建系统的开发人员可以使用Maxim DS2484将DS28E38认证IC与其他1-Wire器件连接到MCU的I 2 C总线。 (图像来源:Maxim Integrated)
使用DS2484,开发人员可以将DS28E38与各种可用的1-Wire器件(包括传感器,电池管理IC,EEPROM等)结合使用。在此配置中,开发人员可以轻松使用DS28E38为涉及基于DS28C36的设计的概念上与图4所示概念相似的1-Wire外围设备的关键操作提供身份验证。
快速开发
虽然DS28C36和DS28E38都提出了简单的硬件接口要求,但在设计中加入认证的真正目的在于将这些机制构建到更高级别的流程和应用程序中。为了加速这一过程,Maxim提供了许多评估套件,设计人员可以使用这些评估套件快速获得DS28C36和DS28E38认证IC的功能。要评估DS28C36,请通过USB连接MAXAUTHDEMO1#评估板(图8)。
图8:Maxim MAXAUTHDEMO1#USB评估板允许开发人员快速探索DS28C36的功能,并轻松查看特定认证的通过/失败结果使用内置LED进行操作。 (图像来源:Maxim Integrated)
随附的DS28C36安全下载软件程序提供了身份验证操作的基本演示。在签名过程屏幕上,开发人员使用该软件为测试文件创建签名(在这种情况下为图像文件)。在第二个屏幕上,他们使用DS28C36根据该签名验证原始文件:在安全更新过程中用于验证固件的相同过程(图9)。
图9:Maxim的DS28C36安全下载演示软件允许开发人员通过详细结果,结合调试文本输出和每一步生成的相关数据,试验主机签名和基于DS28C36的验证。 (图像源:Maxim Integrated)
Maxim DS28E38EVKIT#为探索DS28E38的工作提供了类似的平台。将DS28E38EVKIT#插入PC USB插槽后,运行随附的软件可演示认证,密钥对生成,证书生成以及其他特性和功能。为了进一步使用DS28E38进行软件开发,Maxim还提供MAXREFDES168#软件参考设计,与基于MAX32625 MCU的MAX32625MBED#MBED评估套件配合使用。参考设计中的示例C ++代码演示了用于构建用于操作DS28E38的命令序列的步骤(清单2)。
复制
error_code
DS28E38 :: computeAndReadPageAuthentication(int pageNum,bool anonymous,
const Page&amp;挑战,
Ecc256 :: Signature&amp;签名){
if(pageNum = memoryPages){
返回make_error_code(InvalidParameterError);
}
const size_t parametersSize = 1 + Page :: csize;
const size_t resultSize = Ecc256 :: Signature :: size;
typedef array
(parametersSize> resultSize?parametersSize:resultSize)>
缓冲区;
缓冲区缓冲区;
缓冲区[0] = pageNum | (匿名?0xE0:0x00);
copy(challenge.begin(),challenge.end(),buffer.begin()+ 1);
const error_code result = runCommandSequence (
ComputeAndReadPageAuthentication,buffer.data(),parametersSize,
generateEcdsaSignatureTimeMs,buffer.data(),resultSize);
if(!result){
Buffer :: const_iterator begin = buffer.begin();
Buffer :: const_iterator end = begin + signature.s.size();
copy( begin,end,signature.s.begin());
begin = end;
end = begin + signature.r.size();
copy(begin,end,signature.r.begin());
}
返回结果;
}
清单2:Maxim的MAXREFDES168#软件参考设计提供了关键操作的软件示例,例如构建此处显示的用于身份验证的命令块,以及能够执行命令块和其他功能的低级服务例程。 (代码来源:Maxim Integrated)
结论
身份验证机制是任何安全环境的核心。然而,对于开发人员而言,这些机制的实施为满足实际性能要求带来了多重挑战,同时还在认证序列的每一步保持安全性。
随着专用认证IC的出现,开发人员可以轻松应对这些挑战并满足不同应用领域的新认证要求。使用这些专用设备,工程师可以快速将认证结合到针对像物联网这样复杂的应用程序或像打印机墨盒一样简单的应用程序中。
-
IC
+关注
关注
36文章
5948浏览量
175578 -
物联网
+关注
关注
2909文章
44625浏览量
373240 -
数字系统
+关注
关注
0文章
143浏览量
20851
发布评论请先 登录
相关推荐
评论