Towards Formal Verification of Contiki: Analysis of the AES-CCM* Modules with Frama-C

The number of IoT (Internet of Things) applications is rapidly increasing and allows embedded devices today to be massively connected to the Internet. This raises software security questions. This paper demonstrates the usage of formal verification to increase the security of Contiki OS, a popular open-source operating system for IoT. We present a case study on deductive verification of encryption-decryption modules of Contiki (namely, AES--CCM*) using Frama-C, a software analysis platform for C code.

[1]  Michael Norrish,et al.  seL4: formal verification of an operating-system kernel , 2010, Commun. ACM.

[2]  Vincent Rijmen,et al.  The Design of Rijndael , 2002, Information Security and Cryptography.

[3]  Eli Biham,et al.  Differential Cryptanalysis of the Data Encryption Standard , 1993, Springer New York.

[4]  Gilles Barthe,et al.  Formally Verified Implementation of an Idealized Model of Virtualization , 2013, TYPES.

[5]  Frédéric Loulergue,et al.  A Case Study on Formal Verification of the Anaxagoros Hypervisor Paging System with Frama-C , 2015, FMICS.

[6]  Wolfgang J. Paul,et al.  Verification of TLB Virtualization Implemented in C , 2012, VSTTE.

[7]  Utz Roedig,et al.  Secure communication for the Internet of Things - a comparison of link-layer security and IPsec for 6LoWPAN , 2014, Secur. Commun. Networks.

[8]  Yannick Moy,et al.  A Software Analysis Perspective , 2012 .

[9]  Wolfgang J. Paul,et al.  Pervasive Verification of an OS Microkernel - Inline Assembly, Memory Consumption, Concurrent Devices , 2010, VSTTE.

[10]  Herbert Bos,et al.  Memory Errors: The Past, the Present, and the Future , 2012, RAID.

[11]  Nikolaj Bjørner,et al.  Z3: An Efficient SMT Solver , 2008, TACAS.

[12]  J. Filliâtre,et al.  ACSL: ANSI/ISO C Specification Language , 2008 .

[13]  Vincent Rijmen,et al.  The Design of Rijndael: AES - The Advanced Encryption Standard , 2002 .

[14]  Adam Dunkels,et al.  Contiki - a lightweight and flexible operating system for tiny networked sensors , 2004, 29th Annual IEEE International Conference on Local Computer Networks.

[15]  Nikolai Kosmatov,et al.  Formal Verification of a Memory Allocation Module of Contiki with Frama-C: A Case Study , 2016, CRiSIS.

[16]  Nikolai Kosmatov,et al.  Frama-C: A software analysis perspective , 2015, Formal Aspects of Computing.

[17]  Ludwig Seitz,et al.  S3K: Scalable Security With Symmetric Keys—DTLS Key Establishment for the Internet of Things , 2016, IEEE Transactions on Automation Science and Engineering.

[18]  Panagiotis Papadimitratos,et al.  SecureSense: End-to-end secure communication architecture for the cloud-connected Internet of Things , 2017, Future Gener. Comput. Syst..