密码培训教程_第1页
密码培训教程_第2页
密码培训教程_第3页
密码培训教程_第4页
密码培训教程_第5页
已阅读5页,还剩61页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

为什么要进行数据加密?

很简单:为了数据安全!

基本概念

•明文:没有经过加密的消息。

•密文:使用某种方法被加密的消息。

■加密:用某种方法伪装消息以隐藏它的

内容的过程。

•解密:把密文转变为明文的过程。

现代密码学

1.密码学一一研究密码技术的学科,是数学的一个分支,包括

密码编码学和密码分析学。

•密码编码学一一信息隐蔽使消息保密的技术和科学。

•密码分析学一一破译密码破译密文的科学和技术。

2.密码学的主要目的

•提供机密性一保密

•鉴别:消息的接收者应该能够确认消息的来源;

•完整性:消息的接受者能够验证在传送过程中消息没有

被修改;

•抗抵赖:消息的发送者在消息发送后无法否认其发送

过消息。

请注意密码学的目的,这也就是我们使用加密的原因,同时课程的核心也是

围绕如何实现这个过程展开的。

1.密码学的主要目的

■机密性:数据保密

•鉴别:消息的接收者应该能够确认消息的来源;

•完整性:消息的接受者能够验证在传送过程中

消息没有被修改;

■抗抵赖:消息的发送者在消息发送后无法否认

其发送国消息。

传统的密码学

■传统的密码学,使用密码算法,一般是一些数学函数。

(一般使用两个函数,一个加密函数一个解密函数),电

影风语者中的密码员使用的就是典型的传统密码方法。

・传统密码学的缺陷:

1、受限制,只能在一个组织内使用。大家必须知道相应

的加解密算法。

2、对人要求过高,一旦一个用户离开组织就会使保密荡

然无存。(这就是为什么风语者中:为什么要保护密码员,

为什么当密码员被抓的时候,宁可杀死他也不能落到敌人

手里的原因。)

3、受限制的密码算法不可能进行质量控制或者标准化。

现代密码系统模型及其特点

现代密码学:使用蜜阴(KEY)来进行数据加密,加密和解密都使用同

一个密钥,运算都依赖于密钥。算法可以公开,算法的安全性是基

于密钥的安全性。

现前密码学:由看法、明文、密文和密钥组成。

加密密钥解密招钥

特点

加密算法足够强大:仅知密文很难破译出明文。

基于密钥的安全性,而不是基于算法的安全性:知道密文和加/

解密算法,很难破译出明文。

算法开放性:开放算法,便于实现和标准化。

密码体制

1.对称密码体制

•加密密钥与解密密钥相同,所以又叫单钥密码。

•著名密码算法:DES

2.非对称密码体制

•加密密钥与解密密钥不同,而且解密密钥不能

根据加密密钥计算出来,所以又叫双钥密码。

•著名密码算法:RSA

对称密码

1.对称密码:加密密钥与解密密钥相同。

2.彳尤点是:_

•安全性高

•加廨密速度快

3.缺点是:

•嗔意喀络规模的扩大,密钥管理成为一

个难点;

•无法解决消息确认问题;(不过可以采

甩”叱务方法费补、如:、质户号终端

号等万式彳旦对质部人员无效)

•缺乏自动检测密钥泄露的能力。

举例:21.80.66.254/usr/btssrc/twb/encrypt

非对称密码

1.非对称密码:加密密钥与解密密钥不同,

而且解密密钥不能根据加密密钥计算出来。

2.优点是:不需要安全信道来传送密钥。

3.缺点是:算法复杂,加解密速度慢,一般

比单钥密码慢1000倍。

攻击分类

被动攻击主动攻击

切中断修改伪造

获取消息内容流量分析

破坏可用性破坏完整性破坏真实性

算法的安全性

■根据被破译的难易程度,不同的密码算法具有不同的安

全等级。从理论上来说,所有的密码算法总是可以被破

译的,那么,算法的安全性怎么判断呢?

一般来说:

1.如果破译算法的代价大于加密数据的价值,那么你可能

是安全的。

2.如果破译算法所需的时间比加密数据保密的时间更长,

那么你可能是安全的。

3.如果用单密钥加密的数据量比破译需要的数据量少得多,

那么你可能是安全的。

4.如果一个算法用(现在或将来)可得到的资源都不能破

译,这个算法可被认为在计算上是安全的。

加密方式:硬件加密

•硬件加解密是商业或军事上的主流

-(1)速度问题:不占用主机处理器资源。

-(2)安全性:可进行物理保护。

-(3)易于安装:不需使用计算机的电话、

