掌桥专利:专业的专利平台
掌桥专利
首页

装置上的软件的模块化安全评估

文献发布时间:2024-04-18 19:44:28


装置上的软件的模块化安全评估

本申请是于2021年2月24日提交的第63/153,257号美国临时申请的PCT申请并且要求其优先权,所述美国临时申请出于所有目的而以全文引用的方式并入本文中。

背景技术

各种软件应用(例如,轻触手机(Tap to phone,TTP)解决方案)可以在象安卓和iOS装置等商用现成(COTS)装置上运行。软件应用可以处理敏感数据(例如,支付账户数据、社会保险号、生物特征信息、密码等),并且应该对其进行安全评估。现有的安全评估技术和框架(例如,COTS支付卡行业(PCI)非接触式支付(CPoC))仅支持端对端解决方案,这意味着软件的任何变更都需要对整个软件(而不仅仅是软件的改变部分)进行全新的安全评估。由于需要对智能手机软件应用进行频繁的更新(例如,特征增强、漏洞修复、品牌增强、国际化修改等),现有的安全评估框架需要许多计算资源,并且花费很长时间。

本公开的实施例单独地和共同地解决了此问题和其它问题。

发明内容

一个实施例涉及一种方法,所述方法包括:由网络处理计算机从开发计算机接收软件信息;由所述网络处理计算机基于所述软件信息确定多个逻辑模块中的一个或多个逻辑模块;由所述网络处理计算机将所述一个或多个逻辑模块提供至测试计算机,其中所述测试计算机使用所述一个或多个逻辑模块评估对应于所述软件信息的一个或多个软件模块;由所述网络处理计算机,基于使用所述一个或多个逻辑模块对所述一个或多个软件模块的评估,从所述测试计算机接收安全评估报告;以及由所述网络处理计算机基于所述安全评估报告创建安全评估摘要。

本发明的另一实施例涉及一种网络处理计算机,包括:处理器;以及耦合到所述处理器的计算机可读介质,所述计算机可读介质包括可由所述处理器执行以实施方法的代码,所述方法包括:由所述网络处理计算机从开发计算机接收软件信息;由所述网络处理计算机基于所述软件信息确定多个逻辑模块中的一个或多个逻辑模块;由所述网络处理计算机将所述一个或多个逻辑模块提供至测试计算机,其中所述测试计算机使用所述一个或多个逻辑模块评估对应于所述软件信息的一个或多个软件模块;由所述网络处理计算机,基于使用所述一个或多个逻辑模块对所述一个或多个软件模块的评估,从所述测试计算机接收安全评估报告;以及由所述网络处理计算机基于所述安全评估报告创建安全评估摘要。

本发明的另一实施例涉及一种系统,包括:网络处理计算机,所述网络处理计算机包括:第一处理器;以及耦合到所述第一处理器的第一计算机可读介质,所述第一计算机可读介质包括可由所述第一处理器执行以实施第一方法的代码,所述第一方法包括:由所述网络处理计算机从开发计算机接收软件信息;由所述网络处理计算机基于所述软件信息确定多个逻辑模块中的一个或多个逻辑模块;由所述网络处理计算机将所述一个或多个逻辑模块提供至测试计算机;由所述网络处理计算机从所述测试计算机接收安全评估报告;以及由所述网络处理计算机基于所述评估创建安全评估摘要;以及所述测试计算机,所述测试计算机包括:第二处理器;以及耦合到所述第二处理器的第二计算机可读介质,所述第二计算机可读介质包括可由所述第二处理器执行以实施第二方法的代码,所述第二方法包括:由所述测试计算机从所述网络处理计算机接收所述一个或多个逻辑模块;由所述测试计算机使用所述一个或多个逻辑模块评估一个或多个软件模块,其中所述一个或多个软件模块对应于所述软件信息;由所述测试计算机生成所述安全评估报告,所述安全评估报告指示所述一个或多个软件模块是否满足所述一个或多个逻辑模块中的每一个中包括的安全规则;以及由所述测试计算机将所述安全评估报告提供至所述网络处理计算机。

关于本公开的实施例的另外的细节可以在具体实施方式和附图中找到。

附图说明

图1示出了根据实施例的安全评估系统的框图。

图2示出了根据实施例的网络处理计算机的部件的框图。

图3示出了根据实施例的测试计算机的部件的框图。

图4示出了根据实施例的安全评估过程的流程图。

具体实施方式

在论述本公开的实施例之前,可以进一步详细描述一些术语。

“处理网络计算机”可以包括用于处理网络数据的服务器计算机。在一些实施例中,处理网络计算机可以被耦接到数据库,并且可以包括用于服务于来自一个或多个客户端计算机的请求的任何硬件、软件、其他逻辑部件或前述项的组合。处理网络计算机可以包括一个或多个计算装置,并且可以使用多种计算结构、布置和编译中的任一种来服务于来自一个或多个客户端计算机的请求。在一些实施例中,该处理网络计算机可以操作多个服务器计算机。在此类实施例中,每个服务器计算机可以被配置成处理给定区域的交易,或者基于交易数据处理特定类型的交易。

