谈RFID卡的密码管理

来源:互联网 发布:阿里云虚拟机如何使用 编辑:程序博客网 时间:2024/05/19 17:59

有个客户让我给他加上对RFID卡的读写功能(之前它只需要读卡的6字节的ID号);这只是第一步,后面,他肯定会要求卡的加密,他未来还会在发卡时,遇到问题。再加上另一个客户也要求密码导入的功能,于是,我觉得有必要整理一下RFID卡的密码管理方面的知识。

 

从对RFID卡密码的管理的角度看,有两种做法,一种是,直接管理卡的密码;一种是,不直接使用管理的密码作为卡的密码,而是采用一定的算法将管理的密码生成卡的密码;

 

对于第一种情况,最简单的做法是,直接将卡的密码存储于应用程序中;相对安全一点的做法是,应用程序中不存储密码,在使用时,手动输入密码。这种情况一般都是用于不要求安全的应用,比如考勤。

 

对于第二种情况,以公交行业的PSAM卡为例。一般是采用某种加密算法,根据密钥和卡的独一无二的ID,生成独一无二的卡的密码。在读卡时,读取卡ID,根据算法和密钥,生成卡的密码,再用这个密码去读卡的内容,甚至写卡。PSAM卡本质上是单片机程序和E2PROM文件系统,如果不使用PSAM卡,也可以用软件来实现这个过程。

 

虽然,不同的业务其密码的实现方式也不一样,但是,从RFID卡的设计来看,它只有两个密钥:KeyA和KeyB;我们可以认为只有两种权限。

 

RFID有四种操作:读、写、加、减;对于公交卡来说,读操作用于查询余额;减操作用于扣款消费;加操作用于存钱;写操作用得较少,一般在发卡时使用。扣款消费和读卡可以认为是一种权限;存卡和写卡可以认为是一种权限。

 

对于一般的应用;读可以认为是一种权限;写可以认为是一种权限。

 

KeyA比KeyB拥有更高的级别。

 

目前,涉及到钱相关的,脱机一般使用PSAM卡;联机一般就要用到网络,在服务器端验证。

 

 

具体到华禹工控平台,如果采用PSAM卡,则密码相关的部分在单片机部分实现。如果不采用PSAM卡,则在Java端实现更合适。

 

 

 

原创粉丝点击