Information flow analysis for a typed assembly language with polymorphic stacks

By: Contributor(s): Material type: ArticleArticleSeries: ^p Datos electrónicos (1 archivo : 680 KB)Subject(s): Online resources: Summary: We study secure information flow in a stack based Typed Assembly Language (TAL). We define a TAL with an execution stack and establish the soundness of its type system by proving non-interference. One of the problems of studying information flow for a low-level language is the absence of high-level control flow constructs that guide information flow analysis in high-level languages. Furthermore, in the presence of an execution stack, code that frees space on the stack must be constrained in order to avoid illegal flows. Finally, in the presence of stack polymorphism, we must ensure that type variables are instantiated without observable differences. These issues are addressed by introducing junction points into the type system, ensuring that they behave as ordered linear continuations, and that they interact safely with the execution stack. We also discuss several limitations of our approach and point out some remaining open issues.
Star ratings
    Average rating: 0.0 (0 votes)
Holdings
Item type Home library Collection Call number URL Status Date due Barcode
Capítulo de libro Capítulo de libro Biblioteca de la Facultad de Informática Biblioteca digital A0050 (Browse shelf(Opens below)) Link to resource No corresponde

Formato de archivo: PDF. -- Este documento es producción intelectual de la Facultad de Informática-UNLP (Colección BIPA / Biblioteca.) -- Disponible también en línea vía suscripción BECyT (Cons. 10-03-2008)

We study secure information flow in a stack based Typed Assembly Language (TAL). We define a TAL with an execution stack and establish the soundness of its type system by proving non-interference. One of the problems of studying information flow for a low-level language is the absence of high-level control flow constructs that guide information flow analysis in high-level languages. Furthermore, in the presence of an execution stack, code that frees space on the stack must be constrained in order to avoid illegal flows. Finally, in the presence of stack polymorphism, we must ensure that type variables are instantiated without observable differences. These issues are addressed by introducing junction points into the type system, ensuring that they behave as ordered linear continuations, and that they interact safely with the execution stack. We also discuss several limitations of our approach and point out some remaining open issues.

Workshop on Construction and Analysis of Safe, Secure and Interoperable Smart devices (CASSIS05).EN: G. Barthe et al. (Eds.): CASSIS 2005, LNCS 3956, pp. 37–56, 2006. Springer-Verlag, Berlin-Heidelberg, 2006.