处理网络计算机可以包括用于支持和递送授权服务、异常文件服务以及清算和结算服务的数据处理子系统、网络和操作。示例性处理网络计算机可以包括VisaNet

“测试计算机”可以包括用于执行旨在确立某物的质量、性能或可靠性的程序的电子装置。测试计算机可以测试软件以确定其质量、性能和/或可靠性。

“开发计算机”可以包括用于帮助创建某物的电子装置。开发计算机可以开发软件。

“软件模块”可包括程序(例如,软件)的一部分。软件可包括一个或多个软件模块,所述软件模块在程序被链接之前不可组合。软件模块可以包括一个或多个例程。

“软件信息”可包括表示或传达与软件的数据有关的数据。在一些实施例中,软件信息可以包括表示或传送与一个或多个软件模块的数据有关的数据。软件信息还可以包括指示意欲执行相关联软件的哪一段的数据(例如,用户认证、PIN处理等)。软件信息可包括识别用于开发软件的特定开发计算机的开发计算机标识符。软件信息可包括开发人员信息(例如,公司名称、联系信息等)、软件名称、版本、构建信息、数字签名、支持模块列表、任何依赖性、任何模块环境和/或包括的第三方软件开发工具包。

“软件信息标识符”可以包括用于识别或参考软件信息的字符序列。软件信息标识符可以包括对软件信息实例唯一的字母数字值。软件信息标识符可以分配给软件信息。

“逻辑模块”可包括多个安全要求的一部分。逻辑模块在逻辑上可以是自容式的,因此可以在没有其他逻辑模块支持的情况下满足逻辑模块的安全要求。在一些实施例中,逻辑模块可以植入为计算机代码,并且API或其它边界可以由软件开发人员用来访问逻辑模块中的安全规则。逻辑模块可以包括一个或多个安全规则。

“安全规则”可包括与安全相关的过程或结果。在本发明的实施例中,安全规则可包括可由一个或多个软件模块满足或完成的过程或结果。在某些情况下,安全规则可以指示如何以特定设置实现安全性。例如,安全规则可以涉及随机数生成规则、密码规则、安全信道生成规则、相关数据规则、篡改和逆向工程保护规则、在线处理规则、应用真实性规则、安全配置规则、数据加密规则和/或证明机制规则。安全规则一旦实施,可以提高软件模块的安全性。特定的安全规则可以包括在一个或多于一个逻辑模块中。

“环境指示符”可以指示在其中可以或将要执行一个或多个对应软件模块的环境。环境指示符可以是字母数字值。

“环境”可以包括软件模块在其内操作的条件或周围环境。环境可以是物理环境或虚拟环境。环境可以是例如装置操作系统内部、装置硬件内部、基于云的应用内部等。

“安全评估报告”可包括给出安全事项的账户。安全评估报告可以是指示在安全评估中如何执行包括一个或多个软件模块的软件的报告。安全评估报告可包括多个安全规则结果指示符,该多个安全规则结果指示符指示包括一个或多个软件模块的软件是否通过特定安全规则。安全评估报告可包括一个或多个逻辑模块的每个安全规则的安全规则结果指示符。安全评估报告可包括指示通过或未通过的安全规则结果指示符。

“安全评估摘要”可以包括安全评估的主要结果的简短陈述。可以从安全评估报告创建安全评估摘要。安全评估摘要可包括允许指示符,该允许指示符指示开发计算机是否可以继续分发一个或多个经评估的软件模块。

“允许指示符”可以包括是否允许某事的指示。允许指示符可以是指示是否允许开发计算机分发包含一个或多个软件模块的应用的字母数字值。允许指示符可以是例如“真”或“假”。

“处理器”可以包括处理某事的装置。在一些实施例中,处理器可以包括任何合适的一个或多个数据计算装置。处理器可以包括一起工作以实现期望的功能的一个或多个微处理器。处理器可以包括CPU,所述CPU包括至少一个高速数据处理器,所述高速数据处理器足以执行用于执行用户和/或系统生成的请求的程序成分。CPU可以是微处理器,例如AMD的Athlon、Duron和/或Opteron;IBM和/或Motorola的PowerPC;IBM和Sony的Cell处理器;Intel的Celeron、Itanium、Pentium、Xeon和/或XScale;和/或类似的处理器。

“存储器”可以是能够存储电子数据的任何合适的一个或多个设备。合适的存储器可以包括非瞬态计算机可读介质,其存储可以由处理器执行以实施期望方法的指令。存储器的示例可以包括一个或多个存储器芯片、磁盘驱动器等。此类存储器可以使用任何合适的电、光和/或磁操作模式来操作。

“服务器计算机”可以包括功能强大的计算机或计算机集群。例如,服务器计算机可以是大型主机、小型计算机集群,或者像单元一样工作的一组服务器。在一个示例中,服务器计算机可以是耦合到Web服务器的数据库服务器。服务器计算机可以包括一个或多个计算设备,并且可以使用多种计算结构、布置和编译中的任一种来服务于来自一个或多个客户端计算机的请求。

