热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

多层秘钥体系在POS刷卡支付领域中的应用

前言POS刷卡交易属于传统的支付领域。在移动支付微信支付宝的冲击下,刷卡支付的市场份额在逐渐萎缩,毕竟手机扫一扫比拿个银行卡刷卡输密方便多了。虽然移动支付大行其道,但是刷卡支付仍然

前言

POS刷卡交易属于传统的支付领域。在移动支付微信/支付宝的冲击下,刷卡支付的市场份额在逐渐萎缩,毕竟手机扫一扫比拿个银行卡刷卡输密方便多了。虽然移动支付大行其道,但是刷卡支付仍然有其存在的必要性,至少在大额支付领域仍然需要依赖刷卡支付。在使用磁条卡或者芯片卡进行刷卡交易时,必然涉及到敏感信息的传输,必然涉及到加密,而加密必然涉及到秘钥。如何管理秘钥的使用范围以及保障秘钥的传输安全,是加密过程中的重中之重。

本文来源于我的博客网站http://51think.net

一、关注点

我们可以把支付流程分成两三个部分,如下图,POS设备进行刷卡,将刷卡信息上送给支付平台,支付平台再将交易信息上送给银行。

《多层秘钥体系在POS刷卡支付领域中的应用》

两个信息上送阶段均涉及到信息的加密传输,加密的原理是一致的,加密中所使用的秘钥结构需要符合银联的安全规范要求。本文以刷卡信息上送到支付平台为例,介绍多层秘钥体系的应用。 先了解几个名词术语:
1、加密机

加密机是一个硬件设备,具备加密、加密、秘钥管理等功能,它将加解密的操作全部封装在硬件里,具备很强的抗攻击能力。

2、PIN信息

持卡人的个人标识码,即银行卡密码。PIN信息在整个支付链路中都是以密文的方式存在,在POS设备中,PIN信息手动输入后直接到硬件层进行加密,黑客无法劫持。

3、LMK/ZMK/TMK

LMK是加密机最顶层秘钥,保密级别最高,称之为本地主密钥。LMK一般是由不同的人保管着不同的秘钥分量,然后不同的保管员在加密机分别输入自己保管的那一部分并合成一个LMK,没有人能够知道LMK的全部信息。ZMK(Zone Master Key)可以理解为区域主密钥,TMK(Terminal Master Key)可以理解为终端收单主密钥。LMK/ZMK/TMK均属于保护秘钥,保护秘钥是用来加密保护工作秘钥的,分层管理,不涉及到加密报文。

4、收单主密钥

收单主密钥在本例中称之为TMK,用来加密保护工作秘钥,签到时由服务器端ZMK加密产生。

5、工作密钥(workKey)

工作秘密是真正用来加密敏感信息的秘钥,包含pin秘钥、mac秘钥以及data秘钥。比如pin秘钥用来加密银行卡密码信息,mac秘钥用来保障报文的完整性,data秘钥用来加密银行卡里的磁道信息。

6、设备主秘钥(devKey)

设备主秘钥是集成在POS硬件设备里的,作用和加密机的LMK类似。POS设备在出厂之前,需要从支付机构获取到设备主秘钥明文灌装到设备里。如果受到暴力攻击,设备主秘钥可以自动销毁。

二、多层秘钥体系

之所以称之为多层秘钥体系,是因为在这种模式下,可以根据安全复杂度要求,设置多层嵌套,层层保护,可以是三层,也可以是四层。下图体现的是一套四层的秘钥体系,加密机可以使用LMK加密产生ZMK,使用ZMK加密产生TMK,使用TMK可以加密产生pinKey、dataKey、macKey 。

《多层秘钥体系在POS刷卡支付领域中的应用》

由此可以看出,LMK需要绝对安全,否则所有的秘钥将会泄密。可否简化成三层?我们尝试把ZMK这一层删除:

《多层秘钥体系在POS刷卡支付领域中的应用》

由LMK直接加密产生收单主密钥TMK,只要LMK绝对安全,这样分层也是可以的。但是这种情况下,收单秘钥过于依赖LMK,不方便大规模的秘钥管理。如果加入了ZMK这一层,我们可以在逻辑层面上,将每个POS厂商分配一个ZMK,即使某个厂商的ZMK被泄露了,其他厂商也不会受到影响。如下图:

《多层秘钥体系在POS刷卡支付领域中的应用》

三、秘钥传输过程

从上文得知,TMK作为收单主密钥是用来加密保护工作秘钥的。那我们如何将TMK安全的送达到POS终端?这里必然涉及到网络传输,而网络传输必然会面临着报文被劫持的风险,所以TMK一定是密文的形式返回给POS终端。由此得知,我们需要一个新的秘钥用来加密TMK且这个新的秘钥也存在于POS终端,这个新的秘钥我们称之为设备秘钥。在POS设备出厂前,POS厂商使用API接口的方式从支付平台得到设备秘钥,然后灌装到设备硬件里。有了设备秘钥,后面的签到流程就可以解密相关秘钥了。如下图:

