Enforcing High-Level Security Properties For Applets
Abstract
Smart card applications often handle privacy-sensitive information, and therefore must obey certain security policies. Such policies are usually described by high-level security properties, stating for example that no authentication must take place within a transaction. Behavioural interface specification languages, such as JML (Java Modeling Language) have been successfully used to validate functional properties of smart card applications. However, high-level security properties cannot be expressed directly in such languages. Therefore, this paper proposes a method to translate high-level security properties into JML annotations. The method proceeds by synthesising appropriate annotations and weaving them throughout the application. In this way, security policies can be validated using the various existing tools for JML. The method is general and applies to a large class of security properties. To illustrate its applicability, we applied the method to several realistic examples of smart card applications. This allowed us to find violations against the documented security policies for some of these applications.