资讯详情

网络安全测评

网络安全评价 原创: 计算机和网络安全 计算机和网络安全 4天前 一次性进群,长期免费索取教程,无付费教程。

微信公众号底部菜单列表

微信群回复微信官方账号:微信群;QQ群:16004488

微信公众号:计算机和网络安全

ID:Computer-network

本文分别介绍了常用的安全评价工具Web以安全评估、移动支付和互联网金融安全评估为例,详细阐述了实际业务系统安全评估的步骤、内容和判断方法。

一、安全评价工具

介绍了网络数据分析工具、端口检测和指纹识别工具、漏洞扫描工具、渗透检测工具和Web应用安全评估工具。有些工具不仅可以进行端口检测和指纹识别,还可以进行漏洞扫描和渗透检测;有些工具可以检测主机的漏洞或Web渗透试验应用系统的安全性。

(一)网络数据分析工具

网络数据分析工具的主要功能是通过协议分析拦截网络数据分组,显示详细的网络数据分组信息。它可以实时检测网络通信数据,自动完成数据分组重组和会话恢复,并提供图形浏览界面,以便用户可以查看数据分组中每层的详细信息。

这种工具通常支持链路层(CSMA/CD、ATM)、网络层(IP、ICMP、ARP)和传输层(TCP、UDP)一些工具还支持大量应用层协议的分析和重构,如协议分析HTTP、FTP、SMTP、NFS与流媒体达成协议。

主流网络数据分析工具有:Wirkshark、Sniffer Pro、Cain、Ettercap和Fiddler等。利用这些工具,测评人员可以直接截获网络中传输的数据分组,查看网络协议是否符合安全要求,重要数据是否进行了加密传输,身份鉴别信息是否在网络中明文传输,系统是否遭到了外部的探测和攻击尝试,也可以用于分析网络攻击的详细过程和数据特征。

(二)端口探测和指纹识别工具

端口检测和指纹识别工具的主要功能是进行网络扫描和主机检测,从而收集网络和主机系统的特征信息。

该工具的基本功能分为三部分:一是检测主机是否在线,以明确下一个检测目标;二是扫描主机端口,判断主机提供的应用服务是否通过监控状态;三是根据检测主机的响应信息推断主机安装的操作系统及其版本。

主流的端口扫描和指纹识别工具主要包括Nmap、Superscan、流光和N-scan等等。使用这些工具,评估人员可以检测主机是否开放了不必要的服务,是否有效地屏蔽了外部网络检测行为,是否设置了安全策略,以避免自己的敏感信息泄露,是否安装了有严重安全风险的操作系统版本。

(三)漏洞扫描工具

漏洞扫描工具是基于漏洞数据库检测指定远程或本地计算机系统安全脆弱性的工具包。

漏洞扫描技术是一种重要的网络安全技术。配合防火墙和入侵检测系统,可有效提高网络信息系统的安全性。通过扫描网络和应用系统,可以帮助了解网络的安全设置和运行应用服务,及时发现安全漏洞,客观评估风险水平,根据扫描结果纠正系统中的安全漏洞和不合理设置。

主流漏洞扫描工具和商业产品主要包括:Nessus、Acunetix WVS、APPscan、下面简要介绍极光、榕基等Nessus和榕基两种工具。

1、Nessus

Nessus采用客户端/服务器系统结构的国外远程安全扫描器。客户端提供操作Xwindow接受用户的命令和服务器通信,将用户的扫描请求传送到服务器端,服务器启动扫描,并将扫描结果呈现给用户。扫描代码与漏洞数据相互独立,Nessus每个漏洞都有相应的插件,用于漏洞插件 Nessus 攻击描述语言(NASL,nessus attack scripting language)一小段模拟攻击漏洞的代码,极大地方便了漏洞数据的维护和更新。Nessus有能力扫描任何端口的任何服务,可以按照指定的格式(ASCII Html)产生详细的输出报告,包括目标系统的漏洞,如何修复漏洞,防止黑客入侵和危险水平。

Nessus除了漏洞扫描外,还具有针对目标系统的端口检测和指纹识别功能,还可以破解操作系统和数据库账户的密码。图1和图2分别是Nessus对目标系统给出的漏洞列表和详细信息示例进行扫描。

图1 Nessus扫描漏洞报告清单

图2 Nessus详细信息扫描漏洞

2、安拓·榕基(RJ-i Top)

RJ-i Top网络隐患扫描系统采用框架结构产品,可检测不同操作系统下计算机的漏洞。主要用于分析和指出网络安全漏洞和被测系统的薄弱环节,给出详细的检测报告,对检测到的网络安全风险提出相应的修复措施和安全建议,消除网络系统危害前的隐患。

RJ-i Top网络隐患扫描系统是国内生产的专业评价工具,适用于安全评价机构和网络信息系统运行单位,可用于发现网络安全风险,提高网络安全防护性能和破坏性能,对运行网络的安全性能进行测试和评价,为管理员提供实时安全建议。

(四)渗透试验工具

渗透测试工具提供了一系列用于探测、渗透、攻击和入侵目标系统的工具包。用户可以从攻击者的角度使用这些工具来判断系统的特征和弱点,启动有针对性的模拟攻击行为,测试目标系统的安全漏洞是否可以被攻击者使用,并为目标系统提供直观的安全评估结果。

目前,主流的渗透试验工具包括Metasploit、Immunity Canvas、Core Impact等。其中, Metasploit免费工具,其余两款属于商业软件。

Core Impact它是一种国际知名的网络渗透工具,可以模拟各种复杂的网络攻击,以不同环境中的安全漏洞为目标。Core Impact有助于识别、访问和重新配置路由器,模仿攻击者探测其它未知网络。当发现新的漏洞、新的攻击技术或网络信息系统本身发生变化时,可以使用该工具进行快速渗透测试和漏洞验证。

(五)Web应用安全测评工具

由于Web服务在当今互联网环境中的广泛应用,相关制造商和机构也推出了一系列专门针对的服务Web应用安全评估工具,这些工具都是针对Web指纹识别、漏洞纹识别、漏洞检测、渗透检测和攻击验证的功能。以下是一些具有代表性的工具产品。

1、WVS(Web Vulnerability Scanner)

WVS是一个自动化的Web应用程序安全测试工具可以扫描任何可以通过的工具Web访问和遵循浏览器HTTP/HTTPS规则的Web站点和Web应用程序。适用于内联网、外延网等企事业单位Web网站。

2、Burp Suite

Burp Suite 是用于对Web 攻击测试的集成平台应用程序。它包含一系列工具,并为这些工具设计界面,以便相互通信,提高攻击效率。平台上的所有工具都共享相同的框架,以统一处理HTTP 请求允许攻击者结合手工和自动技术进行枚举、分析和攻击 Web 应用程序。通过协同工作,不同的工具可以有效地共享信息,并支持以某个工具中的信息为基础的另一个工具进行攻击。

3、Netsparker

Netsparker综合型Web安全漏洞扫描工具的应用分为专业版和免费版。Netsparker与其他综合性的Web与应用安全扫描工具相比,其特点是可以更好地检测Web存在于应用中SQL注入和跨站脚本类型的安全漏洞。

二、Web安全评估案例

(一)Web安全评估概述

