精华内容
下载资源
问答
  • 基于Spin的安全协议的形式化验证
  • 201806 智能合约安全形式化验证研究报告.pdf
  • 为提高下一代列车运行控制(简称列控)系统安全计算机的系统兼容性,首先对其结构进行简要分析,并对管理机制进行设计,建立了管理单元状态转移模型,同时以形式化验证工具对模型的正确性进行了验证。在此基础上对...
  • 一种基于虚拟组织的网格安全协议形式化验证方法,赵辉,,虚拟组织是网格计算的基本管理单元,而协同计算组是虚拟组织形成的基础.对应于网格计算的复杂性,网格安全协议的分析与证明十分复杂
  • 智能合约形式化验证

    千次阅读 2018-06-19 10:59:19
  • 基于形式化测试的实时系统变更后安全验证
  • 今日,USDK智能合约已经顺利通过 Beosin成都链安的全方位安全审计,并确认合约安全无漏洞。在此期间,USDK智能合约接受了成都链安全面、严格的形式化验证审计,代码运...
        

    640?wx_fmt=png


    640?wx_fmt=jpeg


    今日,USDK智能合约已经顺利通过 Beosin成都链安的全方位安全审计,并确认合约安全无漏洞。


    在此期间,USDK智能合约接受了成都链安全面、严格的形式化验证审计,代码运行状态良好,实现了技术功能与设计预期的高度结合,并获得了成都链安官方优秀合约的安全报告。


    据悉,USDK是基于区块链和信托牌照的稳定币,是由OKLink和Prime Trust联合推出的ERC-20数字资产,在以太坊区块链上运营。USDK本次采用成都链安提供的形式化验证审计服务,提前帮助USDK团队更好的规避风险,为智能合约安全加上双保险。


    后续,双方团队还将建立更为深入的战略合作,携手共创更加安全的区块链环境。



    欢迎大家体验:


    一、智能合约自动形式化验证平台VaaS精简版,准确率达到95%以上


    Beosin(成都链安科技)已向全球发布VaaS平台,全球首个同时支持ETH、EOS、Fabric、ONT、TRON等多个区块链平台的智能合约形式化验证平台,准确率达到95%以上。


    VaaS(精简版)系统为所有区块链从业者提供方便而免费的智能合约安全审计服务,对智能合约安全漏洞进行形式化验证,从容应对常规合约安全问题。欢迎大家登陆官方网址体验:


    官方网址:

    https://beosin.com/vaas/index.html#/audit/ptsj


    640?wx_fmt=jpeg

    ▲VaaS 精简版平台


    二、在线 Beosin-IDE 免费版本


    Beosin-IDE 是一款免费的面向BOS、EOS区块链平台的智能合约在线集成开发环境,可同时支持合约开发、部署、测试和源码调试等功能的在线区块链应用开发集成环境。


    欢迎大家免费体验:通过浏览器访问

    https://beosin.com/BEOSIN-IDE/index.html#/

    (如下图,推荐Chrome浏览器)。


    640?wx_fmt=jpeg

    ▲Beosin EOS-IDE


    Beosin官方发表正式声明:


    为了全球化市场战略需要,公司发布全新英文品牌 “Beosin”。作为深耕区块链安全领域的公司,“Beosin”力求为行业保驾护航,以打造区块链全生态安全为宗旨,竭诚为客户提供包括智能合约安全审计、智能合约开发审计一条龙、钱包安全审计、DApp安全加固与审计、区块链平台安全审计、交易所安全检测、安全产品定制化服务、企业级安全服务等。但公司英文名称更名并不涉及业务架构或公司所有权变化。新品牌的Logo如下图:


    640?wx_fmt=jpeg


    近期,有XX链安科技与成都链安科技重名,且Logo及宣传语相似。成都链安科技是一家由分布式资本、界石资本、盘古创富投资的专门从事区块链安全的公司,与其他XX链安科技无任何关联。请大家认准成都链安科技唯一指定商标品牌,谨防上当受骗,一切消息以官网及官方公众号为准。


    成都链安科技官方公众号名称:Beosin成都链安

    成都链安科技官方网址:

    www.lianantech.com

    ——Beosin


    640?


    关于Beosin:


    Beosin(成都链安)成立于2018年,公司位于四川省成都市,专注于区块链生态安全。公司由杨霞和郭文生两位教授共同创建,团队核心成员由来自海内外知名高校和实验室留学经历的教授、博士后、博士及阿里、华为等知名企业精英组成。已获得分布式资本、界石资本、盘古创富等著名投资机构的两轮股权投资。其核心技术为形式化验证,是全球最早一批将此技术应用到区块链安全领域的公司。


    公司首批入选Etherscan智能合约审计推荐名单及普华永道创新加速器,荣获全国首届中小微企业SaaS应用创新创业大赛冠军,获得OKEx最佳安全审计合作伙伴奖等荣誉,参加工信部多项区块链安全标准的撰写,入选工信部“2018区块链白皮书”,作为唯一安全公司入选“2018中国区块链企业百强榜”,荣膺金色财经“2018年度最专业安全服务机构”、“2019中国区块链安全领军企业”称号,荣获火星财经“最佳区块链数据安全团队”奖项,成为2019年区块链技术与数据安全工业和信息化部重点实验室成员单位。已与Huobi、OKEx、KuCoin、CoinBene、CoinTiger、ONT、Qtum、比原链、Wanchain、BOS、Scry、布比区块链、云象区块链、QuarkChain、麦子钱包、EOSPark等共计超过50家区块链公司建立战略合作关系,审计报告被国内外各大知名交易所认可,为助力本体智能合约安全发布形式化验证平台VaaS-ONT。公司审计智能合约超500份,独立发现区块链安全漏洞几十种,获得行业及客户的一致好评和认可。让区块链生态更安全,是我们的美好愿景!


    640?wx_fmt=jpeg

    640?wx_fmt=jpeg

    640?wx_fmt=jpeg





    Beosin

    作为Huobi、OKEx、KuCoin

    CoinBene、CoinTiger等

    著名交易所指定的合约审计公司。 

    入选Etherscan智能合约安全审计名单。


    欢迎联系Beosin,了解智能合约安全审计

    智能合约开发审计一条龙

    钱包安全审计

    DApp安全加固与审计

    区块链平台安全审计

    交易所安全检测

    安全产品定制化服务

    企业级安全服务

     ·

    电话:028-83262585

    网站:www.lianantech.com

    邮箱:vaas@lianantech.com

    地址成都市世纪城南路599号

    天府软件园D7座504室


    官网:

    https://www.lianantech.com


    GitHub网址:

    https://github.com/Lianantech/VCA


    Facebook网址

    https://www.facebook.com/BeosinChengdu/


    twitter网址:

    https://twitter.com/Beosin_com


    Telegram中文群:

    https://t.me/LiananTech_cn


    Telegram英文群:

    https://t.me/LiananTech_en


    微博:

    https://weibo.com/u/6566884467


    CSDN博客:

    https://blog.csdn.net/CDLianan


    知乎专栏:

    640?wx_fmt=jpeg



      点击了解更多



    640?wx_fmt=jpeg

    展开全文
  • 针对这一安全性问题,国内外研究学者一致认为,严格的形式化验证方法能够有效地提高区块链生态系统的安全性。 为此,兼具中国“985工程”与“双一流”称号的电子科技大学信息与软件工程学院杨霞副教...


    全球首个EOS安全管家:区块链形式化验证平台VaaS

    近年来,随着The DAO、Parity钱包、Coincheck等一系列区块链平台安全事件的频繁爆发,区块链平台特别是智能合约的安全问题成为这项新技术向前发展的障碍。针对这一安全性问题,国内外研究学者一致认为,严格的形式化验证方法能够有效地提高区块链生态系统的安全性。

    为此,兼具中国“985工程”与“双一流”称号的电子科技大学信息与软件工程学院杨霞副教授带领一支区块链形式化验证团队,经过近2年的研究和努力,研制出了一套高度自动化的区块链形式化验证平台VaaS(Verification as a Service)。该团队由20多名具有海外知名高校(如耶鲁、UCLA)留学经历的副教授、博士、硕士组成,具有多年的形式化验证经验。自2013年起,杨霞副教授所带领的团队也已经为航天、国防等领域的安全关键软件提供了专业的形式化验证服务。

    VaaS形式化验证平台,采用了多种形式化验证方法,具有验证效率高、自动化程度高、人工参与度低、易于使用、支持多个合约开发语言、可支持大容量区块链底层平台的形式化验证等优点。VaaS提供了针对智能合约的形式化验证工具,极大提高了智能合约的安全性与可靠性。产品通过对合约代码进行严格的安全验证,杜绝逻辑漏洞,确保合约安全,在满足实际应用效率需求的同时,达到有效控制漏洞风险的目的。目前,VaaS平台已支持主流区块链平台(如以太坊等)智能合约的形式化验证,并且已与国内10多家区块链行业的知名企业建立了合作关系。

    近期,VaaS将重点专注于EOS区块链平台的形式化验证工作,为EOS提供全面的形式化验证服务,包括EOS智能合约的形式化验证,EOS平台底层软件的形式化建模和验证。未来,VaaS平台将逐步支持其它主流区块链平台的形式化验证工作,将为更多的区块链平台提供形式化验证服务。

    目前,杨霞副教授的团队已经得到分布式资本的投资,并成立了成都链安科技有限公司。链安科技因此成为中国首个专门从事区块链安全的团队,也是分布式资本资助的唯一一个致力于区块链平台安全的公司。成都链安科技现正与LongHash、Cybex共同建立服务于EOS生态系统的形式化验证社区,为EOS的安全运行保驾护航!

    小科普——你知道什么是形式化验证方法吗?

    所谓形式化验证方法,即指在计算机科学领域,特别是软件工程和硬件工程中,一种特殊的基于数学的技术,用于规范、开发和验证软件和硬件系统,以提高系统的安全性、可靠性和鲁棒性。形式化方法可以形容为建立在相当广泛的理论计算机科学基础上的应用,特别是逻辑演算,形式语言、自动机理论、离散事件动态系统和程序的语义,还包括类型系统和代数数据类型等理论。一般这类研究主要应用于昂贵的航空、航天、军事器材的操作系统、危险的医疗设备的程序之中。



    原文发布时间为:2018-04-02
    本文作者:36氪的朋友们
    本文来源:36氪,如需转载请联系原作者。

    展开全文
  • 形式化验证调研报告

    千次阅读 2018-10-17 14:56:24
    形式化验证调研报告 王立敏 中国科学院信息工程研究所 第五实验室 北京 中国100093 摘要2018年初,Spectre和Meltdown漏洞的发现,使得芯片安全备受重视。然而传统的基于仿真的芯片验证方法由于测试样例覆盖不完全...
    形式化验证调研报告
    王立敏
    中国科学院信息工程研究所 第五实验室 北京 中国100093

    摘要2018年初,Spectre和Meltdown漏洞的发现,使得芯片安全备受重视。然而传统的基于仿真的芯片验证方法由于测试样例覆盖不完全,验证过程耗时巨大,逐渐适应不了日益复杂的芯片了。形式化方法作为一种静态验证方法,正好可以解决这些问题。本文主要梳理了当前形式化方法检测的常见方法,并且列出他们的优缺点,以及前人对这些缺点的改良方法。

    关键词
    芯片安全,形式化验证,二元决策图,时序逻辑,Petri网,定理证明,等效性检验,模型检验

    Formal Verification Investigation Report
    Wang Liming1
    Institute of Information Engineering, Chinese Academy of Sciences, Beijing 100093, China

    Abstract At the beginning of 2018, the discovery of Spectre and Meltdown attacks made chip security receive much more concerns. However, due to the serious drawbacks in the simulation-based methods in tradition such as the test cases did not cover all of the inputs and the time consuming of the simulation, this method became inappropriate to validate the chips that became more and more complicated. Formal Methods is a static verification method, which would solve these problems that the simulation-based methods bright. This report would list their advantages and disadvantages, as well as the previous methods that attempt to solve these problems.

    Key words Chip security, Formal verification, Binary Decision Diagrams,Temporal logic, Petri net, Theorem Proving, Equivalence Checking, Model checking

    1 引言

            近些年来,芯片的性能和规模不断提升,集成电路的设计也越来越复杂,使得引入错误和问题的可能性日益增加。但是传统的基于仿真的集成电路验证方法的覆盖率难以达到100%。而形式化方法作为一种静态测试的方法,通过数学的推理证明,理论上可以实现绝对安全,找出难以发现的错误,因此广受研究人员的关注。

    基于仿真的集成电路验证

            目前应用最广泛的依然是基于仿真的验证方法。这种验证方法通常需要一个测试基准,通常同时对待验证的电路和测试基准施加相同的激励,然后通过对比他们的输出来判断电路是否正确。这些输入向量可以事先生成,然后在测试期间从数据库读入,也可以边测试边生成。

            基于仿真的验证只能证明电路在指定的输入向量下输出正确,若要证明电路的正确性,输入向量必须覆盖电路的所有输入组合。但是现在集成电路十分复杂,要实现这一点是十分困难的。令人遗憾的是,许多不安全的因素或者错误都是出现在测试向量难以覆盖的地方[1]。而且这种验证方式主要用于发现逻辑漏洞,而并不能检查出芯片中的安全漏洞。

    基于形式化方法的验证

            基于形式化方法的验证是通过数理逻辑推理的一种方法。一般分为形式等效性检验(Equivalence
    Checking),定理证明(Theorem Proving)以及模型检查(Model
    Checking),如图1所示。

    图1 形式化方法的分类

    图1 形式化方法的分类

            形式等效性检验一般用于检测两个电路设计逻辑相等,电路设计一般使用硬件描述语言(Verilog或者VHDL)进行描述,然后综合成门级电路,接着再进行一系列的优化。这里的每一个步骤都会导致电路设计的改变,因此检查每一步操作前后的电路设计是否逻辑等效是有必要的。有些时候优化操作需要人为干预,因此也需要使用等效性检验来确保这些操作没有引入错误。除此之外,设计完成的芯片也需要与对应的黄金模型进行对比,以确保集成电路设计的正确性。

            定理证明方法是一种将模型抽象为逻辑公式,然后使用自动的逻辑推理技术来验证电路是否正确的技术。但是定理证明方法在使用时需要专业人士事先制定大量的定理和推理策略。因此它在自动化推理方面能力较差,不适用大规模的系统。

            模型检验是一种基于状态迁移系统的自动验证技术。它最早是由Edmund M.
    Clarke和他的研究生E.A. Emerson以及A.P.Sistla提出来的[2]。使用这种方法首先需要提出一系列规格属性,这些属性表示对电路的安全需求,系统只要满足这些属性,就能确保安全。然后建立一个电路系统的模型,即可通过模型检测方法自动地检测模型是否满足这些规格属性。模型检验一般用于电路和协议的验证。

    总结

            基于仿真的集成电路验证需要输入向量,而形式化验证并不需要。前者是先生成输入向量,再验证输出向量,而后者的考虑方向则相反,要先指明什么样的输出是符合要求的,再利用形式化方法去证明它。由于基于仿真的集成电路验证存在覆盖率不能达到100%,以及仿真时间过长等问题,而形式化证明则正好能解决这些问题。因此形式化验证开始被研究人员广泛关注。

    模型的建立

            要使用形式化方法,需要先为电路建立模型,这些模型通常用一些图的数据结构或者公式来表示。形式化模型建立完成后,即可使用形式化算法对其进行检验。

    二元决策图
    2.1.1 二元决策图概述

            二元决策图(Binary Decision Diagrams,BDD)可以很好地表示一个布尔函数。所谓布尔函数,即定义域和值域都是布尔值的函数,布尔函数在电路设计和密码学方面有广泛的应用。由于电路的输入和输出都是二进制值,这意味着电路可以表示成一个布尔函数,因此使用BDD结构来表示电路是十分合适的。

    2.1.2一个例子

    表1 f(x1,x2,x3)的真值表

    x1 x2 x3 f(x1,x2,x3)
    0 0 0 0
    0 0 1 0
    0 1 0 0
    0 1 1 1
    1 0 0 1
    1 0 1 0
    1 1 0 0
    1 1 1 1

            假设有一个电路,电路的功能如公式(1)所示。
    (1)f(x1,x2,x3)=x1x2+x1x2x3 f(x1,x2,x3)=x1x2+x1\overline{x2}\overline{x3} \tag{1}

            其真值表如表1所示。于是可得出该电路的BDD图,如图2,x1,x2,x3为变量,实线表示变量赋值为1,虚线表示变量赋值为0。

            由表1真值表可得,当x1,x2,x3分别赋值为0时,f(x1,x2,x3)的值也为0。则如图2在BDD图中沿着x1,x2,x3,0之间的虚线最终也会到达0的地方。如图中所示这样变量有序的BDD图也可以称作有序二元决策图(Ordered Binary Decision Diagrams ,OBDD)图。

            可以发现,当x1赋值为0,x2也赋值为0时,无论x3赋何值,最终结果也是0,因此可以将BDD再做精简。如图3中简化后的BDD所示,可以将这条路径中的x3节点删除,直接将x2用虚线连接至0处,这个过程可称为BDD的简化,而最终的简化结果则称为简化的有序二元决策图(Reduced
    Ordered Binary Decision Diagrams,ROBDD)。

    图2 f(x1,x2,x3)的BDD图

    图2 f(x1,x2,x3)的BDD图

    图3 f(x1,x2,x3)的简化BDD图

    图3 f(x1,x2,x3)的简化BDD图
    2.1.3基于二元决策图的电路表示

            对于组合逻辑电路而言,可以直接使用上述方法生成BDD结构。但是对于时序逻辑电路而言,则需要根据其特点生成有限自动机(Finite State Machine,FSM),再使用BDD来表示FSM的状态变迁过程,在形式等效验证和符号模型检验中常采用这一方法来表示电路。

            BDD本身不能减少状态空间,随着变量数的增加,状态空间数依然呈指数级上涨,但是它也有许多优点,比如表达形式简洁,并且配合图算法可实现快速的操作,用于表示电路十分合适。

    时序逻辑

            时序逻辑是逻辑领域中一个重要的组成部分,它在形式化验证中有十分重要的应用

    表2 时序逻辑的操作

    符号 操作 解释
    θUψ Until 若θUψ在路径上为真,则θ一直保持真直到ψ为真
    θRψ Release 若ψ为真,直到θ为真(或者θ永远不为真)则θRψ在路径上为真,
    Next 若Xθ在路径上为真,则下一个时刻θ为真
    Future 若Fθ在路径上为真,则θ最终一定为真
    Globally 若Gθ在路径上为真,则任何时刻,θ都为真
    All 表示对于任意路径
    Exists 表示存在这样的路径

            可以使用如表2所示的符号来描述硬件系统的行为,例如我们要表示“信号A一直不变,直到上升沿才翻转”这一操作,则我们令p为“信号A不变”,q为“时钟到达上升沿”,则该操作可表示为当满足pUq使信号A翻转。

            比较常用的时序逻辑是线性时序逻辑(Linear temporal logic,LTL)以及计算树逻辑(Computation tree logic,CTL)。线性时序逻辑是个线性结构,每一个时刻都只对应一个后继,计算树逻辑则是一个树状的分支结构。LTL可用于重点对象的分析,并且它可以使用公平的概念,但是对于一些可返回到初始状态的复杂系统,LTL则无法表示。CTL则相反,它无法使用公平的概念,但是却可以表达一些较为复杂的系统[3]。LTL和CTL各有自己的优势,E. A. Emerson 和 Joseph Y. Halpern 在 1986年提出了CTL*,统一了LTL和CTL。在传统的模型检验中,通常采用时序逻辑来描述电路。

    Petri网

            Petri网是一种重要的数学工具,Petri网对系统的并发性,异步性和不确定性具有很强的描述能力,一般主要是使用Petri网的可达图[4]。

    Petri网通常为四元组N= <P,T,F,M0>

    P:库所(Place)的有限集

    T:迁移(Transition)的有限集

    F:F ⊆ (P x T) ∪ (T x P),表示边的集合。∪前后分别表示输入函数集以及输出函数集。

    M0:P->N,表示初始状态集

    库所(Place)表示系统的状态。一般用圈圈表示。

    迁移(Transition)则表示资源的消耗使用,一般用黑色矩形表示。

            连接库所与变迁的有向弧表示输入输出函数。用令牌Token表示库所中的资源数量,一般用●表示。

            资源会沿着有向弧流动,当资源足够时,便会触发某些操作的执行来使用和消耗资源。即令牌会不断沿着迁移流动,令牌在迁移之前积聚叫做迁移的使能(enabled),令牌积累到足够数量之后便能通过迁移,这一过程也叫迁移的激发(fire)。

            图4表示一个互斥系统的Petri网,双方发出进入临界区的请求,当其中一方进入临界区时,另一方只能等待。图中的小黑点表示Token,最中间的库所t表示哪一方可优先访问临界区,当Idle中的Token传递到Wait时,t中个Token也会流到可优先进入临界区的那一方,于是便可以激发迁移Access,当经过Free之后,Token又将回到Idle和t中。

    图4 互斥模型的Petri网

    图4 互斥模型的Petri网

    1.形式化方法

    形式等效验证(Equivalence Checking)

            假设我们有Spec1和Spec2两个模型。若需要验证综合优化前后两个模型是否逻辑相等,则Spec1和Spec2可分别表示综合优化前后的设计。若需要验证设计的正确性,Spec1通常为黄金模型,Spec2则为我们的设计。Spec1和Spec2通常使用相同的数据结构,例如BDD,再根据具体的需求使用诸如布尔SAT求解程序(求解可满足性问题)之类的算法来进行等效性检验。

            虽然等效检验的检测效果不错,在工业上也得到了应用,但是在使用过程中依然需要高层次的专业人员去制定等效检验框架[5]。而且在复杂的电路中,等效性检验也存在状态空间数呈指数级增长的问题。虽然学术界提出了各种优化的方法,比如将复杂的等效检验切割成小的可比较集合进行处理[6],或者利用算法优化减少空间消耗[7],但是状态空间爆炸问题依然没有很好地解决。

    定理证明(Theorem Proving)

            定理证明方法十分严格,跟数理逻辑结合十分紧密。一般使用高阶逻辑(Higher-Order
    Logic,HOL) 系统来进行证明。

            要验证一个大的系统,通常采用目标制导的方式。将系统用HOL表示出来之后,再分为若干个子命题分别证明。定理证明方法对硬件模块的验证一般会用到抽象技术和层次化验证技术

            在证明之前需要对系统进行建模,Mike Gordon在论文[8]中提出可以直接利用HOL来为硬件建模。一个器件模块只有输入输出,这些输入输出可以用HOL中的谓词和函数表示,而模块之间的连接可用合取表示。

            抽象技术主要用于将系统的详细信息掩盖掉,只考虑需要关注的性质,这样可以方便算法的处理。根据关注对象的不同,可以分为不同的抽象。例如结构抽象掩盖了内部结构信息而只描述了设备的规范,而行为抽象则只对模块的部分行为进行定义,数据抽象则是通过一个映射,将现实中的数据抽象为一个较小的抽象数据集,比如布尔真值。

            层次化验证技术是将大的模型划分为小的模型,构建成一个树状结构,每一个子节点都是父节点的细化。下一层的正确性可以证明上一层的正确性,因此自下而上地证明可以确保根节点的模型的正确性。

            定理证明方法在工业上也有一定的使用,但是定理证明方法需要对系统用严格语义的数学符号进行描述和推理,因此对用户而言十分复杂。而且并没有办法确保事先人为制定的规则和定理的正确性,因此最终的正确性也值得怀疑,即前提若有错误,则最终的验证结果就不一定正确。

    模型检验(Model Checking)

            模型检验是目前最为流行的形式化检测方法。但是它依然存在状态空间爆炸的问题,模型检测方法的发展几乎都是为了解决状态空间爆炸问题以及不同系统的适用性问题展开的。

            状态空间爆炸问题一直制约着模型检验方法的发展,为此科研人员一直寻找合适的方法来解决这一问题,例如符号模型检验,偏序规约技术,以及近些年来十分热门的SAT技术。

    3.2.1符号模型检验

            符号模型检验的提出是解决状态空间爆炸问题的一个里程碑,它采用OBDD来描述电路。这使得模型检验可检查的系统规模大大增加,可以超过1020个状态。

            McMillan最先将OBDD引入模型检验技术[9],提出了符号模型检验,最初时符号模型检验只是基于CTL公式的。该方法将CTL公式转化成OBDD图,并在OBDD上搜索状态空间。之后Clarke等人又提出了基于LTL的符号模型[10]。

            符号模型检验中,存在许多优化方法,最常见的两种方法是偏序规约技术[11]和抽象模型[12]。

            由于系统中可能存在两个并行的模块,而这些并行模块的运行组合有许多种,其中的一部分运行组合实际上是重复的。因此若能将并行的模块的运行次序固定下来,在验证过程中就可以减少许多重复的路径。

            抽象技术多用于需要数据处理的系统,符号模型检验的数据处理能力较弱,若是需要表达复杂的数据结构,则验证的复杂性会十分的高。因此可以将精确的数据值和抽象的数据集合做个映射,产生一个较小的抽象数据集,以此来简化符号模型检验的状态空间。

    3.2.1 SAT技术

            基于BDD的符号模型检验虽然使得可检验的系统规模增加了许多,但是状态空间爆炸问题并没有彻底解决,在BDD中,状态空间依然是指数级增长的。BDD可通过简化生成ROBDD来减少状态空间,但是可优化的余地依然比较少。随着SAT技术的发展,它也被引入到模型检验领域[13]。

            SAT是NP完全的方法,因此它也是指数爆炸型的,为此Clarke等人提出了限界模型检验[14]。模型检验是通过对整个系统建模,并证明我们的模型是否满足我们定义的属性规格。而限界模型检验,则通过广度搜索的方法,从长度为1的路径开始搜索,搜索的路径长度逐渐递增,若能在长度为K的路径中搜索到不符合属性规格的路径,则停止搜索并报告这一反例。

            虽然限界模型检验搜索到反例后即可停止这一机制使得其遍历的状态大大减少,但是它只检查了整个状态空间的一个子集,只能证明在限界中的那部分状态符合属性规格,而无法证明整个状态空间符合属性规格。

            为了解决这一完整性问题,目前学术界较为流行的做法是逼近所求的解,即迭代地计算可达状态的不动点,来验证这整个模型是否最终满足规约。

            Yakir Vizel等人于2015年整理了各种适用于SAT的优秀的算法,这些算法包括冲突驱动从句学习(Conflict-Driven
    Clause Learning),随机局部搜索(Stochastic Local Search)[15]。

            SAT技术在经过EDA社区与科研人员的相互促进之下,在过去十年中取得了很大的进步。虽然SAT在工业界也得到了应用,但是它依然无法很好地解决模型检验的状态空间爆炸问题和限界模型检验的完整性问题,此外并行SAT技术也是一个十分有前景的方向。

            而为了解决不同系统的适应性问题,如第2部分所述,研究人员提出了许多不同的建模方式。传统的模型检验方法一般采用时序逻辑来描述电路。

    4 讨论

            传统的基于仿真的验证方式虽然存在有覆盖不完全,耗时间等问题。而形式化验证则正好可以解决这些问题,然而这并不意味着形式化方法可以完全替代传统的仿真验证。形式化方法依然存在许多的局限性,目前最好的办法是将传统的仿真验证与形式化验证结合起来。

            虽然在工业界和学术界的共同促进之下,形式化验证技术有了长足的进步。但依然存在不少进步的空间。模型验证是目前自动化水平最优的,很少需要手动干预,但是状态空间爆炸的问题依然令人十分困扰。为了提高形式化验证的速度,研究人员依然在尝试攻克检测技术的并行化的问题,这也是目前较为火的一个方向。此外为了能够使用到工业界,形式化验证必然还是需要提高检测技术的自动化水平,例如门级信息流的方法[16]利用关键信息只能从低安全级流向高安全级这一特性,简化了形式化方法建模的流程,使其可以自动生成模型。此外,纵观整个形式化验证方法的发展历程,可以发现许多形式化验证的突破,都是因为将一些已经存在的理论成果移植应用到工程中去,因此我们也可以从这一方面去考虑如何改进形式化验证的方法。

            形式化方法是个十分有前景而又十分重要的研究方向,不仅可以用于检测出难以发现的逻辑错误,也可以检查电路中隐藏的硬件木马,甚至发现较为隐秘安全漏洞。因此上述的一些形式化方法的局限依然值得我们在日后重点研究。

    参考文献

    [1] LAM W K. Hardware Design Verification: Simulation and Formal Method-Based
    Approaches (Prentice Hall Modern Semiconductor Design Series)[M]. Upper Saddle
    River, NJ, USA: Prentice Hall PTR, 2005.

    [2] CLARKE E M, EMERSON E A. Design and synthesis of synchronization skeletons
    using branching time temporal logic[J]. : 20.

    [3] 张瑞雪, 郝春梅, 王旭. 计算机形式验证方法研究综述[J]. 中国电子商务, 2011(5):
    69–69.

    [4] 蒋屹新, 林闯, 邢栩嘉. 基于线性时态逻辑的Petri网模型检测[J]. 系统仿真学报,
    2003, 15(z1): 6–10.

    [5] KREIKER J, TARLECKI A, VARDI M Y等. Modeling, Analysis, and Verification -
    The Formal Methods Manifesto 2010 (Dagstuhl Perspectives Workshop 10482)[J].
    HERBSTRITT M. 2011.

    [6] KUEHLMANN A, KROHM F. Equivalence Checking Using Cuts and Heaps[J]. : 6.

    [7] PARUTHI V, KUEHLMANN A. Equivalence checking combining a structural
    SAT-solver, BDDs, and simulation[C]//IEEE Comput. Soc, 2000: 459–464.

    [8] HAN J, STONE G. The implementation and verification of a conditional sum
    adder[J]. 1988.

    [9] MCMILLAN K L. Symbolic checking,An approachto the state explosion
    problem[J]. : 212.

    [10] CLARKE E, GRUMBERG O, HAMAGUCHI K. Another look at LTL model
    checking[C]//International Conference on Computer Aided Verification. Springer,
    1994: 415–427.

    [11] PELED D. All from one, one for all: on model checking using
    representatives[G]//COURCOUBETIS C. Computer Aided Verification. Berlin,
    Heidelberg: Springer Berlin Heidelberg, 1993, 697: 409–423.

    [12] CLARKE E M, GRUMBERG O, LONG D E. Model checking and abstraction[J]. ACM
    transactions on Programming Languages and Systems (TOPLAS), 1994, 16(5):
    1512–1542.

    [13] 王瑞. 基于SAT的符号化模型检验技术研究[D]. 国防科学技术大学, 2014.

    [14] CLARKE E, BIERE A, RAIMI R等. Bounded Model Checking Using Satisfiability
    Solving[J]. : 20.

    [15] VIZEL Y, WEISSENBACHER G, MALIK S. Boolean Satisfiability Solvers and Their
    Applications in Model Checking[J]. Proceedings of the IEEE, 2015, 103(11):
    2021–2035.

    [16] HU W, MAO B, OBERG J等. Detecting Hardware Trojans with Gate-Level
    Information-Flow Tracking[J]. Computer, 2016, 49(8): 44–52.

    Blog:形式化验证调研报告

    展开全文
  • 形式化验证基于可认证网络编码的网络传输协议安全性,孙智勇,杨铭熙,网络编码通过网络节点对传输信号的编码处理,可以提升网络信息吞吐量、节约网络资源和减少转发次数。但是在构建网络编码的过程中
  • OSDI,SOSP这俩是计算机系统顶会,形式化验证最近在计算机系统、网络安全、内核等领域大放异彩,多次拿下顶会的Best Paper。本资源根据顶级大佬Wang Xi教授给出的论文列表进行整理,找出了最有价值的这几篇论文带你...
  • 根据生灭过程的基本原理,从处理排队系统中特定的事件出发,设计并实现了一个基于事件驱动的排队系统仿真器。该仿真器能根据特定的系统配置,对实际数据进行分析和对特定过程进行模拟。仿真器包含的开发接口支持其...
  • 形式化验证,英文是formal verification,是验证软硬件逻辑很重要的一种方法。特别是对于芯片开发、高安全性的系统开发来说,是非常必要。这主要是因为系统失败的代价很高,传统的测试也无法验证整个系统的安全性和...
  • DAO、Parity、BEC 等著名项目的市值几乎一夜归零,都是由于智能合约漏洞引起,智能...形式化验证如何保障合约安全? VaaS 平台的作用及优势? 实际案例展示。 关键词:智能合约,形式化验证,VaaS 平台,安全漏洞。...
  • 介绍了安全数据库形式化顶层规范,定义了顶层规范中SQL操作的描述,在此基础上给出简单SQL操作的定义,并对其进行分析验证,最后将一般SQL操作的分析验证转换为多个简单SQL操作的分析验证验证过程表明,该方法既对...
  • 论文《安全协议的形式化说明、设计及验证
  • CTCS-4级列车运行控制系统是基于无线...主要根据GSM-R系统现有的安全威胁和应该采取的安全措施,引用一种改进的NSSK安全协议来保障车载设备与RBC间安全通信,并利用形式化建模语言CSP和模型检测工具FDR对其建模和验证
  • 得益于APP的普及,DAPP也早已成为公链普及的“风向标”。哪个公链上的DAPP多,哪个公链就更有竞争力。不管是以太坊、EOS、NEO这种...而这个DAPP是Decentralized Application的缩写,即是一个分散式的去中心的APP...
  • 嵌入式实时系统对时间约束性、安全性和可靠性具有非常高的要求,但是传统的建模和形式化验证方法难以满足对系统的实时性和安全性的模拟和验证需求。通过对有色Petri网的时间属性进行扩展,提出了实时有色Petri网模型...
  • 它以强大、高性能的形式化验证引擎为基础,能够覆盖自动设计分析到高级属性检查以及逻辑等效性验证,帮助构建功能正确,安全,可靠、可信赖的系统。 OneSpin 360™2020.2.0版本现已准备就绪,该版本包括功能和性能...
  • 在区块链技术领域,智能合约一直在多语言开发...早在去年7月,成都链安加入本体“共建者计划”,与本体共同聚焦于区块链智能合约开发、安全审计、形式化验证等领域,以提高智能合约和底层链平台的安全性,进一步打造...
  • 提取系统功能和性能规范约束,利用消息顺序图对TSRS与外部系统之间的信息交互行为建模,并将系统MSC模型转化为UPPAAL中的时间自动机仿真模型,对系统的功能和性能要求进行形式化验证。验证结果确认了系统的安全性和受限...
  • 它以强大、高性能的形式化验证引擎为基础,能够覆盖自动设计分析到高级属性检查以及逻辑等效性验证,帮助构建功能正确,安全,可靠、可信赖的系统。 本文基于OneSpin 360版本 2020的学习笔记 OneSpin360图形界面 ...
  • 计算机系统形式化验证中的模型检测方法综述论文1 形式化方法概述形式化方法是用数学和逻辑的方法来描述和验证系统设计是否满足需求。它将系统属性和系统行为定义在抽象层次上,以形式化的规范语言去描述系统。形式化...
  • 近期,笔者注意到一款智能合约自动形式化验证工具Beosin—VaaS推出了离线免费版。所谓**“离线免费版”,相较于之前该公司推出的在线免费版、企业版而言,亮点自然不言而喻。对于开发者来说,离线版的验证工具将提供...
  • 论文尝试使用形式化验证的方法,分析Defi智能合约项目应符合的安全约束。 帮助项目开发人员进行自动化的安全审计。 会翻译得口语一些; 部分术语将不会翻译,比如Protocol、token、pool啥的; CSP#Process会翻译成...
  • 形式化验证(Formal verification)让我们可以确保某种错误的状态不会发生。现在已经有很多对以太坊虚拟机语义模型的学术研究以及对使用不同框架的智能合约进行的形式化验证。在这篇文章中,我会描述一种基于符号...
  • 针对匿名电子现金支付协议存在的缺陷,提出了一种能够满足多种安全属性的优化协议。...对优化协议进行形式化验证,结果表明,优化协议满足密钥保密性、非否认性、公平性、可追究性、原子性等安全属性。
  • 针对数据完整性的定量评估问题,提出使用概率计算树逻辑对完整性定义进行形式化描述,并建立相应的马尔可夫决策过程定量评估模型,运用概率模型检测算法对完整性进行的评估,实现对完整性的定量验证。通过把提出的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 662
精华内容 264
关键字:

安全形式化验证