Proving the correctness of client/server software
نویسندگان
چکیده
Remote procedure calls (RPCs) lie at the heart of any client/server software. Thus, formal specification and verification of RPC mechanisms is a prerequisite for the verification of any such software. In this paper, we present a mathematical specification of an RPC mechanism and we outline how to prove the correctness of an implementation — say written in C — of this mechanism at the code level. We define a formal model of user processes running concurrently under a simple operating system, which provides inter-process communication and portmapper system calls. A simple theory of non-interference permits us to use conventional sequential program analysis between system calls (within the concurrent model). An RPC mechanism is specified and the correctness proof for server implementations, using this mechanism, is outlined. To the best of our knowledge this is the first treatment of the correctness of an entire RPC mechanism at the code level.
منابع مشابه
Ghost Map: Proving Software Correctness using Games
A large amount of intellectual effort is expended every day in the play of on-line games. It would be extremely valuable if one could create a system to harness this intellectual effort for practical purposes. In this paper, we discuss a new crowd-sourced, on-line game, called Ghost Map that presents players with arcade-style puzzles to solve. The puzzles in Ghost Map are generated from a forma...
متن کاملNS2: Networked Searchable Store with Correctness
In an outsourced data framework, we introduce and demonstrate mechanisms for securely storing a set of data items (documents) on an un-trusted server, while allowing for subsequent conjunctive keyword searches for matching documents. The protocols provide full computational privacy, query correctness assurances and no leaks: the server either correctly executes client queries or (if it behaves ...
متن کاملA Novel Method for VANET Improvement using Cloud Computing
In this paper, we present a novel algorithm for VANET using cloud computing. We accomplish processing, routing and traffic control in a centralized and parallel way by adding one or more server to the network. Each car or node is considered a Client, in such a manner that routing, traffic control, getting information from client and data processing and storing are performed by one or more serve...
متن کاملOS verification extended: on the formal verification of device drivers and the correctness of client-server software
This thesis tackles two important challenges in OS verification: The formal verification of device drivers and the correctness of client/server software. Device drivers are an integral part of system software. Not only high-level functionality such as file I/O depends on devices. Even basic OS features, such as demand paging, need correctly implemented drivers. In this thesis, we show how to pe...
متن کاملConjunctive Keyword Search on Encrypted Data with Completeness and Computational Privacy
We introduce mechanisms for secure keyword searches on a document server. We propose protocols with computational privacy, query correctness assurances and minimal or no leaks: the server either correctly executes client queries or (if it behaves maliciously) is immediately detected. The client is then provided with strong assurances proving the authenticity and completeness of server replies. ...
متن کامل