本公开的实施例允许1)将端对端安全要求转换为具有边界的自容式逻辑模块,2)基于软件的逻辑能力从一个或多个逻辑模块获得相关安全规则,3)将逻辑要求转换为软件目标上的可执行安全测试,以及4)将实际安全测试结果总结为可产生安全批准结果的逻辑安全摘要。

端对端安全目标和要求可以转换并分组为逻辑模块。逻辑模块可以包含与特定安全顾虑相关的安全规则。例如,逻辑模块可以是非接触式内核逻辑模块、PIN捕获逻辑模块、现有装置证明逻辑模块、网关连接器逻辑模块等。

安全规则可包括任何逻辑安全规则。例如,安全规则可以是“安全配置过程必须实施完美的前向保密原则。”例如,可以将此类安全规则分组成证明逻辑模块。作为另一个示例,安全规则可以是“一旦应用接收到账户数据,就在应用内对其进行加密,并且总是在应用所存储的装置外部传输之前进行加密。”此类安全规则可分组为多于一个逻辑模块,例如非接触式内核逻辑模块、PIN捕获逻辑模块和网关连接器逻辑模块。

开发计算机可以开发包括一个或多个软件模块的软件。开发计算机可以(例如,经由应用商店等)获得由网络处理计算机分发软件的授权。开发计算机可以将软件信息传送到网络处理计算机,使得网络处理计算机可以确定包括与用于分发授权的软件信息相关联的软件必须满足的规则的一个或多个逻辑模块。网络处理计算机可以与测试计算机通信以确定一个或多个软件模块是否满足一个或多个逻辑模块的安全规则。如果一个或多个软件模块满足一个或多个逻辑模块的安全规则,网络处理计算机可以授权开发计算机分发软件。

图1示出了根据本公开的实施例的系统100。系统100包括网络处理计算机102、测试计算机104和开发计算机106。网络处理计算机102可以与测试计算机104和开发计算机106进行操作性通信。测试计算机104可以与开发计算机106进行操作性通信。

为了简化说明,图1中示出一定数量的部件。然而,应当理解,本发明的实施例可以包括多于一个每种部件。此外,本发明的一些实施例可以包括比图1中所示的所有部件更少或更多的部件。

至少图1中的装置之间的消息可使用安全通信协议来传输,所述安全通信协议例如但不限于:文件传输协议(FTP);超文本传输协议(HTTP);安全超文本传输协议(HTTPS);SSL;ISO(例如,ISO 8583)等。通信网络可以包括以下中的任一个和/或组合:直接互连;互联网;局域网(LAN);城域网(MAN);作为互联网上节点的运行任务(OMNI);安全定制连接;广域网(WAN);无线网络(例如,采用例如但不限于无线应用协议(WAP)、I-模式等等的协议);等等。通信网络可以使用任何合适的通信协议以生成一个或多个安全通信信道。在一些情况下,通信信道可以包括安全通信信道,安全通信信道可以任何已知方式建立,例如通过使用相互认证和会话密钥,以及建立安全套接层(SSL)会话。

网络处理计算机102可以包括计算机或服务器计算机。网络处理计算机102可以被配置成确定与所接收的软件信息相关的多个逻辑模块中的一个或多个逻辑模块。软件信息可包括关于一个或多个软件模块的信息。

在实施例中,逻辑模块可以与代码(例如,软件模块)的实施分开。因此,逻辑模块可用于逻辑层中,而软件模块可在实施层中进行测试。模块按逻辑级别分开,而不是按代码/二进制/服务执行级别分开。逻辑级别的逻辑模块可以被划分,这意味着一个逻辑模块不依赖于其他(多个)逻辑模块来满足其安全要求(即,逻辑模块是自容式的)。软件模块本身可由代码行、方法、程序、二进制或服务来实现。

此外,一个软件模块可以实施来自多个逻辑模块的安全要求,在这种情况下逻辑模块在逻辑上分离,但软件模块的代码实施不能分开。例如,可能需要将根检测代码插入非接触式内核代码中并编译成一个二进制,而非接触式内核逻辑模块(MCTL)和装置证明逻辑模块(MATT)在逻辑上仍然是分开的,但在实施代码中不能分开。

测试计算机104可包括被配置成对一个或多个软件模块执行一个或多个测试以确定一个或多个软件模块是否满足一个或多个逻辑模块中包括的安全规则的计算机。

开发计算机106可包括被配置成开发软件的计算机。开发计算机106可以由软件开发人员操作。开发计算机106可以生成描述由开发计算机106开发或正在开发的软件的软件信息。开发计算机106可以请求网络处理计算机102授权开发计算机106分发软件。

逻辑模块可能不依靠其他逻辑模块来满足其安全要求或补偿其安全漏洞。例如,实施软件模块的SDK可能不会依赖于SDK或配置之外的其他软件来满足其安全要求或补偿其安全漏洞。软件模块的安全合规性和SDK的安全强度可能不会被其他软件或配置降级。例如,装置证明SDK可能并不依赖于电话应用的轻触来调用其方法来执行装置软件完整性检查。它可以自主执行此任务以满足相应的安全要求。