随着Web随着应用技术的不断发展和技术进步,其安全问题越来越突出。据有关部门统计,大多数黑客攻击发生在应用层,只有一小部分攻击网络协议或硬件漏洞。作为目前应用最广泛的网络服务,Web应用面临的安全形势非常严峻。在这种情况下, Web安全评价的应用尤为重要。

Web应用安全的核心问题是用户可以提交任何输入。这反映在:用户可以干预客户端和服务器之间传输的所有数据,包括请求参数Cookie和HTTP消息头可以轻松避免客户端执行的任何安全控制器(如输入确认验证);用户可以按任何顺序发送请求,用户的操作过程可能与开发人员完全不同;用户可以使用各种浏览器访问Web应用程序,大量攻击Web可以将应用程序工具集成到浏览器中。

影响Web应用安全的关键因素可以概括为缺乏安全意识、开发过程中缺乏安全考虑、过度强调程序简化、网络威胁日益严重、资源和时间限制等因素。例如,如果没有及时跟踪网络威胁,即使是Web在应用程序开始时,完全了解当前安全威胁的开发团队并不能保证开发和部署的应用程序能够完全应对新的威胁。

在Web在应用程序出现之前,网络边界是一个安全边界。通常的安全措施包括加固和补丁服务,并在网络入口处设置防火墙,但Web应用程序改变了这一切。对Web在应用程序方面,边界防火墙必须允许用户正常访问HTTP/HTTPS数据分组;Web为了实现其某些功能,应用程序还必须允许它连接到数据库、大型主机、物流系统等后端系统。假如Web如果应用程序有漏洞,攻击者可以通过Web由于这些攻击数据和Web正常良性数据的应用差别不大,很可能穿透所有网络防御。

(二)Web安全评估的实施过程

针对典型的Web应用安全评估可分为资产划分、信息收集、漏洞识别、安全评估和解决方案制定五个阶段。

1、资产划分

在Web在安全评估中,资产划分是所有工作的基础,即所谓的方向问题是根本问题。Web根据各自的功能和业务,应用程序对安全的需求有很大的不同。为了避免相反的情况,我们往往需要在工作准备阶段对整体情况有一个战略理解,明确各级工作目标和被测对象的安全需求。

例如,对于保险、医疗、通信等服务行业,客户数据无疑是非常敏感和重要的,这部分数据库应该在资产划分中获得更高的权重;对于一些以高科技为导向的企业,他们对自己的研究成果、员工数据和其他数据的安全更加敏感。另一个例子同样一个企业,在员工内部使用的Web应用和面向互联网的Web应用之间明显有着优先级差异,因为部署在互联网上的Web应用可能面临着更多被攻击的风险,其对安全的要求也更高。

所以,在进行测评之前,要对所测试的Web系统进行资产划分,通过与Web系统的管理及开发人员进行沟通,对系统的业务需求、边界等基本情况进行了解与分析,基于被测试系统各部分的重要程度及所处的安全域,将系统的组成划分为以下几个部分:非常重要且不应被直接访问的(如数据库)、比较重要且可以被访问的(如Web应用)、重要程度较低的且可被随意访问的(如互联网)。资产划分的过程也是一个识别和明确被测对象的过程,基于以上思路可以使测试人员明确不同层面资产的安全需求,进而有针对性地开展安全测评。

2、信息收集

确定Web应用的资产划分、分级后,下一步要做的工作就是收集信息。对于Web应用而言,可以通过枚举应用程序的内容与功能,确定用户输入点、服务器端采用的技术架构、服务器端功能,并由此分析出可能实施攻击的位置。

枚举Web应用的内容和功能,其目的在于了解应用程序的实际功能和运行机制。通常情况下,手动浏览即可确定应用程序的绝大部分内容和功能,但为了更全面记录每一项确定的功能,可以使用工具帮助进行分析,如Web Scarab、Nikto等。枚举应用程序功能时,基本可以确定应用程序获取用户输入的位置,主要包括:

(1)URL字符串,包括查询字符串标记;

(2)GET方式提交的参数;

(3)POST请求主体中提交的参数;

(4)Cookie;

(5)HTTP消息头,如User-Agent、Accept-Language等。

确定服务器端技术架构的方法较多,如版本信息、HTTP指纹、页面文件扩展名、目录名称、会话令牌和第三方代码组件。如图3所示,可通过网络数据分析工具获取HTTP指纹,从而确定服务器端的技术架构。

图3 HTTP指纹

通过留意观察应用程序,一般可推断出与服务器端功能和结构有关的大量信息。例如,应用程序是否执行了全局性的输入确认检查、应用程序是否会查询已到期内容等。

3、漏洞识别

获取Web应用的相关信息后,就对目标应用的功能、技术架构和可能的攻击点有了基本的了解,下一步就要识别Web应用存在的各类安全漏洞。

目前,针对Web应用的安全测评方法主要分为模拟真实的动态攻击以发现漏洞的黑盒测试法和以扫描源代码发现漏洞的白盒测试法两类:黑盒测试在Web应用运行的时候对其进行分析,以发现攻击者可能发现的弱点,优点是可以验证漏洞及其可利用性,但也存在一些不足,如黑盒测试处于开发生命周期后端,可能导致不完整的测试覆盖,黑盒测试也不能指出漏洞产生于应用代码中的具体位置;白盒测试主要针对Web应用的源代码进行分析,定位源代码中可能出现的安全缺陷,优点是在开发生命周期的编码阶段就可以对其安全性进行检测,及早介入以降低损失和维护成本。同时,白盒测试可以指出漏洞在应用代码中的位置,但白盒测试并不真正运行应用代码,可能会出现漏报。

在实际测评工作中,可以采用黑盒测试与白盒测试相结合的方式,在开发生命周期的不同阶段对系统进行安全测试,降低漏洞产生的几率。具体的漏洞识别方法主要有以下4个方面。

(1)代码审查。代码审查是软件开发中常用的白盒测试手段,和品质保证(QA,Quality Assurance)测试相比,它更容易发现与架构及时序相关的问题。对 Web 应用程序代码进行审查时需要仔细检查的相关安全功能组件包括用户验证组件、会话管理组件、访问控制组件、输入输出确认组件、外部组件接口。Web应用程序可以在很多平台上进行开发,进行代码审查时需要审查的代码不尽相同,但在不同的平台上进行代码审查,通常都包括确定用户提交数据的方法、检查会话交互过程、检查潜在危险的API使用和检查平台安全配置这几个步骤。许多类型的Web应用漏洞在代码中都有相对一致的特征,这也意味着通过扫描和搜索代码就可以确定一个Web应用的大部分漏洞。如SQL注入漏洞通常存在于各种硬编码的字符串,与用户可终止的数据串联成最终执行语句;跨站脚本漏洞存在于用户收到的HTML代码中,部分是由用户可控制的数据构成的;路径遍历漏洞存在于用户可控制的输入,未经确认就被传送到文件系统API执行。

(2)数据流建模。数据流建模也是一种基于白盒测试的方法,需要Web应用的开发人员对Web系统可能产生的数据流从起点到终点进行全面、不遗漏的列举。通过梳理Web系统数据的来源盒走向,从Web系统的内部寻找可能造成危害的来源,也包括应用程序的运行是否简洁高效,是否可能存在导致系统意外崩溃的弱点等。

