Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Juan Diego Campo is active.

Publication


Featured researches published by Juan Diego Campo.


computer and communications security | 2014

System-level Non-interference for Constant-time Cryptography

Gilles Barthe; Gustavo Betarte; Juan Diego Campo; Carlos Luna

Cache-based attacks are a class of side-channel attacks that are particularly effective in virtualized or cloud-based environments, where they have been used to recover secret keys from cryptographic implementations. One common approach to thwart cache-based attacks is to use constant-time implementations, i.e., which do not branch on secrets and do not perform memory accesses that depend on secrets. However, there is no rigorous proof that constant-time implementations are protected against concurrent cache-attacks in virtualization platforms with shared cache; moreover, many prominent implementations are not constant-time. An alternative approach is to rely on system-level mechanisms. One recent such mechanism is stealth memory, which provisions a small amount of private cache for programs to carry potentially leaking computations securely. Stealth memory induces a weak form of constant-time, called S-constant-time, which encompasses some widely used cryptographic implementations. However, there is no rigorous analysis of stealth memory and S-constant-time, and no tool support for checking if applications are S-constant-time. We propose a new information-flow analysis that checks if an x86 application executes in constant-time, or in S-constant-time. Moreover, we prove that constant-time (resp. S-constant-time) programs do not leak confidential information through the cache to other operating systems executing concurrently on virtualization platforms (resp. platforms supporting stealth memory). The soundness proofs are based on new theorems of independent interest, including isolation theorems for virtualization platforms (resp. platforms supporting stealth memory), and proofs that constant-time implementations (resp. S-constant-time implementations) are non-interfering with respect to a strict information flow policy which disallows that control flow and memory accesses depend on secrets. We formalize our results using the Coq proof assistant and we demonstrate the effectiveness of our analyses on cryptographic implementations, including PolarSSL AES, DES and RC4, SHA256 and Salsa20.


formal methods | 2011

Formally verifying isolation and availability in an idealized model of virtualization

Gilles Barthe; Gustavo Betarte; Juan Diego Campo; Carlos Luna

Hypervisors allow multiple guest operating systems to run on shared hardware, and offer a compelling means of improving the security and the flexibility of software systems. We formalize in the Coq proof assistant an idealized model of a hypervisor, and formally establish that the hypervisor ensures strong isolation properties between the different operating systems, and guarantees that requests from guest operating systems are eventually attended.


ieee computer security foundations symposium | 2012

Cache-Leakage Resilient OS Isolation in an Idealized Model of Virtualization

Gilles Barthe; Gustavo Betarte; Juan Diego Campo; Carlos Luna

Virtualization platforms allow multiple operating systems to run on the same hardware. One of their central goal is to provide strong isolation between guest operating systems, unfortunately, they are often vulnerable to practical side-channel attacks. Cache attacks are a common class of side-channel attacks that use the cache as a side channel. We formalize an idealized model of virtualization that features the cache and the Translation Look aside Buffer (TLB), and that provides an abstract treatment of cache-based side-channels. We then use the model for reasoning about cache-based attacks and countermeasures, and for proving that isolation between guest operating systems can be enforced by flushing the cache upon context switch. In addition, we show that virtualized platforms are transparent, i.e. a guest operating system cannot distinguish whether it executes alone or together with other guest operating systems on the platform. The models and proofs have been machine-checked in the Coqproof assistant.


types for proofs and programs | 2014

Formally Verified Implementation of an Idealized Model of Virtualization

Gilles Barthe; Gustavo Betarte; Juan Diego Campo; Jesús Mauricio Chimento; Carlos Luna

