0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

射频识别技术漫谈(19)——Desfire的3次握手认证和段密码生成

阗笑 来源:魏道志 作者:魏道志 2023-10-16 17:00 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

射频识别技术漫谈(12)——三次相互认证并生成临时的通讯密钥在通讯技术中的应用非常普遍,Mifare Desfire也使用了这种成熟的认证加密方法。Desfire在卡片数据传输前使用DES或3DES进行3次握手认证,认证成功一方面表明卡片和读写器双方是可以相互信任的,同时为双方之后的数据传送提供了一组临时使用的段密码进行加密保护。
DES/3DES的基本运算包括加密和解密,Desfir卡片规定,当读写器(PCD)与卡片(PICC)进行DES/3DES运算时,卡片总是进行加密运算,与之对应,读写器总是进行解密运算。DES密钥有16个字节,如果前8个字节与后8个字节相同,则进行DES运算,反之如果前8个字节和后8个字节不同,则进行3DES运算。如下表所示:

wKgZomUs-4iAS53nAAArVCa4WXU097.png

DES/3DES运算每次操作8字节,如果数据不足8字节,必须填充为8字节,填充的数据通常是00,如果正好要进行DES运算的数据是“00 00 00”(比如“读取所有数据”命令),则填充一个0x80,后面再填充00。
所有的DES/3DES操作使用密码块链接模式(CBC),即上一次DES运算的结果作为下一次运算的初始向量。发送数据使用发送CBC模式,接收数据使用接收CBC模式。第一次运算的初始向量规定为8字节的00.
以下描述3次握手认证和段密码产生的过程及实例,假设卡片密码为16个00:
第一步:读写器作为发起认证的主导方,向卡片发送认证(Authenticate)命令,并携带一个表示密码序号的参数(卡片上每种应用可以最多有14组不同的密码,其序号为0-D)。如果选定的应用标识符AID为0,那么认证将指向卡片的主密码(卡片密钥),在此情况下,密码序号必须为0。如果AID不为0,则认证的是某一应用的密码。卡片进入磁场上电复位后将默认选中AID为0。也就是说卡片复位的首次密码认证总是指向卡片主密码。如果卡片上不存在指定的密码组号,卡片将返回一个错误码。
第二步:卡片用读写器指定的密码加密一组8字节的随机数RndB,例如RndB=98 E4 EE 2E 8B 4B F7 B1,加密方法使用DES/3DES,其结果用ek(RndB)表示,此处ek(RndB)=61 58 F4 51 8A 25 9B 00,并把ek(RndB)返回给读写器。
第三步:读写器用待认证的密码16个00,对收到的ek(RndB)进行DES/3DES解密从而得到RndB=98 E4 EE 2E 8B 4B F7 B1。接下来读写器对RndB进行8位闭合左循环,从而将第一个字节移到了最后一个字节的位置,结果记为RndB’,RndB’=E4 EE 2E 8B 4B F7 B1 98。然后读写器自己产生一个8字节的随机数RndA,例如RndA=00 11 22 33 44 55 66 77,并与RndB’连接起来组成RndA+RndB’=00 11 22 33 44 55 66 77 E4 EE 2E 8B 4B F7 B1 98共16字节,使用CBC模式的DES/3DES解密运算,得到的结果称为dk(RndA+RndB’)=74 F4 AE 77 7A A4 31 E8 4B 18 BA 8F 74 CF 80 63发送给卡片。
第四步:卡片收到16字节dk(RndA+RndB’)后执行DES/3DES加密运算,得到结果RndA+RndB’。卡片首先将自己原来的RndB大循环左移8位,看结果是否等于RndB’,如果不相等,卡片将停止认证过程,并回送一个错误码。如果相等,证明卡片使用的密码和读写器使用的密码一致,卡片将获得的RndA也大循环左移8位得到RndA’=11 22 33 44 55 66 77 00,然后对RndA’进行DES/3DES加密运算,得到的结果称为ek(RndA’)=F1 81 F7 32 6D CD 86 A6回送给读写器。
第五步:读写器收到ek(RndA’)后执行DES/3DES解密从而得到Rnd A’,并把自己之前产生的RndA大循环左移8位,得到的结果与Rnd A’比较,如果不相等,读写器将退出认证过程并可将卡片休眠。
第六步:卡片将当前的应用设置为通过认证状态,如果AID=0,则将卡片本身设置为通过认证状态。
第七步:如果双方所有的比较都成功,通过组合RndA和RndB得到一个16字节的段密码,组合的方法如下:
段密码=RndA第一部分+RndB第一部分+ RndA第二部分+RndB第二部分
对于本文中的例子,产生的段密码为
00 11 22 33 98 E4 EE 2E 44 55 66 77 8B 4B F7 B1
之所以采取这种组合方法产生段密码是为了避免恶意的读写器通过将RndA=RndB而将3DES运算强行转化为DES运算。如果之后的数据传输确实想使用单DES操作(使段密码的前8字节与后8字节相等),应使用前8个字节,即RndA第一部分+RndB第一部分,而不能使用后8个字节。
得到16字节的段密码后,3次相互握手认证完成。如果之后的通讯是DES/3DES加密传输,则使用刚产生的16字节段密码作为临时的DES密钥。

