物联网环境下的终端设备需要进行相互识别和身份认证来保障网络安全和数据安全,身份认证是物联网安全保障的第一道防线,现有的传统公钥密码体制(PKI)过程繁琐、计算量大,不能很好地满足资源受限、开放、分布式物联网环境。文章基于SM9标识密码算法设计了一种基于区块链的物联网终端身份认证方案,基于计算性 Diffie-Hellman困难问题、q-Diffie-Hellman逆问题和双线性DH困难问题的假设下,可以极大满足机密性和不可伪造性,更加符合物联网实际应用环境。该方案采用设备身份标识作为公钥,简化了密钥分发管理流程,另外区块链作为一种去中心化的底层存储数据库,用来记录密钥、证书、签名等信息,可以为认证流程进行可信背书。通过性能和Proverif形式化安全性分析,并与目前主流的几种认证方式进行比较,证明该方案可以满足物联网环境下时间、性能及安全性的需求。