在本发明的实施例中,应用可以满足安全规则或所有相关逻辑模块,而不依赖于运行该应用的装置可能提供的任何安全特征或措施。

图2示出了根据实施例的网络处理计算机102的框图。示例性网络处理计算机102可以包括处理器204。处理器204可耦合到存储器202、网络接口206和计算机可读介质208。计算机可读介质208可包括若干模块,包括逻辑模块确定模块208A、分发授权模块208B和通信模块208C。在一些实施例中,网络处理计算机102可以与数据库进行操作性通信。

存储器202可以用于存储数据和代码。例如,存储器202可以存储逻辑模块、安全规则、软件信息、软件信息标识符、环境指示符、允许指示符等。存储器202可以在内部或在外部耦合到处理器204(例如,基于云的数据存储装置),并且可以包括例如RAM、DRAM、ROM、闪存或任何其它合适的存储器装置之类的易失性和/或非易失性存储器的任何组合。

计算机可读介质208可以包括代码,所述代码可由处理器204执行以用于执行一种方法,所述方法包括:由网络处理计算机从开发计算机接收软件信息;由所述网络处理计算机基于所述软件信息确定多个逻辑模块中的一个或多个逻辑模块;由所述网络处理计算机将所述一个或多个逻辑模块提供至测试计算机,其中所述测试计算机使用所述一个或多个逻辑模块评估对应于所述软件信息的一个或多个软件模块;基于使用所述一个或多个逻辑模块对所述一个或多个软件模块的评估由所述网络处理计算机从所述测试计算机接收安全评估报告;以及由所述网络处理计算机基于所述安全评估报告创建安全评估摘要。

逻辑模块确定模块208A可包括可由处理器204执行以用于确定一个或多个逻辑模块的代码或软件。逻辑模块确定模块208A结合处理器204可以确定与所接收的软件信息有关的一个或多个逻辑模块。软件信息可以指示包括一个或多个软件模块的相关软件的能力。逻辑模块确定模块208A结合处理器204可以评估软件信息以确定相关软件的哪些能力(例如,用户认证、PIN管理、通信信道的安全数据通信等)对应于一个或多个逻辑模块。

例如,逻辑模块确定模块208A结合处理器204可以获得软件信息,包括软件打算经由装置的NFC控制器与非接触式卡交互的指示(例如数据标签)。逻辑模块确定模块208A结合处理器204可确定对软件打算经由装置的NFC控制器与非接触式卡交互的指示对应于“非接触式内核”的逻辑模块,该逻辑模块包括与非接触式内核有关的多个安全规则。

在一些实施例中,软件信息可以包括环境指示符,该环境指示符指示软件在其中执行的预期环境。逻辑模块确定模块208A结合处理器204可以使用环境指示符过滤多个逻辑模块。例如,逻辑模块确定模块208A结合处理器204可以过滤掉未被标记的逻辑模块或另外与软件信息中包括的环境指示符相关联的逻辑模块。例如,环境指示符可以是“RCLD”,其指示软件旨在在云中执行。逻辑模块确定模块208A结合处理器204可以过滤掉未用RCLD标记的逻辑模块以在考虑测试软件时将利用哪些逻辑模块时不被考虑。

分发授权模块208B可包括可由处理器204执行以用于确定是否授权软件的分发的代码或软件。分发授权模块208B结合处理器204可以基于使用一个或多个逻辑模块对一个或多个软件模块的评估从测试计算机接收安全评估报告。分发授权模块208B结合处理器204可以生成包含允许指示符的安全评估摘要,所述允许指示符指示开发计算机是否可以继续分发一个或多个软件模块。分发授权模块208B结合处理器204可以基于安全评估报告生成允许指示符,所述允许指示符可以指示一个或多个软件模块是否满足一个或多个逻辑模块中的每一个的多个规则中的每个规则。

例如,分发授权模块208B可以接收安全评估报告,其中一个或多个软件模块满足由两个不同逻辑模块指示的10个安全规则中的8个。分发授权模块208B结合处理器204可以生成允许指示符,所述允许指示符指示开发计算机未被授权分配一个或多个软件模块,因为并非所有安全规则都得到满足。

通信模块208C可以包括可由处理器204执行以用于与其他装置通信的代码或软件。通信模块210可以被配置或编程为执行与接收、发送和生成电子消息以便通过网络处理计算机102进行传输相关联的一些或全部功能。当网络处理计算机102通过网络接口206接收到电子消息时,可以将其传递到通信模块208C。通信模块208C可基于网络处理计算机102中使用的特定消息收发协议识别和解析相关数据。通信模块208C接着可将任何所接收的信息传输到网络处理计算机102内的适当模块。通信模块208C还可从网络处理计算机102中的模块中的一个或多个接收信息,且遵守网络处理计算机102中使用的传输协议以适当数据格式产生电子消息,使得所述消息可发送到图1的系统100内的一个或多个实体(例如,发送到测试计算机104或开发计算机106)。然后,电子消息可以被传递到网络接口206以便传输。

