Refine
Year of publication
Document Type
- Part of a Book (10)
- Article (8)
- Report (6)
- Doctoral Thesis (1)
Keywords
- Verifikation (3)
- Codegenerierung (2)
- Computersicherheit (2)
- Modellgetriebene Entwicklung (2)
- Mondex (2)
- UML (2)
- ASM (1)
- Chipkarte (1)
- Electronic Cash (1)
- Electronic Purse (1)
Institute
In [SGHR06] we have solved the challenge to mechanically verify the Mondex challenge about the specification and refinement of an electronic purse as defined in [SCJ00]. In this paper we show, that the verification can be made more systematic and better automated using ASM refinement instead of the original data refinement. This avoids to define a lot of properties of intermediate states during protocol runs. The systematic development of a generalized forward simulation also uncovered a weakness of the protocol, that could be exploited in a denial of service attack.
In this paper we introduce three different implementations for the Mondex electronic purse verification challenge [Woo06] [SCW00]. In previous work ([SGHR06] [SGH+07] and [HSGR06]) we verified security and correctness properties of the Mondex money transfer protocol. Here we present a way to translate the formal specifications into running JavaCard code. We introduce three different ways to implement the protocol, one using symmetric cryptography, one using asymmetric cryptography and finally one using special datatypes for cryptographic protocols and symmetric cryptography. All implementations presented in this paper are able to run on a Gemplus GemxpressoRAD ProR3 SmartCard.
In this paper we introduce a method to apply model-driven ideas to the development of secure systems. Using MDD techniques, our approach, called SecureMDD, provides a possibility to verify the correctness of a system at the modelling stage. To do so, we generate different platformspecific models from one common platform-independent UML model. The considered platforms are JavaCard and a formal model. The formal model is used for the verification of security properties. For the verification results to carry over to the Java(Card) code, these models have to be equivalent with respect to security aspects. This requires complete code generation without the possibility to manually complete the Java(Card) code. To devise such sophisticated models, we extend action elements of activity diagrams. In this paper we focus on the part of our approach which is used to generate secure smartcard code.
Chipkartenanwendungen gewinnen weltweit zunehmend an Bedeutung. Immer mehr Menschen nutzen elektronische Geldbörsen und es gibt kaum noch eine Metropole, die keinen elektronischen Fahrausweis für ihren Nahverkehr anbietet. Viele Firmen setzen bei ihren Schließsystemen auf Transponderlösungen als Zugangskontrolle und in Deutschland steht aktuell die Einführung der elektronischen Gesundheitskarte an. All diesen Chipkartenanwendungen ist gemein, dass sowohl das Ausnutzen von Sicherheitslücken als auch deren Behebung erhebliche finanzielle Schäden bei den Betreibern verursachen und deren Ruf nachhaltig beschädigen können. Gleichzeitig gilt für viele Anwendungen, dass die Akzeptanz durch die Nutzer ganz entscheidend dadurch beeinflusst wird, wie sicher ihre teils hochsensiblen, persönlichen Daten in den Systemen sind.
Die Praxis zeigt, dass Sicherheit in diesem Umfeld ein großes Problem darstellt. Immer wieder werden Sicherheitslücken in Anwendungen entdeckt, die zu dem Zeitpunkt bereits jahrelang im Einsatz waren. Die Behebung dieser Fehler gestaltet sich aufgrund der vielen Chipkarten, die an die Nutzer einer Anwendung ausgegeben wurden, sowie der relativ hohen Zahl an Kartenlesegeräten oft schwierig und ist sehr kostspielig.
Was bei der Entwicklung dieser Art von Anwendungen bisher fehlt ist ein Softwareentwicklungsansatz, der die Sicherheit der Anwendung als integralen Bestandteil begreift und diesen Aspekt durchgehend in den Ansatz einbettet. Die Entwickler von Chipkartenanwendungen setzen teilweise bereits formale Methoden ein, um Sicherheitseigenschaften nachzuweisen. Dennoch fehlt bislang ein Konzept, das die Sicherheitsanforderungen der zu entwickelnden Systeme vom Entwurf bis zur Implementierung durchgängig berücksichtigt und mit dem gleichzeitig Garantien für die Sicherheit gegeben werden können.
Diese Arbeit stellt einen modellgetriebenen Softwareentwicklungsansatz vor, in dem die beiden oben genannten Aspekte umgesetzt werden. Der Ansatz umfasst den Entwurf der zu entwickelnden Anwendung mit UML und die vollautomatische Generierung von lauffähigem Quellcode aus dem UML-Anwendungsmodell. Einzigartig ist, dass neben dem eigentlichen Quellcode auch ein formales, abstraktes Modell der Anwendung generiert wird. Dieses kann automatisch in ein interaktives Verifikationswerkzeug eingelesen und es kann dann ein formaler Beweis der Sicherheit der Anwendung geführt werden. Auf diese Weise wird garantiert, dass die Anwendung kritische Eigenschaften erfüllt. Der Quellcode und das formale Modell werden so generiert, dass sich die auf formaler Ebene bewiesenen Sicherheitseigenschaften auf den generierten Code übertragen. Die Eigenschaften gelten somit auch für den Quellcode der Anwendung. Der gesamte Ansatz ist werkzeugunterstützt und wurde anhand mehrerer, teils sehr großer, Fallstudien evaluiert.
Model-Driven Development of Secure Service Applications introduced by a Banking System Example
(2012)
SecureMDD is a model-driven approach to develop security-critical systems. It uses a model that represents an application and generates executable code as well as a formal specification that can be used to prove security properties. In our previous works we considered secure smart card application and now we focus on secure service applications. In this report we describe the modelling of services, their communication and their security. We also show the generated code and explain the integration of services in the formal model. To demonstrate our approach we show a banking system which uses smart cards and services.
The SecureMDD project provides a software engineering approach to develop secure smart card applications. The approach is model-driven and integrates formal verification to guarantee the security of the application under development. Furthermore, based on a platform-independent UML model of the application under development, the approach is able to generate executable source code for the smart cards and terminals of the application. The whole approach is fully supported by tools and all model-to-model- as well as model-to-text-transformations are fully implemented.
This paper contains the implementation of the transformations that generate a formal specification out of the platform-independent UML model of an application. The formal specification is based on algebraic specifications and Abstract State Machines (ASM). The formal model can be loaded into the interactive theorem prover KIV and is used to verify security properties for the modeled application.
The SecureMDD project provides a software engineering approach to develop secure smart card applications. The approach is model-driven and integrates formal verification to guarantee the security of the application under development. Furthermore, based on a platform-independent UML model of the application under development, the approach is able to generate executable source code for the smart cards and terminals of the application. The whole approach is fully supported by tools and all model-to-model as well as model-to-text transformations are fully implemented.
This paper contains the implementation of the transformations that generate executable source code out of a platform-independent UML model of an application.