社会保障卡读写过程中的安全控制

2020-10-12 14:44于昕
计算机与网络 2020年16期
关键词:社保卡校验密钥

于昕

1引言

社会保障卡是应用频次和普及程度最高的证卡之一,其严格的密钥控制体系保证了安全性。如果在读写校验过程中出现非法程序,卡内操作系统将启动保护机制,通过锁卡来保护卡内信息,但是卡密钥的永久性锁定,会直接影响群众用卡体验。因此,社保卡读写卡过程中的安全控制问题是一项需要深入研究的课题。

2社会保障卡安全机制简介

社会保障卡(社保卡)是应用频次和普及程度最高的证卡之一。社保卡采用单一CPU芯片多应用COS架构设计,新一代金融社保卡的人社应用支持国密对称性算法(SM4算法),金融应用支持国际(RSA非对称性算法)国密算法(SM2非对称性算法)。不同的功能应用由不同的密钥控制体系管理,相互独立。其中,金融应用和非对称认证应用遵循国际统一的标准,应用场景较为成熟,读写卡过程较为简单。社保应用的读写卡控制也有全国统一的技术规范,但由于历史原因及各地统筹层次的原因,各地在社保领域应用的介质凭证种类较多,出于便利操作角度考虑,社保卡读写终端兼容多种卡读写的“一体化”是近年来常见的终端部署模式。在医院药店等应用场所最为普及,以某省会城市定点医院为例,读写卡终端同时兼容省本级社保卡、省会城市社保卡、非标老医保卡、铁路医保卡、居民健康卡及院内就诊卡等多种卡片,在此过程中,社保卡读写卡安全控制问题较为突出。社保卡的密钥控制体系最为严格,也最为安全,具有密钥保护和锁定功能,一旦认定收到密钥攻击,达到一定次数发生密钥锁定,卡片将永久性无法使用,直接影响群众用卡体验。

3关于“多合一”读写卡动态库的管理控制

各种卡片的读写过程差别不是很大,很多“师出同门”,但因为密钥体系不同,如果不能对多种卡的读写卡动态库合并及调用过程进行合理的控制管理,轻则影响读卡速度,重则造成密钥读取错误,形成“密钥攻击”假象,社保卡启动自我保护造成密钥锁定。针对“多合一”读写卡动态库的管控,应该保证3个原则:一是基础函数的准确封装,对不同的卡种建立相互独立的动态库,并对社保卡的读基本信息、通用读卡、通用写卡及PIN校验等相关函数进行规范封装;二是对卡类型的精准判断,在入口进行封闭式判断,将卡类型与动态库通道精准映射;三是密钥訪问控制模块的精准对应,防止出现密钥对应错误,影响解析和提示。

4对PSAM卡及加密机的“内外部认证”过程控制

卡上电后,会通过卡内部认证及外部认证验证卡的合法性和用卡环境的安全性,这一过程是社保卡安全控制的核心环节,同时也是容易发生“意外锁定”的环节。在此过程中,对PSAM卡验证密钥和加密机验证密钥的调用顺序和衔接要保持准确,同时对于随机数的抽取以及执行内部认证和外部认证计算结果的过程,必须保证真实,保证各自按照合法的密钥和统一的算法进行随机数运转,密钥及算法选择务必精准控制;获取卡片返回的内部认证鉴别数据比对异常时,需及时退出函数,并提示错误信息。

5函数关闭功能控制

上层业务系统在使用社保卡过程中,各项操作过程出现异常时,均应确保先调用SSSE32.DLL动态库中的关闭设备函数关闭设备、释放端口,然后退出函数,返回错误代码和错误信息描述。早期的一些读卡动态为了提高效率,通常不会执行关闭设备操作,这样做法风险很大,因为一些指令可能被赋予循环执行的属性,当连续发出错误指令时,容易对密钥进行持续错误验证,形成持续密码攻击假象,造成社保卡COS启动“密钥锁定”程序。

6错误提示信息等级精准控制

要建立完整清晰的“常见错误信息表”,对不同卡种的不同问题进行差异化提示,便于精准定位问题。例如:在“PIN重置”等业务中,“PIN校验失败”和“外部认证失败”的错误信息提示很容易被混淆,“PIN校验失败”属于“浅表性”错误信息,产生原因是“密码输入错误”;而“外部认证失败”属于“危险性”错误,是内部控制程序出现了问题,必须立即终止操作并核查原因,否则极容易造成“密钥锁定”。

7结束语

社会保障卡已经建立的全国统一的管理服务和管理终端接口规范,各类业务系统在调用时都须执行规范标准,对读写卡动态库进行规范性检测,对应用程序调用动态库过程进行充分测试,在确保规范性、安全性的基础上体现便捷性。

猜你喜欢
社保卡校验密钥
不换第三代社保卡影响待遇发放吗
使用Excel朗读功能校验工作表中的数据
幻中邂逅之金色密钥
幻中邂逅之金色密钥
电能表在线不停电校验技术
社保卡按下“电子化”加速键
社保卡有三种密码,不修改可能损失一大笔钱
全国超140个城市接入电子社保卡
BitLocker密钥恢复二三事
精通文件校验的“门道”