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

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

大家好,又见面了,我是你们的朋友全栈君。

更多技术干货,欢迎扫码关注博主微信公众号:HowieXue,一起学习探讨软硬件技术知识经验,关注就有海量学习资料免费领哦:
ATECC508A芯片开发笔记(一):初识加密芯片

———-

目录

一、ATECC508A概述:

二、ATECC508A使用:

 三 、ATECC508A 内部Architecture:

博主热门文章推荐:


 近年来,随着黑客网络攻击事件频繁发生,网络安全问题亟待解决,同时security方面的软件解决方案也正快速更迭,相关软件开发人员也变得更紧缺。

使用传统纯软件的方法实现网络安全加解密、身份认证等算法存在较多缺陷,如执行各类算法的时间资源消耗较大,并且无法实现密钥等secret的安全存储,这时各类芯片厂商推出了硬件加密芯片来解决上述问题,在增加系统安全性的同时,也极大提高了软件效率。

因此针对加密芯片实现系统的Security解决方案已为各大嵌入式开发人员所推崇。

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

百度百科给出定义:加密芯片是对内部集成了各类对称与非对称算法,自身具有极高安全等级,可以保证内部存储的密钥和信息数据不会被非法读取与篡改的一类安全芯片的统称。

目前加密芯片有多种,无非就是通过硬件更加高效的实现一些加解密算法和secret存储,以方便实现设备认证和数据加密,目前架构上有很多解决方案,例如MCU内部集成、和单独芯片方案等等。当然使用上还是单芯片solution用途更加广泛。其中Atmel(MicroChip推出的ATECCxx、ATSHAxxATAESxx等等芯片使用较为广泛,个人觉得还是有较高安全性和易用性。详见官网链接:

Smart | Connected | Secure | Microchip Technology

由于网上相关资源较少,只有些官方网站有些介绍文档,中文资料几乎没有,而对于网络安全相关开发都比较复杂,不太好理解,针对初次开发难免会遇到困难。因此本人整理总结Atecc508/108A使用经验和技巧系列,但由于我网络安全是半路出家,其中有误或者能优化的地方欢迎大家批评指正!

这么正经说话突然不适应。。。难道是因为好久没写论文了(好qian啊)。。。切入正题:


一、ATECC508A概述:

Atmel的ATECC508A是首款集成ECDH(椭圆曲线Diffie-Hellman)安全协议的器件,面向诸如家庭自动化、工业联网、配件与耗材验证、医疗、移动等物联网(IoT)市场提供可靠的安全防护。并能提供ECDSA(椭圆曲线数字签名算法)签名与验证的认证功能。(ECDH协议是提供密钥加密/解密协议的一种极为安全的方法

ATECC508A的主要安全特性包括:

  1. 经过优化的密钥存储和认证功能  
  2. 应用所存储的私钥进行ECDH操作
  3. ECDSA(椭圆曲线数字签名算法)签名与验证
  4. 支持X.509认证格式
  5. 256位SHA/HMAC硬件引擎。。。
  • 主要功能无非设备认证、安全通讯、数据加解密、以及key/证书存储管理等。不再多说,有兴趣上面链接官网见。
  • 值得一提的是,虽然叫做加密芯片,但508是不能加解密数据的(不能把明文变密文),不过Atmel新推出的608可以加解密(内部集成了AES引擎

二、ATECC508A使用:

  • 和其他加密芯片一样,508A用途广泛,以在无线通讯安全领域应用为例:

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

  •     508A还有个特点就是功耗低,并且成本也低(约0.3美刀),非常适用于物联网、车联网等应用环境。
  • 其对外通讯提供了标准I2C接口,也支持Single-wire的高速Single Pin模式,硬件等详细细节见DataSheet,下图为封装:ATECC508A芯片开发笔记(一):初识加密芯片

大家到这里可能会有疑问,如果用I2C通信,那么Hacker不就很容易监听I2C获取并篡改数据吗? 别着急,508A解决这类问题都是小case,

深入研究后就会发现508的强大,就连硬件暴力拆解的防范都做的非常到位,软件相关更似“牢不可摧”,当然也要在正确使用前提下。


 三 、ATECC508A 内部Architecture:

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

  

  • 由图就可以看出508A实现的主要功能,并且有抢眼的ECC、SHA引擎、“真”随机数发生器、每个片子唯一的串号等。
  • 并且外部是由一种硬件工艺(忘了叫啥了,注意看周边无序的条纹)能保护所有数据存储,就算把芯片拆开,也不能获取里面数据。

据Atmel内部技术支持介绍,508A内部也是有一个Atmel自己的MCU,并且挂载一个Secret EEPROM

实现各类安全相关功能。

  • 508A Use case: (部分

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

  •    使用508A加密芯片执行各算法可显著减少时间消耗,见下图,包括使用硬件ECC、ECDSA签名及验签,以及AES加解密、产生随机数、计算MD5、SHA等执行时间效率

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

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

  • 这节主要让大家对加密芯片有个大体概念,下节开始讲如何正确使用这款网络安全“神器”。

参考:

(文档类可在官网找到)

http://www.atmel.com/zh/cn/devices/ATECC508A.aspx

http://baike.baidu.com/link?url=7Gt0AImUdu_MumQImtNeqtfkufPypqgn5rjTgPlbN0V1FQm2-cdSwlfabYrbXO-eagEGVLkq–rdshls6rcMfwCW_X7fgkJ49FalJd_HAgYgEUkqh9nnQ5pqP229i36M   ATECCx08_Ecosystems-Networks_Protection.doc

http://www.atmel.com/devices/ATECC508A.aspx

Atmel-8923DX-CryptoAuth-ATECC508A-Datasheet_1152016.pdf

Security_IoT_CryptoAuthLib_Overview.pdf


附录:ATECC508A系列总结链接汇总:

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

ATECC508A芯片开发笔记(一):初识加密芯片_HowieXue 薛永浩的博客-CSDN博客
 

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

ATECC508A芯片开发笔记(二):开发准备之 CryptoAuthLib 库简介与移植_HowieXue 薛永浩的博客-CSDN博客

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

ATECC508A芯片开发笔记(三):获取508A串号、随机数源码及I2C抓包分析_HowieXue 薛永浩的博客-CSDN博客

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

ATECC508A芯片开发笔记(四):自定义配置508功能,规划DataZone数据存储_HowieXue 薛永浩的博客-CSDN博客

 ATECC508A芯片开发笔记(五):Provision执行过程及代码分析

ATECC508A芯片开发笔记(五):Provision执行过程及代码分析_HowieXue 薛永浩的博客-CSDN博客

ATECC508A芯片开发笔记(六):产生CSR以及申请证书(X.509)流程及其内容分析

ATECC508A芯片开发笔记(六):产生CSR以及申请证书(X.509)流程及其内容分析_HowieXue 薛永浩的博客-CSDN博客

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

ATECC508A芯片开发笔记(七):实现数字签名(Sign)并校验(Verify)证书签名_HowieXue 薛永浩的博客-CSDN博客

ATECC508A芯片开发笔记(八):ECDH算法配置方法、执行过程及实现原理

ATECC508A芯片开发笔记(八):ECDH算法配置方法、执行过程及实现原理_HowieXue 薛永浩的博客-CSDN博客

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

ATECC508A芯片开发笔记(九):加密读写508芯片数据的流程及相应设置_HowieXue 薛永浩的博客-CSDN博客

ATECC508A芯片开发笔记(十):ConfigZone中 SlotConfig及KeyConfig详细配置 & Tools 使用

ATECC508A芯片开发笔记(十):ConfigZone中 SlotConfig/KeyConfig详细解释 & 配置工具Tools_HowieXue 薛永浩的博客-CSDN博客
 


博主热门文章推荐:

一篇读懂系列:

LoRa系列:

网络安全系列:

嵌入式开发系列:


版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/152847.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • LevelDb实现原理

    原文网址:http://www.cnblogs.com/haippy/archive/2011/12/04/2276064.html郑重声明:本篇博客是自己学习Leveldb实现原理时参考了郎格科技系列博客整理的,原文地址:http://www.samecity.com/blog/Index.asp?SortID=12,只是为了加深印象,本文的配图是自己重新绘制的,大部分内容与原文相似,大家可…

  • SpringBoot创建maven多模块项目(实战)

    SpringBoot创建maven多模块项目(实战)SpringBoot创建maven多模块项目(实战)工作中一直都是一个人奋战一人一个项目,使用maven管理,看这个也挺好,但是总感觉没有充分发挥maven的功能,于是研究了一下这个,网上关于这个的文章很多,虽然不是很好,但我从中收获了很多,在这集百家所长,写一份实战记录,大家跟着我一块做吧!声明:构建多模块不是最难的,难点是如果把多模块打包成一个执行jar。……

    2022年10月13日
  • 编辑远程机器注册表,关闭-重启动远程计算机。

    编辑远程机器注册表,关闭-重启动远程计算机。

  • 弗洛伊德算法怎么理解_弗洛伊德算法思想

    弗洛伊德算法怎么理解_弗洛伊德算法思想这个方法中,其中每一个顶点到另一个顶点最多就是两步。所以就是找到两个顶点的最近距离packagea;importjava.lang.reflect.Array;importjava.util.Arrays;publicclassFloydDemo{publicstaticvoidmain(String[]args){char[]di…

    2022年10月23日
  • linux异步IO编程实例分析

    linux异步IO编程实例分析linux异步IO编程实例分析

  • 风控模型评价指标总结

    风控模型评价指标总结    下表为我在日常建模过程中,评价模型经常用到的一些指标。现在整理出来分享给大家,如果大家想知道每种指标的具体意义,还请大家查阅相关大佬的博文。小弟就不在这里班门弄斧了。…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号