germag / rust-keylime

Rust implementation of the keylime agent (Not ready for deployment)

Home Page:https://keylime.dev

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Keylime

License: Apache 2.0

Overview

This is a Rust implementation of keylime agent. Keylime is system integrity monitoring system that has the following features:

  • Exposes TPM trust chain for higher-level use
  • Provides an end-to-end solution for bootstrapping node cryptographic identities
  • Securely monitors system integrity

For more information, visit the keylime website

For now, this project is focusing on the keylime agent component, which is a HTTP server running on the machine that executes keylime operations. Most keylime operations rely on TPM co-processor; therefore, the server needs a physical TPM chip (or a TPM emulator) to perform keylime operations. The TPM emulator is a program that runs in the daemon to mimic TPM commands.

The rust keylime agent is in early development and not ready for production use.

Prerequisites

Required Packages

The rust-keylime agent requires the following packages for both compile and run time.

For Fedora, use the following command

$ dnf install openssl-devel gcc tpm2-tss-devel zeromq-devel libarchive-devel

For Ubuntu OS, use the following command

$ apt-get install libssl-dev gcc libtss-dev libzmq3-dev libarchive-dev

Rust

Make sure Rust is installed before running Keylime. Installation instructions can be found here.

Logging env

To run with pretty-env-logger trace logging active, set cargo run within RUST_LOG, as follows:

$ RUST_LOG=keylime_agent=trace cargo run

Testing

Unit tests are gating in CI for new code submission. To run them:

$ cargo test

Running agent as a systemd-managed service

To make deployment and management of the service easier, this crate comes with a Makefile and systemd unit file.

To install the executables and the unit file, do:

$ make
$ sudo make install

Then you should be able to start the service with:

$ sudo systemctl start keylime_agent

About

Rust implementation of the keylime agent (Not ready for deployment)

https://keylime.dev

License:Apache License 2.0


Languages

Language:Rust 95.3%Language:Python 1.5%Language:Dockerfile 1.5%Language:Shell 0.8%Language:Makefile 0.5%Language:Standard ML 0.3%Language:Smarty 0.0%