审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • RFID
    +关注

    关注

    392

    文章

    7040

    浏览量

    249501
  • 射频识别
    +关注

    关注

    8

    文章

    621

    浏览量

    40244
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    WIFI如何选择加密方式WPA2与WPA3

    本文对比Wi-Fi加密方式WPA2与WPA3。WPA2的四握手过程可被攻击者抓包并暴力破解密码;而WPA3引入SAE
    的头像 发表于 05-19 14:36 100次阅读
    WIFI如何选择加密方式WPA2与WPA<b class='flag-5'>3</b>

    请问PN7160 是否支持 MIFARE DESFire EV3

    PN7160 是否支持 MIFARE DESFire EV3
    发表于 04-23 09:45

    芯盛智能XT6160企业级SSD主控芯片通过国家商用密码产品二级认证

    近日,芯盛智能XT6160企业级SSD主控芯片正式通过国家密码管理局商用密码检测认证,达到GM/T 0008《安全芯片密码检测准则》第二级要求,获颁商用
    的头像 发表于 03-17 10:21 686次阅读
    芯盛智能XT6160企业级SSD主控芯片通过国家商用<b class='flag-5'>密码</b>产品二级<b class='flag-5'>认证</b>

    TCP三握手与四挥手的详细过程

    TCP 三握手和四挥手,大概是网络领域被问烂了的面试题。但真正能把状态变迁、序列号变化、抓包细节讲清楚的人并不多。很多人背了八股文,一到生产环境看 Wireshark 抓包就懵了
    的头像 发表于 02-25 10:38 531次阅读

    曙光云密码服务管理平台正式荣获商用密码产品认证证书

    近日,曙光云密码服务管理平台正式荣获商用密码产品认证证书,表明曙光云密码服务管理平台(以下简称“平台”)严格满足GM/T 0028《密码模块
    的头像 发表于 02-24 17:21 1463次阅读
    曙光云<b class='flag-5'>密码</b>服务管理平台正式荣获商用<b class='flag-5'>密码</b>产品<b class='flag-5'>认证</b>证书

    兆易创新助力指纹识别技术落地IoT新兴场景

    从电容到屏下光学,指纹识别技术在如今的PC、智能手机等消费电子产品中已被广泛应用,逐渐成为标配。在这些成熟市场之外,随着IoT技术的飞速发展,指纹识别正不断突破传统应用边界,在智能家居
    的头像 发表于 02-09 09:24 1193次阅读
    兆易创新助力指纹<b class='flag-5'>识别</b><b class='flag-5'>技术</b>落地IoT新兴场景

    UL认证线缆选型终极指南:破解20624/20706等热门型号技术密码

    UL认证线缆选型终极指南:破解20624/20706等10大热门型号的技术密码与市场蓝海(附实战案例)别再为选错线缆而返工!本文深度解析UL认证的10款热门线缆型号(20624,207
    的头像 发表于 01-21 10:31 1112次阅读
    UL<b class='flag-5'>认证</b>线缆选型终极指南:破解20624/20706等热门型号<b class='flag-5'>技术</b><b class='flag-5'>密码</b>

    TCP的三握手

    ,Server进入SYN_RCVD状态。 (3)第三握手:Client收到确认后,检查ack是否为J+1,ACK是否为1,如果正确则将标志位ACK置为1,ack=K+1,并将该数据包发送给Server
    发表于 12-02 07:16

    智芯公司通过国家商用密码产品认证

    近日,智芯公司研发的双频三界面射频识别标签芯片正式通过国家商用密码产品认证,成为业内率先通过认证的双频
    的头像 发表于 10-24 15:24 982次阅读

    国芯科技云安全芯片CCP917T通过商用密码产品认证

    近日,国芯科技超高性能云安全芯片CCP917T通过了商用密码检测认证中心的商用密码检测认证,获得《商用密码产品
    的头像 发表于 10-24 13:54 827次阅读
    国芯科技云安全芯片CCP917T通过商用<b class='flag-5'>密码</b>产品<b class='flag-5'>认证</b>

    【VPX361】青翼凌云科技基于3U VPX总线架构的XCZU47DR射频收发子模块

    VPX361是一款基于3U VPX总线架构的8路射频收发子模块,板卡采用1片XCZU47DR RFSOC来实现8路射频信号的高速采集、信号生成以及处理,并进行智能目标
    的头像 发表于 09-15 14:42 2592次阅读
    【VPX361】青翼凌云科技基于<b class='flag-5'>3</b>U VPX总线架构的XCZU47DR<b class='flag-5'>射频</b>收发子模块

    掌静脉认证技术PalmSecure的优势

    使用生物识别认证方法代替密码是一种更方便、更安全的方式来识别自己 。存在不同的生物识别系统,那么为什么应该使用 PalmSecure 呢?
    的头像 发表于 08-27 14:02 1194次阅读
    掌静脉<b class='flag-5'>认证</b><b class='flag-5'>技术</b>PalmSecure的优势

    数字认证多款密码产品成功适配龙架构

    近日,北京数字认证有限公司(以下简称“北京CA”)密码服务管理平台、数据库加密与访问控制系统、文件加密与访问控制系统、服务器密码机等多款密码产品与龙架构成功适配。双方以
    的头像 发表于 08-22 14:18 1212次阅读

    富士通创新生物识别身份验证技术介绍

    在数字化浪潮席卷全球的当下,身份认证技术的安全性与便捷性,已然成为全社会关注的焦点。传统的身份认证方案,诸如密码、指纹识别、人脸
    的头像 发表于 07-03 09:31 1245次阅读

    锂电芯有3C认证电池组还要做3C认证

    是的,即使锂电芯已经做了3C(CCC)认证,电池组通常仍然需要单独再做一3C认证。一、原因解释:1.3C
    的头像 发表于 06-30 14:16 2807次阅读
    锂电芯有<b class='flag-5'>3</b>C<b class='flag-5'>认证</b>电池组还要做<b class='flag-5'>3</b>C<b class='flag-5'>认证</b>吗