(3)边界分析。边界分析是针对各个安全域的边界进行的分析。由于不同安全域的重要程度不同,其所运用的安全策略也应该有所差异,此时边界安全就显得尤为重要。如位于Web应用的用户是否可以通过某些不应存在的通路访问本地局域网的数据,又如位于互联网层面的用户是否有跳过必要的认证(如登录)而对Web应用进行访问的可能。边界分析就是通过对Web应用中是否存在不合理的越界访问来定位一些典型的安全漏洞。

(4)渗透测试。相对于上述3种白盒测试方法,渗透测试完全从网络攻击者的角度,思考并尝试各种入侵Web应用系统的通道。渗透测试可以避免测试者陷入系统开发者固有的逻辑习惯和操作假设,其测试结果往往更为直观,因此对于Web应用的安全测评是非常重要的环节。常见的渗透测试方法包括针对 Web 应用认证机制的口令字典攻击和暴力破解、针对Web应用访问权限的权限提升、针对Web应用与后台数据库交互的SQL注入、针对文件上传、下载的路径遍历型漏洞等。

4、安全评估

漏洞的危害程度主要受 2 个方面因素影响,即漏洞利用可能性与漏洞造成的损失。如某个溢出漏洞,在当前环境下其利用过程极其困难或者说基本无法利用,那么这个漏洞就是危害程度较低,因为被利用的可能性很小。又如某公司把共享资料的用户名密码直接以明文形式显示于内网某Web站点上,这个漏洞被利用的可能性是很高的,任何位于局域网内的用户都可以获取该信息,而共享的资料为非机密性的学习类资料,则造成的损失较小,通过综合分析判定该漏洞的危害程度在可接受范围内。在真实的测评工作中,在识别漏洞以及安全评估时,需要紧密结合Web应用系统自身的安全需求和测评人员以往工作的经验。

5、解决方案制定

Web安全测评的最终产物是安全解决方案。安全解决方案是根据资产划分、信息收集、漏洞识别及安全评估等阶段的结果生成的一套有针对性的解决办法。Web安全解决方案的制定有两点原则:简洁性与可用性。对于某些大型的Web应用,可能稍有改动都会付出巨大的人力物力,这时需要测试者给出的解决方案是简单有效的,能在解决安全问题的基础上最大程度地压缩成本。如对于某个可导致命令执行的框架漏洞,整体的代码升级固然是根本的解决方案,但是如果漏洞只针对个别页面,则直接将其删除无疑是一种更加简洁易操作的解决方法。

另外,随着Web应用的快速发展,不能因安全解决方案的实施而牺牲了Web应用本身的可用性或性能。如某电子商务网站,出于安全考虑,在用户每次交易时都必须经过各种冗余复杂的验证流程,那么这种解决方案就是失败的。最终解决方案应在Web应用的易用性与安全之间找到一个平衡点,统筹兼顾,从设计上遵循高聚合,低耦合,易于扩展的原则。

(三)Web安全渗透测试

前面介绍了Web安全测评实施过程,其中,漏洞识别是最为关键的一个环节,下面重点介绍用于实现漏洞识别的主要技术手段——渗透测试,并按照典型的Web安全漏洞进行分类讲述。

1、SQL注入攻击测试

SQL注入是指在输入字符串中注入特殊构造的SQL指令,逃避应用程序检查,在数据库服务器上被当作正常SQL指令执行的攻击过程。这种攻击所造成的后果往往很大,一般整个数据库的信息都能被读取或篡改。通过SQL注入,攻击者甚至能够获得更多的包括管理员的权限。SQL注入也是目前Web应用中最为常见的安全漏洞。

SQL注入攻击一般分为4个过程:测试注入点、判断数据库、猜表及字段、猜字段值。如果对SQL注入类型进行划分,可将其分为数字型、字符型、搜索型,这3种类型的SQL注入原理相同,所不同的只是在进行SQL注入时,字符型、搜索型需要注意单引号的闭合问题。下面以数字型SQL注入为例来说明注入方法。

(1)测试注入点

假如现在要测试“http://www.xxx.com/showdetail.asp?id=49”这个 URL 地址是否存在SQL注入,本文在正常的URL后添加“and 1=1”和“and 1=2”。

如果存在注入,添加“and 1=1”不会影响正常的SQL语句执行,添加“and 1=2”则会影响正常的SQL语句执行。所以,如果添加“and 1=1”时,页面返回正常,而添加“and 1=2”时页面返回不正常,则说明该URL存在注入点。如果添加“and 1=1”“and 1=2”后页面返回都正常,说明网站对SQL注入进行了过滤,但依然显示了正常页面。如果添加“and 1=1”“and 1=2”后页面返回都不正常,说明网站也对SQL注入进行了过滤,这时网站通常会弹出一些提示。

(2)判断数据库

进行数据库判断不是必须的,但有时判断出数据库后,可以有针对性地进行攻击。通常利用数据库之间的SQL语法差异、系统表等来判断,如表1所示。

表1 常见数据库SQL语法与系统表

(3)猜表及字段

假如表存在,表的记录数应≥0,所以本文可以在正常的URL后添加“And(Select Count (*)from Admin)≥0”语句对数据库中是否存在Admin表进行猜测,如下所示。

http://www.xxx.com/showdetail.asp?id=49 and (select count(*) from Admin)≥0

如返回页面与正常URL相同,表示附加条件成立,即表Admin存在;反之则不存在。

将上述 Count(*)替换成 Count(字段名),如下所示。

http://www.xxx.com/showdetail.asp?id=49 and(select count(USERNAME)from Admin)≥0

如返回页面与正常URL相同,表示附加条件成立,即字段USERNAME存在;反之则不存在。

(4)猜字段值

进行字段值的猜测通常有3种方法:select、union select、ASCII码逐字猜解法。select方法通常在网站未对出错进行处理时使用,union select、ASCII码逐字猜解法具有一般性,此处不再赘述。

在确认Web应用存在SQL注入漏洞时,可以采用基于存储过程的注入过滤、基于参数化查询的注入过滤等方式,对Web应用代码进行修改,从而避免注入漏洞。另外,建议用以下2种附加的方法来加以防范。

一种是最小权限法。为了避免注入攻击对数据库造成的损害,可以把每个数据库用户的权限尽可能缩小,不要把DBA或管理员的权限赋予应用程序账户,仅赋予用户执行其操作必需的权限,不要赋予其任何不必要的权限,这对于降低SQL注入漏洞的危害性是非常重要的。

另一种是输入验证白名单法。输入验证能够在数据传递到SQL查询前就察觉到输入是否正确合法,采用白名单而不是黑名单则能在更大程度上保证数据的合法性。

2、跨站脚本(XSS)攻击测试

跨站脚本攻击是近年来使用较多的一种攻击方式。由于Web开发者对用户输入的数据过滤不充分,使攻击者可以向Web页面里嵌入恶意代码,当用户浏览Web页面时,用户浏览器展示整个HTML文档的过程中出现了不被预期的脚本指令并执行,用户浏览器被攻击者控制,这一控制用户浏览器的攻击称为XSS攻击。

XSS根据效果的不同可以分成三类:反射型XSS(也称非持久型XSS)、存储型XSS(也称持久型XSS)和文本对象模型(DOM,Document Object Model)XSS。

(1)反射型XSS

反射型XSS就是将用户提交的数据“反射”给浏览器。即攻击者往往需要诱使用户访问一个经过精心构造的恶意链接,才能攻击成功。