网络接口206可以包括可以允许网络处理计算机102与外部计算机通信的接口。网络接口206可以使得网络处理计算机102能够向另一装置(例如,测试计算机、开发计算机等)传送数据以及从该另一装置向外传送数据。网络接口206的一些示例可以包括调制解调器、物理网络接口(例如以太网卡或其它网络接口卡(NIC))、虚拟网络接口、通信端口、个人计算机存储卡国际协会(PCMCIA)插槽和卡,等等。由网络接口206启用的无线协议可以包括Wi-Fi

在一些实施例中,网络处理计算机102可以与数据库(未示出)进行操作性通信。数据库可以包括任何合适的数据库。数据库可以是常规的、容错的、关系式的、可缩放的、安全的数据库,例如可购自Oracle⑩Sybase

图3示出了根据实施例的测试计算机104的框图。示例性测试计算机104可包括处理器304。处理器304可耦合到存储器302、网络接口306和计算机可读介质308。计算机可读介质308可包括一个或数个模块,包括软件评估模块308A和通信模块308B。

存储器302可以用于存储数据和代码。例如,存储器302可以存储软件信息标识符、逻辑模块、安全规则等。存储器302可以在内部或在外部耦合到处理器304(例如,基于云的数据存储装置),并且可以包括易失性和/或非易失性存储器(诸如RAM、DRAM、ROM、闪存存储器或任何其他合适的存储器装置)的任何组合。

计算机可读介质308可以包括代码或软件,所述代码或软件可由处理器304执行以用于执行一种方法,所述方法包括:由所述测试计算机从所述网络处理计算机接收所述一个或多个逻辑模块;由所述测试计算机使用所述一个或多个逻辑模块评估一个或多个软件模块,其中所述一个或多个软件模块对应于所述软件信息;由所述测试计算机生成所述安全评估报告,所述安全评估报告指示所述一个或多个软件模块是否满足所述一个或多个逻辑模块中的每一个中包括的安全规则;以及由所述测试计算机将所述安全评估报告提供至所述网络处理计算机。

软件评估模块308A可包括可由处理器304执行以用于评估软件的代码或软件。软件评估模块308A结合处理器304可以评估一个或多个软件模块。软件评估模块308A结合处理器304可以评估一个或多个软件模块是否满足由一个或多个逻辑模块指示的安全规则。软件评估模块308A结合处理器304可以彼此单独地评估每个安全规则。

例如,软件评估模块308A结合处理器304可以获得多个安全规则的第一安全规则。软件评估模块308A结合处理器304可以通过测试代码是否符合第一安全规则来确定一个或多个软件模块是否满足第一安全规则。举例来说,第一安全规则可以是“软件必须确保在装置操作系统存储器中,明文机密或专用密码密钥均不会作为明文暴露。”软件评估模块308A结合处理器304可以评估软件以确定软件是否向装置操作系统存储器暴露明文机密或专用密码密钥。如果软件不向装置操作系统存储器暴露明文机密或专用密码密钥,则软件评估模块308A结合处理器304可以确定软件通过第一安全规则。

通信模块308B可类似于如图2中图示的通信模块208B,在此将不再重复。

网络接口306可以类似于图2的网络接口206,并且在此将不再重复。

本文中所描述的软件模块可在不同环境中实施。例如,实现软件模块的二进制可以根据设计和实施在不同环境中执行。表1示出了四个示例环境(例如,住宅)。软件模块可具有一个或多个环境,这取决于其软件设计和实施。

表1:模块环境

将参考轻触电话应用描述不同的软件模块环境。第一软件模块环境可以是软件模块在应用(例如,轻触电话应用)内部。在这种环境中,模块二进制被嵌入软件应用中并且随软件应用一起部署。嵌入过程可以二进制或源代码级完成。软件模块的二进制在装置主应用处理器的软件应用用户空间中运行。

第二软件模块环境可以是软件模块在装置的操作系统(OS)内部。软件模块二进制嵌入在COTS装置OS中,并与OS一起部署。通过轻触电话应用调用模块二进制。模块二进制可以在用户空间、OS用户空间、OS内核空间或单独的虚拟化OS(例如,TEE)中运行轻触电话应用。软件模块二进制在COTS装置的主应用处理器上运行。

第三软件模块环境可以是软件模块在装置硬件中。软件模块二进制嵌入硬件中,并与COTS装置一起部署。通过OS API或装置驱动程序通过轻触电话应用来调用软件模块二进制。软件模块二进制运行在除COTS装置的主应用处理器之外的单独的安全处理器(例如,TPM、安全元件等)上,或运行在COTS装置的应用处理器中的单独逻辑核上。

第四软件模块环境可以是软件模块在云中。软件模块部署在云服务器上,所述云服务器具有暴露于COTS装置上的电话应用轻触的远程编程接口。

I.逻辑模块

下表2示出了四个不同的逻辑模块,其具有对应的安全规则和环境指示符过滤器。逻辑模块可包括但不限于非接触式内核逻辑模块(MCTL)、PIN捕获逻辑模块(MPIN)、装置证明逻辑模块(MATT)和网关连接器逻辑模块(MGWC)。