传真、数据线路;

计算机环境下,使用硬件加密可对用户透明,

软件实现,需要在操作系统深层安装,不容

易实现。

加密方式:软件加密

•缺点:安全性差、速度慢、造价高。

•优点:使用灵活、修改方便、可移植性

好。

•采用软件加密时,密钥管理的手段必须

可靠,通常对管理人员的要求较高。(特

别对软件开发人员)

银行卡网络系统的安全需求

1.保证用户密码(PIN)的安全。国际信用卡

组织在信用卡业务安全规范中有相当明确的

要求:“PIN不允许以明码的形式出现在网

络系统中的任何地方!"。所以,PIN在生

成、存储、传输过程中必须全程保密。

2.保证交易信息在传输、交换过程中的完整性。

3.安全的密钥管理。这是保证上述两点的必要

条件。

银行网络解决之道

DES算法

•DES算法来自IBM。

•DES被NBS(美国国家标准局)采用。

•DES被NSA(美国国家安全局)密密修改过,安全性有很大

幅度降低。(原DES密钥采用112位,NSA将其修改为56

位)。

•经过修改的DES算法成为美国联邦标准。

•IBM持有专利,但同意其他公司在制造、实现和使用中使

用他们的知识产权。

■由于DES被NSA修改过,是否存在后门,一直是一个难解

的密团。

■DES设计之初定义为硬件实现从而实现国家垄断,但由于

DES算法的细节被NBS对外公布,最终被程序员利用软件

实现了DES算法,NSA认为DES算法的出现是他们20世纪

最大的错误。(或许说标准对外的公布)

DES算法描述

•DES算法是一个分组加密算法,它以64位为分组对数

据加密。64位一组的明文从算法的一端输入,64位的

密文从另一端输出。DES算法是一个对称算法:加密

和解密用的是同一算法。

•DES算法的密钥通常为64位,通常用16个16进制的数

表示,但舞个16进制数的第8位都用作奇偶校验,所以

密钥的实际长度是56位,如:6D969D8710FAAE83

•DES将密钥作用于明文,经过16轮计算得到密文

•DES的解密算法和加密算法相同,二者不同的是48位

子密钥输入的顺序不同,加密是kl..kl6的顺序,解

密是K16....K1的顺序。

三级密钥体制

•银行卡网络安全系统采用了三级密钥管理体

制,从上而下依次是主密钥、密钥交换密钥、

数据密钥。上级密钥用于加密下级密钥,具

体来说:,

1.主密钥用于加密密钥交换密钥和数据密钥作

本地存储;

2.密钥交换密钥用于加密数据密钥作网络传输;

3.数据密钥用于对数据进行加解密。

三级密钥体制示意图

主者钥

密钥交换音钥

数据密钥

三级密钥体制

本地主密钥LMK

伐输主密钥

工作室钥

三级密钥体制说明一

第一层,LMK为本地主密钥,共有50对不同的LMK,它是采用双倍

标准的DES密钥(长达H2位),它是存放在HSM机内的,它的作

用是对所有在本地存放的其它密钥和加密数据进行加密,不同对

的LMK用于加密不同的数据或密钥。由于本地存放的其它密钥和

加密数据,都是在LMK加密之下。因此,LMK是最重要的密钥。

第二层,通常称为密钥加密密钥或传输密钥(Key-encrypting

key),包括TMK、ZMK等密钥。它的作用是加密在通讯线上需要

传递的数据密钥。从而实现数据密钥的自动分配。在本地或共享

网络中。不同的两个通讯网点使用不同的密钥加密密钥(KEK),

从而实现密钥的分工管理,它在本地存放时,处于本地LMK的加

密之下。

第三层,通常称为数据加密密钥或工作密钥。包括TPK、TAK、

ZPK、ZAK、PVK、CVK等密钥,它的作用是加密各种不同的数据。

从而实现数据的保密,信息的认证,以及数字签名的功能,这些

数据密钥在本地存放时,处于本地LMK的加密之下。

LMK本地主密钥

■本地主密钥是存入在HSM机内的50对LMK的集合。在

HSM机器以外的地方不会以明文形式存放,它采用双倍

标准DES密钥(长达112位)实现三重数据加密。所有的

密钥和加密数据存放在本地时都必须经过LMK进行加密。

HSM投入运行时,必须先产生和装载LMK。

•LMK的产生需要银行三位主要的管理人员参与产生,每

