A Python project for secure artifact management
Project description
Project Name: Software Supply Chain Security Verification
Description
This project is designed to enhance software supply chain security by implementing artifact signing, verification using a transparency log (e.g., Rekor), and cryptographic proof verification using Python. It includes tools for verifying artifact integrity, verifying Merkle tree inclusion proofs, and maintaining consistency between transparency log checkpoints.
Features
- Signing and verifying artifacts using
cosign. - Verifying inclusion of artifacts in a transparency log using
Rekor. - Cryptographic proof verification using Merkle proofs.
- Command-line utilities to interact with transparency logs.
Getting Started
Installation
-
Clone the repository from GitHub:
git clone https://github.com/XichengTong/SoftwareSupplyChainSecurity_HW1.git cd SoftwareSupplyChainSecurity_HW1
-
Create a virtual environment and install the required dependencies:
python -m venv venv source venv/bin/activate # On Windows use `venv\Scripts\activate`
Prerequisites
To run the project, you'll need the following software installed:
-
Python 3.8 or Higher:
- Download and install Python from python.org.
- Verify installation:
python --version
-
rekor-cli(for interacting with the Rekor transparency log):- Installation using
brew(macOS) or build from source:brew install rekor-cli
- For more details, refer to Rekor CLI GitHub repository.
- Installation using
-
cosign(for signing and verifying artifacts):- Installation using
brew(macOS):brew install cosign
- For other platforms, follow instructions on the Cosign GitHub repository.
- Installation using
-
pipenvorpipfor Python package management:- Install
pipenv:pip install pipenv
- Alternatively, you can use
pip(comes by default with Python).
- Install
Usage
-
Signing Artifacts: To sign an artifact, use the
cosigntool:cosign sign --key cosign.key artifact.bundle
-
Verifying Artifact Inclusion: To verify inclusion of an artifact in the Rekor transparency log:
rekor-cli verify --rekor_server <rekor_url> --signature <artifact-signature> --public-key <your_public_key> --artifact <url_to_artifact>|<local_path_artifact>
-
Python Scripts:
main.py: Entry point to run the application, which includes functions for verifying proofs and signatures.merkle_proof.py: Contains methods for computing Merkle leaf hashes and verifying inclusion.util.py: Utility functions for processing artifact data.
Running Tests
Tests are provided to ensure the functionality of key modules:
pytest tests/
Contributing
Please refer to CONTRIBUTING.md for detailed guidelines on how to contribute to the project.
Security Policy
See SECURITY.md for information about how to report security vulnerabilities.
License
This project is licensed under the MIT License - see the LICENSE file for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file xichengtong_rekor-3.0.tar.gz.
File metadata
- Download URL: xichengtong_rekor-3.0.tar.gz
- Upload date:
- Size: 9.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.4 CPython/3.12.3 Windows/11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c43dbec00e3e73fbee05c6230160a0fa30b9e65df807493bf04d084eb81722f5
|
|
| MD5 |
7c4268d8a920454e15be0ca27fdb2c20
|
|
| BLAKE2b-256 |
70cdcb54dbc79b286391d56960f2b1030d7c52436fedf95b0f853db725afc3ba
|
File details
Details for the file xichengtong_rekor-3.0-py3-none-any.whl.
File metadata
- Download URL: xichengtong_rekor-3.0-py3-none-any.whl
- Upload date:
- Size: 9.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.4 CPython/3.12.3 Windows/11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cbe8f6643aad211cc35f9978b0963cf1c5b14df959f5f390239213a6c1664f18
|
|
| MD5 |
292ce9f67fe635b2302bdc75758c0be9
|
|
| BLAKE2b-256 |
d031657b535c708efffe34d113e5852ceb3aac3412b69360440782dad5425411
|