银行卡网络安全系统的三层密钥体系
银行卡网络安全系统的三层密钥体系为金融POS系统提供了高度安全的密钥管理。这个体系从上到下分为三层:系统密钥、主密钥、和工作密钥。每一层密钥都负责保护下一层密钥的安全性,确保系统整体的安全性。
三层密钥体系概述
-
系统密钥(System Key):用于加密主密钥或其他工作密钥,作本地存储。由POS终端或密码键盘在出厂时随机生成,具备防拆保护功能,防止未经授权的密钥提取。
-
主密钥(TMK, Terminal Master Key):用于解密工作密钥。由银行人员提供并通过安全方式输入到密码键盘,该键盘具有自动销毁功能以保护密钥的安全。
-
工作密钥(Working Key):包括用于PIN加密的TPK、用于MAC计算的TAK、用于磁道信息加密的TDK等,分别用于特定的数据加密任务,确保传输数据的安全性。
密钥类型
- 主密钥(TMK):保护工作密钥,确保POS终端与银行后台主密钥的一致性。
- PIN工作密钥(TPK):用于对持卡人输入的密码进行加密,确保密码在传输过程中的安全性。
- MAC密钥(TAK):用于对数据包生成校验数据,确保数据在传输过程中的完整性和合法性。
- Key Check Value (KCV):用于验证密钥传输的正确性,防止密钥被篡改。
密钥的使用场景
- PIN加密:当持卡人在POS终端上输入密码时,密码以密文形式传输至银行,确保传输过程中的安全性。
- 数据包校验(MAC):使用MAC密钥对数据包进行校验,确保数据的完整性和合法性,防止数据被恶意篡改。
- 密钥校验(KCV):用于验证密钥的正确性,防止错误或恶意密钥的使用,确保密钥的一致性和安全性。
工作密钥的加解密方法
- PIN加密:依据相关规范进行操作,确保持卡人密码的安全性。
- MAC算法:对数据包进行校验计算,保证数据传输的安全和完整。
- 磁道信息加密:保护磁道数据,防止敏感信息泄露。
总结
三层密钥体系通过系统密钥、主密钥、和工作密钥的相互保护,构建了一个完整的POS终端安全体系。各类密钥在数据传输、加解密过程中发挥着至关重要的作用,保障了持卡人敏感信息的安全性和交易的合法性。这种分层加密的策略是银行卡网络安全的重要基石,有效防止了密钥泄露、数据篡改等安全风险。
银行卡网络安全系统的三层密钥体系
金融POS系列产品根据银联卡检测中心(BCTC)对于终端安全要求,设计出一套适合我们终端的三层密钥体系,从上而下依次是系统密钥、主密钥、工作密钥。上级密钥用于加密下级密钥,具体如下:
1.系统密钥用于加密主密钥或其他工作密钥作本地存储,它由POS终端或密码键盘出厂时随机产生,当遭遇拆机时会自毁,最终导致之前发行的工作密钥不能使用,以到达密钥自毁的功能;
2.主密钥用于解密工作密钥的密钥;
3.工作密钥包括TPK(PIN工作密钥),TAK(MAC工作密钥) ,TDK(磁道加密工作密钥), TPK用于PIN加密TAK,TDK用于对数据进行加解密。
密钥类型介绍
在应用实际使用中总体的密钥分为主密钥(TMK),PIN工作密钥(TPK),MAC工作密钥 (TAK),指定功能的工作密钥只能做规定的工作,例如PIN加密工作密钥只能做PIN加密;MAC工作密钥只能做MAC计算。
1.主密钥(TMK)(Terminal Master Key)
由银行科技人员提供,可以采用手工输入(在安全环境下)或密钥母POS注入密码键盘,密码键盘将主密钥写入密钥保护芯片,此芯片具有开机程序自毁功能,能很好的保护银行主密钥的安全性,生产中应保持密码键盘主密钥与银行后台主密钥的一致性。
2. PIN工作密钥(TPK)(Terminal PIN encryption Key)
PIN工作密钥为POS机向银行签到时从银行后台获取,由于签到交易需要通讯,所以需要对PIN工作密钥进行加密传输(签到时银行返回POS的PIN工作密钥是密文),POS终端收到银行返回的报文后,对PIN工作密钥用主密钥进行解密,然后将PIN工作密钥存储在专用的密钥保护芯片里,此过程用密码键盘的专用芯片进行处理,此密钥同样具有开机自毁功能。此密钥专用于计算PIN_BLOCK对磁卡人输入的密码进行加密)。
3. MAC密钥(TAK)
同PIN工作密钥的处理方式一样,POS机向银行签到时从银行后台获取,由于签到交易需要通讯,所以需要对MAC密钥进行加密传输(签到时银行返回POS的MAC密钥是密文),POS终端收到银行返回的报文后,对MAC密钥用主密钥进行解密,然后将MAC密钥存储在专用的密钥保护芯片里,此过程用密码键盘的专用芯片进行处理,此密钥同样具有开机自毁功能。此密钥专用于计算MAC(对数据包生成校验数据)。
4.Key Checkvalue(KCV)
用于密钥传输过程中密钥密文正确性的校验。它是通过密钥的明文对一串数据进行DES/TDES加密的结果,一般是用结果的前4字节数据。
其它密钥
TEK — 终端报文密钥
ZEK — 区域报文密钥
CVK — 卡检验密钥
DSK — 数据存储密钥
使用场合
1.持卡人密码(PIN工作密钥使用场合)
用来确定持卡人的身份与信用卡相符,通常是6位数字(明文)。密码应该只有持卡人自己知道。密码要送到银行主机内核对,也就是说在密码的传送过程中不能被其他人获得密码明文,就算是银行人员也不能知道。因此在密码明文输入后就必须一直以密文的形式存在,就算是银行核对密码也应该核对密码密文。
在POS上使用信用卡,持卡人在密码键盘上输入密码明文,从密码键盘出来的数据就是加密过的密码密文数据,这样在密码传输过程中(密码键盘到POS,POS到银行主机)就算被截取了,也无法获知密码明文。
2.数据包校验(MAC密钥使用场合)
按照通讯双方约定的要求,对整个需传送的数据报文或者一些具体的域组成的字符串用MAC密钥,按照约定的要求进行运算,结果为8位的校验数据,放在发送报文的后面一起发送,如果参与运算的字符串被恶意修改,则运算的结果会不同,对方收到此数据包后,也需先按照相同的方式来对数据包进行运算,并对运算的结果与收到的结果进行比对,以判断此报文的合法性。只有合法的报文才能进行下一步的操作,否则认为是非法包,拒绝处理。
3.密钥校验(KCV使用场合)
1)母POS主密钥输入时,用输入密钥分量对8字节0x00做TDES计算。显示校验值取前4字节用于人工比对校验值.
2)在实际应用签到下载工作密钥时,后台下发的密钥密文后面会带有4字节checkvalue。终端在保存工作密钥时,需要将工作密钥密文用主密钥(与后台一致的主密钥)对其解密,得到工作密钥的明文,再对8字节0x00做加密算法,取结果的前四位与checkvalue 的值比较应该是一致的,如果不一致,这次下载工作密钥失败,终端应不能做正常业务。
工作密钥加解密方法
1.个人标识码(PIN)的加密和解密方法
请参考《销售点终端(POS)应用规范-2013》附录A
2.POS终端MAC的算法
请参考《销售点终端(POS)应用规范-2013》附录B
3.磁道信息加密算法
请参考《销售点终端(POS)应用规范-2013》附录E
参考:https://i.goto327.top/BBS/Detail.aspx?ID=752c0288-12f3-494c-a55a-65f026cd56d8