From Fedora Project Wiki
Important.png
Comments and Explanations
The page source contains comments providing guidance to fill out each section. They are invisible when viewing this page. To read it, choose the "view source" link.
Copy the source to a new page before making changes! DO NOT EDIT THIS TEMPLATE FOR YOUR CHANGE PROPOSAL.
Idea.png
Guidance
For details on how to fill out this form, see the documentation.


Keylime subpackaging and agent alternatives

Summary

The keylime package will be split into subpackages per role (agent, registrar, verifier, and admin components), while allowing the alternative agent implementation in Rust.

Owner


Current status

  • Targeted release: Fedora Linux 36
  • Last updated: 2021-08-05
  • FESCo issue: <will be assigned by the Wrangler>
  • Tracker bug: <will be assigned by the Wrangler>
  • Release notes tracker: <will be assigned by the Wrangler>

Detailed Description

The current Keylime package available in Fedora provides all the components as a single package. To support the usage scenarios where only agent or management component is deployed on a specific host, we plan to split the package into subpackages per role. This change also enables the alternative Keylime agent implementation in Rust, which will eventually be preferred over the Python implementation.

Feedback

Benefit to Fedora

This makes it easier to deploy Keylime agent in IoT or Fedora CoreOS spins and thus enable remote attestation without installing full dependencies of Keylime.

Scope

  • Proposal owners:
    • The keylime package will provide subpackages (keylime-agent, keylime-registrar, etc)
    • The keylime package will be a meta package that will install all the subpackages
    • The Rust based agent will be packaged along with its build dependencies
    • Both keylime-agent implementations, one written in Python, the other written in Rust, will be selectively installable through alternatives
  • Other developers: N/A (not a System Wide Change)
  • Policies and guidelines: N/A (not needed for this Change)
  • Trademark approval: N/A (not needed for this Change)
  • Alignment with Objectives:

Upgrade/compatibility impact

The keylime package will remain as a meta package for the compatibility with the current packaging.

How To Test

0. Make sure that your systems meet the requirement to run either Keylime agent or other components, as described in the documentation 1. Install the subpackages individually and see if they function as expected 2. Install the meta package (keylime) and see if it pulls all the subpackages 3. Install rust-keylime-agent package and see if it does not interfere with the keylime-agent package 4. Check that rust-keylime-agent can be the default, using the alternative --set command

User Experience

No visible change should be observed by the existing users.

Dependencies

N/A (not a System Wide Change)

Contingency Plan

  • Contingency mechanism: (What to do? Who will do it?) N/A (not a System Wide Change)
  • Contingency deadline: N/A (not a System Wide Change)
  • Blocks release? N/A (not a System Wide Change), No


Documentation

N/A (not a System Wide Change)

Release Notes