Pages

Friday, 23 August 2013

二代身份证的安全问题和对策

据新华网等媒体报道,二代身份证被曝存天然缺陷,挂失仍可办信用卡,报道称,由于我国现行二代身份证缺乏必要的防伪功能,居民生活中丢失身份证后,即使做补办处理,原身份证仍可正常使用。大量遗失、被盗身份证正通过网络进行非法交易,并被广泛用于开办银行卡、信用卡,掩护诈骗、洗钱活动。
  之后,公安部就此进行了回应,公安部治安管理局有关负责人表示,加快推进年初开始启动的居民身份证登记指纹信息工作,目前正在推动建立全国居民身份证挂失申报系统,有效解决身份证挂失申报问题。
我觉得,从技术上讲,通过一些简单的技术就可以让我国公民的身份证具有更强的防伪、防盗功能。
  1、联网验证
   在制作身份证的时候,随机产生一个唯一ID(例如UUID)并将其保存在身份证内部存储器和公安部数据库中,最好也印在身份证外部,银行等机关验证身份 证时,自动附加上这个内部ID,并与数据库中的ID进行匹配,如果身份证进行过更换,则ID肯定会不匹配,从而简单辨别真伪。
  将 UUID是否应该印在身份卡片外面的问题,主要是为了验证,因为卡内ID很有可能是可以修改的,而且不唯一,比如很多U盘的内部ID都是相同的,而且有批 量修改U盘内部ID的工具,而如果ID印在外面,一来修改的话会留下痕迹,二来还可以同卡内ID进行对比验证,预防篡改。
  可能有人会觉 得,UUID输入不方便,这也可以考虑再增加一个可扫描条码,用于表示UUID,只要用设备扫一下即可读出UUID,而验证身份证真伪就更简单了,只要联 网验证这个UUID是否在数据库中即可,即安全简单又保护用户隐私。注销身份证只要用新卡的UUID覆盖原来数据库的UUID即可。
  即使不升级身份证系统,利用现有的信息也可以进行校验,例如身份证数据库中保存身份证的有效期限,银行验证身份证时,把身份证有效期的年份也进行验证,补办的身份证和原身份证的有效期不同,因此也可辨别真伪。
  2、本地验证
   有些时候需要在没有网络的时候也能验证身份证的真伪,在身份证里保存指纹进行对比是一个方案,但其成本过高,并且收集大量指纹可能只是为了公安部自己方 便破案,商家配置指纹识别设备往往需要更多的成本,同时,核对指纹本身是执法机关等特殊部门才拥有的权限,而身份证用途十分广泛,许多使用身份证的机构既 无条件、也无权力一一验证持证者的指纹,在缺乏必要技术手段和法律权限的情况下,商家的确很难核对持证者和所持身份证是否一一对应。因此,更为简单经济的 方法是,在身份证里保存一个密码,该密码不可读取,只能验证对比,验证身份证真伪只需要一个可以录入密码的读卡器,对比输入的密码和卡内密码是否一致即 可,这样,别人即使偷盗身份证,也不知道密码,因此在验证身份证时会出错。
  为了防止本地暴力穷举破解身份证密码,还需要控制密码尝试次 数。如果输入密码口令错误,会自动产生一个计数器,每输错一次密码,计数器就加1,如果输入正确密码,计数器则清0,如果连续十次输错密码,则将身份证锁 定,身份证所有功能和密码均无效,这时,用户需要到当地派出所解锁。通过这种方法,就可以防止穷举破解身份证密码。
  总而言之,目前的二 代身份证在设计上存在着许多低级错误,这些错误影响了身份证使用的安全性、便捷性、可靠性,主要的低级错误有:(1)号码验证位包含字母X,显然设计者的 数学算法能力有待提高。(2)身份证将有效期印在反面,这个愚蠢的设计导致复印身份证需要正反两面,浪费了大量纸张。(3)缺少唯一序列号,应该在身份证 底部增加一个唯一序列号UUID,用于证件唯一性验证。
  可见,身份证技术升级已经迫在眉睫,通过完善的技术手段,就可以从根本上截断身份证买卖市场的利益链条.