版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.密码键盘原理与html5应用随着银行卡的普及,密码键盘的使用频率越来越高,同时密码键盘也遭到各种攻击如通过窃听、流量分析的方法窃取密码键盘的敏感信息;通过恶意篡改、插入、删除、重放破坏设备通信的完整性,这些攻击都严重威胁到了银行和卡用户的信息安全。因此密码键盘的高安全性对银行及卡用户都至关重要,本文对密码键盘安全认证、加密原理等进行了详细的阐述。在 2000 年前,一直使用的是明文键盘,所有的密码数据都是明文传送至工控主板进行加密的, 明文数据传输过程不安全且工控主板容易被攻破使得密码的安全性大大降低。随着技术的发展,由美国国家标准局制定的des 加密应用到了密码键盘上,此时密码键盘才真正拥
2、有了加密功能。des 全称为 data encryption standard,即数据加密标准,是一种使用密钥加密的块算法,1977 年被美国联邦政府的国家标准局确定为联邦资料处理标准(fips ),随后在国际上广泛流传开来才用到密码键盘上,因此也称之为“国际算法”。支付卡行业(pci)安全标准委员会,对密码键盘的安全要求有了明确标准即pci 认证标准,pci 全称 payment card industry认证,是目前全球最严格、级别最高的金融机具安全认证标准。在此之前,该标准为 visa 认证,2006 年后,世界 5 大支付机构( american express,discover fi
3、nancial services, jcb international, mastercard worldwide, and visa inc)联名成立了pci 安全委员会,主要负责数据安全标准、支付应用数据安全标准及密码传输安全标准的制定等工作。pci 组织要求,从2005 年 10 月起, 新 pos 机的 ped(密码输入设备)必须通过产品安全认证;从2010 年 7 月起,在网络中使用的全部pin 输入设备必须通过认证。pci 认证从金融机具的物理安全性、逻辑安全性、联机安全性、脱机安全性、生产期间的设备安全管理、 初始密钥注入前的设备安全管理等六个方面进行严格细致的检测,保证支.付卡
4、的设备安全。pci 认证分 pci 1.x ( 1.0/1.1/1.2); pci 2.x(2.1) (多了移机自毁功能,安全性能更高,2011 年 3 月停止接受2.x 认证); pci3.x (3.0/3.1); pci4.x (4.0/4.1)(4.1 为目前 pci 组织公布的最高认证标准)。通过认证的产品pci ssc 会给它出具一份通过了 pci 认证证书,并且会把通过了pci 认证的相关厂家产品名单公布在pci ssc 官网上,可在其官网进行查证。中国银联参照其标准,于是又有了中国的pin(personal identification number)输入设备安全要求, pin
5、是指个人标识码,在金融行业,一般就是指个人密码。目前国际通用的加密算法有des, tdes, aes, rsa, ecc 等,中国为了国家安全,推出了自己的国密算法,主要是sm2 , sm3 , sm4 算法等等。目前所用密码键盘主要可分为两类,一、全键盘,可参考证通电子的密码键盘zt599(下图所示)及zt938 (多功能键盘);二是数字键盘(下图所示zt598 、 zt921 ),使用的密码键盘多为数字键盘。同时从材质上也分为两大类:金属键盘(图中所示zt599 与zt598 )与非金属键盘(zt921 )。金属密码键盘多用于银行atm 机等自助设备中,键盘一般嵌入设备中使用,通过坚固的金
6、属材质及一系列特制的技术手段来达到防尘、防暴、 防钻、防撬、防拆等特性。非金属键盘主要用于pos 机等需要输入密码的金融设备上配套使用,处于室内环境,其外部材料要求没有金属密码键盘高。.zt921.jpg (18.73 kib)查看 41次zt921zt599.png (141.92 kib)查看 41次zt599.zt598.png (209.81 kib)查看 41次zt598本文以证通电子的金属密码键盘为例来讲述密码键盘的工作原理,先对密钥相关知识进行简要介绍。密钥:密钥的本质是一种算法参数,它是在将明文数据转换成密文数据或将密文数据转换成明文数据的算法过程中的一个处理参数。明文:指在加
7、 / 解密过程中,没有经过处理的原始数据。密文:指原始数据经过特殊处理之后,得到的一种与原始数据对应的新数据。加密:指将明文数据转换成为密文数据的过程。解密:指将密文数据转换成为明文数据的过程。根密钥:用于处理主密钥的密钥。根密钥只能是通过专用密钥pos 下载。密钥 pos :俗称母pos,用于存储、传输密钥的一种专用设备。pinblock: 卡号与密码经预处理后进行异或,通过des 加密后的密文数据块一般称为pinblock 。.密钥的下载可分为工作密钥和主密钥的下载。工作密钥是用于处理用户数据、交易数据的密钥的总称。 工作密钥一般是通过签到交易、密钥更新交易获得,然后保存在设备中。主密钥是
8、用于处理工作密钥的密钥。主密钥一般有2 种获取方式:通过专用的密钥pos 直接下载到密码设备中; 通过签到交易、 密钥更新交易获得, 由根密钥进行处理。工作密钥用来加密 pin 或其他敏感信息,主密钥用来加解密工作密钥,提高工作密钥的安全性。密码键盘中有多组工作密钥及主密钥,主密钥及工作密钥在下载时都有对应的密钥索引号,一对工作密钥与主密钥使用相同索引号。对称密钥与非对称密钥。对称密钥是指加密与解密使用的密钥是一致的,它的最大优势是加 / 解密速度快,适合于对大数据量进行加密,但密钥管理困难。非对称密钥是指加解密使用的是不同的密钥一般称为公钥和私钥,公钥是公开的, 私钥是个人持有的, 具有安全
9、性高但加解密速度慢的特点。对于非对称密钥,一般是公钥加密、私钥解密,私钥数字签名、公钥验证。关于数字签名在iso7498 2标准中定义为:“附加在数据单元上的一些数据,或是对数据单元所作的密码变换,这种数据和变换允许数据单元的接收者用以确认数据单元来源和数据单元的完整性,并保护数据,防止被人(例如接收者)进行伪造”。发送方用接收方的公钥对报文进行加密,然后再用自己的私钥完成数字签名,将数字签名和报文传送给接收方。 接收方在收到密文和数字签名后,先用发送方提供的公钥进行验签,然后再用自己的私钥对密文进行解密,得到明文, 确保发送方身份的准确性,以及报文并没有被篡改过。 验签过程是: 接收方首先用
10、发方公钥解密数字签名,导出报文摘要,并对电子文件原文作同样哈希算法得一个新的报文摘要,将两个摘要的哈希值进行结果比较,结果相同签名得到验证,否则签名无效。这就是电子签名法中所要求的对签名不能改动,对签署的内容和形式也不能改动的要求。密码键盘的工作状态,其状态可分为出厂初始化,授权认证,密钥装载, 正常工作和自.毁状态。出厂初始化: 使用专用的安全密钥初始化工具对密码键盘进行密钥初始化。主要操作为使用专业设备调用密码键盘生成两对密钥对,将公钥导出, 并使用厂商私钥对导出的公钥对进行签名, 将公钥和签名数据导入密码键盘,密码键盘使用厂商公钥进行验签,验签成功后保存公钥的签名,验签失败将密钥对进行删
11、除。密钥装载: 包括通过密钥协商装载初始主密钥,密文装载密文主密钥和工作密钥。为了保证产品密钥的安全,银行会对存储在产品中的密文主密钥或工作密钥进行定期更新。授权认证: 访问密码键盘的敏感信息和敏感服务都需要进行授权认证,通过授权管理员验证各自密码完成授权认证,主要是为了防止用户非法访问密码键盘敏感数据和敏感服务。正常工作:完成密钥装载和授权认证后,产品进入正常工作状态,可以完成pin输入和 pin加密功能。自毁状态: 密码键盘授权安装后,就不能被非法移除。如果产品检测到恶意攻击,包括暴力拆卸获取敏感信息、非法移除等,产品将清除内部所有敏感信息,停止正常工作, 进入自毁状态。接下来介绍密码键盘
12、的使用流程,本文使用证通电子zttaf 平台的密码键盘的使用为例,密码键盘的工作流程如下图所示。在 zttaf 平台中打开密码键盘对应的api 为 pinpad.ztopen(加参数 )。密钥下载对应api 为 pinpad_downloadkeybegin(type),可下载工作密钥及主密钥。为了防止密钥被非法使用,密钥在下载或前需确认主机身份的合法性,确保一台主机对应一台密码键盘。 密钥认证的过程, 实际是使用认证密钥实现主机和密码键盘之间基于随机数的双.向身份认证。密码键盘通过扫描获取按键的值,按键的数字一般不通过上层软件,直接进入硬件处理,等到按键按完成后,硬件直接把经过处理的按键信息
13、给上层软件,此时已经是密文了,将计算 pinblock 的处理移到硬件里面去了,这种处理就被称为硬加密,能够进一步提高密码键盘中数据传输的安全性。密钥键盘一般的运算包括 des 加解密、 mac 计算, des 加解密主是对敏感信息进行加解密,确保数据的安全; mac 计算主要是对报文进行处理,保证数据包在网络传输过程中数据不会被有意或无意的篡改, 通过报文校验来确定报文是否被修改, 提高数据传输过程中的安全性。在该平台中密码键盘的接口execpinpad(cmdcode.dam_cmd_pin_xx_xx , send)是密码键盘进行数据处理的函数接口,数据的输入、des 加解密、 mac
14、计算等,接口原型及参数如下表所示: 接口原型int ztexec(int p_icommand, qstring p_scmddata, int p_iindex=0)功能执行命令返回值=0接收命令成功 0 接收命令失败参数输入 输出类型说明p_icommand input int命令 id 如 open 、以 close 等p_scmddata input qstring命令数据, jason 格式p_iindex input int命令序列号,保留设备关闭所用api 为 pinpad_close()。密码键盘调用方法,taf 平台下 js 调用密码键盘的部分功能代码。./code/ 密码键
15、盘操作函数代码 : 全选function execpinpad(icmd, data)pinpad.ztexec(icmd,data,0,function(ret); /zttaf平台对应的/密码键盘操作接口/ 打开设备代码 : 全选function openpinpad()tryoutput(1, 打开设备 );pinpad.ztopen(cmdcode.wfs_open, 0, function(ret);catch(err)tips(js错误 :+ err);/ 下载密钥 type :1 表示主密钥, 2 表示工作密钥function pinpad_downloadkey(type)if
16、(1 = type)console.log(进入下载主密钥);/$(workkeyid1).style = none;$(workkeyid1).attr(readonly,readonly);$(#downloadkeylabel).text(下载主密钥 );$(#downloadkeylabel).attr(onclick,pinpad_downloadkeybegin(1);); /将主密钥下载到对应索引号地址else./$(#workkeyid1).style = block;$(#downloadkeylabel).text(下载工作密钥 );$(#downloadkeylabel)
17、.attr(onclick,pinpad_downloadkeybegin(2););showdlg(downloaddlg);/ 密钥下载入口function pinpad_downloadkeybegin(type)try$(#dlg).dialog(close);var scmddata = ;scmddata.mk = $(#dlg #mainkeyid1).val();scmddata.wk = $(#dlg #workkeyid1).val();scmddata.keyvalue = $(#dlg #keyvalue1).val();scmddata.kvcvalue = $(#d
18、lg #kvcvalue1).val();var send = json.stringify(scmddata);if(type = 1)output(1,下载主密钥 );elseoutput(1,下载工作密钥 );output(0,send);execpinpad(cmdcode.dam_cmd_pin_load_key, send);catch(err)tips(js错误 :+ err);/ 明文输入代码 : 全选function pinpadgetkey()try$(#dlg).dialog(close);var scmddata = ;scmddata.maxlen = $(#dlg
19、#keylength).val();scmddata.autoend = $(#dlg #endouto).val();var send = json.stringify(scmddata);output(1,明文输入 );.output(0,send);execpinpad(cmdcode.dam_cmd_pin_get_data, send);catch(err)tips(js错误 :+ err);/ 密文输入 minlen 、 maxlen 输入长度的最小值与最大值代码 : 全选function pinpadgetpin()try$(#dlg).dialog(close);var scm
20、ddata = ;scmddata.minlen = $(#dlg#pinminlength).val();scmddata.maxlen = $(#dlg#pinmaxlength).val();scmddata.autoend = $(#dlg #pinendouto).val();var send = json.stringify(scmddata);output(1,密文输入 );output(0,send);execpinpad(cmdcode.dam_cmd_pin_get_pin , send);catch(err)tips(js错误 :+ err);/ 获取 pinblock代
21、码 : 全选function pinpad_getpinblock()try$(#dlg).dialog(close);var scmddata = ;scmddata.mk = $(#dlg #mainkeyno).val();scmddata.wk = $(#dlg #workkeyno).val();scmddata.cardno = $(#dlg #cardno).val();.scmddata.keyformat = $(#dlg #pswformat).val();var send = json.stringify(scmddata);output(1,获取 pinblock);o
22、utput(0,send);execpinpad(cmdcode.dam_cmd_pin_get_pinblock , send);catch(err)tips(js错误 :+ err);/des加密被加密的数据一般是个人密码等敏感信息代码 : 全选function pinpad_desaddpin()try$(#dlg).dialog(close);var scmddata = ;scmddata.mk = $(#dlg #mainkeyno1).val(); /取主密钥scmddata.wk = $(#dlg #workkeyno1).val(); /取工作密钥scmddata.type
23、= 1;scmddata.data = $(#dlg #data1).val(); /被操作数据scmddata.mode = $(#dlg #addpinway1).val();/加密模式var send = json.stringify(scmddata);output(1,des加密 );output(0,send);execpinpad(cmdcode.dam_cmd_pin_crypt , send);catch(err)tips(js错误 :+ err);/des解密代码 : 全选function pinpad_desout()try$(#dlg).dialog(close);.var scmddata = ;scmddata.mk = $(#dlg #mainkeyno2).val();scmddata.wk = $(#dlg #workk
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 智能科技与生活应用知识测试题2026年版
- 2026年社会热点问题研究方法与实证分析题目
- 2026年陕西省单招康复技术专业基础题
- 公司薪酬核算校验方案
- 2026年中小学家长学校教学管理题
- 2026年学生晨午检因病缺勤追踪问答
- 2025湖南长沙数字集团有限公司招聘42人笔试历年参考题库附带答案详解
- 公司审批节点优化方案
- 公司项目立项管理方案
- 2025湖南医药发展投资集团有限公司“耀才”人才选拔笔试历年参考题库附带答案详解
- 《股票交易技术分析》课件
- 创意速写课件
- 小升初典型奥数:握手问题(讲义)-2023-2024学年六年级下册数学人教版
- 药理学练习及标准答案-人卫版
- 国家义务教育质量监测现场应急预案
- 招标代理服务服务方案
- 路灯照明维修技巧培训课件
- 马克39cd机使用说明书
- 营养专科护士理论考核试题及答案
- 20《金字塔》一等奖创新教学设计-1
- 笔试考试:HSK笔试(一级)真题模拟汇编(共261题)
评论
0/150
提交评论