IT开发者 - 云代码空间
—— 20141227
1 前言
2 基本术语
3 系统概述及组成
3.1 系统概述
3.2 硬件组成
3.3 内部原理
4 系统部署
4.1 集中式部署示意图
4.2 分布式部署示意图
5 系统功能
5.1 授权管理
5.2 密钥安全方案
5.3 密钥管理
5.4 IC卡发卡管理
5.5 业务系统配置
5.6 密码机设备管理
5.7 密钥传输介质管理
5.8 系统管理
6 系统特点
6.1 业务密钥方案设计
6.2 密钥档案
6.3 密钥到期预警管理
6.4 密钥方案的实施平台
6.5 操作安全控制机制
6.6 基于对象的设计
6.7 制卡的多样化
6.8 支持密码机分组和双机热备
7 系统符合规范
8 操作环境
8.1 硬件
8.2 软件
9 应用案例
随着金融业务的迅速发展,目前各大银行发行了大量的借记卡、贷记卡、准贷记卡等各类以磁条为载体的金融交易卡,然而随着发卡量的进一步增大、应用环境的复杂化,导致对于业务覆盖面的更多支持、安全性的高要求也逐渐成为银行建设考虑的重点。
目前,建设部、交通部、社保等均在推广公交一卡通、跨区域/跨地区缴费、市民一卡通等新的应用,而这些行业由于其应用环境等原因,均是采用IC智能卡为载体的金融交易卡。同时,IC智能卡本身的设计特点,无论在安全性上,还是在业务支持覆盖面上均优于目前的磁条卡,因此也是未来金融行业发卡的趋势,且是国际支付卡标准、安全组织等推荐的主要原因。
作为基于IC智能卡为载体的借、贷记卡,其安全的核心是密钥管理,因此密钥管理系统是保障卡片安全、交易安全、管理安全的核心系统,是业务开展的
的前提。
² 密钥管理系统:密钥管理系统又称为密钥管理中心,简称KMS(Key Manage System)。KMS是我们公司基于银行、移动、电信等各种机构对密钥管理的安全需求,以及多年的数据安全设计经验,自主开发设计的密钥管理系统,满足各类机构密钥管理的安全需求,同时支持IC卡的发卡。
密钥管理系统是一套软件系统,从密钥使用的角度对业务系统中的各种密钥进行管理,关键算法运算和操作通过硬件密码设备来实现。
密钥管理系统主要功能是为业务系统提供密钥管理与服务功能,可以广泛应用于移动支付、电信、银行、社保、公交等相关电子支付计算机网络系统中。该产品借鉴了国内外同类产品设计的先进思想,采用配置化管理,满足用户多应用多业务密钥管理需求,并且具有良好的人机管理操作界面。在安全管理上,具有完善的人员认证、安全控制、运维监控及审计机制,并且支持双机热备工作模式,大大增强了系统的可靠性。在应用功能上,支持EMV/ PBOC2.0 标准银行贷记卡/借记卡、电子钱包等在密钥产生、传输、发卡、密钥更新等方面的密钥管理与服务需求,可以作为独立的密钥管理中心使用,也可以与数据准备系统、发卡系统等业务系统连接支持相关密钥管理服务。
图3-1 硬件组成图
密钥管理系统的产品组成如图3-1所示,客户端安装界面软件,通过读卡器或发卡设备发IC卡,通过密钥传输介质分发密钥。服务器通过密码机进行安全密码算法运算,通过与密码机相连的打印机打印密码信封。终端通过交易报文从服务器申请终端密钥,数据准备系统通过交易向服务器申请IC卡密钥,密钥库存放在服务器中,通过交易报文自动将密钥同步到密码平台。
其中硬件的意义说明如下。
l 必选硬件:
Ø 客户端:用户操作终端,安装界面软件,用户可通过客户端的界面进行各种系统管理和密钥管理操作。
Ø 服务器:安装核心软件,完成各种核心功能,可通过客户端界面软件访问,也可通过核心软件的API访问。
Ø 密码机:主要负责完成各种安全算法运算,密码机内可保存部分密钥。
Ø 密码机管理终端:该终端通过串口与密码机相连,通过密码机管理终端完成密码机的管理,包括密码机配置和密钥管理功能。
Ø 密码机管理卡:对密码机进行管理时,必须同时插入密码机的管理卡,用于对管理人员的操作权限进行认证。
Ø 密码机密钥卡:主要用于备份密码机中存储的密钥,必要时可将密钥卡中备份的密钥恢复到密码机中。
Ø 认证卡:用于用户登录密钥管理系统时进行身份认证,其中存放用户认证密钥。
Ø 读卡器:读/写IC卡的硬件设备,客户端只有通过读卡器才能读/写IC卡。
l 可选硬件:
Ø 密函打印机:针式打印机,用于打印密码信封或密钥信封。
Ø 用户卡:个人用户持有的IC卡,可通过支持IC卡的终端设备进行交易。发卡时客户端通过读卡器写入密钥,保存在用户卡中。
Ø psam卡:保存交易中用到的各种密钥,在受理终端使用,在应用上可作为后台的代理。发卡时客户端通过读卡器写入密钥,保存在psam卡中。
Ø 终端安全模块:用于终端安全处理的硬件设备,包括客户端密钥的保存和安全算法运算。
Ø 密钥传输介质:主要用于在密钥传输过程中存储密钥。脱机分发和申请密钥时,密钥发送方先将密钥存放在密钥传输介质中,密钥接收方再从密钥传输介质中读取密钥并保存。
Ø 密码键盘:用于用户输入密码,密码键盘中存放的密钥用于加密用户输入的密码。
外部生产系统主要包括:
l 本地加密机系统:为业务系统提供交易需要的各种安全服务,与密钥管理系统部署在同一机构。
l 远程加密机系统:为业务系统提供交易需要的各种安全服务,与密钥管理系统部署在不同的机构。
l 数据准备系统:IC卡发卡时,数据准备系统收集IC卡发卡需要的资料,IC卡上的密钥信息由KMS提供,数据准备系统将IC卡发卡的所有资料提供给个人化系统,由个人化系统发卡。
l 交换中心:一般指各个系统之间交换信息必须通过的机构。
l 终端:用户使用磁条卡或IC卡进行交易的设备。
l 柜台(包括密码键盘):一般指银行网点的柜面,用户提供用户卡给银行的操作员,通过密码键盘输入用户密码后进行交易。
图3-2 内部原理图
密钥管理系统支持C-S结构和B-S结构两种模式,其内部原理如图3-2,软件模块包括:
² 核心软件:安装在KMS服务器上,各种核心功能主要由核心软件完成。
² 密钥下载模块API:主要提供给生产系统调用,用于从核心软件下载密钥。
² C-S结构的管理界面软件:C-S结构下存在,安装在KMS客户端,提供界面与用户进行交互,完成各种管理功能。
² 密钥管理门户WebServer:IE界面与核心软件之间进行报文传输的桥梁,B-S结构下存在。可以与核心软件部署在一台服务器上,也可以单独部署。
² explorer:B-S结构下存在,用户通过IE可直接登录KMS,零安装。
密钥管理系统与生产系统之间的密钥交换有脱机、联机两种方式,如图3-2,密钥管理系统与生产系统之间的实线表示联机密钥交换,虚线表示脱机密钥交换。
该部署方式,针对中、小型银行前置、数据核心大集中等方式,如下:
该部署方式,针对总行、分行等大型金融机构,如下:
图4-1业务部署图
图4-1中所示为本产品在银行业务系统中使用的示例。在银行业务系统中可以部署多级密钥管理中心,例如图4-1中部署了二级密钥管理中心,上级密钥管理中心可以管理下级密钥管理中心。每级密钥管理中心可以与多个业务系统连接,管理多个业务系统的密钥。一级密钥管理中心还可与多个上级密钥管理机构相连。
由于管理方式的不同,又存在密钥集中保存-集中管理、密钥集中保存-分布管理和混合型这3种部署方式,以下分别介绍。
说明:下图中的‘密码服务平台’泛指与业务生产系统相连的加密机系统。
图4-2密钥集中保存-集中管理部署图
如图4-2所示,密钥集中存放在总中心的密钥档案中,由总中心统一管理、分发密钥。这种部署方式的适用场景是:全国密钥管理总中心统一进行密钥的控制,向各分中心、终端分发密钥。
图4-3密钥集中保存-分布管理部署图
如图4-3所示,密钥集中存放在总中心的密钥档案中,总中心统一管理,分中心通过各自的管理客户端管理本机构的密钥。这种部署方式的适用场景是:全国密钥管理总中心统一存放密钥,各分中心分别管理本机构的密钥。
另外,还存在一种混合型的部署方式,全国密钥管理总中心统一管理所有分中心的密钥,分中心仅管理本机构特色业务使用的密钥。
系统根据操作员的角色对操作员的权限进行控制,不同角色的操作员拥有不同的操作权限。本密钥管理系统缺省设定了以下6种操作员角色,用户可以根据需要进行调整,或者增加更多的角色。
² 密钥方案设计人员——依据业务的安全体系需求,对密钥管理系统进行客户化的安全方案设计,主要对各种对象的类进行设计,例如方案、节点模块、密钥模板等。
² 密钥方案实施人员——对客户化安全方案设计中的各种类进行具体的实例化操作,例如实例化节点、密钥等。
² 密钥管理人员——主要负责与密钥管理有关的各种操作,例如生成密钥、打印密钥等。
² 安全审计人员——对其它操作员进行管理,同时对系统的运行状况进行事后审计。
² 配置管理人员——主要负责系统本身的运行参数配置和维护,以及系统运行状况的监控。
² 发卡操作人员——主要负责IC卡的发卡操作。
操作员登录时,要对操作员进行认证,用户可以选择以下2种认证方式:
² 身份认证介质
² 静态口令+身份认证介质
其中,身份认证介质包括IC卡和UsbKey等。
安全审计人员可以管理其它操作员,例如添加、删除、修改等。
通过操作授权管理功能,可以将系统中的每个操作(例如增加记录、删除记录、启用记录等),分配给不同角色的操作员,从而将系统的操作功能进行分割,不同角色的操作员拥有不同的操作权限。
建立访问密钥管理系统的客户端白名单,客户端访问本系统时,会自动根据配置的合法客户端进行判断,如果在合法客户端列表中没有对应的记录,则拒绝访问,从而防止非法终端访问本系统。
客户端的标识包括IP地址、端口号、网卡MAC地址等。
密钥管理系统主要是对业务系统中的密钥进行管理,因此引进了密钥方案设计、密钥方案实施和密钥管理等功能,将密钥方案的设计和密钥的管理进行结合,从而在业务层的角度对系统中的密钥进行管理。
该功能模块提供了一个进行安全方案设计的平台,完成方案设计之后,就完成了密钥管理安全方案的类定义。
定义业务系统密钥管理安全方案,指定该业务使用的密码机组。例如定义PBOC金融IC卡密钥管理方案、ATM一机一密。
定义安全方案中使用的各种密钥的模板,可以理解为各种密钥的类定义。例如ZMK、ZPK、ZAK。
定义需要进行密钥管理的各种节点的模板,可以理解为各种节点的类定义,并且在每个节点模板上部署相应的密钥模板。例如ATM。
密钥安全方案实施功能即在每个具体的节点上进行密钥安全方案的绑定,生成节点实例和密钥实例,每个节点上可以绑定多个业务。例如ATM001上可以开通PBOC金融IC卡业务,还可以开通一机一密业务。
节点与新业务进行绑定后,系统会自动根据该节点上部署的密钥模板清单,为该节点生成需要的所有密钥实例,例如ATM001上的一机一密业务的ZMK、ZPK、ZAK。
管理每个节点上的每个密钥或证书,密钥或证书的值保存在密钥管理档案中,包括以下几种密钥档案:
² 衍生密钥库:保存各种衍生种子密钥对象的值。
² 外部公开密钥文件库:保存外部系统产生并分发给本地密钥管理系统的公钥文件。
² 外部公开密钥明文库:保存外部系统产生并分发给本地密钥管理系统的公钥明文。
² 本地证书库:保存本行的各个业务系统使用的证书。
² RSA对密钥库:保存本地密钥管理系统产生的RSA密钥对。
² 区域对称密钥库:保存与外部区域系统同步的对称密钥。
² 本地对称密钥库:保存本地使用的对称密钥。
以下列出一些主要的、常用的密钥管理功能。
根据密钥模板中定义的密钥信息,调用密码机指令随机生成密钥。
检查密钥的校验值是否正确。
通过与密码机相连的打印机打印密钥信封。在需要手工录入密钥的应用场景,一般会预先打印密钥信封,再手工录入密钥。
将密钥管理档案中的预制密钥与应用进行绑定。
将密钥管理档案中的密钥分发给外部生产系统。
将密钥管理档案中的密钥下载到密钥传输介质中,由相关授权人员将密钥传输介质拿到生产系统进行密钥的分发。
将密钥管理档案中的密钥备份到密钥备份文件中。
将密钥备份文件中的密钥恢复到密钥管理档案中。
根据密钥模板中定义的密钥传输保护方式将密钥进行转换后,存放在密钥管理档案中。
从密钥管理档案中取出需导出的密钥,根据密钥模板中定义的密钥传输保护方式将密钥进行转换后输出。
将密钥所有版本的值进行销毁,密钥销毁后,不可恢复。
将外部系统产生的公钥文件导入密钥管理系统。
根据证书请求文件模板的定义,生成指定格式的证书请求文件,保存在密钥管理档案中的同时,下载到客户端。
根据证书文件模板的定义,对证书文件进行解析,验证无误后存放到密钥管理档案中。
验证证书请求文件合法后,根据证书文件模板的定义,用密钥管理系统的私钥对证书请求文件中的公钥等信息进行签名,生成指定格式的证书文件。
密钥档案中保存了历史上产生的各个版本的密钥值,本处管理密钥档案中保存的所有密钥。
管理预先生成的一批密钥。这些密钥生成时没有任何业务上的意义,仅当密钥被启用时,才与密钥安全方案相结合,从而将密钥的值分配给密钥安全方案中某个节点的某个密钥对象。
管理预先生成的密钥成分,用户可以选择其中的多个密钥成分来合成一把密钥。
主要包括洗卡、追加应用、恢复卡的出厂状态等功能,可根据实际业务需求增加新的功能。
主要包括洗卡、追加应用、恢复卡的出厂状态等功能,可根据实际业务需求增加新的功能。
主要包括洗卡、单张发卡、批量发卡、追加应用、恢复卡的出厂状态等功能,可根据实际业务需求增加新的功能。
主要包括洗卡、单张发卡、恢复卡的出厂状态等功能,可根据实际业务需求增加新的功能。
该功能用于管理密钥管理安全方案中的各个节点,即每个部署业务密钥的业务系统,例如业务主机、终端、柜员等等。
节点根据行政和业务来划分,一般都有一个主管单位,例如分行管理多个业务系统和终端,分行就是这些业务系统和终端的主管单位。
提供该功能,便于管理各个主管单位,在密钥集中保存-分布管理的模式下,每个机构可管理自己所属的主管单位的密钥。
管理与密钥管理系统服务器进行在线密钥交换的系统,需要配置在线密钥交换系统的访问地址,包括IP地址、端口号等。
对密钥管理系统服务器使用的所有密码机进行管理。
根据业务系统的需要将密码机进行分组,每组中所有密码机的指令类型、访问协议和密钥存储空间必须一致。
管理具体的每台密码机,包括静态管理,例如密码机标识、所属组号等,和动态管理,例如密码机状态、指令执行成功次数、指令执行失败次数等。
将每个组中的密码机当作一个整体,管理每个密码机组的私钥存储空间,包括存储位置、存储位置状态、密钥版本号等。
将每个组中的密码机当作一个整体,管理每个密码机组的对称密钥空间,包括存储位置、存储位置状态、密钥版本号等。
如果需要通过密钥传输介质与终端或其它外部系统同步密钥,则在此处对密钥传输介质进行管理。可以管理不同厂家的密钥传输介质,管理密钥传输介质上的各种密钥。
对系统中使用的密钥传输介质进行选型。主要包括以下几种类型:
² IC卡
² UsbKey
² 密钥分发器
² 密码键盘
² 密钥信封
² 光盘
选定密钥传输介质后,在该处定义密钥传输介质的生产厂商。
对密钥管理系统使用的每个具体的密钥传输介质进行管理,包括登记介质、生成介质密钥、下载介质密钥等功能。
如果需要通过密码机打印密码信封,则通过该功能配置密码信封打印的格式。打印密码信封时,系统自动按照此处配置的格式来打印密码信封。
配置系统运行用到的各种运行参数,对于不同的客户,需要配置不同的值。
对系统运行过程中产生的各种日志文件的属性进行配置,包括日志文件的名称、大小、角色等。
主要对密钥管理系统中的各种文件进行管理。包括:
² 公钥文件
² 公钥备份文件
² 私钥密文文件
² 私钥密文备份文件
² 证书请求文件
² 证书文件
……
密钥管理系统进行的所有操作都会记录详细的流水,存放在流水表中,以进行事后审计。根据用户的审计线索可以生成各种报表,例如:
² 当日所有服务流水
² 某个密钥的历史操作流水
² 某个操作员的历史操作流水
² 某个介质的操作流水
² 某个节点的密钥操作流水
² 某一时间段内密钥分发流水
² 某一时间段内密钥操作异常的流水
² 某一时间段内某个密钥的操作流水
……
根据本单位多年来支付行业数据安全服务的经验,将密钥管理中的要素抽象为模板,为客户提供一个密钥管理设计和实施的平台,使客户可以根据自身业务密钥管理的需求灵活设计符合业务系统需要的密钥管理方案。
l 为密钥的设计、使用提供了一个规范化的平台,密钥方案由客户自行设计,可支持多种应用方案。同时方便新应用的扩展,而不会对现有系统造成影响。
l 提供一个方案实施的平台,在方案设计的基础上进行实例化应用,避免了根据设计文档进行实施产生的歧义,安全、高效、便捷,减少了工作量。
l 方案可以根据用户需求、应用特点来进行调整,灵活实现方案的变动、升级。
Ø 增加、删除新密钥
Ø 改变密钥强度、类型、等等
……
l 建立密钥存储档案,通过启用等方式将档案中的预制密钥与密钥实例对应,分配给具体的应用。解决了由于某类密钥生成速度较慢而影响效率的问题,可以预先生成一批密钥,在发卡等应用中,直接使用预先生成的密钥即可,可以大大加快这类应用的效率。
l 灵活定义、管理密钥的版本,控制各版本的生命周期。可以为某个密钥生成多个版本的密钥值,在某个版本的密钥超过有效期,或者出现密钥泄漏等情况下,可以使用其它版本的密钥,增强了系统的安全性。
为密钥设定生存周期,从技术上实现了:
l 如果密钥即将到期,自动提醒用户,使用户可以及时更新密钥。
l 如果密钥已经到期,则密钥自动失效,保证密钥只能在预先定义的有效期内使用。
提供一个应用层的密钥管理平台。过去的管理单位是单个密钥,现在的管理单位是方案,由对密码机的密钥操作上升为通过软件对密钥进行操作。密码机主要是对密钥的安全性进行控制,密钥管理系统则主要从管理上对密钥进行控制,避免人为使用密钥产生的错误,安全性得到增强。
² 操作的授权
Ø 操作人员角色划分,不同角色授予不同的权限:增强了密钥管理的安全性和系统的可用性。可以为不同身份、不同级别的用户定义不同的角色,从技术上保证不同角色的操作员只能进行自身权限范围内的操作,从而对系统中的重要操作权限进行控制,只能允许某类角色的操作员进行操作。不同角色的操作员只需要关心权限范围内的操作即可,不需要了解其它角色操作员使用的功能。
Ø 对管理终端授权:为防止非法终端访问本系统,在服务器上建立操作终端的白名单。操作终端访问服务器时,系统自动获取操作终端的IP地址等信息,并根据白名单判断操作终端是否合法,从技术上杜绝了非法终端的访问。
Ø 操作人员与管理终端绑定:对某些特殊的、重要的操作,客户可能要求某类操作人员在某台固定的操作终端上进行,通过操作人员与管理终端的绑定,可以实现该需求。
² 操作员登录控制
Ø 支持以下2种认证方式:
a) 身份认证介质
b) 静态口令+身份认证介质
Ø 控制操作员只能从指定的终端登录:实现客户对某些特殊、重要的操作,要求操作员从指定终端登录的需求。
Ø 操作员登录后,如果连续一段时间没有操作,则系统自动退出:防止操作员没有退出系统并离开后,不法分子使用操作终端从事非法操作。
Ø 操作员登录时,如果连续3次认证失败,则锁定该操作员,需要特定级别的操作员解锁后才能登录:防止不法分子通过多次登录实验,穷举得到操作员的口令。
Ø 定期强制操作员修改密码:提高操作员密码的安全性。
Ø 同一个操作员在同一时刻只能登录一次。
Ø 登录成功后,操作员进行的每次操作,系统都会检查其客户端IP地址的合法性,如果其IP地址与登录时不一致,则认为客户端被非法接管,密钥管理系统强制退出其登录。
² 数据可视控制和修改控制
Ø 控制不同机构的操作员能看到不同的数据:防止某个机构的操作员查看、修改其它机构的数据。
Ø 控制不同角色的操作员能修改不同的数据:由于某些数据比较重要,因此需要对数据的修改权限进行控制,只能由某个角色的操作员修改。
为更好地切合实际应用中业务密钥设计和管理的规律,系统按照安全数据对象的概念来进行设计,例如密钥对象、证书对象,把密钥和证书做为对象来进行管理。首先通过系统定义密钥方案、密钥模板、节点模板等,在模板基础上定义对象,再对对象进行实例化操作。
对用户卡的发卡,用户可以自行选择写入所需要支持应用的密钥,同时对于一个应用写入多少把密钥可以自行配置。对于已经使用的用户卡,如果需要开通新的应用,可以方便地进行配置,完成新应用的追加功能,不会影响到现有应用。
密钥管理系统可以对密码机进行分组,可以把密钥管理密码机和发卡密码机进行分组管理,可以保证不同密码机的用途不一样。密钥管理系统支持采用多台密码机进行双机热备,这样可以提高系统效率,同时也可以确保在密码机出现故障的情况下,不至于影响系统的正常运行。
本系统符合中国移动手机支付业务密钥管理系统及发卡系统的规范,以及金融IC卡密钥管理相关规范。
参考文档:
l 《中国移动手机支付业务-PSAM卡发卡加密机接口规范》
l 《中国移动手机支付业务-PSAM卡发卡系统设备规范》
l 《中国移动手机支付业务PSAM卡规范_v1.0.0》
l 《中国移动手机支付业务-密钥安全管理规范》
l 《中国移动手机支付业务-密钥安全管理实施指南》
l 《中国移动手机支付业务-密钥管理加密机接口规范》
l 《中国移动手机支付业务-密钥管理系统设备规范》
l 《中国移动手机支付业务-用户卡发卡加密机接口规范》
l 《中国移动手机支付业务-用户卡发卡系统设备规范》
l 《中国金融集成电路(IC)卡规范》,人民银行
l 《银行IC卡联合试点密钥管理系统总体方案》,人民银行
l PBOC2.0:《中国金融集成电路(IC)卡规范v2.0》
l EMV2000:EMV Integrated Circuit Card Specifications for Payment Systems V4.1
l VISA ICC:Visa Integrated Circuit Card Specification, Version1.4.0
l M/Chip 4:Mastercard Security & Key Management Version 1.0
l ANSI X9.17:Financial Institution Key Management (Wholesale) standard.
l GlobalPlatform:Key Management System Functional Requirements”
……
操作终端:普通PC机
服务器:普通PC Server、IBM小型机或HP服务器等,一台
密码机:SJL06或SJL05两台以上
读卡器:支持PC/SC标准,若干个。
发卡机:PT3080型或UT5200型发卡机一台
服务器:
² 操作系统:支持IBM Aix、HP Unix、Sun Solaris、SCO Unix、Linux等
² 数据库:支持Oracle、DB2、Informix等
操作终端:
² 操作系统:Windows9X/NT/XP
² 软件:IE浏览器
l 中国移动天津分公司密钥管理系统
l 中国移动广东省分公司密钥管理系统
l 张家港市民卡密钥管理系统
l 上海交通银行总行PBOC2.0/EMV2000金融IC卡密钥管理系统
l 平安银行ATM一机一密改造
l 重庆商行ATM一机一密改造
l 深圳发展银行密码键盘初始化系统
l 深圳农商行密码键盘初始化系统
l 广东省农村信用合作联社密码键盘初始化系统
l 东莞银行密码键盘初始化系统
……