http://127.0.0.1/xss/xss1.php?param=26

上述示例即为反射型XSS,攻击者需要将以上URL发送给需要攻击的目标用户,当目标用户访问以上URL,浏览器才可解析执行。

(2)存储型XSS

存储型XSS是指用户提交给Web应用程序的数据被永久地保存在服务器的数据库、文件系统或其他地方,后续访问时就能显示到Web页面上。假设某一网站允许用户给其他用户留言,但事实上攻击者没有留言而是写入了一段代码,如图4所示,那么服务器将会存储这些信息,当其他用户单击攻击者伪造的留言所在的页面时,用户的浏览器就会执行攻击者刚才写入的代码,如图5所示。

图4 输入恶意代码

图5 XSS攻击成功

(3)DOM XSS

在下面的html页面中定义了一段Java Script,根据用户的输入,显示一段HTML代码,攻击者可以在输入时插入一段恶意脚本,最终展示时会执行恶意脚本。DOM XSS和上述2种跨站攻击的差别是,DOM XSS是纯页面脚本的输出,只有规范使用Java Script才可以防御。

DOM XSS演示

test dom xss

确认Web应用存在XSS漏洞时,可采取以下方法进行弥补。

1)验证输入

检查每个输入(包括用户输入、请求头、Cookie、数据库数据…)的有效性,至少应检查输入的类型和数据长度。如Web页面中有一个文本框用于接受用户输入的邮政编码,唯一有效的类型是数字(0~9),且长度应该是6,不能多也不能少。

2)HTML/XML页面输出规范

所有HTML和XML中输出的数据,应该作html escape转义;Java Script内容中输出的“用户可控数据”,应该作Java Script escape转义;对输出到富文本中的“用户可控数据”,应该作富文本安全过滤(允许用户输出HTML的情况);输出在URL中的数据,应该作URL安全输出;一些HTML标签的属性,如果接收“用户可控数据”,应该作安全检查;针对DOM跨站的解决方案,应参照Java Script安全编码规范进行编程;在给用户设置认证COOKIE时,应该加入HTTPONLY;在style内容中输出的“用户可控数据”,应该作CSS escape转义。

3)AJAX输出规范

XML输出“用户可控数据”时,应该对数据部分作HTML转义;json输出要先对变量内容中的“用户可控数据”单独作 html Escape,再对变量内容作一次 Java Script Escape;非XML输出(包括json、其他自定义数据格式),response包中的http头的content Type,必须为json,且用户可控数据作html Escape后才能输出。

3、业务逻辑漏洞测试

所有的Web业务应用都是通过一系列逻辑步骤实现各种复杂功能的。在代码编写阶段将业务应用分解成一些独立简单的逻辑步骤,按特定顺序执行这些步骤就可以完成相应的业务。在分解的过程中保证程序的安全性是很困难的,所以这些业务逻辑可能会存在各种各样的功能缺陷。

业务逻辑缺陷是由于程序设计者和开发者在程序设计和开发时做出的错误假设导致的。由于程序在设计时很难面面俱到,尤其当应用程序所要实现的功能较为复杂时,使应用程序逻辑缺陷是一种很常见的安全问题,如欺骗密码找回功能、顺序执行缺陷等。即使是最简单的Web应用程序,每个阶段都会执行大量的逻辑操作,这些逻辑操作代表着一个复杂的攻击面。业务逻辑漏洞是比较难以辨别的,因为这种漏洞没有容易辨别的特征签名,每一种逻辑漏洞似乎都是唯一的,无法使用通用的漏洞扫描器发现它们。

业务逻辑缺陷的本质就是设计者或开发者在思考问题过程中做出的特殊假设存在明显的或隐晦的错误,如开发者假设用户会按照一个特定的顺序执行每一个步骤,当攻击者不按这一特定顺序访问,而是跳过其中几个步骤或者调换逻辑步骤的执行顺序,就会进入一种完全出乎开发者意料的情况,导致严重的安全缺陷。

下面给出2个业务逻辑漏洞测试的典型案例。

(1)某网站后台无需登录就可以进入超级管理员用户界面

首先,使用搜索引擎搜索关键词“site:xxxx.com.cn intext:管理登录”找到网站后台登录界面,如图6所示。

图6 搜索登录界面

打开登录界面尝试登录,在没有用户名和口令的情况下无法进入后台管理界面。但是,如果直接使用关键词“site:xxxx.com.cn inurl:admin”搜索后台管理界面,很容易就找到了后台管理界面URL,如图7所示。

图7 搜索后台管理界面

单击搜索到的链接,就可以直接进入管理页面,得到了超级管理员权限。

(2)某网站逻辑漏洞导致可以无限刷红包

某网站的注册推广活动存在逻辑漏洞导致可以无限刷红包。该网站为了推广业务推出了邀请注册送红包活动,每一个注册用户都会有一个邀请链接,其他用户通过该链接注册成功之后,邀请人会收到一个红包。开发者为了杜绝虚假注册制定了特殊规则,在注册时需要绑定手机号,同一个手机号只能注册一次。测试流程如下。

首先,注册时填写真实的手机号提交,以便能收到短信验证码。在验证页面输入手机收到的短信验证码进行验证。验证的时候使用抓包工具截取提交的数据分组,将其中的手机号改为任意手机号,之后发送该数据分组完成注册,如图8所示。

图8 修改手机号后提交的数据分组

使用任意手机号绑定注册成功,并提示获取了新手红包。进入用户界面可以查看收到的所有红包,状态都是可以使用的,重复这一系列步骤可以无限领取红包。

4、拒绝服务攻击测试

拒绝服务(Do S,Denial of Service)攻击是让目标网络或目标主机停止提供正常服务的一种攻击形式。这种攻击形式通常是由网络协议、主机操作系统或某些应用程序自身的缺陷造成的,由于这种攻击形式实施简单且追踪困难,攻击者常常出于商业目的而实施此类攻击,如攻击竞争对手的网游主机、媒体服务器或电子交易平台。

常见的拒绝服务攻击方式有SYN Flood、UDP洪水攻击、Ping洪流攻击、Teardrop攻击、Land攻击、Smurf攻击、Fraggle攻击等。

(1)SYN Flood

SYN Flood是最常见的一种攻击方式,这种方式利用了TCP协议的三次握手机制。在TCP连接的三次握手中,假设客户端向服务器发送了SYN分组后突然死机或掉线,那么服务器在发出SYN+ACK应答分组后会无法收到客户端的ACK分组,第三次握手也将无法完成。这种情况下服务器一般会再次发送SYN+ACK给客户端,并等待一段时间后丢弃这个未完成的连接,这个等待的时间称为SYN Timeout,一般是0.5~2 min。一个客户端出现异常导致服务器的一个线程等待这段时间并不是很大的问题,但如果恶意的攻击者大量模拟这种情况,服务器端将为了维护一个非常大的半连接列表而消耗非常多的资源。实际上,如果服务器的TCP/IP协议栈设计得不够健壮,最后的结果往往是堆栈溢出崩溃。即使服务器端足够健壮,服务器端也将忙于处理攻击者伪造的TCP连接请求而无暇理睬客户的正常请求。这时从正常客户的角度看来,服务器失去正常的响应。

(2)UDP洪水攻击

