Verifying an HTTP Key-Value Server with Interaction Trees and VST
Verifying an HTTP Key-Value Server with Interaction Trees and VST
复制标题
DOI:
10.4230/lipics.itp.2021.32
复制
发表时间:
2021
期刊:
影响因子:
--
通讯作者:
Hengchu Zhang;Wolf Honoré;Nicolas C. H. Koh;Yao Li;Yishuai Li;Li-yao Xia;Lennart Beringer;William Mansky;B. Pierce;Steve Zdancewic
中科院分区:
文献类型:
--
作者:
Hengchu Zhang;Wolf Honoré;Nicolas C. H. Koh;Yao Li;Yishuai Li;Li-yao Xia;Lennart Beringer;William Mansky;B. Pierce;Steve Zdancewic
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.