Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Understand the details of Fedora Infra signing process #87

Closed
dustymabe opened this issue Nov 28, 2018 · 3 comments
Closed

Understand the details of Fedora Infra signing process #87

dustymabe opened this issue Nov 28, 2018 · 3 comments
Labels
infra Related to Fedora Infrastructure team work/input jira for syncing to jira

Comments

@dustymabe
Copy link
Member

We've had a few discussions recently about "signing" artifacts and metadata and if what infrastructure we can rely on for this. Fedora has an automated process that uses the robosignatory software to achieve this goal. We'd like to understand the architecture of how robosignatory is set up and the requirements it has. This should help us figure out if there are any new features we need and if this is something that can be done in collaboration with Fedora Infrastructure or not.

This should involve getting together with @puiterwijk and @nirik from fedora infrastructure and asking them to for an overview of the architecture and software.

Note also that CL has "signing server" software too that was recently written I believe: https://github.com/coreos/fero

@dustymabe
Copy link
Member Author

@bgilbert @ajeddeloh - might also be worth presenting on fero architecture during this meeting.

@dustymabe dustymabe added infra Related to Fedora Infrastructure team work/input jira for syncing to jira labels Nov 28, 2018
@dustymabe
Copy link
Member Author

We met today to discuss this.. Here are some rough notes:

Signing Server Infrastructure

Fedora Signing Server Infra/Software

  • Infra is built around a couple of different parts:
  • Currently use a system called sigul (network hsm solution)
      1. Server (contains the private keys)
      • No inbound connections, only outbound connection is bridge
      1. Bridge
      1. Client
      • Clients connect to bridge
      • Client can be anything or any system that has a client side certificate and proper network access
      • Sigul-client software can act as a client
    • Each user who has access to a key has their own passphrase for a particular key
    • On the vault we use a yubikey (hardware)
    • On the client we use a TPM
    • Robosignatory integrates sigul software and operates on fedmsg
      • Fedmsgs are signed and verified so robosignatory can trust them
      • This is how ostree commits are signed today
      • Rpms are signed this way
    • Non-automated signing
    • Key rotation

CL Signing Server Infra/Software

  • CL uses a software called fero https://github.com/coreos/fero

  • Uses a yubi-hsm

  • Needs multiple developer signatures to sign something

  • Benjamin: Currently in Fedora and in CL release artifacts are signed manually. Should we go the automated route in the future?

    • Patrick: Prior to robosig the only way would to automate signing would be to store the user key pass on a server, so we didn’t do it for that reason. We added hardware binding which alleviated concerns around that, so we were able to automate it.

@dustymabe
Copy link
Member Author

I believe the outcome of this meeting is that it seems like we should be able to use the existing robosignatory automatic signing mechanism by publishing fedmsgs to request signing occur. Any new issues we find we will create new issues to discuss what's needed for them.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
infra Related to Fedora Infrastructure team work/input jira for syncing to jira
Projects
None yet
Development

No branches or pull requests

1 participant