介绍主密钥,传输秘钥,工作秘钥

article/2025/11/9 0:47:24

近期在从事Pos应用的开发,由于之前未接触过相关开发,所以很多概念性的东西不是很明白,因此做下总结记录供以后查阅,参考了其他人的博客。链接在博客底部。
目前来说主要接触密钥的分别时:工作密钥 主密钥 传输密钥
1.工作密钥
工作秘钥也称为数据密钥,包含PIN秘钥,MAC秘钥以及磁道秘钥(TDK)。在POS每次做签到交易时,由POS中心下发给POS。需要经常性地定期更换,通常每天更换一次。
在联机更新的报文中对工作密钥必须用TMK(主密钥)加密,形成密文后进行传输。
2.主密钥
主秘钥,即(Terminal Master Key) TMK,主要作用是用来验证工作秘钥是否合法,以及加密TAK和TPK保证TAK和TPK在传输线路上的安全性。一般情况下是人工在POS设置或者通过IC卡导入,也有可能通过母POS下发!TMK被写入密钥保护芯片,此芯片具有开机程序自毁功能,能很好的保护TMK的安全性,主秘钥是和每一台POS相关联的,即主秘钥和Pos设备是一一对应的,生产中应保持POS的TMK与POS中心的主密钥的一致性。TMK,分为明文和密文。主秘钥是由服务提供商提供。如果主秘钥是密文,则需要先解密,然后校验,校验通过后,保存!
3.传输密钥
服务器通过传输密钥解密得到得到主密钥密文,下发给app,app将主密钥密文发送给机器,机器通过它解密成主密钥明文,通过主密钥明文去加密工作密钥密文。当服务器下发到app的是主密钥密文的时候,才需要传输密钥。(所以传输密钥用于解密主密钥的)(约定的)

工作密钥包含的三种密钥(PIN密钥,MAC密钥以及磁道密钥)
1.PIN秘钥
PIN秘钥,(Terminal PIN encryption Key)TPK,用于计算加密PIN(个人银行卡的密码,6位数)。在签到时,下发给POS终端,以密文的形式,POS终端接收到密文后,需要使用主秘钥去解密,然后校验,校验通过后,将TPK存储在专用的密钥保护芯片里。TPK用于加密在局域网内POS终端和POS中心之间传送的PIN。TPK需要经常性地定期更换,通常每天更换一次。此密钥具有开机自毁功能。
当用户在密码键盘上输入银行卡密码时,输出的是加密后的密文(通过TPK加密PIN后的密文),那么在网络传输中,一直都使用的是该密文,即时被截获,也是密文,所以最大限度的保护了用户PIN的安全。
2.MAC秘钥
MAC秘钥,(Terminal Administrative Key)TAK,用于计算校验MAC。MAC是用来完成消息来源正确性鉴别,防止数据被篡改或非法用户窃入的数据。在签到时,下发给POS终端,以密文的形式,Pos终端接收到密文后,需要使用主秘钥去解密,然后校验,校验通过后,将TAK存储在专用的密钥保护芯片里。TAK用于局域网内POS终端与POS中心之间传送信息时,生成和校验一个信息认证代码(Message Authentication Code),从而达到信息认证的目的。TAK需要经常性地更换,通常每天更换一次。
3.磁道秘钥
磁道信息加密密钥,TRK,用于加密磁道信息,例如发卡方信息(包括卡片验证码CVN等信息)。当需要TRK时,在签到时会下发给POS终端。

4.终端PIN密钥(TPK)
终端PIN密钥是一个数据加密用的密钥,适用于局域网络中,它是在局域网内通过TMK加密,由终端数据受理者自动分配到终端且保持通讯双方之间的对称性。TPK用于加密在局域网内终端和终端数据受理者之间传送的PIN。TPK在本地存储在加密机中通过索引的方式调用。TPK需要经常性地定期更换,通常每天更换一次。
5.终端认证密钥(TAK)
终端认证密钥是一个数据加密用的密钥,适用于局域网内。它在局域网内通过TMK加密由终端数据受理者自动分配到终端或通过BMK加密由终端数据受理者自动分配到交换中心。TAK用于局域网内终端与终端数据受理者之间传送信息时,生成和校验一个信息认证代码(Message Authentication Code),从而达到信息认证的目的。TAK需要经常性地更换,通常每天更换一次,TAK在本地存储在加密机中通过索引的方式调用。

下面时密钥的作用图:
————————————————
版权声明:本文为CSDN博主「MR_Codingson」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/MR_Condingson/article/details/80256803

 

 

 


http://chatgpt.dhexx.cn/article/eNhHRSbn.shtml

相关文章

公钥、私钥介绍

公钥私钥 什么是公钥私钥 1)鲍勃有两把钥匙,一把是公钥,另一把是私钥 2)鲍勃把公钥送给他的朋友们----帕蒂、道格、苏珊----每人一把。 3)苏珊要给鲍勃写一封保密的信。她写完后用鲍勃的公钥加密,就可以达到保密的效果。 4)鲍勃收信后&a…

公钥和秘钥

公钥与私钥,HTTPS详解 1.公钥与私钥原理1)鲍勃有两把钥匙,一把是公钥,另一把是私钥2)鲍勃把公钥送给他的朋友们—-帕蒂、道格、苏珊—-每人一把。3)苏珊要给鲍勃写一封保密的信。她写完后用鲍勃的公钥加密,就可以达到保密的效果…

国密(3)- 预主密钥/主密钥计算和Finished消息的加解密