MCTL可涉及经由COTS装置的NFC控制器与非接触式卡交互,捕获并保护卡支付数据。MPIN可以涉及在COTS装置上安全地捕获用户的在线PIN。MATT可与注册和监测COTS装置(包括硬件、OS和轻触电话应用)以及确保在COTS装置上保护轻触电话应用有关。MGWC可以涉及使用传送密钥/凭证来加密捕获的卡数据和用户的在线PIN,并将它们安全地发送至端点。

表2中示出的安全规则作为示例提供,并且应理解,安全、逻辑模块分组和环境指示符可以与表2中提供的示例不同。

表2:逻辑模块、环境指示符(EI)和安全规则

图4示出了根据实施例的安全评估过程方法的流程图。将在开发计算机106开发由软件信息描述的软件的上下文中描述图4中所示的方法。然而,应当理解,本发明可以适用于其它情况。

步骤1-4和9-10可以在逻辑层310中发生。逻辑层310可以包括与关于软件的逻辑有关的步骤,所述软件包括由开发计算机106开发的一个或多个模块。步骤5-8可以在实施层302中发生。实施层320可包括与软件的实施有关的步骤。

在步骤1,网络处理计算机102可以定义要求(例如,安全要求)。网络处理计算机102可以生成软件的一组安全要求或从存储器或数据库检索软件的一组安全要求。安全要求可以由网络处理计算机102的操作员预先确定和输入。

举例来说,第一安全要求可以是“出于安全目的必须从可信源结合来自现成平台上或应用内的随机数发生器(RNG)的输入提供的值和从至少两个其他非确定性数据来源(例如,诸如用户输入时序和从装置上模拟传感器的最低位收集的值)提供的值做种子得到在现有装置上使用的任何随机数”。第二安全要求可以是“机密密码密钥和专用密码密钥对每个装置和/或应用必须是唯一的。”安全要求可以与通过开发的软件应用维护安全性的任何方面有关。

在一些实施例中,网络处理计算机102可以确定安全要求曾作为图4中所示的过程的初始化/设置阶段。网络处理计算机102可以使用相同的安全要求评估多个软件信息。随时间推移,网络处理计算机102可以更新、删除和/或添加安全要求。

安全要求可以在逻辑模块中作为安全规则。逻辑模块可以包括安全要求的分组。例如,第一逻辑模块可以是非接触式内核逻辑模块、PIN捕获逻辑模块、装置证明逻辑模块、网关连接器逻辑模块等。非接触式内核逻辑模块可包括与经由装置的NFC控制器与非接触式卡交互以及捕获和保护卡支付数据有关的安全要求。PIN逻辑模块可包括与在装置上安全地捕获在线PIN相关的安全要求。装置证明逻辑模块可包括与注册和监测装置,包括硬件、操作系统和应用有关的安全要求,以及确保应用在装置上安全。网关连接器逻辑模块可包括与使用传送密钥/凭证加密所捕获的卡数据和持卡人凭证并将它们安全地发送至端点有关的安全要求。

在步骤2,在确定安全要求之后,开发计算机106可以向网络处理计算机102提供软件信息。例如,开发计算机106可以向网络处理计算机102提供软件信息以用于安全范围确定,并且随后由测试计算机104进行安全评估。

软件信息可以包括与开发计算机106正在开发或已经开发的软件有关的信息。软件信息可以包括例如识别开发计算机106的开发计算机标识符、开发人员信息(例如,公司名称、联系信息等)、软件名称、版本、构建信息、数字签名、所支持模块的列表、任何依赖性、任何环境指示符和/或包括的第三方软件开发工具包。

作为说明性示例,软件信息可包括软件名称“超级PIN验证器”、版本“0.8.03”、由开发计算机106的私钥创建的数字签名、开发计算机106的对应于私钥的公钥、环境指示符[RAPP](其指示所开发的软件模块在将部署至装置的应用内部),以及对软件要处理PIN进行的指示。

在一些实施例中,如果软件应用曾被更新或被更改,则软件信息还可包括关于软件的哪个部分被更改或进行了什么更改的信息,以及识别软件应用的信息(例如,软件应用标识符)。该信息可以由网络处理计算机102使用以稍后选择用于测试的适当逻辑模块。例如,如果要测试的应用是银行应用,并且仅对由银行应用执行的密码处理进行了更新,则可以将诸如“密码”的软件信息和银行应用的标识符提供至网络处理计算机102,以帮助网络处理计算机102识别用于测试的正确逻辑模块。网络处理计算机102还可以使用软件应用标识符来确定银行应用先前已经满足哪些逻辑模块。可以完成此操作,使得网络处理计算机102不会用那些逻辑模块重新测试银行应用。

在步骤3,网络处理计算机102可以基于软件信息确定多个逻辑模块中的一个或多个逻辑模块。网络处理计算机102可以确定多个逻辑模块中的哪些逻辑模块与软件信息相关。网络处理计算机102可以基于软件信息所表示的软件的处理能力来确定一个或多个逻辑模块。例如,网络处理计算机102可以基于处理PIN的软件的指示来评估软件信息以确定该软件将处理PIN。

