pos机开发相关

打算做pos机的开发:

 

先了解相关的知识点:

DUKPT(devider unique key per Transation):一种安全的秘钥管理技术:

保证每次交易使用唯一秘钥(不可逆转)

要求:收单行+ 终端必须同步支持该技术。

密钥 =  基础密钥 (BDK) + KSN   他俩一起装入加密模块

KSN 组成:

1.密钥标识10位【基础派生密钥标识9位+子密钥标识1位】

2.设备标识5位【最后一个二进制位给3使用】

3.交易计数器5位【即二进制的20位,但是他占用了设备标识的一个二进制位,所以其实是21位】


8583协议:基于ISO8583报文国际标准的包格式的通讯协议


8583报文 = 位图 【8583的灵魂】+ 字段域

位图:打包,解包,确定字段域的关键替代

字段域:最多由128个字段域组成,每个字段域都有统一规定,并且有定长变长之分


=================================有关数据加密======================================

数据加密算法(DEA):是一种对称加密算法,可能是使用最广泛的密钥系统,特别是在保护金融的安全中。

最初开发的DEA是嵌入硬件的,如自动取款机(ATM),他来自IBM

数据加密标准(DES):传统的密码加密都是由古代的循环移位思想而来,恩尼格玛机在整个基础之上进行扩散模糊,

但是本质原理是一样的。现代DES在二进制级别做这同样的事:替代模糊,增加分析的难度。 

加密原理:DES使用一个56位的密钥+8位奇偶校验位=64位的分组大小,这是一个迭代的分组密码,使用Feistel的技术:

具体:1.对加密的文本块分成两半,

2.使用子密钥对其中一半应用循环功能

3.将2中的输出与另一半进行异或运算

4.接着交换新的这两半

5.循环上面的1--4的过程,切记最后一次不交换

DES使用16轮循环,使用异或,置换,代换,移位操作四种基本运算。



DES加密算法加密模式:


使用块加密前需要指定它使用的模式。

这个模式定义了Clipher如何应用加密算法。

改变模式可以容许一个【块加密程序】--->【流加密程序】

块加密算法:每次加密一个数据分组,这个分组位数可以随意(一般选择64或者128位)

流加密算法:每次加密或解密一个字节的数据,这使它比流加密的应用程序更加有用。


1.ECB(电码本)

最简单的模式,同样的明文分组加密成---->相同的密文分组

优点:这对于发送单一的块数据来说是非常好的,如密钥

缺点:

1.对执行一个加密的信息流来说不是很好,因为如果相同的明文多次发送以后,同样的密文也会被多次发送。

2。对每一个块用相同的方式进行加密。

如果我们的密钥或者数据不断发生变化,ECB是完全安全的

但是如果类似的块经过同样的密钥加密发出以后,攻击者可能获得一些我们并不想让别人知道的信息

2.CBC(密码分组链接)需要IV

CBC模式改变了加密方式【使用前一分组的信息加密当前分组】,同样的明文分组不一定加密或解密同样的密文块
优点:解决了ECB存在的主要问题
缺点:相同的信息仍然加密成相同的密文,因为所有的分组是同时变成密文分组的

解决:引入一个Initialization Vector(初始化向量),

IV仅仅是一个初始化加密程序的随机数。它无需秘密保存,但对每一个信息来说它都是不同的

通过这个方式,即使有两条相同的信息,只要他们有不同的IV,那么他们加密后的密文也是不同的

CBC很适合文本传输,但它每一次都需要传送一个完整的数据块,一般选8个字符。


3.CFB(Cipher FeedBack:密码反馈)需要IV

工作方式与CBC类似,但它可以执行更小的数据块,典型的有8位

适合加密像聊天对话这样的信息,因为每次可以发送单一的字节数据块。

和CBC一样,CFB也需要一个IV,且相同及钥发送的每条信息的IV都必须是唯一的。


4.OFB(Output FeedBack:输出反馈)需要IV

和CFB类似
优点:传输中能给数据提供更好的保护,防止数据丢失外
密文中一位出错,也只造成明文中的一位出错,其他的方式会造成整个块丢失



====================================有关加密机知识=============================================

1.1 加密机型号(加密机提供加密服务)

江南计算机研究所(56所):

SJL06E(江南卡友)

SJL06T(江南卡友)

SJL22(江南歌盟)

卫士通信息产业股份有限公司(30所

SJL05

1.2 通讯方式:

应用软件通过TCP方式调用加密机服务

1.3 在银行业具体应用:密钥管理,PIN保护,消息完整性控制,具体内容:

a,产生随机密钥供 终端通讯使用,并打印

b.产生随机工作密钥,并用本地主密钥

c.验证接受的工作密钥转换为本地主密钥,加密保护

d.根据明文PIN生成指定格式的密文PINBLOCK;

e。转换PINBLOCK

f,校验MAC

g,生成MAC

h.解密明文PIN:

i.CV V & CVN的校验


三层密钥体系:

银行业使用标准ANSI x9.17,为三层密钥体系,对不同密钥(特别是工作密钥)的功能做了严格的使用限制,

专钥专用



第一层:本地主密钥【加密机】(LMK):采用双倍标准的3DES密钥(128位),存放在硬件加密机内,

作用:将所有本地存放其他密钥加密数据加密,


第二层:传输主密钥银行(BMK   TMK  ZMK):密钥加密密钥(密钥交换密钥)

作用:加密在通讯线路上需要传递的工作密钥。

在本地或共享网络中,不同的通讯网点使用不同密钥加密密钥,实现密钥分工管理

它在本地存放时,处于本地MK加密之下或直接保存在硬件加密机中。



第三层:工作密钥 (数据加密密钥)= 

完整性密钥(MAK)+

PIN保护密钥(PIK)+

终端密钥(TMK=TPK+TAK)

作用:加密不同的数据。实现数据保密、信息认证,数字签名

这些数据密钥在本地存放时,处于BMK的加密之下或者直接保存在硬件加密机中



名词解释:

本地主密钥(local Master key  --LMK)加密机 主密钥,存储在加密机中,保护存储在加密机外的各种密钥和关键数据的密钥加密密钥

传输主密钥(Transfer Master Key ---TMK):两台加密设备间(加密机和加密机 、加密机和终端)用于加密保护工作密钥的更换

同属类型的有:ZMK,TMK,BMK

工作密钥(Working Key):处理对象为一般数据的密钥。

同属类型有:TAK  TPK  ZAK ZPK


2.3算法体系

国内金融加密机 加密算法遵循以下两个加密体系:雷卡体系 、金卡体系

雷卡体系:使用ZMK的指令集模式对外发布使用方法,

LMK加密之下,由应用本地存放。

具体:通过向加密机提交密文ZMK(进LMK加密后的)运算完成

金卡体系:使用加密索引的API模式对外发布使用方法,

它的BMK存放于加密机中,通过索引访问

具体:1.密码机产生一个128bits,192bits的随机数作为指定的银行主密钥,

  2.把1中主密钥保存在密码机内,并用主密钥加密后返回给主机


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值