VirtualCert is a machine-checked model of virtualization that can be used to reason about isolation between operating systems in presence of cache-based side-channels. In contrast to most prominent projects on operating systems verification, where such guarantees are proved directly on concrete implementations of hypervisors, VirtualCert abstracts away most implementations issues and specifies the effects of hypervisor actions axiomatically, in terms of preconditions and postconditions. Unfortunately, seemingly innocuous implementation issues are often relevant for security. Incorporating the treatment of errors into VirtualCert is therefore an important step towards strengthening the isolation theorems proved in earlier work. In this paper, we extend our earlier model with errors, and prove that isolation theorems still apply. In addition, we provide an executable specification of the hypervisor, and prove that it correctly implements the axiomatic model. The executable specification constitutes a first step towards a more realistic implementation of a hypervisor, and provides a useful tool for validating the axiomatic semantics developed in previous work.


international colloquium on theoretical aspects of computing | 2015

Verifying Android's Permission Model

Gustavo Betarte; Juan Diego Campo; Carlos Luna; Agustín Romano

In the Android platform application security is built primarily upon a system of permissions which specify restrictions on the operations a particular process can perform. Several analyses have recently been carried out concerning the security of the Android system. Few of them, however, pay attention to the formal aspects of the permission enforcing framework. In this work we present a comprehensive formal specification of an idealized formulation of Androids permission model and discuss several security properties that have been verified using the proof assistant Coq.


logic-based program synthesis and transformation | 2017

A Certified Reference Validation Mechanism for the Permission Model of Android.

Gustavo Betarte; Juan Diego Campo; Felipe Gorostiaga; Carlos Luna

Android embodies security mechanisms at both OS and application level. In this platform application security is built primarily upon a system of permissions which specify restrictions on the operations a particular process can perform. The critical role of these security mechanisms makes them a prime target for (formal) verification. We present an idealized model of a reference monitor of the novel mechanisms of Android 6 (and further), where it is possible to grant permissions at run time. Using the programming language of the proof-assistant Coq we have developed a functional implementation of the reference validation mechanism and certified its correctness with respect to the specified reference monitor. Several properties concerning the permission model of Android 6 and its security mechanisms have been formally formulated and proved. Applying the program extraction mechanism provided by Coq we have also derived a certified Haskell prototype of the reference validation mechanism.


Journal of Automated Reasoning | 2017

System-Level Non-interference of Constant-Time Cryptography. Part I: Model

Gilles Barthe; Gustavo Betarte; Juan Diego Campo; Carlos Luna

This work focuses on the study of constant-time implementations; giving formal guarantees that such implementations are protected against cache-based timing attacks in virtualized platforms where their supporting operating system executes concurrently with other, potentially malicious, operating systems. We develop a model of virtualization that accounts for virtual addresses, physical and machine addresses, memory mappings, page tables, translation lookaside buffer, and cache; and provides an operational semantics for a representative set of actions, including reads and writes, allocation and deallocation, context switching, and hypercalls. We prove a non-interference result on the model that shows that an adversary cannot discover secret information using cache side-channels, from a constant-time victim.


Sci. Ann. Comp. Sci. | 2016

Formal Analysis of Android's Permission-Based Security Model, .

Gustavo Betarte; Juan Diego Campo; Carlos Luna; Agustín Romano


SSN | 2018

Security Analysis of Smart Grids.

Joaquín Márquez; Gabriel Rodríguez; Gustavo Betarte; Juan Diego Campo; Eduardo Grampín


Clei Electronic Journal | 2018

A formal approach for the verification of the permission-based security model of Android

Carlos Luna; Gustavo Betarte; Juan Diego Campo; Camila Sanz; Maximiliano Cristiá; Felipe Gorostiaga

Collaboration


Dive into the Juan Diego Campo's collaboration.

Top Co-Authors

Avatar

Carlos Luna

University of the Republic

View shared research outputs
Top Co-Authors

Avatar

Gustavo Betarte

University of the Republic

View shared research outputs
Top Co-Authors

Avatar

Jesús Mauricio Chimento

Chalmers University of Technology

View shared research outputs
Top Co-Authors

Avatar

Maximiliano Cristiá

National Scientific and Technical Research Council

View shared research outputs
Researchain Logo
Decentralizing Knowledge