攻击者利用简单的TCP/IP服务,如Chargen和Echo来传送毫无用处的占满带宽的数据。通过伪造与某一主机Chargen服务之间的一次UDP连接,回复地址指向开着Echo服务的一台主机,这样就造成在2台主机之间存在很多无用的数据流,这些无用数据流将会导致带宽被耗尽。

(3)Ping洪流攻击

许多操作系统的TCP/IP协议栈都规定ICMP数据分组的大小为64 KB,且在对数据分组的首部进行读取之后,会根据该首部包含的信息来为有效载荷生成缓冲区。当产生畸形、声称自己超过64 KB上限的数据分组时,就会出现内存分配错误,导致TCP/IP堆栈崩溃。

在实际的攻击过程中,攻击者常采用分布式拒绝服务(DDoS,distributed denial of service)攻击的形式,以更快地达到让目标主机停止服务的目的。分布式拒绝服务攻击借助于远程控制技术,发动大量计算设备对一个或多个目标主机同时开展拒绝服务攻击,从而成倍地提高拒绝服务攻击的并发请求数量和带宽,以达到快速有效地使目标主机无法提供服务的目的。DDoS攻击是目前网络层面常见的攻击形式,近年来更是出现了以域名系统作为重点攻击目标、反射放大攻击逐渐增多、利用境外流量攻击境内目标大幅增加等发展趋势。

5、跨站请求伪造攻击测试

跨站请求伪造也被称为“one click attack”或“session riding”,通常缩写为CSRF或者XSRF,是一种对网站的恶意利用。尽管听起来像跨站脚本(XSS),但它与XSS完全不同。XSS利用站点内的信任用户,而CSRF则通过伪装来自受信任用户的请求来利用受信任的网站。与XSS攻击相比,CSRF攻击往往不太流行和难以防范,所以被认为比XSS更具危险性。

CSRF是一种依赖Web浏览器、被混淆过的代理人攻击。CSRF的常见特性是依靠用户标识危害网站,利用网站对用户标识的信任,欺骗用户的浏览器发送HTTP请求给目标站点。由于CSRF攻击可以非法获取网站对合法用户的信任,因此经常被攻击者用于对金融系统(如网银系统)的攻击。

6、路径遍历及信息泄露测试

路径遍历漏洞的存在使攻击者可以通过专门设计的路径访问到网站根目录以外的文件,如网站的配置文件、系统关键文件。路径遍历漏洞一般出现在文件读取或展示图片功能这种需要通过参数提交文件名的模块。防范路径遍历漏洞的方法是处理好向文件系统传递过来的参数;合理设置文件和目录的访问权限。

信息泄露指的是攻击者利用Web应用返回的错误信息和公开信息,结合个人经验,获取对攻击Web应用有价值的信息。对网站来说,如果没有做好出错处理,将可能导致直接将网站后台数据库的一些信息暴露给攻击者。此外,也有一些公开途径可以了解关于网站的信息,如Whois查询,如图9所示。有些中小型的网站,通过浏览新闻发布者便可获知对网站具有一定权限的用户。

图9 Whois查询

7、服务器配置漏洞测试

服务器配置漏洞可能存在于Web应用的各个层次,如服务器操作系统、数据库管理系统、系统框架、应用代码中。开发人员需要和网络管理人员共同确保所有层次都合理配置,如是否缺少补丁、缺省用户是否存在、缺省口令是否修改、是否启用了不必要的服务等。

服务器配置漏洞往往使攻击者能够访问未被授权的系统数据和功能,有时甚至会导致整个系统被破坏。针对此类漏洞的防范工作主要是充分验证系统的安全配置,确保覆盖整个平台和系统,对所有组件都安装了最新的补丁,完善分析变更带来的安全影响,对所有安全配置进行记录,并使用自动化工具对系统进行验证。

三、移动支付与互联网金融安全测评案例

(一)集成电路与芯片安全测试案例

由于移动支付的应用环境范围扩大和日益复杂,对芯片的安全性有了更高的要求。目前针对芯片的各种专用攻击(测试)技术也在迅猛发展,按照其对芯片的破坏程度分类,可以分为非侵入式攻击、半侵入式攻击和侵入式攻击。

对芯片的攻击可以通过采集芯片运行过程中泄漏的功耗、电磁、时间等信息,获取芯片程序流程和敏感数据;可以使用激光、电磁、射线等,对其进行错误注入,利用错误输出和正确输出的对比,分析芯片内部的敏感数据;或通过背面成像技术或激光束扫描技术,读取存储器数据;也可以通过修改内部电路、光学成像、探针测量和重新利用测试/开发模式等方式获取内部敏感数据。

集成电路与芯片的安全测试,即针对上述攻击方式的防护措施进行评估,以期提高芯片保护内部敏感数据的能力,为移动支付和互联网金融的数据安全提供有效保障。

1、测试内容

集成电路和芯片的安全测试内容包括密码算法的标准符合性、物理随机源产生随机数据的随机性、异常检测机制的有效性、存储器访问控制的有效性、剩余信息保护机制的有效性、存储PAMID区域的保护措施和权限控制、芯片正面和背面的防移除功能、芯片表面特征防护功能、传输系统对探测和修改的防护功能、逻辑模块防干扰和修改的功能、测试模式防重激活及测试功能防利用的功能、非易失性只读存储器/非易失性可编程存储器/易失性存储器防止物理读取功能、防止电源、电磁、激光、射线、外部时钟、I/O 接口操纵的功能、侧信道防护功能、过程中断防护功能、物理随机源自检功能等。

2、测试方法

(1)物理攻击

使用刻蚀或FIB技术通过移除或增加材料来存取或修改集成电路。可以通过增加或切断晶圆内部的连线获取内部信号或连接到集成电路内部。存储器也可以被物理读取,基于存储器技术读取或设置数据位数值,该攻击直接施加到集成电路并且理读取,基于存储器技术读取或设置数据位数值,该攻击直接施加到集成电路并且经常独立于嵌入式软件。最主要的影响有:获取安全数据,如密钥(通过提取内部信号);断开集成电路安全特性,使其他攻击更容易(如DPA、干扰);施加内部信号;使用未知信号执行一些攻击。

(2)传感器和过滤器攻击

该攻击包括避开不同类型的传感器或使其无效的各种方法。集成电路使用传感器检测环境条件,并且保护其远离那些可能威胁其正常操作的条件。传感器和过滤器可以通过以下方式被攻击:切断、改变行为方式、找到监控条件覆盖范围或监控时间上的缺口、滥用传感器等。

不同类型的传感器和过滤器包括电压(高电压或电压毛刺)、频率(高频或时钟毛刺)、温度、光(其他辐射)。主要影响是无法为芯片的正确操作提供外部条件的保证,这可能会导致存储器或寄存器目录被破坏、程序流程被改变、产生操作失败(如CPU、协处理器、随机数发生器)、改变操作模式或参数(如从用户模式到管理模式)、改变其他操作参数等。

(3)干扰攻击

干扰攻击通过操纵集成电路外部操作环境(通常是温度、电源和外部时钟)或在集成电路操作过程中在芯片的不同时间、不同位置施加外部信号源,从而改变集成电路的正常行为造成其执行错误。干扰攻击最典型的方式是制造出可以导致密钥导出或明文导出的错误,或避开状态校验,或改变程序流程使算法执行出错。具体的方法包括在读操作过程中改变读到的数据,虽然存储器中的数据没有改变,但数据到达目的地后被改变了,这样可以干扰数据或地址信息;改变随机数参数或数值,如使随机数发生器输出全“1”数据;改变程序流程,如跳过一条指令、使用一条指令替换另一条、反转测试、产生跳转、产生计算错误等。

