《支付系统应用安全设计方案(共24页).doc》由会员分享,可在线阅读,更多相关《支付系统应用安全设计方案(共24页).doc(23页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上海航集团网上支付系统应用安全UC-2010-04-01-04-0002设计方案V1.0广州江南科友科技股份有限公司2010-4-14专心-专注-专业文档修订记录2010-4-5,陈家梅完成1.0版本。2010-4-14,陈家梅在1.0版本的基础上,根据客户的要求进行补充,同时根据公司内部对方案的讨论结果进行完善,升级为1.1版本。目录1 文档说明1.1 目的本文档结合客户需求,描述海航集团网上支付系统应用安全的设计方案。主要提供给客户,作为系统方案交流的依据,以及提供给开发人员,作为整理开发手册的基础。1.2 名词解释基本术语说明PIN用户的交易密码,用户在交易时通过
2、密码键盘输入,由业务主机进行验证。密钥信封存放密钥明文的信封文件,其中,密钥明文不可见,只有该信封被拆开后才能看到密钥的明文。PVKPIN Verify Key,PIN验证密钥,用于加密、验证PIN。ZPKZone PIN Key,区域PIN密钥,用于加密PIN。LMKLocal Master Key,本地主密钥,用于工作密钥或私钥在本地存储时进行保护。RSA一种国际标准的非对称密钥算法。RSA密钥对RSA非对称密钥体系中的密钥,每对RSA密钥对都包含一把公钥和一把私钥。PK RSA非对称密钥体系中的公钥,公钥的明文可以公开。VK RSA非对称密钥体系中的私钥,私钥的明文不能公开。用户登录密码
3、以下也简称为登录密码,指用户登录系统时输入的密码,包括字母和数字,不定长。2 软件需求2.1 客户原始需求在用户进行网上交易的过程中,为保障用户敏感信息的安全,维护用户的利益,要求网上支付交易必须符合以下安全需求:1. 用户PIN在交易过程中,不得以明文形式在硬件安全设备之外出现。2. 要求对交易的报文进行完整性验证,防止交易报文被篡改。3. 要求对登录用户的登录密码进行验证,保证用户登录的合法性和正确性。2.2 需求分析需求要点需求要点说明需求要点的实现方式用户PIN的安全用户的PIN在网上交易过程中进行转发和验证时,明文仅允许在硬件安全设备中出现。PIN的验证由业务主机和密码机保障,因此仅
4、考虑PIN在传输过程中的安全。采用RSA非对称密钥机制:l 提供网页上的安全控件,用密码服务平台的公钥加密PIN。l 提供密码服务平台的安全服务,可以将公钥加密的PIN转换为与主机约定的ZPK加密的PIN,再传到主机进行验证。交易报文的安全交易报文传输过程中,报文的发起方生成签名,报文的接收方需验证签名,以保证报文没有被篡改。采用RSA非对称密钥机制:l 提供网页上的安全控件,用安全控件的私钥对交易报文进行签名。l 提供密码服务平台的安全服务,用相应安全控件的公钥验证签名是否正确。用户登录的安全用户登录时,需验证其登录的字符密码,保证用户登录的合法性。l 用户登录时,由网页上的安全控件提供密码
5、输入的软键盘功能(包含字符和数字输入,且数字输入随机乱序),并且用密码服务平台的公钥加密用户登录密码。l 提供密码服务平台的安全服务,将登录密码转换为PVK加密。该功能在用户第一次输入登录密码或修改密码时调用,应用系统将PVK加密的登录密码密文保存到数据库中。l 提供密码服务平台的安全服务,将应用系统数据库中保存的用户登录密码密文和用户从界面输入的登录密码密文送到密码机中进行验证。该功能在验证用户的登录密码时调用。3 系统设计3.1 网络结构图图3-1 网络结构图图3-1中,安全控件存放在WebServer,第一次使用时从WebServer下载到IE终端保存,由应用系统调用其中的功能函数进行安
6、全处理。应用服务器调用密码服务平台的API,访问密码服务平台,完成安全服务功能。在进行交易之前,必须完成密钥的生成和同步,包括密码服务平台与业务主机的密钥同步,以及密码服务平台与安全控件的密钥同步。密码服务平台通过调用密码机指令完成安全算法运算,通过管理终端可以管理密码服务平台,通过监控终端可以对密码服务平台的运行状况进行实时监控。3.2 系统结构图图3-2 系统结构图图3-2中,绿色竖纹方框表示科友公司提供的系统。安全控件分为两部分,安全模块提供应用系统访问安全控件的接口,软Key模块提供密钥访问和算法接口,相当于一个软件算法模块。如果将来使用硬件存储密钥和进行算法运算,则直接替换软Key模
7、块即可。每个安全控件有一对公私钥对,私钥保存在控件的软Key模块中,公钥上传给密码服务平台保存。密码服务平台本身有一对公私钥对,私钥保存在密码机中,公钥除保存在数据库中外,还需要分发给每个安全控件保存。密码服务平台还需要与业务主机约定ZPK,数据库中保存ZPK的密文。一般采用先打印密钥信封,再通过人工录入的方式来进行同步。3.3 系统功能清单软件模块功能说明必须的功能客户需要的功能自行增加的功能是否新增功能安全控件提供界面,由用户输入P10证书的相关信息和私钥保护口令。然后随机生成一对RSA密钥对,将口令保护的私钥密文文件保存在本地,输出P10公钥证书请求文件。保存密码服务平台的公钥。验证并保
8、存密码服务平台签发的安全控件P10公钥证书。提供密码输入的软键盘功能(包含字符和数字输入,且数字输入随机乱序),并且用密码服务平台的公钥加密用户登录密码或PIN,输出密文。提供界面,由用户输入私钥保护口令,然后用安全控件的私钥对报文进行签名,输出签名。密码服务平台通过密码服务平台的初始化工具调用密码机随机生成:l 密码服务平台的RSA密钥对l 密码服务平台的PVK通过管理界面下载密码服务平台的公钥文件。通过管理界面上传CA的公钥文件。通过管理界面保存CA签发的密码服务平台公钥证书(X509 v3)。通过API,验证安全控件的P10证书请求文件资料的合法性,保存安全控件的公钥(根据安全控件的ID
9、号保存)。然后用密码服务平台的私钥签发安全控件的P10公钥证书,输出安全控件的P10公钥证书。通过API,下载密码服务平台的公钥。通过API,将密码服务平台公钥加密的PIN转换为业务主机ZPK加密的PIN密文。通过API,将密码服务平台公钥加密的用户登录密码密文转换为PVK加密的密文。通过API,将密码服务平台公钥加密的用户登录密码密文和应用系统数据库中保存的PVK加密的登录密码密文送到密码机中进行验证。通过API,根据安全控件的ID号取出相应安全控件的公钥,用公钥验证报文的签名是否正确。说明:每个用户对应唯一一个安全控件,每个安全控件拥有唯一一对RSA公私钥对,密码服务平台保存每个用户的安全
10、控件公钥,因此,安全控件的公钥必须通过用户的ID号来存取。调用API访问密码服务平台时,凡涉及到安全控件的公钥,都必须在API的输入参数中包含安全控件的ID号,该ID号由应用系统取值,用以唯一标识一个用户。3.4 系统部署图图3-3 系统部署图 密码服务平台一般为双机热备份形式,部署在独立的服务器上。 密码机可以部署多台。密码机与密码服务平台之间组成一个单独的内网,即:只有密码服务平台才能访问密码机,从网络上杜绝其它任何系统直接访问密码机。 密码服务平台一般部署一个管理终端即可,可部署多个监控终端。 每个用户对应一个安全控件,使用时现从网上支付应用的WebServer下载。3.5 系统组件以下
11、列出了密码服务平台、API和安全控件支持的操作系统、数据库等,由客户根据需要进行选择。项目组件操作系统数据库WindowsAixLinuxScoDB2OracleInformixSybase平台平台API(C/Java)安全控件3.6 密钥体系3.6.1 密钥使用示意图图3-4 密钥使用示意图图3-4简要说明了各种密钥的使用,其中,红色实线表示安全控件完成的功能,蓝色虚线表示在密码服务平台完成的功能。注意:PIN/用户登录密码的解密操作是在密码机内部完成的,密码服务平台实际进行的是PIN/用户登录密码的转加密、验证功能,因此PIN/用户登录密码的明文不会出现在密码设备之外。3.6.2 密钥分布
12、图图3-5 密钥分布图密码服务平台和安全控件各有自身的RSA公私钥对,私钥保存在自身的密钥库中,公钥除保存在自身的密钥库中外,还需要保存在对方的密钥库中。密码服务平台的数据库中需要保存所有控件的公钥,由于控件数量较多(可能一个用户对应一个控件),因此不能使用文件方式存储,必须安装数据库。3.6.3 密钥说明密钥密钥的用途密钥的强度密钥的存储密钥的数量密钥的初始化密钥的生存周期密码服务平台的私钥l 签发安全控件的P10公钥证书l 在密码机内部解密PINl 512bitsl 1024bitsl 2048bitsl 明文形式存储在密码服务平台的密码机中。l LMK加密的密文形式存储在密码服务平台的数
13、据库中。只有一对RSA密钥对。l 在密码服务平台初始化时通过初始化工具由密码机随机产生。l 通过界面下载公钥,并保存由CA签发的公钥证书(X509 v3)。除非有特殊原因,一般投产之后不会改变。密码服务平台的公钥l 提供给CA签发X509公钥证书l 加密PINl 512bitsl 1024bitsl 2048bitsl 明文形式存储在密码服务平台的数据库中。l 明文形式存储在安全控件的密钥库中。安全控件的私钥对交易报文进行签名l 512bitsl 1024bitsl 2048bits口令加密的密文文件形式存储在安全控件的软Key模块中。每个安全控件一对RSA密钥对。l 初始化安全控件时随机产生
14、,由用户输入的口令保护存储。l P10公钥证书由密码服务平台签发,签发时密码服务平台保存安全控件的公钥。可以定期更新,具体周期由客户自行确定。安全控件的公钥l 提供给密码服务平台签发P10公钥证书l 验证交易报文的签名l 512bitsl 1024bitsl 2048bitsl 明文文件形式存储在安全控件的软Key模块中。l 明文形式存储在密码服务平台的数据库中。与业务主机约定的ZPK加密PINl 64bitsl 128bitsl 192bitsl LMK加密的密文形式存储在密码服务平台的数据库中。l 密文形式存储在业务主机的数据库中。只有一把在密码服务平台初始化时与业务主机约定,可以选择以下
15、方式: 打印密钥信封,然后再手工录入 人工约定,手工录入需要与业务主机方确定。密码服务平台的PVK加密/验证用户登录密码l 64bitsl 128bitsl 192bitsLMK加密的密文形式存储在密码服务平台的数据库中。只有一把在密码服务平台初始化时通过初始化工具由密码机随机产生。除非有特殊原因,一般投产之后不会改变。LMK私钥或工作密钥在本地保存时用LMK加密。128bits明文形式存储在密码机中。一把LMK保护一类密钥在密码机测试或投产前,由人工通过界面录入MK,通过内部算法离散生成LMK。除非有特殊原因,一般投产之后不会改变。3.6.4 密码服务平台RSA密钥对的初始化流程图3-6 密
16、码服务平台RSA密钥对初始化流程图3.6.5 安全控件和密码服务平台的密钥同步流程图3-7安全控件和密码服务平台的密钥同步流程图3.7 交易安全处理流程3.7.1 用户登录密码验证流程图3-8 用户登录密码验证流程图3.7.2 PIN的安全处理流程图3-9 PIN的安全处理流程图3.7.3 交易报文的安全处理流程图3-10 交易报文的安全处理流程图4 交付件类型名称说明软件包安全控件密码服务平台API链接库Java 的jar包密码服务平台4.x包括服务器安装包和WebServer。设计文档海航集团网上支付系统应用安全设计方案基于用户需求,对系统的总体结构、部署、功能、密钥体系、交易流程等进行详
17、细说明。海航集团网上支付系统应用安全开发手册描述开发人员进行开发的具体实现细节。用户文档安全控件使用说明说明安全控件的使用方法和注意事项。密码服务平台API手册说明链接库中API的调用方法,对其中的每个API接口要进行详细说明。密码服务平台用户手册说明密码服务平台的使用方法,以及如何进行维护、配置、管理等。安装手册密码服务平台安装手册说明密码服务平台的安装方法。5 附件5.1 项目风险说明编号部署点功能存在的风险规避风险的参考方法1安全控件软Key模块l 存储私钥l 安全算法运算私钥由用户的口令加密后,得到私钥的密文,私钥的密文以文件的方式存放在IE终端。只要进入系统,机器上的私钥文件就可以被
18、拷贝出来,如果私钥文件受到非法的恶意攻击,就有可能由于口令被破解而导致私钥泄密,从而给用户造成损失。强烈建议使用硬件存放私钥,并进行安全算法运算。推荐的硬件存储介质包括:l UsbKeyl IC卡可以为每个用户分发、注册一个用户身份认证介质。说明:除上述风险外,使用软Key还会给用户带来不方便的因素。由于私钥密文文件存放在IE终端,如果用户换一台终端,则必须将私钥密文文件拷贝到新的终端上,才能成功使用。因此必须告诉用户私钥文件的存放位置和使用注意事项,如果使用硬件的身份认证介质,则只要用户使用时插入身份认证介质即可,比较方便。5.2 建议硬件、操作系统配置部署点 配置硬件操作系统密码服务平台服务器INTEL架构服务器,80GB 7.2K硬盘,1G内存。Aix版本5以上。密码服务平台客户端普通PC机即可,硬盘空间300M。Windows密码机SJL09025.3 项目其它要求项目具体要求密码服务平台监控、管理软件架构B-S密码服务平台服务器运行的操作系统AIX密码服务平台服务器安装数据库Oracle 9i公司内部联系人林绵雄