人输入三组数据(二组十六位的十六进制数,一组八位的

十进制数。HSM利用这三组数据通过一定的运算产生

50对LMK存放在HSM机内的EPROM里供HSM使用。

HSM在运行的过程中一旦被打开,这时机内所有LMK就

会自动销毁,HSM允许LMKS可改变,但改变后所有通过

LMKS进行加密的密钥和数据,需要解密后使用新的

LMKS进行加密。更换LMK是一件风险极高的工作,一

旦出错,会造成整个银行加密体系的失效。

LMK本地主密钥产生过程

三个成份

3X128比特

A成份A

种子密钥重新分割

128匕匕特

A成份B

专用算法

50对LMK

ZONEMASTERKEY

亿MK)区域主密钥

•ZoneMasterKey(ZMK)是处于三级密钥体系

的第二级是加密密钥用的密钥,适用于广域网

网络中,同一个广域网网络中任何两个通讯网

点之间均共用不同的ZMK。ZMK用于加密底

层需要传送的数据密钥(ZPK),这样远地密钥

就能自动进行交换(无须人工干预)。该密钥可

以长期不更改,通常二年更新二次。本地存储

时,ZMK是通过LMK04-05进行加密的。

区域主密钥(ZMK)的产生

•在产生ZMK的时候存在交换中心和成员行的概

念,如果在中行网络里,总行就是交换中心,

我行就是其中的成员行,在银联网络里银联就

是交换中心,中行就是其成员行了。

•ZMK的产生,是由交换中心提供两组或者三组

16位16进制的明文给各成员行,各成员行收到

后,由成员"两名或三名业务主管分别持瓦,

输入笨行的力口密机,加密机产生被LMK加密后

的ZMK密文和CHECKVALUES,将密文抄下,

保存到主机数据库里。CHECKVALUES用于

与交换中心进行核对明文输入是否输入正确。

什么是CHECKVALUES?

■由于LMK和ZMK以及TMK的产生都是由两组或者三组

由不同人持有的明文输入加密机后产生的,但如果在

输入过程中一旦输入错误会造成整个密钥体系无法正

常工作,如何避免这种问题呢?

•CHECKVALUES就是起到校验输入的明文是否正确的

作用,它通过一个加密机通用的算法对明文进行计算

得出的一个值,交换中心提供明文时一般会提供相应

的CHECKVALUES,或者让成员行将自己加密机产生

的CHECKVALUES发给交换中心,由它确定明文是否

正确。

•需要了解的是:只要明文是一致的CHECKVALUES一

定是一样的。CHECKVALUES一致表示输入的明文是

正确的,由此产生的相应密文才是正确的。

ZONEPINKEY(ZPK)

区域工作密钥

•区域PIN密钥是一个数据加密密钥,适用

于共享网络,它通过ZMK加密在两个(或

多个)通讯网点之间进行自动分配(交换

密钥),ZPK用于加密两个通讯网点之

间需传输的PIN,这样就实现了PIN的保

密。ZPK需要经常性地定期更改,在本

地存储时(本地,旨交换中心),它是通

过LMK06-07进行加密的。

TERMINALMASTERKEY(TMK)

终端主密钥

•终端主密钥是一个加密密钥用的密钥,(处于

三级密钥体系的哪一层?)使用于局域网络中。

可以人工地或自动地在以前安装过TMK的基础

上分配给通讯的双方且保持双方之间的对称性,

它用于在局域网内对新产生的底层的数据加密

用的密钥加密(TPK),然后由主机端传输到

ATM或POS或其它相似的终端。TMK可以长期

不作改动,通常一到二年更换一次,本地存储

时通过一对LMK14-15进行加密。注意TMK和

ZMK的区别。

TERMINALPINKEY(TPK)

终端PIN密钥(终端工作密钥)

•终端PIN密钥是一个数据加密用的密钥,

(处于三层密钥体系的第三层)适用于

局域网络中,它是在局域网内通过TMK

加密,由终端数据受理者自动分配到终

端且保持通讯双方之间的对称性。TPK

用于加密在局域网内终端和终端数据受

理者之间传送的PIN。本地存储时通过一

对LMK14-15进行加密的。TPK需要经常

性地定期更换,通常每天更换一次。

TERMINALAUTHENTICATIONKEY

(TAK)终端认证密钥(MACKEY)

•终端认证密钥是一个数据加密用的密钥,适用

于局域网内。它在局域网内通过TMK加密由终

端数据受理者自动分配到终端,TAK用于局域网

内终端与终端数据受理者之间传送信息时,生

成和校验一个信息认证代码(Message

AuthenticationCode),从而达到信息认证的目

的。TAK需要经常性地更换,通常每天更换一

次,本地存储时通过一对LMK16-17进行加密。

(MAC算法在后面介绍)