(4)差分错误分析(DFA)

攻击者使用差分错误分析可以获取机密数据(如密钥),具体方法是将包含一个错误的运算和没有错误的运算进行比较。主要有非侵入和半侵入2种方法。该攻击首先寻找适当的单个或多个错误注入方法,然后执行算法操作,一次使用正确参数,一次使用错误参数,算法操作执行完后检索结果,找到一组合适的数据,并从中计算出密钥。在算法操作过程中通过施加特殊的物理条件,可以在计算结果中诱导出单个错误(如1 bit或1 byte),也可以使用其他技术定位攻击位置,如分析功耗等。

(5)简单功耗分析/差分功耗分析(SPA/DPA)

简单功耗分析/差分功耗分析主要用来攻击密码算法。SPA也可以作为其他攻击的基础,如可以探测对EEPROM的写操作。SPA可以作为时间攻击的一部分,或推断程序流中有条件跳转的分支。SPA可以为毛刺或激光攻击寻找合适的触发点,或为微探针攻击定位合适的时间窗口。DPA攻击不需要完全成功,只需要获取部分密钥,然后通过穷举方式获取剩余的密钥。

(6)高阶DPA

高阶DPA主要针对有布尔或算术掩盖防护的算法。高阶DPA需要攻击者可以在依赖于密钥部分的中间状态使用假定值,计算每一个评估对象的多次相关性。统计学分析可能会基于将不同时间测量的相同的侧信道信息对齐,或将同时存在于芯片运算过程中的不同信道(如功耗和电磁辐射)的侧信道信息对齐。

(7)电磁分析攻击

电磁分析攻击通过测量芯片操作时的电磁辐射,推断数据操作。和功耗分析类似,电磁分析攻击分为简单电磁分析攻击(SEMA)和差分电磁分析攻击(DEMA)。实验表明,通过电磁获取数据和通过功耗曲线获取数据不同,芯片即使具有能够抵御功耗分析的安全措施,也无法抵御电磁分析。电磁分析攻击的目标是恢复密钥或明文,或用于获取其他的机密数据,如PIN码、安全随机数等。

(8)利用测试特征的攻击

此类攻击的目标是进入芯片的测试模式,使用测试功能读出非易失存储器目录,提供其他攻击的基础,并通过其他攻击读取或破坏存储器目录。

(9)随机数发生器攻击

此类攻击的目标是实现对随机数发生器输出值的预测,包括过去输出的数据、将要输出的数据,或是强制其输出确定的随机数值,或使多个随机数发生器重复未知数据等。随机数发生器可以是真随机数发生器、伪随机数发生器或两者组合。

真随机数发生器的攻击方法包括:固定或短暂影响操作条件(电压、时钟、温度、光);非扩散性的利用信号泄露(外部电气接口的信号);电路的物理操纵(停止操作、外灌电压、修改或复制操作、切断信息源);录制内部信号(危害内部状态)。

伪随机数发生器的攻击方法包括:对输出状态转变和输出函数的直接攻击;通过测信道运算操作的状态转换进行间接攻击(外部接口泄露);操作执行路径攻击(修改结果);攻击种子;打破随机数发生器输出容量限制,使发生器重复输出或产生足以预测其数值的输出。

随机数发生器的测试程序也可能成为SPA/DFA的攻击目标,可以泄露随机数发生器的输出数据。对随机数发生器的成功攻击可以导致芯片依赖随机数的安全机制的破坏,软件应用也会被这种攻击间接影响。

(10)软件攻击

大部分情况下,软件攻击从源码分析开始。多数软件攻击针对评估对象出现的错误或漏洞。软件攻击技术主要包括编辑命令、直接协议攻击、中间操纵、重复操作、缓冲区溢出等。

3、测试案例

下面介绍一些针对典型芯片进行安全检测从而发现漏洞或缺陷的实际案例。

(1)英特尔x86系列CPU漏洞攻击案例

英特尔(Intel)公司生产的x86系列中央处理器(CPU)是目前世界上普遍采用的计算机主流芯片。2009年,一位波兰的计算机安全专家指出,在基于英特尔x86架构的CPU上存在一个硬件级别的安全漏洞,任何安全软件都对它无能为力。由于英特尔CPU的普及程度,使该漏洞成为当时最受关注的硬件安全隐患。该漏洞广泛存在于当前的英特尔CPU当中,攻击的目标是CPU的系统管理模式(SMM)的缓存区,通过此漏洞可以修改CPU寄存器内容。

早期x86 CPU一般具有3种主要的工作模式,即实地址模式、保护模式、虚拟8086模式。自从有了386 SL处理器开始,引入了SMM系统管理模式,该模式是区别于这3种模式之外、专门为系统设计人员提供高级管理能力的模式。SMM 系统管理模式拥有独立于操作系统的自由空间,通常主要用于固件更新或硬件调试,具有非常高的管理权限,正是由于这个原因,如果攻击代码在SMM空间中运行,几乎任何安全软件都对它无能为力,因为普通PC的操作系统甚至都无法读取SMM空间内的内容。

SMM系统管理模式作为可执行指令的单元,为实现执行所有I/O(输入输出接口)总线指令及可用系统指令的功能分配有缓存区。经分析检测,由于SMM系统管理模式与显卡可以共用同一段物理内存,这样就留下了一条可以利用的隐蔽通道,给予了外界利用缓存漏洞进行安全破坏的可乘之机。

针对该漏洞的攻击过程如图10所示,通过修改CPU缓存区数据,来改变CPU正常工作流程,从而跳转执行攻击代码。利用该漏洞可以对计算机系统植入恶意程序,实施远程入侵控制、侦查窃密、系统致瘫和恶意干扰等攻击。由于这是芯片级漏洞,利用该漏洞的恶意程序可以获得整个系统最高级别的控制权,能够摆脱安全软件甚至可信计算控制模块的监管保护,其危害程度要远远高于操作系统等软件漏洞的威胁。

图10 针对x86系列CPU的SMM模式攻击过程

(2)某金融IC卡芯片的简单能量分析(SPA)攻击检测案例

简单能量分析(SPA)是一种根据密码算法操作过程中数据与功耗之间的关系,从芯片运算过程中的功耗曲线获取密钥信息的攻击方法。此类攻击方法与攻击时刻、执行指令以及正在被处理的数据均密切相关,攻击者要想实现简单能量分析攻击,必须对密码算法原理、密码算法实现以及芯片的内部结构有比较深刻的理解。

2009年,在对某金融IC卡芯片的安全检测工作中,发现该款芯片没有进行冗余运算的安全设计以消除波形差异,通过简单能量分析攻击的检测方法获取了该芯片中的RSA私钥值。

首先,通过功耗分析平台的检测,发现该款IC卡芯片在实现CRT-RSA算法的过程中,功耗曲线图形具有显著的外部特征。从功耗曲线能量轨迹中可以清晰地分辨出CRT-RSA算法RSA私钥参与运算的过程分为4个阶段:参数预置、两轮模幂运算和最后的组合运算,尤其是两轮模幂运算最为明显,如图11所示。

图11 CRT-RSA功耗

