H2020Индивидуална стипендия2018–2020

VeSPA · Verification and Specification through Progress Abstractions

„Хоризонт 2020“ — Действия „Мария Склодовска-Кюри“

Период
2018-09-01 → 2020-08-31
Финансиране от ЕС
195 455 €
Участници
1
Схема
MSCA-IF-EF-ST

Линиите свързват координатора с партньорите.

Накратко на български

Паралелните софтуерни системи, при които множество компоненти взаимодействат едновременно, се анализират за сигурност и стабилност. Това помага за създаването на по-надеждна критична инфраструктура, при която данните са защитени, а системите не спират да реагират на заявки.

Този кратък обзор е генериран от изкуствен интелект

Кратко обяснение, генерирано от езиков модел по текста на CORDIS. Оригиналът е по-долу.

Резултати накратко

Verification and Specification through Progress Abstractions

Concurrent computation, organised as a decentralised collection of interacting components, is now ubiquitous. Our society increasingly relies on such systems for sensitive and critical infrastructure. To make this safe and sustainable we need a formal approach to analyse and certify the correctness of concurrent software. Our trust in concurrent systems is based on three key properties: 1. Safety: can the system crash? 2. Progress: will the system be reactive to requests? 3. Security: no secret is ever leaked. Analysing these properties is vastly more complicated for concurrent software: the decentralised interaction between processes introduces much more subtle behaviour than what is found in sequential centralised computation. The space of all possible interactions is so huge and complex that we lack proper tools to reason about it, both manually and automatically. This is called the analysis scalability problem. While the case of Safety has been extensively studied, Progress and Security still lack a scalable methodology for verification. VeSPA's approach to tackle the analysis scalability problem for Progress and Security is based on two strategies: 1. Devising modular specifications for concurrent components. 2. Developing automatic analysis techniques to offload parts of the analysis task to the computer. The first strategy aims at breaking up the task of a complex concurrent system into smaller, more manageable sub-tasks about its components. This is far from trivial because progress-related arguments are typically about the interaction between components rather than individual properties of components. One of VeSPA's main results was an analysis framework to reason about concurrent programs which can express the progress properties of a component without having to talk about the whole system. This allows for proofs that are: • Scalable: large programs can be understood as a hierarchy of smaller sub-systems, and the analysis can focus on each sub-system individually, reducing the complexity of the proofs. • Reusable: once a component has been proven correct with respect to its abstract interface, any program that uses that component can reuse the proof as well. Also, modifications to a component that do not alter its behaviour can be done without having to re-prove the program that uses the component. The second strategy aims at automating as much as possible some parts of the correctness proofs. Ideally, the human should be able to focus on the high-level insightful aspects of a proof, and leave the tedious and very complicated reasoning for the computer to check. VeSPA advanced the state of art in automation, for proofs of correctness of cryptographic protocols. These are protocols that underpin every online activity requiring authentication, physical access control devices, e-voting systems and more. They aim at achieving secure communication in an insecure channel, through the use of cryptography. They are notoriously tricky to design and flaws are discovered every day in deployed protocols, causing huge societal and economic damages. VeSPA contributed a method and a prototype tool to automate complex steps in the verification of security properties of these protocols.

Текст от CORDIS, на английски · Данни: CORDIS, © Европейски съюз

Цел на проекта

Concurrent computation, organised as a decentralised collection of interacting components, is now ubiquitous.Our society increasingly relies on such systems for sensitive and critical infrastructure:to make this safe and sustainable we need a formal approach to analyse and certify the correctness of concurrent software.Our trust in concurrent systems is based on three key properties:1. Safety: can the system crash?2. Progress: will the system be reactive to requests?3. Security: no secret is ever leaked.Proving such properties of concurrent systems must take into consideration all possible executions, a space is so huge and complex that we lack proper tools to reason about it, both manually and automatically. This is called the analysis scalability problem. While the case of Safety has been extensively studied, Progress and Security still lack a scalable methodology for verification.The VeSPA project attacks the analysis scalability problem for Progress and Security, from the point of view of Specification. Good specifications enable true encapsulation of behaviour in the reasoning, addressing scalability by allowing correctness proofs to be more modular and organised in layers of abstractions.VeSPA will reach this goal by:1) studying specifications for verification of progress in fine-grained blocking concurrent programs (building on Gardner's work);2) apply this specification theory to the industrial case of the Erlang programming language (building on D'Osualdo's experience); and3) develop a compositional verification method for security protocols (advancing recent work of D'Osualdo)The approach of VeSPA incorporates work in neighbouring but disjoint sub-fields of Concurrency Theory (automata theory, process algebra, type systems and software specification) bringing together the unique expertise of Dr. D'Osualdo and Prof. Gardner, unifying and generalising the approaches.

Оригинален текст от CORDIS (на английски).

Участници

Връзки

Данни: CORDIS, © Европейски съюз