射频识别系统中由于卡片和读写器并不是固定连接为一个不可分割的整体,二者在进行数据通讯前如何确信对方的合法身份就变得非常重要。
根据安全级别的要求不同,有的系统不需认证对方的身份,例如大多数的TTF模式的卡片;有的系统只需要卡片认证读写器的身份或者读写器认证卡片的身份,称为单向认证;
还有的系统不仅卡片要认证读写器的身份,读写器也要认证卡片的身份,这种认证我们称为相互认证。Mifare系列卡片中的认证就是相互认证。最常见的认证是使用密码,
只要说对了口令(密码)就可以确信对方是自己人。直接说口令(密码)存在巨大的风险,万一被别人听到了后果不堪设想,所以最好不要直接说出密码,
而是通过某种方式(运算)把密码隐含在一串数据里,这样不相干的人听到了也不知道什么意思。为了让隐含着密码的这一串数据没有规律性,
对密码运算时一定要有随机数的参加。于是最常见的相互认证是双方见面时一方给另一方一个随机数,让对方利用密码和约定的算法对这个随机数进行运算,
如果结果符合预期则认证通过,Mifare系列卡片采用的相互认证机制也被称为“三次相互认证”,如下图所示。
卡片认证读写器的合法性,先向读写器发送一个随机数,读写器用事先约定的有密码参与的算法对随机数进行运算,
然后把运算的结果回送给卡片
根据安全级别的要求不同,有的系统不需认证对方的身份,例如大多数的TTF模式的卡片;有的系统只需要卡片认证读写器的身份或者读写器认证卡片的身份,称为单向认证;
还有的系统不仅卡片要认证读写器的身份,读写器也要认证卡片的身份,这种认证我们称为相互认证。Mifare系列卡片中的认证就是相互认证。最常见的认证是使用密码,
只要说对了口令(密码)就可以确信对方是自己人。直接说口令(密码)存在巨大的风险,万一被别人听到了后果不堪设想,所以最好不要直接说出密码,
而是通过某种方式(运算)把密码隐含在一串数据里,这样不相干的人听到了也不知道什么意思。为了让隐含着密码的这一串数据没有规律性,
对密码运算时一定要有随机数的参加。于是最常见的相互认证是双方见面时一方给另一方一个随机数,让对方利用密码和约定的算法对这个随机数进行运算,
如果结果符合预期则认证通过,Mifare系列卡片采用的相互认证机制也被称为“三次相互认证”,如下图所示。
卡片认证读写器的合法性,先向读写器发送一个随机数,读写器用事先约定的有密码参与的算法对随机数进行运算,
然后把运算的结果回送给卡片