然后,根据图形中的信息进行攻击定位。通过对获取波形的滤波等操作,消除了大部分的噪声干扰。可以从两轮模幂运算的轨迹中清晰地读取CRT-RSA的私钥因子dp和dq值,如图12所示。

图12 CRT-RSA功耗放大局部

逆序读取:1001 0010||1100 0010||0110 1000 …

转化为十六进制: 49 || 43 || 16 …

dp值:494316F439E52A8608105C6F39E838257C2064C70DC0…

从而可以推导出

dq值:C128380FA86C554EC0EFE76EDBC1DC2A0D2F86261F77…

进而破解得出私钥值(d)。通过这种简单能量分析,破解该金融IC卡中的私钥后,该卡即可被随意复制。

(3)某加密IC卡芯片的故障引入攻击检测案例

故障引入攻击是指攻击者在密码系统运行时导入故障,使其执行某些错误的操作导致产生错误的结果,利用错误结果进行数学分析,获取密码系统的关键信息、密钥的方法。故障引入攻击凭借其攻击范围广、能力强且计算量小等特点,已引起国内外信息安全领域的广泛关注。

2010年,在对某款IC卡加密芯片的检测过程中发现,由于此芯片未具备正确值验算或冗余计算等安全防护措施,通过激光引入故障进行攻击,诱使芯片输出错误的加密结果,可以进一步分析出私钥值。

首先,当芯片在进行CRT-RSA加密时,在芯片SRAM存储器模块单元位置注入激光,使芯片在计算Cp或Cq过程中发生了错误(Cp和Cq指CRT-RSA过程中加密结果的中间值),得到一个错误的中间值 C′p(Cp≠C′p),且Cq未出错。由于芯片安全保护机制未发现错误的Cp,并继续运算输出一个错误的加密结果C′=CRT(C′p,Cq),如图13所示。

图13 CRT-RSA故障攻击模型

然后,可通过如下公式,利用错误结果计算出RSA私钥关键因子q,其中,gcd为求最大公约数函数,n=pq为公钥的一部分。

q=gcd((C−C’ ), n)

通过RSA算法原理,由n=pq,可以导致系数n被分解,则得出私钥d。通过故障引入攻击破解该金融IC卡中的私钥后,该卡即可被随意复制。

(4)某非接触IC卡的接力攻击检测案例

攻击者利用非接触IC卡的接力攻击,可以在持卡人完全不知晓的情况下,瞬间“借用”持卡人的IC卡完成刷卡开门或消费等攻击。它利用了非接触卡的被动工作、与持有者没有个人识别密码(PIN码)认证以及由电磁激活并收发信息而不依赖物理接触的特性,攻击者通过在合法的卡和合法的读卡机之间构成一道双向的、隐蔽的“信息获取—传递(接力)—发射”的通道,而违背持卡人的意愿达成了卡的非法使用。

在对一款国内外广泛使用的非接触IC卡进行检测的案例中,如图14所示,授权用户甲配备乙地的非接触门禁IC卡。某一时间,甲携带该卡远离乙地门禁。攻击者A和B分别携带仿真卡和仿真读卡机具,一个在乙地门禁读卡器处,另一个靠近授权用户甲,利用仿真读卡机具趁机刷取甲身上的门禁卡信息,并通过无线信号及时传递给乙地的仿真卡,乙地门禁即可打开,门禁日志中是授权用户甲的开门记录,而此时甲根本一无所知。

图14 接力攻击场景

接力攻击的原理简单但效果显著,现有符合国际标准的非接触IC卡,无论是逻辑卡还是智能卡,都有被接力攻击的风险。在日益广泛的非接触IC卡支付、认证应用的环境下,接力攻击越来越受到重视。目前,已有很多屏蔽非接触信号的安全“卡套”诞生,从一定程度上降低了非接触IC卡被接力攻击的风险。

(5)MIFARE CLASSIC卡密钥泄露安全检测案例

MIFARE CLASSIC卡具有密码认证和保密传输功能,作为业界认可的安全产品,销售量占世界同类产品市场85%的份额。MIFARE CLASSIC卡的非接触式通信协议已被作为非接触式逻辑加密IC卡的通信标准(ISO 14443-A)。在我国,MIFARE CLASSIC卡及仿制卡广泛用于政府、交通、能源、电力等关键行业和领域,党政军机关等重点保护场所的门禁系统也大量采用了MIFARE CLASSIC卡,部分行业和城市将MIFARE CLASSIC卡列入技术标准推广使用。

由于MIFARE CLASSIC卡加密算法存在密钥空间小(248 bit)、随机数发生器随机性差和明文暴露等多种漏洞,造成248 bit密钥破解工程量可以被分解成为220 bit的可穷尽量,在获得中间结果后即可逆推初始密钥。

2010年,通过对一款用于某政府部门身份认证的MIFARE CLASSIC卡进行检测,根据国际上公开的攻击方法,截取MIFARE CLASSIC卡与读卡器三轮认证过程中获取的10个分组(336 bit),如图15所示,用其中截取的分组(160 bit)进行算法分析,如图16所示。

图15 MIFARE CLASSIC卡三轮认证示意

图16 截取的160bit数据

通过卡标识号、卡随机数、读卡器随机数、乱数等数据信息,采用密码分析软件进行反向穷举破译,最终获取该MIFARE CLASSIC卡的密钥值。此漏洞最直接的被利用结果就是可以复制伪卡。

(二)金融IC卡、金融EMV标准

介绍国内外金融IC卡的发展历程及相关安全标准。

1、国际金融IC卡及EMV标准

1985年,法国出现了最早的金融IC卡。IC卡脱机支付的功能适应了欧洲当时通信成本高和通信质量差的状况,使IC卡在欧洲迅速发展。法国的BO卡、比利时的Proton卡、丹麦的Danmon卡和德国的Geld Karte卡等,均在欧洲市场得到广泛使用。

20世纪末,VISA和万事达为了在小额支付领域推广银行卡,各自推出了电子钱包应用产品――VISA Cash和Mondex,开启了对金融IC卡应用的探索。随着对小额支付应用技术以及IC卡的市场适用性和通用性的进一步探索,从21世纪初开始,各国际银行卡公司纷纷调整IC卡的发展重点,开始大力推广借记/贷记卡的IC化,并积极推动实施EMV迁移。

EMV标准是由国际三大银行卡组织Europay、Mastercard和Visa联合制定的金融集成电路(IC)卡的金融支付标准。EMV标准的建立目的是为金融IC卡、金融终端、支付系统以及金融机构建立一个统一的标准,使在此体系下所有的卡片和终端能够互通互用,并且该技术的采用将大大提高银行卡支付的安全性,减少欺诈行为。正式发布的第一个版本简称EMV96(V3.1.1)之后,随着市场需求不断更新其相应内容,分别发布了EMV2000(V4.0)、EMV2004(V4.1)、EMV2008(V4.2)等。EMV迁移是指按照EMV标准,在产业链的各个环节,如发卡、业务流程、安全控管、受理市场、信息转接等领域实施银行磁条卡向芯片卡技术的升级,把磁条银行卡改换成IC卡银行卡。IC卡的安全性更高,用它来替代磁条卡,可以有效地防范各种使用高科技手段的金融犯罪,确保持卡人和发卡行的利益。

