分享

林林总总的密码安全设备(二)

 吴雨虹2kzpi83a 2020-05-16

指纹USB Key

YQO}$3%T6MW@(F6}RWP0DMN_wps图片.png

指纹USB Key或叫(指纹Key)本质上仍是一种USB Key,但它用指纹验证来保护私钥而不是口令保护,因此用户在使用指纹Key签名或解密时需要验证指纹,其他方面和普通的USB Key没有区别。指纹验证大家都不陌生,上下班指纹打卡、手机指纹开机,都是每天用到的。指纹验证的原理是“世界上没有相同指纹的手指”这一生物学特征,大家都也都知道。但指纹验证对比的是指纹图像的特征点而非图像本身,因为就算同一个手指,每次采集的指纹图像都不会相同。具体工作过程是:用户首先将常用的手指指纹录入到指纹Key中,指纹Key根据特定的算法计算出指纹图像的特征点并保存,留做验证对比使用。在用户进行指纹验证时,指纹Key使用相同的算法计算采集到指纹的特征值,然后将此特征值与设备中保存的特征值进行对比,以验证用户身份。指纹图像的特征值可以理解成有着很多特征点的点阵,对比就是看两个特征值点阵中的特征点有多少重合。一般要设置验证阈值,重合特征点个数不低于阈值,就可以认为两个特征值匹配,指纹验证通过。可以根据实际应用情况调整阈值,比如假设图像有100个特征点,我们可以把阈值设置成85,90或95,一般来讲,阈值设置越高,指纹验证就越严格。

反映指纹验证算法质量有两个指标:拒真率和认假率。拒真率是正确指纹验证不通过的概率,它与指纹验证的效率负相关,拒真率越高,用户验证的效率就越低;认假率是错误的指纹验证通过的概率,它与指纹验证的质量负相关,认假率越高,指纹验证越不靠谱。当然,指纹Key拒真率会远高于认假率,因为“宁可错杀三千,也不放过一个”。指纹作为身份验证手段,安全永远是第一位的。

电子设备中的指纹采集模块主要有两种类型,一种是光学采集,即利用光学设备给指纹照相。光学指纹仪结构简单,成本低廉,适用于多用户使用的场景,常用于门禁、打卡等设备。但由于光学采集需要较大面积的采集窗口和照明光源,体积一般较大,无法用在手机等移动设备上。更重要的是,由于光学采集的原理就是照相,所以对于有指纹图像的物体(如高清的指纹照片、有完整指纹印记的橡皮泥),都可以采集到图像,而造成指纹验证通过。因此指纹USB Key不能采用光学采集。第二种是活体采集,简单的理解就是利用皮肤导电的原理,采集手指真皮层纹路的信息。这样就确保了只有对真人的手指才能采集到图像,而且采集窗口可以做的比较小。因此指纹USB Key、手机都采用这种采集方式。

应用系统结合指纹USB Key的开发方式和结合普通的USB Key没有区别。

密码机

这里说的密码机并不是那种古老的Enigma密码机,而是指服务器密码机。

u=4097506839,1596688798&fm=26&gp=0.jpg

服务器密码机本质上就是一台专用服务器计算机,内置了定制过的操作系统(基本都是Linux),只能运行预装的程序,使用者无法自行装和卸载程序,而且系统只能通过指定的方式访问。你可以把密码机理解成服务器版的USB Key,因为它实现的密码学功能和USB Key并无二致。如证书密钥的存储管理、数字签名、对称及非对称加解密等。但由于密码机毕竟是真正的计算机,而且还是服务器类型,它的功能和性能当然不是USB Key可同日而语的。密码机可以储存管理多组证书和密钥;快速进行海量的数字签名(这一点可以说是密码机的灵魂了)及加解密运算;有着完备的安全保障机制和数据备份机制。因此,密码机一般应在业务系统后台,处理高并发、大数据量的密码服务应用。如CA服务器签发数字证书、金融系统重要业务数据的传输加解密。当然密码机的价格也是USB Key问都不敢问的,市面上主流密码机在几万到十几万一台左右。

密码机在使用时,和一般的服务器类似,通过交换机、网关等设备接入网络,与业务系统服务器连接。出于安全考虑,密码机都提供白名单功能,只有指定的网络地址才能访问密码机。但就算没有白名单功能,在设计应用的网络拓扑时,也应该做到密码机只对用到它的业务系统服务器开放,对其他服务器隐藏或不可访问。对于签发证书的CA系统来讲,密码机更是其安全保护的核心,那个签发了无数张证书,处于庞大证书链顶端的私钥,就是存放在密码机里。

虽然说密码机性质上和USB Key一致,但很少有厂商为密码机提供CSP的(我这么多年就遇到过一次),基本上都是提供基于Java的接口,开发时照着手册调用即可。这些接口一般都是基于对Socket通信的封装。密码机的结合难度明显高于USB Key,这就更凸显出了学习密码学的重要性了。

密码卡

part-00550-303.jpg

此外,鉴于密码机美丽的价格,市场上还有一种密码机的替代品——密码卡。密码卡是一块可插入计算机主板的板卡,一般采用PCI接口,板卡上安装了实现密码功能的硬件和预置的软件。那些有高性能密码运算需求但又没那么多预算的业务系统,可以在其服务器上嵌入密码卡,调用其接口,实现密码功能。另外,密码卡可以将一台普通的计算机变成密码机。在计算机主板上插入密码卡,并进行相应的二次开发,这台计算机就可以依托密码卡实现密码功能,并对外提供服务,就像一台真正的服务器密码机那样。密码卡的价格有高有低,几千元的居多,很少能超过一万元。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多