8,962 research outputs found
Quantifying Timing Leaks and Cost Optimisation
We develop a new notion of security against timing attacks where the attacker
is able to simultaneously observe the execution time of a program and the
probability of the values of low variables. We then show how to measure the
security of a program with respect to this notion via a computable estimate of
the timing leakage and use this estimate for cost optimisation.Comment: 16 pages, 2 figures, 4 tables. A shorter version is included in the
proceedings of ICICS'08 - 10th International Conference on Information and
Communications Security, 20-22 October, 2008 Birmingham, U
CIDPro: Custom Instructions for Dynamic Program Diversification
Timing side-channel attacks pose a major threat to embedded systems due to
their ease of accessibility. We propose CIDPro, a framework that relies on
dynamic program diversification to mitigate timing side-channel leakage. The
proposed framework integrates the widely used LLVM compiler infrastructure and
the increasingly popular RISC-V FPGA soft-processor. The compiler automatically
generates custom instructions in the security critical segments of the program,
and the instructions execute on the RISC-V custom co-processor to produce
diversified timing characteristics on each execution instance. CIDPro has been
implemented on the Zynq7000 XC7Z020 FPGA device to study the performance
overhead and security tradeoffs. Experimental results show that our solution
can achieve 80% and 86% timing side-channel capacity reduction for two
benchmarks with an acceptable performance overhead compared to existing
solutions. In addition, the proposed method incurs only a negligible hardware
area overhead of 1% slices of the entire RISC-V system
Program Synthesis and Linear Operator Semantics
For deterministic and probabilistic programs we investigate the problem of
program synthesis and program optimisation (with respect to non-functional
properties) in the general setting of global optimisation. This approach is
based on the representation of the semantics of programs and program fragments
in terms of linear operators, i.e. as matrices. We exploit in particular the
fact that we can automatically generate the representation of the semantics of
elementary blocks. These can then can be used in order to compositionally
assemble the semantics of a whole program, i.e. the generator of the
corresponding Discrete Time Markov Chain (DTMC). We also utilise a generalised
version of Abstract Interpretation suitable for this linear algebraic or
functional analytical framework in order to formulate semantical constraints
(invariants) and optimisation objectives (for example performance
requirements).Comment: In Proceedings SYNT 2014, arXiv:1407.493
Transformational typing and unification for automatically correcting insecure programs
Before starting a rigorous security analysis of a given software system, the most likely outcome is often already clear, namely that the system is not entirely secure. Modifying a program such that it passes the analysis is a difficult problem and usually left entirely to the programmer. In this article, we show that and how unification can be used to compute such program transformations. This opens a new perspective on the problem of correcting insecure programs. We also demonstrate that integrating our approach into an existing transforming type system can improve the precision of the analysis and the quality of the resulting program
- …