Introduction

To ensure Click package integrity from the application developer all the way to the end user, signatures will be used. Developers will be required to sign Click packages with their private key before they are accepted by the MyApps portal, and the Ubuntu Software Store will provide a signature for Click packages that are to be installed on the end-user devices.

Developer signatures

All packages uploaded to the MyApps portal need to be cryptographically signed by the developer using their GPG key and the debsigs tool. The Click package will not be subsequently modified in any way before being installed on the user's device, besides appending the store signature. This allows non-repudiable proof of the package's origin.

Overview

See this list post for a brief description on using debsigs.

Future Usage

If certain devices need to be locked down in the future to prevent package side-loading, debsigs may also be used as a means of validating packages in enterprise-wide deployment scenarios, or possibly to allow developers to sign up beta testers for their packages. (TBD)

Software Store Signatures

For Software Store Signatures, the following GPG key chain will be used:

Once a Click package has been uploaded to the store, and the developer 'maint' signature verified, the store will then append a debsigs 'origin' signature to the package using the Store signing key.

When a device searches for information on a package (sample query), the metadata returned must contain the following fields:

The SHA-512 hash is to be used by the Download Manager service to validate download integrity.

Overview

Unsigned packages

We currently allow the user to install unsigned Click packages with PackageKit. If being able to install unsigned packages is desirable, this should be a manual procedure with an appropriate warning.

Developer signed packages

TBD - possible (future?) support for adding a developer key to the system to allow verification to succeed with either the store key or the developer key. This should not be exposed via the UI and only available via the command line/adb.

Store key Compromised procedure

TBD.

Store key Rotation procedure

TBD.

SecurityTeam/Specifications/ClickPackageSigning (last edited 2014-07-23 21:13:37 by jdstrand)