《多层秘钥体系在POS刷卡支付领域中的应用》

在POS设备中,维护这如下的秘钥关系:

《多层秘钥体系在POS刷卡支付领域中的应用》

何为签到?签到是银联的POS交易规范流程中的术语,在本例中,我们使用签到流程从支付平台获取收单主密钥和工作秘钥。支付平台控制这两个秘钥的生命周期,如果过期,则会产生新的收单主密钥和工作秘钥返回给POS终端。原则上工作秘钥的过期时间为一天,即使有黑客花费高昂代价解密了工作秘钥,第二天秘钥就会作废。


推荐阅读
  • Linux服务器密码过期策略、登录次数限制、私钥登录等配置方法
    本文介绍了在Linux服务器上进行密码过期策略、登录次数限制、私钥登录等配置的方法。通过修改配置文件中的参数,可以设置密码的有效期、最小间隔时间、最小长度,并在密码过期前进行提示。同时还介绍了如何进行公钥登录和修改默认账户用户名的操作。详细步骤和注意事项可参考本文内容。 ... [详细]
  • Android中高级面试必知必会,积累总结
    本文介绍了Android中高级面试的必知必会内容,并总结了相关经验。文章指出,如今的Android市场对开发人员的要求更高,需要更专业的人才。同时,文章还给出了针对Android岗位的职责和要求,并提供了简历突出的建议。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • 云原生边缘计算之KubeEdge简介及功能特点
    本文介绍了云原生边缘计算中的KubeEdge系统,该系统是一个开源系统,用于将容器化应用程序编排功能扩展到Edge的主机。它基于Kubernetes构建,并为网络应用程序提供基础架构支持。同时,KubeEdge具有离线模式、基于Kubernetes的节点、群集、应用程序和设备管理、资源优化等特点。此外,KubeEdge还支持跨平台工作,在私有、公共和混合云中都可以运行。同时,KubeEdge还提供数据管理和数据分析管道引擎的支持。最后,本文还介绍了KubeEdge系统生成证书的方法。 ... [详细]
  • 这是原文链接:sendingformdata许多情况下,我们使用表单发送数据到服务器。服务器处理数据并返回响应给用户。这看起来很简单,但是 ... [详细]
  • Mac OS 升级到11.2.2 Eclipse打不开了,报错Failed to create the Java Virtual Machine
    本文介绍了在Mac OS升级到11.2.2版本后,使用Eclipse打开时出现报错Failed to create the Java Virtual Machine的问题,并提供了解决方法。 ... [详细]
  • [译]技术公司十年经验的职场生涯回顾
    本文是一位在技术公司工作十年的职场人士对自己职业生涯的总结回顾。她的职业规划与众不同,令人深思又有趣。其中涉及到的内容有机器学习、创新创业以及引用了女性主义者在TED演讲中的部分讲义。文章表达了对职业生涯的愿望和希望,认为人类有能力不断改善自己。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 本文介绍了高校天文共享平台的开发过程中的思考和规划。该平台旨在为高校学生提供天象预报、科普知识、观测活动、图片分享等功能。文章分析了项目的技术栈选择、网站前端布局、业务流程、数据库结构等方面,并总结了项目存在的问题,如前后端未分离、代码混乱等。作者表示希望通过记录和规划,能够理清思路,进一步完善该平台。 ... [详细]
  • 本文详细介绍了解决全栈跨域问题的方法及步骤,包括添加权限、设置Access-Control-Allow-Origin、白名单等。通过这些操作,可以实现在不同服务器上的数据访问,并解决后台报错问题。同时,还提供了解决second页面访问数据的方法。 ... [详细]
  • 如何使用计算机控制遥控车的步骤和电路制作方法
    本文介绍了使用计算机控制遥控车的步骤和电路制作方法。首先,需要检查发送器的连接器和跳线,以确定命令的传递方式。然后,通过连接跳线和地面,将发送器与电池的负极连接,以实现遥控车的前进。接下来,制作一个简单的电路,使用Arduino命令将连接到跳线的电线接地,从而实现将Arduino命令转化为发送器命令。最后,通过焊接晶体管和电阻,完成电路制作。详细的步骤和材料使用方法将在正文中介绍。 ... [详细]
  • flowable工作流 流程变量_信也科技工作流平台的技术实践
    1背景随着公司业务发展及内部业务流程诉求的增长,目前信息化系统不能够很好满足期望,主要体现如下:目前OA流程引擎无法满足企业特定业务流程需求,且移动端体 ... [详细]
  • 本文介绍了前端人员必须知道的三个问题,即前端都做哪些事、前端都需要哪些技术,以及前端的发展阶段。初级阶段包括HTML、CSS、JavaScript和jQuery的基础知识。进阶阶段涵盖了面向对象编程、响应式设计、Ajax、HTML5等新兴技术。高级阶段包括架构基础、模块化开发、预编译和前沿规范等内容。此外,还介绍了一些后端服务,如Node.js。 ... [详细]
author-avatar
余方兰很快乐
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有