Speranza: Usable, privacy-friendly software signing

05/10/2023
by   Kelsey Merrill, et al.
0

Software repositories, used for wide-scale open software distribution, are a significant vector for security attacks. Much of this malicious behavior can be traced to a lack of strong authentication for software. To mitigate this problem, digital signatures provide confidence in the authenticity and authorization for signers of the software, but introduce privacy problems by exposing maintainers' personally identifiable information. The contribution of this project, Speranza, is to allow for verification of authenticity for software packages in a repository while providing anonymity to signers through the use of zero-knowledge identity co-commitments. In Speranza, a signer uses an automated certificate authority (CA) to create a private identity-backed signature and proof of authorization. Verifiers check that a signer was authorized to publish a package, without learning the signer's identity. The package repository keeps a private mapping from package names to the identities of authorized signers, but publishes only commitments to identities in a public map. When issuing certificates, the CA issues the certificate to a distinct commitment to the same identity. The signer then creates a zero-knowledge proof of a commitment that these are identity co-commitments. We implemented a proof-of-concept, finding that costs to maintainers (signing) and end users (verifying) are small, even for a repository with millions of packages: 404 us and 372 us, respectively. End users must learn the authorization policy in order to verify packages. In a naive approach, they must download the policy for every package in advance (possibly 100 MiB total, or more); we use techniques inspired by recent key transparency systems to reduce this to 2 KiB. Server costs in this system are negligible. Our evaluation finds that Speranza is practical on the scale of the largest software repositories.

READ FULL TEXT

page 1

page 2

page 3

page 4

research
02/11/2016

Package equivalence in complex software network

The public package registry npm is one of the biggest software registry....
research
07/31/2020

Password-authenticated Decentralized Identities

Password-authenticated identities, where users establish username-passwo...
research
03/14/2021

Binary R Packages for Linux: Past, Present and Future

Pre-compiled binary packages provide a very convenient way of efficientl...
research
07/17/2023

Reducing Trust in Automated Certificate Authorities via Proofs-of-Authentication

Automated certificate authorities (CAs) have expanded the reach of publi...
research
06/30/2020

Traceable Policy-Based Signatures and Instantiation from Lattices

Policy-based signatures (PBS) were proposed by Bellare and Fuchsbauer (P...
research
12/15/2020

Building an ID Card Repository with Progressive Web Application to Mitigate Fraud

A lot of service requires identity of users to mitigate undesirable inci...
research
05/24/2021

TradeChain: Decoupling Traceability and Identity inBlockchain enabled Supply Chains

In this work, we propose a privacy-preservation framework, TradeChain, w...

Please sign up or login with your details

Forgot password? Click here to reset