PINVERIFICATIONEKEY(PVK)

PIN校验密钥

•PIN校验密钥是一个数据加密密钥,用

于生成和校验PIN校验数据,同时校验一

个PIN的可靠性。传送时PVK通过TMK

或ZMK加密;存放本地时,它通过一对

LMK加密。

CARDVERIFICATIONKEY

(卡校验密钥)

•卡校验密钥(CVK)类似于PIN校验密钥,

仅仅是用卡的信息取代了PIN。其主要作

用就是校验卡的磁道信息的即通常所说

的CVV校验。

实现PIN的安全

1.发卡过程中PIN的产生

2.PIN的修改过程

3.交易过程中PIN的保护

发卡时客户密码生成过程示意图

(FORAS400)

PIN的生成过程(AS400)

1.主机向密码机发送产生并打印用户PIN的指

令;

2.密句机接到指令后,在内部用随机数自动产

生一个PIN值;

3.密码机在内部用PVK密钥加密PIN,把PIN的密

文输出送给主机,主机将PIN的密文存入用户

数据库中;同时密码机将PIN的明码直接输出

到专用打印机上,打印在密码信封之内

4.用户拆开密码信封,得到卡密码。

5.需要注意的是密码的生成和校验的过程有许

多不同的方法,我行AS400的加密方法和SBS

的加解密的方法就不相同。

AS400PIN的生成过程

•AS400加密方式使用的是IBM3624方法

•该方法产生PIN的基本要素为一个A/C(16位的十进制的

客户帐号或卡号,如A/C不足十六位,则可由银行自行

决定如何填充,使其达到十六位)和一个PVK(产生PIN

的密钥),一个A/C和一个PVK通过DES算法,即得出一个

16位的十六进制数,根据不同银行的要求来规定PIN的长

度,例如6位PIN则取前六位数。用DECIMALISATION十

进制表将该6位十六进制数转为6位十进制数,即得到一

个六位十进制的原始密码PIN(即发卡时卡的原始密码)。

但原始PIN是不存放在主机的数据库中的,在数据库中只

存放A/C、PVK和偏移量。

•需要注意的是:

•1、我行传送的16位A/C是使用信用卡卡号的倒数第二位

开始向前数12位帐号后补4个0来实现的。

•2、只要帐号不变生成的原始密码是不变的。

我行A/C帐号的组成

•5183766500009205

•使用信用卡卡号的倒数第二位开始向前

数12位帐号:376650000920

•后补0000,最后得到的16位A/C是:

3766500009200000

偏移量的作用

•由于采用IBM3624的加密方法计算出来的原始

密钥是不变的,但客户需要改密的时候该如何

实现呢?偏移量(OFFSET)为此引入这种加密

方法,OFFSET为一个六仓(或者7位)十进制

的中间数,它的作用为客户更改密码时,通过

OFFSET的变化来保证NATURALPIN不变,工

作原理是PIN+OFFSET得出客户现在的PIN,在

这个力口法中每一位是对应相加的,血不进位。

OFFSET存放在主机的数据库中。其实客户改

密只是改变的存放在数据库中的偏移量。

SBS个人PIN的产生过程

•SBS借记卡的加密过程非常简单,它直接

调用加密机的BA指令,将一个客户输入

的6位的明文密码和借记卡帐号(12位的)

使用加密机LMK02-LMK03进行加密产生

密文,将密文存放在数据库内。

SBS借记卡PIN的修改过程

1.将借记卡插入本行的ATM,并输入旧密码

PIN-OLD和新密码PIN-NEW。

2.ATM终端用PIN密钥TPK加密PIN-OLD和PIN-

NEW,并将加密后的PIN组成消息,发往SBS主

机;

3.SBS得到交易消息,命令加密机在内部,用

与ATM约定的PIN密钥TPK解密PIN-OLD,

再将主机从用户数据库中提取的该客户PIN-

OLD的密文用PVK密钥解密;之后,比较这

两个PIN,如果相同,则用PVK加密PIN-

NEW,将PIN-NEW的密文返回给主机,同时

返回生麹座答,、餐户修改露号成功;L杳则,

密码修改错误应善,客户修改密码失败。

PINBLOCK的计算

•PINBLOCK就是个人PIN在网络传输过程中

加密后一种结构。

•PINBLOCK的产生有许多的算法

(1)国际格式ISODP/9564/1—FORMAT0

或ANSIX98

(2)DOCUTEL格式

(3)IBM格式

(4)NCR格式

我行采用的是ANSIX98标准。

PINBLOCKANSI98算法

•首先把PIN(PioooPn),其长度(n

一般是4—6之间)+PIN+及填补值(F)

