Agnes Hui Chan
Guevara Noubir, Rajmohan Rajaraman, Ravi Sundaram, Lily Chen
Date of Award
Doctor of Philosophy
Department or Academic Unit
College of Computer and Information Science.
Computer science, Software update, Incremental Hashing, Authentication Ticket
Software maintenance, Computer software--Validation
Software update is the process of updating software running on computing devices. It allows computing devices to download and to install software packages and patches in real time. This is an important feature for managing the computing devices in a distributed network, as it saves the trouble of having to either recall the devices back to the manufacturers or send field engineers to remote locations to maintain the devices. Without authentication, software update can be exploited to distribute trojan horses, viruses, or other malicious programs. Previous approaches to software update either use no authentication at all, or use conventional digital signatures that are inefficient for authenticating partial updates such as patches. In our research, we solve two problems, 1) how to distribute software updates to devices so that the devices can efficiently authenticate the data that is received, and 2) how to restrict devices to run only the authenticated software that is authorized for the devices. We design and develop a client-server software update system, which uses an on-the-fly signature generation scheme to provide data authentication to a dynamic bundle of various software packages. With our scheme, each bundle is authenticated by a single digital signature. Compared with conventional software update systems where each software package within a bundle has to be individually signed, our scheme reduces the computation for the server to generate the signature and for the client to verify it. For client devices which has an embedded trusted computing module (TCM), by using a single signature for a bundle instead of one signature per software package inside the bundle, our data authentication scheme can prevent the bundle from being modified by adding or removing signed software packages. Using one signature for a bundle, with conventional fingerprint algorithms this means any change to the bundle will incur the whole bundle to go through the underlying hashing process of the fingerprint algorithm. We devised two incremental fingerprint algorithms. When the bundle is partially updated, by using our incremental fingerprint algorithms, the fingerprint of the bundle can be quickly updated by incorporating to the fingerprint of the original bundle with the fingerprints of those packages that are actually changed. Experiments show that our fingerprint update cost is proportional to the size of the data that is modified.
Ye, Ruopeng, "Authenticated software update" (2008). Computer Science Dissertations. Paper 1. http://hdl.handle.net/2047/d10016417
Click button above to open, or right-click to save.