DROPS - Verifying an HTTP Key-Value Server with Interaction Trees and VST

submited by
Style Pass
2021-06-25 23:00:09

Verifying an HTTP Key-Value Server with Interaction Trees and VST pdf-format: LIPIcs-ITP-2021-32.pdf (0.7 MB)

Abstract We present a networked key-value server, implemented in C and formally verified in Coq. The server interacts with clients using a subset of the HTTP/1.1 protocol and is specified and verified using interaction trees and the Verified Software Toolchain. The codebase includes a reusable and fully verified C string library that provides 17 standard POSIX string functions and 17 general purpose non-POSIX string functions. For the KVServer socket system calls, we establish a refinement relation between specifications at user-space level and at CertiKOS kernel-space level.

BibTeX - Entry @InProceedings{zhang_et_al:LIPIcs.ITP.2021.32, author = {Zhang, Hengchu and Honor\'{e}, Wolf and Koh, Nicolas and Li, Yao and Li, Yishuai and Xia, Li-Yao and Beringer, Lennart and Mansky, William and Pierce, Benjamin and Zdancewic, Steve}, title = {{Verifying an HTTP Key-Value Server with Interaction Trees and VST}}, booktitle = {12th International Conference on Interactive Theorem Proving (ITP 2021)}, pages = {32:1--32:19}, series = {Leibniz International Proceedings in Informatics (LIPIcs)}, ISBN = {978-3-95977-188-7}, ISSN = {1868-8969}, year = {2021}, volume = {193}, editor = {Cohen, Liron and Kaliszyk, Cezary}, publisher = {Schloss Dagstuhl -- Leibniz-Zentrum f{\"u}r Informatik}, address = {Dagstuhl, Germany}, URL = {https://drops.dagstuhl.de/opus/volltexte/2021/13927}, URN = {urn:nbn:de:0030-drops-139273}, doi = {10.4230/LIPIcs.ITP.2021.32}, annote = {Keywords: formal verification, Coq, HTTP, deep specification} }

Leave a Comment