合成一组16位的字串,再以帐号(除校

验位)最后12位数字(A1。。。A12)

和以“(F填补右边的一组数字异或

(EOR),便得到一串16位的十六进制

的数据。使用TPK进行DES运算得到

PINBLOCK

PINBLOCK产生示意图

PINBLOCK与验密(以SBS后台为例)

使用比较法验证终端PIN

intverify_pin_tpk_lmk(char*tpk_lmk,char*pin_block,char*pin_fmt,char

*pan,char*epin);

输入:

tpklmk为本地主密钥LMK14-15加密下的终端PIN密钥TPK

・piifblockTPK加密下的PINBLOCK

・pin^fnitPINBLOCK格式

•pa;主帐号(HSM使用主帐号的最右12字节不包含校验字节)

・epin为本地主密钥LMK02-03加密下的PIN密文

输出:

•返回值:

0函数正常返回

-1函数返回错误

•调用加密机指令:

交易过程中PIN保护示意图

1.假设成员行N(发卡行)的客户,将信用卡插入成

员行A(受理行)的ATM,并输入个人密码PIN。

2.ATM终端用PIN密钥TPK加密PIN,并用加密后的PIN组

成消息,发往受理行的主机;

3.受理行主机识别出不是本行的卡后,命令加密机在

内部用与ATM约定的密钥TPK解密PIN,再用交换中心

下发的PIN密钥ZPK1重新加密PIN,送出交给主机。

主抗组成新的消息发往交换中心

4.交换中心识别出是N行的卡,先命令加密机在内部

用与A行(受理行)约定的PIN密钥ZPK1解密PIN,

再用与N行(发卡行)约定的PIN密钥ZPK2重新加密

PIN,送出交给主机。主机组成新的消息发往N行;

5.N行得到交易消息,命令加密机在内部,用与交换

中心药定的PIN密钥ZPK2解密PIN,再将主机从用户

数据库中提取的该客户PIN的密文用PVK密钥解密;

之后,比较两个PIN,相同则返回正确应答,允许A

行受理此次交易,否则,返回拒绝受理的应答,通

常客户PIN的校验方式与PIN的存储方式有关。

消息完整性鉴别

(MAC的运用)

为了防止数据在网络传输中被篡改,保证数据的

完整性,使得有意或无意地篡改信息后可以被

发现,这些都必须通过信息的认证来实现。信

息认证的过程就是MAC产生和校验的过程,信

息认证处理支持ANSIX9.9或ISO8730或ISO8731

标准,采用DES算法生成32bitsMAC(有时要求

64bits现在一般都采用64bits),MAC不需要隐

含,直接附加在一个信息报文的后面,随报文

一起传送,下面将具体描述产生和校验MAC的

方法。

MAC的产生

1.产生MAC的算法,首先将需要传输的消息按8

字节进行分组,在结尾不足8字节的做补0处理,

然后进行分组加密,加密结果与下一分组异或,

作为下次加密的输入。

2.当主机收到完整数据后,将除去MAC的数据

进行与1相同的运算得出MAC与送上来的MAC

进行比较,如果相等则数据没有被修改。

3.如果消息在传送过程中被改动,不论是删除、

插入、替换、换序,都会导致消息鉴别码

MAC的改变。

MAC产生的示意图

32bi丹

7

MAC

(8个16进制数字)

MAC的计算过程

MAC密钥

MAC

MAC鉴别过程

自动柜员机(ATM)

TAK(MACl)

受理行主机A交换中心主机发卡行主机N

TAK(MAC1)->2AK1(MAC2)ZAK1(MAC2)->ZAK2(MAC3)ZAK2(MAC3)

/

密码机密码机密码机

1.假设成员行N(发卡行)的客户,将信用卡插入成

员行A(受理行)的ATM,并输入个人密码PIN。

2.ATM终端组织交易消息,并用TAK对消息进行MAC运算,

得到MAC1,然后将消息和MAC1一起发往受理行的主

M;

3.受理行主机收到交易消息后,命令密码机用TAK计算

消息的MAC值,并与收到的MAC1进行比较,如果比较

结果不同,则中止交易。否则,受理行主机识别出

不是本行的卡后,命令加密机用交换中心下发的

ZAK1重新计算消息的MAC值,得到MAC2,送出交给主

机。主机将交易消息和MAC2发往交换中心;

4.同样,交换中心调用密码机,先用ZAK1验证MAC2的

正确性,验证通过后,再用与N行(发卡行)约定

的ZAK2重新计算消息的MAC值,得到MAC3,送出交给

主机。

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论