EMV标准内容主要包括应用无关的IC卡与终端接口规范,安全和密钥管理,应用规范,持卡人、服务员和收单行接口需求四部分。

(1)应用无关的 IC 卡与终端接口规范

本规范描述了确保IC 卡和终端正确操作和应用无关的互操作性的最低功能需求。本规范包括两部分:第一部分是机电特性、逻辑接口和传输协议,定义了用于IC 卡和终端之间的信息交换的机电特性、逻辑接口和传输协议;第二部分是文件、命令和应用选择,定义了用于IC 卡和终端之间信息交换的数据元、文件和命令,同时还从IC卡和终端的角度分别定义了应用选择的过程。此过程所需的卡片数据和文件的逻辑结构以及使用卡片结构的终端逻辑亦在此部分描述。

(2)安全和密钥管理

本规范描述了为确保正确操作及互操作性对IC卡和终端的最低安全功能方面的要求。主要包括脱机静态数据认证、脱机动态数据认证、脱机PIN 加密、应用密文的生成和发卡行认证、安全分组、公钥管理的原则和策略、对终端的安全性及密钥管理的要求。此外,本部分还包括了为实现这些安全功能所涉及的安全机制和获准使用的加密算法的规范。

(3)应用规范

本规范定义了在国际通用环境中影响支付系统交易的终端和IC 卡操作过程。具体包括数据元和文件的映射、交易流程、异常处理、特定数据对象的编码、用于IC 卡和终端信息交换的数据元和命令的定义、金融交换的数据元及它们和数据对象的映射、文件的结构和引用、完成应用级功能的IC 卡和终端分组的结构和编码、芯片电子商务规范。

(4)持卡人、服务员和收单行接口需求

本规范描述了应用于终端特定操作环境中的特征和功能需求,定义了应用于工作在有人值守或无人值守的操作环境、具有联机或脱机能力、支持交易类型如购物、服务、取现等的所有终端。这里指的终端包括(但不仅限于)ATM、网点终端、无人值守的终端、电子收银机、个人计算机以及POS终端。本规范包括功能方面的要求、一般的物理特性、软件结构、持卡人的接口、收单行的接口。

2、国内金融IC卡及相关标准

国内金融IC卡的发展基本与国际金融IC卡同步,银联IC卡标准体系的发展也基本与国际金融IC卡标准同步。银联IC卡标准化伴随人民银行PBOC标准的发展历程,经历了3个时期的发展。

(1)金融IC卡应用起步阶段

第一阶段是PBOC 1.0应用阶段(2002年底之前)。1999年人民银行颁布《中国金融集成电路(IC)卡规范》(简称PBOC 1.0),以电子钱包银行卡为主打产品,拉开了我国金融IC卡发展序幕。但由于受理环境不成熟、磁条卡风险发生率不高、发卡系统集中度不高且改造困难等原因而没有取得大的发展。

(2)金融IC卡迁移准备阶段

第二阶段是IC卡迁移准备阶段(2003年~2010年),人民银行组织实施中国金融IC卡迁移,以应对国际上的EMV迁移。按照“先标准、后试点,先收单、后发卡,先外卡、后内卡”策略,银联和各家商业银行在人民银行领导下共同制定并发布了《中国金融集成电路(IC)卡规范2.0》(简称PBOC 2.0标准)。

银联依据PBOC 2.0标准要求对跨行转接清算系统进行适应性改造,转接清算及IC卡迁移相关基础工作建设基本完成。同时,在PBOC标准发布后,银联先后发布了14项补充技术标准或技术指南,为成员机构受理或发卡环境的升级改造提供了技术支持,便于国内发卡机构对PBOC 2.0的理解和使用。

2009年起银联响应中国人民银行的号召,率先开展了POS受理环境的改造工作,用两年左右的时间,全面完成了占有国内POS受理市场多半份额的直联POS机具和受理系统、转接系统的改造,使IC卡受理环境得到了本质的改善,也使我国银行卡网络标准化实现水平上了一个新台阶。目前,全国200多万台POS能够受理接触式IC卡,40多万台POS能受理非接触式IC卡,为发卡机构发行金融IC卡做好了准备。截至2011年6月底,国内银联标准IC卡发卡达1300多万张。

(3)金融IC卡全面迁移阶段

第三阶段是全面迁移阶段(2011年以后),2011年人民银行发布《关于推进金融IC卡应用工作的意见》,决定“十二五”期间全面推进金融IC卡应用,要求各商业银行进行全面的系统改造工作,最终全面支持金融IC卡的发行和使用,在2015年前普及芯片卡。

在此期间,人民银行组织制定了PBOC 3.0标准,以适应金融IC卡发展的需要。银联则在PBOC标准基础之上,结合金融IC卡市场发展过程中的各类需求,建立起银联IC卡企业标准体系,以更好地适应国内金融IC卡市场发展需要以及中国金融IC卡走向世界的需要。

中国银联的IC卡标准是对人民银行PBOC2.0金融IC卡标准的扩展和补充,主要由3个方面的标准构成,即中国银联IC卡应用规范、中国银联IC卡辅助规范和中国银联IC卡企业标准。

1)中国银联IC卡应用规范

第一部分为金融IC卡借记/贷记应用根CA公钥认证规范,主要对金融IC卡借记/贷记应用根CA公钥认证管理规则及安全策略方面的要求、技术要求和系统接口做了规定。本标准适用于金融IC卡借记/贷记应用根CA公钥认证的服务提供机构和服务接受机构,包括认证管理机构、接受认证服务的中国银联成员机构以及中国银联成员机构授权的代理机构。

第二部分为非接触式读写器接口规范,规定了与传统金融终端连接的外接式非接触金融IC卡读写器(以下简称读写器)的标准,其中,规定了读写器的性能要求、通信协议、接口等内容。本标准适用于金融终端的外接式非接触IC卡读写器,主要针对智能读卡器,适用于需要使用串口通信协议进行器件通信的非接触IC卡读写器生产厂商和终端生产厂商。

第三部分为非接触式IC卡通信协议执行规范,主要规定了建立非接触式通信所使用的符号字母表的编码技术,根据符号和符号序列定义了不同的逻辑值、数据帧格式、有效命令格式、初始化流程、查询和冲突检测流程、用来传送应用层信息的传输协议。

第四部分为非接触式IC卡支付规范,主要对非接触式IC卡应用在磁条非接触式支付应用(MSD)和快速借记/贷记非接触式支付应用(q PBOC)方面作出了相关要求和规定。使用对象主要是与金融非接触式IC卡应用相关的卡片设计、制造、管理、发行、受理以及应用系统的研制、开发、集成和维护等相关单位。

第五部分为基于借记/贷记应用的小额支付规范,规定了关于如何在借记/贷记卡上实现小额支付功能(即电子现金)的相关信息,并提供了电子现金的功能概述,包括卡片应用程序、终端功能与发卡行系统的示例等。使用对象主要是与金融借记/贷记IC卡应用相关的卡片设计、制造、管理、发行、受理以及应用系统的研制、开发、集成和维护等相关单位。

第六部分为非接触IC卡小额支付扩展应用规范,对基于非接触式小额支付的扩展应用作出了相关要求和规定,扩展应用主要应用于小额支付的一些特定支付场景,目前包括分段扣费和脱机预授权消费2种应用模式,未来会根据实际业务发展的需要对新的应用模式或

标签: efe温度传感器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台