视频
如果要将认证的定义进行最有禅意的简化,那么我们可以说“认证就是保持真实性”。保持真实性要求对身份进行验证,因为,验证是关键(可以这么说)。
我们可以用下列等式表示三者之间的关系:
识别 + 验证 = 认证
文件、项目、数据等的验证或确认就是认证的所有内容。可以通过加密认证的事物包括:手机零部件、医疗配件、电子消费品配件、嵌入式固件、产业网络节点、传感器等。不久的将来,物联网与车对车通信系统也将可以通过加密方式进行认证。
认证的重要性远远超出许多人的认识,特别是在现在这个几十亿人(事)日益紧密连接的超连接世界。在网络世界,认证伴随着加密密钥与算法的部署。密钥是保持真实性的基础,也就是上文所述的“保持真实性的关键”。
认证主要包括两种类型:对称认证与非对称认证。爱特梅尔公司分别为这两类认证提供了安全密钥存储装置。这两种认证的区别在于各端(即主机端和客户端)的密钥是否相同。
对称认证
就像名称所暗示的那样,对称认证指的是客户端与主机端使用相同的密钥。客户端与主机端的对称密钥均须受到保护,一旦二者中任何一个失效,安全性也将丧失。这就好像一个人有两套车钥匙,其中任何一套钥匙丢失都会导致小偷轻易开走车辆。因此,密钥须保密。
对称密钥是相同的
主机端与客户端的相同密钥通过数学计算来测试客户端设备的真实性。最常见的数学计算是基于加密算法(如安全散列算法等)的散列函数。散列运算产生散列值(也称为“摘要值”),即任意长度的输入值经散列算法变换成固定长度的散列值且散列值的长度小于输入值的长度。散列函数是一个单向运算,这意味着由散列值无法得到输入值。
对称认证的典型过程是:向客户端发送一个随机数字,要求客户端设备进行认证;客户端通过散列算法计算出随机数字和密钥的散列值(即“响应”)。每一个要求都产生一个独一无二的响应。
应该注意的是,密码员将利用密钥产生的随机数字散列值称为“消息认证码”或“MAC”,这个过程见下图。由于主机密钥与主机端密钥和客户端密钥相同,主机也可以进行完全相同的计算。如果出现这种情况,那么主机、主机端以及客户端上的散列值(“消息认证码”)可以进行对比。如果各散列值匹配,那么可以认为客户 端设备是真实的。由此可见,对称认证真的是一个简单的过程,但需要数学上的精确计算。现在,我们来看看非对称认证。
利用密钥对随机数字进行散列计算
非对称认证
非对称密钥包含公钥与私钥,这两个密钥是一对的。更具体地说,公钥与私钥是通过椭圆曲线加密算法(“ECC”)等数学算法相互关联。两个密钥之中,只有私钥需要保密。由于密钥不同,非对称认证无法像对称认证那样通过“计算-对比”方式进行认证。
非对称认证涉及的技术更为复杂,包括用于验证真实性的电子签名技术(即“签名—验证”)等。椭圆曲线数字签名算法(“ECDSA”)是利用椭圆曲线加密法进行非对称认证的实例。Atmel ATECC108A装置的一大优点是它可以用于轻松实施椭圆曲线数字签名算法的签名—验证过程(椭圆曲线数字签名算法的步骤非常有趣,将在另外的文章中予以介绍)。在对称认证与非对称认证之间进行取舍时,运算速度是关键因素。例如,Atmel ATSHA204A采用对称认证所需的认证时间是12毫秒(一般情况下),而采用非对称认证时需要多个微控制器进行椭圆曲线数字签名算法,认证时间超过一秒。
回到密钥上来:密钥要保密。 如果说密钥是认证(即真实性认证)的关键,那么密钥的安全存储就是安全认证的关键。这才是重点所在。
那么,如何进行密钥的安全存储呢?最好的方法就是使用能够承受攻击的密钥存储硬件装置。爱特梅尔公司的CryptoAuthentication系列产品,如 ATSHA204A、 ATECC108A 及ATAES132 等,能够实施基于硬件的存储,这比基于软件的存储要强大得多,因为只有硬件才能提供抵挡攻击的防御机制。任何时候,基于硬件的安全存储都优于基于软件的存储。增加密钥安全存储是保护固件、软件和硬件产品免遭复制、伪造、黑客入侵以及其他恶意威胁的一种经济、简单和超安全的方法。
想要了解更多有关爱特梅尔CryptoAuthentication系列产品的信息,请点击查看上文链接或浏览CryptoAuthentication的介绍网页。Bits & Pieces 在以后的文章中将深入介绍对称认证与非对称认证的具体实现过程。