基于NFC不安全通信环境的芯片动态防伪
2018-01-25陈新林王政铭
陈新林 王政铭
摘 要:文中突破了IC端读写限制,解决了基于NFC不安全通信环境下的芯片动态防伪问题。通过设计方案,降低了厂商密钥管理的难度,进一步提高了防伪可靠性。在通信环境不安全甚至不友好的情况下,仍然能够保证IC芯片与企业后台数据库系统数据同步,进一步提高系统的适用性,降低对数据库安全性的要求。即便数据库信息被泄漏给伪造者,由于IC方和企业后台数据库系统DBS方实施了双向动态更新,使得对IC标签的克隆、伪造无法实现。
关键词:无源芯片;动态信息防伪;NFC;防伪技术
中图分类号:TP309 文献标识码:A 文章编号:2095-1302(2018)01-0-03
0 引 言
假冒伪劣产品层出不穷,给消费者、企业以及社会造成了巨大损失。虽然打假活动在不断进行,同时相关单位也在不断研究和应用新型防伪技术,但造假者也在不断进步,所以需要我们更新和利用新技术防伪。根据其特性,目前传统的防伪技术可分为两类:一是特殊工艺和材料防伪,主要包括激光、油墨、特殊纸张防伪;二是数码防伪,包括条形码、二维码和传统的IC卡(智能卡、M1)防伪。基于传统工艺的防伪技术无法承载数据信息且易于造假,二维码则无法动态写入信息、可被复制等,而M1技术作为RFID标签中的一种,借助NFC(无线近场通信)技术,通过M1-RFID-NFC模式在市场上得到了广泛应用。然而,这种IC卡的安全过于依赖密钥,其安全性也受到质疑并被成功破解。只有采用了CPU数据处理器的IC卡才具有足够高的安全性。本项目基于IC卡及NFC(无线近场通信)技术研制,但目前的产品或解决方案还不成熟,仍存在一些问题待解决,如密钥管理复杂性问题、芯片克隆问题。由于需要考虑安全性,限制了一般非授权用户操作过程中系统更新卡中信息,导致克隆问题不能有效解决,若让一般非授权用户操作时可由系统更新卡中信息又将面临NFC通信环境的安全性问题等。为简化描述,本文将芯片系统、NFC系统及厂商数据库系统分别用IC、NFC、DBS代表。
1 文献综述
目前,在芯片防伪领域大多采用含有CPU的智能芯片,内含CPU、固化有加密解密程序及相应的存储空间等,可看作一个小型的信息处理系统。芯片系统通过NFC系统与厂商数据库系统交互,比对相关联数据,可最终判断产品真伪。
文献[1]提出了基于NFC技术的酒类防伪溯源系统;文献[2]提出了基于NFC芯片的防伪溯源系统;文献[3]提出了基于NFC的茶叶防伪验证可追溯系统等。
在专利方面,有企业设计了基于NFC芯片防伪认证的商品追溯方法;基于NFC芯片防伪认证的数据加密方法;基于NFC芯片防伪认证的自动批量处理以及自动写卡方法等。
通过对现有技术及专利的跟踪研究发现,至少存在如下4个方面的问题:
(1)为确保防伪的有效性,在多数系统中,一般采取对写有防伪信息的数据进行加密存储,有些系统要求厂商对密码进行严格的保护[1]。
(2)由于IC与DBS之间的信息到通过NFC传送,而这种传送方式的安全性和可靠性难以得到保证。为保持IC及DBS数据的一致性,有些系统采用双向验证方式,即对IC及NFC进行双向验证,先确定IC及NFC的合法性,然后再进行数据读写[2,3]。但客观上来说,这些都是将IC、DBS的安全建立在NFC的安全之上。
(3)一般都未涉及DBS的安全。实际上,企业内部工作人员利用工作之便获取信息再暴露给其他人员的案例屡有发生;或者由于管理不善,致使某些人非法获取了数据库资料,均有可能对防伪系统造成威胁。
(4)非授权普通用户无权更新卡内信息,导致IC卡复制得不到有效控制,通过毁损芯片(即撕毁)来对付伪造的方式在很多场合并不现实。
上述4个问题导致芯片防伪存在较大的安全威胁,一是系统严重依赖于密钥的安全,一旦密钥泄密,整个防伪系统便瘫痪;二是通过验证读写设备的合法性来确保通信安全及数据一致性,各类读写设备是开放的,存在诸多安全隐患,容易遭受攻击[4];三是对某些人员直接获取数据库信息缺乏防范;四是批量复制得不到有效控制。
對现有技术的应用,日本和韩国处于领先地位,有不少研究开发的产品已应用于企业中。目前,北京和深圳也有个别企业在开发相关产品,并在一些品牌企业中得到了应用。由于技术尚不成熟,还需要改进,因此可通过本技术的实现,解决该技术实际应用中存在的部分未解决的问题。通过产业化应用,打击造假、售假行为,保护品牌企业的产品,维护消费者权益,具有非常广阔的市场前景。
2 芯片存储结构及读写规则设计
2.1 芯片的存储结构和标识信息以及读写规则
芯片的存储结构如图1所示。
芯片存储结构及标识记录信息:
IC_UID表示芯片编号;Private Key代表私钥;IC_DynamicCode为动态码;IC_Count为查询计数器;IC_SalesStatus为销售状态;IC_MakerSpecialCode为制造商特殊码,这些为关键标识。IC_ MakerSign为厂家签名;IC_ ProductInformation为产品信息为附加标识,可根据需要增删。
芯片读写规则:
(1) Private Key:写入和读取。非对称加密私钥信息,在出厂时写入,仅供芯片的CPU使用。
(2)IC_DynamicCode:写入和读取。动态验证码,每次查询后修改,仅供芯片的CPU使用。
(3)IC_Count:写入和读取。查询计数器,每次查询成功后加1。
(4)IC_SalesStatus:写入和读取,表示销售状态。
(5)IC_MakerSpecialCode:写入和读取。制造商特殊码在出厂时写入。在产品真伪存在争议时,作为一种附加的验证信息,将设置为一个特定状态。
(6)IC_ MakerSign:写入和读取。在出厂时写入厂家签名,可用厂家经CA认证的密钥加密。
(7)IC_ ProductInformation:写入和读取。在出厂时写入产品信息,具体内容根据需要编辑,该信息可由NFC读取。
2.2 企业后台数据库DBS结构及读写规则
数据库结构如图2所示。
数据库结构及记录的信息:
DB_UID表示芯片编号;Public Key表示公钥;DB_TemporaryDynamicCode为临时动态码; DB_DynamicCode为动态码;DB_TemporaryCount为查询临时计数器;DB_Count为查询计数器;DB_SalesStatus为销售状态;DB_MakerSpecialCode为制造商特殊码,这些为关键字段。DB_ ProductInformation为产品信息,为附加字段,可以根据需要增删。
数据库读写规则:
(1) DB_UID:写入和读取。在芯片初始化时,将芯片的IC_UID写入数据库。
(2) Public Key:写入和读取。非对称加密公钥信息,在芯片初始化时,私钥写入芯片,公钥写入数据库。
(3)DB_TemporaryDynamicCode:写入和读取。临时动态验证码,每次查询后修改。
(4)DB_DynamicCode:写入和读取。动态验证码,每次查询后修改。
(5)DB_TemporaryCount:写入和读取。查询计数器临时值,每次查询成功后加1。
(6)DB_Count:写入和读取。查询计数器,每次查询成功后加1。
(7)DB_SalesStatus:写入和读取。表示销售状态,如在售、已售、不可售等。
(8)DB_MakerSpecialCode:写入和读取。在出厂时写入制造商特殊码,在产品真伪存在争议时,作为一种附加的验证信息。
(9)DB_ ProductInformation:写入和读取。在出厂时写入产品信息,具体内容根据需要编辑,该信息可由NFC读取。
3 针对IC-NFC-DBS的信息通信過程
动态防伪实现的关键在于保证IC_Count与DB_Count的一致性。由于NFC在IC-DBS通信过程中存在通信不稳定、拦截、伪造信息的可能,为保证在不安全通信环境下完成IC_Count与DB_Count的同步,在每一次查询操作中,采取先校验再同步的策略。通过IC保存的私钥对IC_Count进行加密。由于NFC没有密钥,无法加密解密,因此无法篡改信息。NFC或不发送该信息,或将该信息原版发送,反之亦然。在这个通信环节,即便NFC不可信,也不会影响通信安全。信息通信过程如图3所示。
(1)NFC读取IC信息,将IC_Count,IC_UID加密发送给DBS数据库。
(2)DBS收到上述信息后,先定位IC_UID的记录,再用公钥解密获得IC_Count,若IC_Count=DB_TempraryCount (或DB_Count),则产生2个随机数DB_R1,DB_R2,然后将DB_R1,DB_R2以及数据库信息DB_TemporaryDynamicCode,DB_DynamicCode, DB_TemporaryCount ,DB_Count,DB_SalesStatus,DB_UID通过公钥加密发送给IC。
(3)IC接收到DBS的信息后解密,经过相关验证后记录在IC 中,然后将加密过的DB_R1,IC_Count,IC_UID回送DBS。即使NFC中断通信,由于IC与DBS同步已经部分完成,不会影响下次查询的正确性。
(4)DBS收到信息后解密,在进行相关验证后,更新DB_DynamicCode, DB_TemporaryDynamicCode(随机数),DB_Count;DB_TemporaryCount加1,然后将加密过的DB_R2,DB_TemporaryCount,DB_Count,DB_UID发回IC。若NFC伪造随机数NFC_R2,由于NFC_R2≠DB_R2,通信中止,对IC及DBS均无任何损害。若NFC中断通信,由于IC与DBS同步已经完成,不影响下次查询的正确性。
(5)IC接收到信息后解密,将DBS传送过来的值放在一个临时变量里,然后执行加密DB_R2,IC_Count,IC_UID,IC端产品信息发回DBS。
(6)DBS接收到信息后解密,将IC传送过来的值放在一个临时变量里,执行相关验证后将DB_TemporaryCount放入DB_Count,完成相关操作,在NFC端显示前后台产品信息。由此保证了信息的安全与完整,防止对IC卡的克隆。
4 结 语
随着具有NFC功能的智能手机的发展,广大消费者可以利用手机实现对产品真伪的验证,大大方便了消费者。即使采用芯片防伪,如果防伪标识无法动态变化,那么其效果与印刷防伪载体区别并不大,其防伪的可靠度亦不高。因而,动态更新芯片及后台数据库信息的研究则显得尤为重要,由于这方面的研究还处于起步阶段,理论研究与实际应用均不成熟,尚有较多问题需要解决。同时要使形形色色的NFC手机等设备具备读写芯片和后台数据库的功能,其可控性与安全性问题需要妥善解决。通过本技术解决了芯片克隆与安全可控性问题,实现了不安全环境下的动态信息变更与动态防伪,对NFC芯片防伪具有极为重要的意义,具有广阔的市场前景。
参考文献
[1] 沈晓静.基于NFC技术的酒类防伪溯源系统设计与实现[D].上海:复旦大学,2013.
[2] 叶志华,王彬.基于NFC芯片的防伪溯源系统的设计[J].物联网技术,2016,6(3):111-114.
[3] 杨亚洲.NFC防伪芯片设计与FPGA验证[D].长沙:湖南大学,2014.
[4] 赵竞.Mifare非接触式IC卡安全性分析[D].杭州:杭州电子科技大学,2012.
[5] 刘艳飞,余明辉.基于物联网技术的猪肉防伪追溯系统研究[J].现代电子技术,2016,39(3):55-57.
[6] 黄叶珏.基于NFC的茶叶防伪验证可追溯系统的设计与研究[J].农村经济与科技,2013,24(3):151-152.
[7] 周海赟.基于NFC与云计算技术的智慧安防系统研究[J].重庆科技学院学报(自然科学版),2017,19(1):101-103.
[8] 李珊,余少标,王功文.基于NFC和商用密码技术的防伪溯源系统研究[J].数码世界,2017(5):58-60.