本文给的例子是ECC-SM3-SM4-CBC; GBT-38636-2020(传输层密码协议TLCP) 定义了pre-master key 和 master key; Pre- master Key 48字节长度,version 2字节,随机数46字节,由客户端产生。采用SM2加…

BitLocker 秘钥如何获取

在装双系统的过程中,遇到一个问题,就是在双系统安装之后,每次切换到windows(我的win11)的时候,就会出现以下界面,让输入BitLocker秘钥。 首先,我切换到安全模式打开了windows系统&am…

git 配置ssh 秘钥

git支持http和ssh两种Clone方式; PS:Clone即下载源码 如何配置git的ssh key,以便我们可以通过git方式下载源码。 需要经过以下几个步骤 1.配置账户和邮箱: 通过以下命令,查看是否配置账户和邮箱: git …

密钥管理概述

目录 层次化的密钥结构: 密钥的分类: 密钥托管技术: 系统的组成: 密钥协商: 密钥共享: 密钥分配技术: 现代密码体加密和解密算法是可以公开评估的,整个密码系统的安全性并不取决…

公钥和密钥

一、公钥与私钥 在非对称加密中,我们会用到两个密钥,一个是公钥,另一个是私钥。 公钥是给别人的,别人持有的;而私钥是你自己的,只能你持有,别人是不可以持有的。 二、签名验证算法和加密算法 …

如何获取SSH秘钥

从github拉取/上传代码,需要在github添加电脑SSH公钥,如何获取电脑SSH公钥: 1.一般SSH秘钥在目录~/.ssh。没有安装git并生成秘钥是没有这个目录的。 2.安装git,我使用的是git bash软件,git bash官网下载:h…

SSH公钥原理(密钥,秘钥,私钥)(看了还是懵逼啊!)

文章目录 1. 初见SSH2. SSH工作原理1. 基于口令的认证2.基于公钥认证3. SSH实践4 总结3. 为什么需要known_hosts? 1. 初见SSH SSH是一种协议标准,其目的是实现安全远程登录以及其它安全网络服务。 SSH仅仅是一协议标准,其具体的实现有很多&a…

秘钥是什么

密钥(secret key)是一种参数,它是在明文转换为密文或将密文转换为明文的算法中输入的参数。密钥分为对称密钥与非对称密钥。 注:秘钥是一把钥匙。密码算法是锁的内部构造。加密是通过钥匙上锁的过程,解码是通过钥匙开…

JavaScript基础(详细总结)

目录 1、JavaScript简介 1.2、JavaScript的发展史 1.3、JavaScript的功能 1.4、JavaScript的特点 1.5、JavaScript组成 2、JavaScript基础语法 2.1、HTML引入JS 2.1.1、内部引入 2.1.2、外部引入 2.2、JS输出数据的三种方式 2.2.1、浏览器弹窗 2.2.2、输出HTML页面…

JavaScript学习手册(12)

对象(Object)--------- 基本数据类型的数据都是独立的,不能成为一个整体。 Object属于一种复合的数据类型,在对象中可以保存多个不同数据类型的属性。 对象分类 **内建对象:**由ES标准中定义的对象,在任…

前端之JavaScript

目录 一.初始JavaScript 1.什么是JavaScript 2.JS和HTML以及CSS的关系 3.JS的组成 二.第一份JS代码 几种JS的书写形式 JS的输入输出 三.JS的核心语法 1.变量(几种类型) 1.1 number数字类型 1.2 boolean类型 1.3 string字符串类型 1.4 undefined:未定义的数据类型 1.…

JavaScript基础介绍

一.javaScript是什么 JavaScript(简称“JS”) 是一种具有函数优先的轻量级,解释型或即时编译型的编程语言。 二.javaScript的作用 1.嵌入动态文本于HTML页面。 2.对浏览器事件做出响应。 3.读写HTML元素。 4.在数据被提交到服务器之前验…

【JavaScript】基本语法大全

前言: 大家好,我是程序猿爱打拳。在学习C和Java这样的后端编程语言后,我们大概率会学习一些关于前端的语言如HTMLJavaScript。又因为前后端基本语法有些许不同,因此我整理出来。今天给大家讲解的是JS中的数据类型、运算符、选择结…

【JavaScript】JavaScript基础篇

目录 🍊一. 初识JavaScript 🍈二. JavaScript的书写格式 🥭三. JavaScript的基础语法 🌴1. 变量的用法 🌾2. 基本数据类型 🌵3. 运算符 🌴4. 条件语句 🌾5. 循环语句 &am…

前端基础语言HTML、CSS 和 JavaScript 学习指南

对于任何有兴趣学习前端 Web 开发的人来说,了解 HTML、CSS 和JavaScript 之间的区别至关重要。这三种前端语言都是您访问过的每个网站的用户界面构建块。而且,虽然每种语言都有不同的功能重点,但它们都可以共同创建令人兴奋的交互式网站&…

JavaScript基础入门

一,什么是JavaScript 1,与Java无关!与Java无关!与Java无关! JavaScript是一种为网站添加互动以及自定义行为的客户端脚本语言, 通常只能通过Web浏览器去完成操作, 而无法像普通意义上的程序那样…

javascript小白学习指南2

好啦 好啦 ,美女看够了,我们开始继续上一次讲的内容把(上一节的内容) 控制语句: 首先我先给大家总结一下在javascript中一共有 9 种控制语句它们分别是 if 语句do-while 语句while 语句for 语句for-in 语句label 语句b…

JavaScript学习手册(10)

流程控制语句 条件判断语句(if语句) 在执行某个语句之前进行判断,条件成立才会执行语句,条件不成立则语句不成立 ​ 语法一:if(条件表达式) ​ 语句 ​ **语法二:**if(条…