网络处理计算机102可以从逻辑模块数据库获得与处理PIN有关的逻辑模块。例如,网络处理计算机102可以从逻辑模块数据库获得PIN捕获逻辑模块。

在一些实施例中,网络处理计算机102可以使用软件信息中包括的环境指示符过滤多个逻辑模块。环境指示符可以指示软件将在将部署到装置的应用内部运行。例如,环境指示符指示交互应用内部、装置操作系统内部、装置硬件内部或基于云的应用内部的软件环境。网络处理计算机102可以从多个逻辑模块过滤掉与将在将部署到装置的应用内部运行的软件无关的逻辑模块。

在步骤4,网络处理计算机102可以获得将对软件执行的评估范围。所述范围可以包括从多个逻辑模块确定的逻辑模块。例如,网络处理计算机102可以确定可以使用哪些逻辑模块来评估软件的安全性。

在一些实施例中,网络处理计算机102可以生成用于软件信息的软件信息标识符。例如,网络处理计算机102可以生成软件信息标识符“1234”。网络处理计算机102可以将软件信息标识符分配给软件信息。网络处理计算机102可以将软件信息标识符与软件信息相关联地存储在存储器或数据库中。例如,网络处理计算机102可以存储包括软件信息标识符和软件信息的字典条目。

在步骤4和5之间,网络处理计算机102可以将一个或多个逻辑模块提供至测试计算机104。网络处理计算机102还可以向测试计算机104提供软件信息标识符以及一个或多个逻辑模块。在一些实施例中,网络处理计算机102还可以将软件信息连同一个或多个逻辑模块一起提供至测试计算机104。网络处理计算机102可以通过任何合适的通信信道将一个或多个逻辑模块提供至测试计算机104。

在步骤5-6,测试计算机104可以启动与软件信息相关联的软件的评估。例如,测试计算机104可以在步骤6处启动对从开发计算机106接收的目标(例如,与软件信息相关联的软件)的安全评估。测试计算机104(例如,安全评估实验室计算机)和开发计算机106可以将一个或多个逻辑模块所指示的给定逻辑要求转换成实施层320中的软件的安全测试要求和程序。

作为说明性示例,在从网络处理计算机102接收一个或多个逻辑模块之后,测试计算机104可以生成从开发计算机106请求软件的软件请求消息。测试计算机104可以将软件请求消息提供至开发计算机106。例如,测试计算机104可以基于软件信息确定向哪个计算机发送软件请求消息。在接收到软件请求消息之后,开发计算机106可以将软件提供至测试计算机104。

在从开发计算机106接收软件之后,测试计算机104可以基于一个或多个逻辑模块初始化对软件的评估。例如,测试计算机104可以从每个逻辑模块获得安全规则,并且确定将能够单独地或组合地验证软件是否满足每个安全规则的评估。

在步骤7,测试计算机104可以对软件执行确定的安全测试。测试计算机104使用一个或多个逻辑模块和其中包含的安全规则来评估对应于软件信息的一个或多个软件模块。可以执行能够确定软件是否满足逻辑模块中包含的安全要求的任何合适的安全测试。例如,测试计算机104可以按顺序评估一个或多个逻辑模块中的每个安全规则,检查软件是否满足安全规则。

作为说明性示例,测试计算机104可以评估从网络处理计算机102接收的PIN捕获逻辑模块中的每个安全规则。测试计算机104可以为PIN捕获逻辑模块的每个安全规则生成测试。例如,PIN捕获逻辑模块中包括的一个安全规则可能是“对于随机数,种子值永远不可能存储在非易失性存储器中。”测试计算机104可以针对种子值存储在非易失性存储器中的任何实例评估软件。如果测试计算机104确定软件确实将种子值存储在非易失性存储器中,则测试计算机104可以生成软件未能通过此安全规则的指示。如果测试计算机104确定软件没有将种子值存储在非易失性存储器中,则测试计算机104可以生成软件通过此安全规则的指示。

在步骤8,在评估一个或多个逻辑模块中的每个安全规则之后,测试计算机104可以生成安全评估报告。安全评估报告可包括多个安全规则结果指示符,所述多个安全规则结果指示符指示包括一个或多个软件模块的软件是否通过特定安全规则。安全评估报告可包括一个或多个逻辑模块的每个安全规则的安全规则结果指示符。安全评估报告可包括指示通过或未通过的安全规则结果指示符。

在步骤8和9之间,测试计算机104可以将安全评估报告提供至网络处理计算机102。测试计算机104可以将软件信息标识符连同安全评估报告一起提供至网络处理计算机102。在一些实施例中,测试计算机104还可以将评估报告提供至开发计算机106。

