[发明专利]软件系统的自动验证有效
| 申请号: | 201580053927.4 | 申请日: | 2015-10-01 |
| 公开(公告)号: | CN107111713B | 公开(公告)日: | 2020-02-07 |
| 发明(设计)人: | C·霍布利泽尔;B·帕诺;J·R·洛奇;J·R·豪厄尔;B·D·齐尔 | 申请(专利权)人: | 微软技术许可有限责任公司 |
| 主分类号: | G06F21/52 | 分类号: | G06F21/52 |
| 代理公司: | 11256 北京市金杜律师事务所 | 代理人: | 王茂华;丁君军 |
| 地址: | 美国华*** | 国省代码: | 美国;US |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 软件 系统 自动 验证 | ||
软件系统(例如,软件栈)的软件代码可以被验证为符合规范。可以使用编译器来编译软件系统的高级语言实现以创建汇编语言实现。对应于软件系统的高级规范可以被转换为低级规范。验证器可以验证汇编语言实现功能上符合在低级规范中所描述的属性。以这种方式,软件系统(例如,包括操作系统、(一个或多个)设备驱动程序、软件库以及一个或多个应用的完整软件系统)可以在低级(例如,汇编语言级)上被验证。
背景技术
当用户将个人数据提交给远程服务(例如,基于云的服务)时,不保证个人数据将保持安全或者甚至服务将产生正确的结果。在最好的情况下,服务可能具有隐私政策,并在数据泄露的情况下限制服务的责任。然而,最近的头条已经提供在操作系统、库或应用(例如软件应用)中的易受攻击性如何可以使得个人数据被访问的示例。
发明内容
提供本发明内容以简化的形式介绍概念的选择,其在下面的具体实施方式中被进一步描述。本发明内容不旨在标识所要求保护的主题的关键或基本特征;也不用于确定或限制所要求保护的主题的范围。
一些实现可以包括用于验证软件代码符合相应规范的技术。可以使用编译器来编译软件系统的高级语言实现以创建汇编语言实现。软件系统可以具有对应的高级规范。可以被表达为有限状态机的高级规范可以转换为低级规范。汇编语言实现的属性可以被验证为符合低级规范。以这种方式,可以在低水平(例如,汇编语言水平)上验证系统作为整体的正确性(例如,完整的软件栈)。
附图说明
参考附图描述具体实施方式。在附图中,附图标记的最左边的数字标识参考数字在其中首次出现的图形。不同图中相同的参考数字标识相似或相同的项目。
图1是根据一些实现的包括规范转换器的说明性架构。
图2是根据一些实现的包括应用的说明性架构。
图3是根据一些实现的包括可信增量(TrInc)应用的说明性架构。
图4是根据一些实现的包括差分隐私应用的说明性架构。
图5是根据一些实现的已验证软件系统的说明性架构。
图6是根据一些实现的可信计算基础(TCB)的说明性架构。
图7是根据一些实现的包括确定与软件代码相关联的属性的示例过程的流程图。
图8是根据一些实现的包括验证软件代码的属性符合对应的规范的示例过程的流程图。
图9是根据一些实现的包括执行初步验证的示例过程的流程图。
图10是包括已验证的软件系统的说明性架构。
具体实施方式
理论上,服务的软件代码的完整形式验证可以提供一个服务精确匹配正式指定的安全标准的数学保证。不幸的是,虽然软件验证可以提供关于软件代码的可靠性的强有力的保证,但是计算成本可能会很高,以至于服务提供商可能无法执行他们的整个系统的软件验证。因此,服务提供商最多可以提供关于以通过大量未验证的软件代码围绕的高级语言编写的小程序的强大的保证。例如,已验证的传输层安全协议实现可以依赖于未验证的操作系统和未验证的软件库。作为另一个例子,针对RSA密码系统的正确性的机器检查的证明可以假定实现RSA密码系统的加密库、对应的运行时库和操作系统的正确性。作为另一示例,依赖于可信汇编代码的微内核可能不会对应用级语义的正确性租出任何声明。因此,服务可能无法执行服务的软件代码的完整的形式验证,并且因此可能不能提供服务精确地匹配正式指定的安全标准的数学保证。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于微软技术许可有限责任公司,未经微软技术许可有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201580053927.4/2.html,转载请声明来源钻瓜专利网。