在步骤9,网络处理计算机102可以接着生成安全评估摘要。网络处理计算机102可以基于从测试计算机104接收的安全评估报告来生成安全评估摘要。安全评估摘要可包括允许指示符,该允许指示符指示开发计算机106是否可以继续分发一个或多个软件模块。网络处理计算机102可以基于安全评估报告中包括的多个安全规则结果指示符生成允许指示符。例如,网络处理计算机102可以确定安全规则结果指示符中有多少指示通过以及有多少指示未通过。网络处理计算机102可以生成允许指示符,该允许指示符指示在所有安全规则结果指示符指示通过、95%的安全规则结果指示符指示通过、90%的安全规则结果指示符指示通过等情况下对分发软件的授权。网络处理计算机102可以使安全评估摘要可用于测试计算机104和/或开发计算机106。

在步骤10,在生成安全评估摘要之后,网络处理计算机102可以使用安全评估摘要生成结果消息。结果消息可以指示开发计算机106是否被授权分发软件。网络处理计算机102可以将结果消息提供至开发计算机106。

在接收到结果消息之后,如果结果消息指示开发计算机106被授权分发软件,则开发计算机106可以分发软件。如果结果消息指示开发计算机106未被授权分发软件,则开发计算机106可编辑软件且可将用于修改软件的新软件信息提供至网络处理计算机102。

在一些实施例中,网络处理计算机可以为已经被授权由开发计算机106分发的软件的一个或多个软件模块生成到期日期。

在一些实施例中,如果软件包括多于一个软件模块,则可以根据逻辑模块来评估每个软件模块并单独进行测试。如果第一软件模块接收指示第一软件模块通过测试的结果消息,而第二软件模块接收指示第二软件模块未通过测试的结果消息,则开发计算机106可能只需要修改第二软件模块而不修改第一软件模块。然后,开发计算机106可以重新提交第二软件模块以供测试,但不需要重新提交第一软件模块。在这种情况下,网络处理计算机102可以确定软件模块已经满足哪些逻辑模块,可以确定只测试未被满足或未被测试的逻辑模块。

在上述过程中,可以关于具有可能需要满足许多逻辑模块(即,测试计算机从未测试过的模块)的多个软件模块的全新的应用运行所述过程。还可以使用与这些软件模块相关的特定逻辑模块,针对软件应用中的分立数目的软件模块运行所述过程。仍可以对于对应用的一个或多个部分进行少量更改(例如,更新)的整个应用运行所述过程。仅关于与更新相关的逻辑模块测试该应用。

本公开的实施例具有若干优点。例如,实施例提供改进的软件安全评估时间。软件的安全评估比先前的方法更高效,因为如果对软件做出一次更改,则只能重新测试相关逻辑模块,而不是使用所有逻辑模块重新测试软件。另外,在改变之后,只需要测试修改过的软件模块,而不是所有软件模块。因此,实施例节省了计算资源和时间。

实施例提供了若干额外优点。例如,实施例允许在单个软件模块内混合软件代码,所述软件模块可以实现多个逻辑模块的安全要求。这相比需要不同软件模块来执行不同安全功能的当前方法是有利的。

尽管以特定顺序展示或描述了上述流程图和过程流程中的步骤,但是应当理解,本发明的实施例可以包括具有呈不同顺序的步骤的方法。另外,可以省略或添加步骤,并且它们仍可以在本发明的实施例中。

本申请中描述的任何软件部件或功能可实施为使用例如Java、C、C++、C#、Objective-C、Swift的任何合适的计算机语言或例如Perl或Python的脚本语言使用例如常规的或面向对象的技术由处理器执行的软件代码。该软件代码可以作为一系列指令或命令存储在计算机可读介质上以供存储和/或传输,合适的介质包括随机存取存储器(RAM)、只读存储器(ROM)、磁性介质(例如硬盘驱动器或软盘),或者光学介质(例如光盘(CD)或数字通用光盘(DVD))、闪存存储器,等等。计算机可读介质可以是此类存储装置或传输设备的任何组合。

这类程序还可以使用适于经由包括互联网在内的符合多种协议的有线网络、光学网络和/或无线网络进行传输的载波信号来编码和传输。因此,根据本发明的一个实施例的计算机可读介质可以使用用此类程序编码的数据信号来创建。以程序代码编码的计算机可读介质可与兼容装置一起封装或与其它装置分开提供(例如,经由互联网下载)。任何此类计算机可读介质可驻存在单个计算机产品(例如,硬盘驱动器、CD或整个计算机系统)之上或之内,并且可存在于系统或网络内的不同计算机产品之上或之内。计算机系统可以包括监视器、打印机,或用于向用户提供本文所提及的任何结果的其它合适的显示器。

以上描述是说明性的并且不是限制性的。在阅读了本公开之后,本发明的许多变型形式对于本领域的技术人员将变得显而易见。因此,本发明的范围不应当参考上面的描述来确定,而是应当参考未决的权利要求连同其完整范围或等同物来确定。

在不脱离本发明的范围的情况下,任何实施例的一个或多个特征可以与任何其他实施例的一个或多个特征进行组合。

如本文所用,除非明确指示有相反的意思,否则使用“一个”、“一种”或“所述”旨在意指“至少一个/种”。

相关技术
  • 一种软件异构化安全性评估方法及装置
  • 基于突变理论的软件定义网络安全状态评估方法及装置
技术分类

06120116301504