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.
Metadata
Release files for xichengtong-rekor 3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| xichengtong_rekor-3.0.tar.gz | 9.7 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| xichengtong_rekor-3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 19.5 kB
Release files / xichengtong_rekor-3.0.tar.gz
| Download URL | xichengtong_rekor-3.0.tar.gz |
|---|---|
| Size | 9.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
c43dbec00e3e73fbee05c6230160a0fa30b9e65df807493bf04d084eb81722f5
|
|
BLAKE2b-256 checksum How to use checksums |
70cdcb54dbc79b286391d56960f2b1030d7c52436fedf95b0f853db725afc3ba
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.8.4 CPython/3.12.3 Windows/11
|
Release files / xichengtong_rekor-3.0-py3-none-any.whl
| Download URL | xichengtong_rekor-3.0-py3-none-any.whl |
|---|---|
| Size | 9.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
cbe8f6643aad211cc35f9978b0963cf1c5b14df959f5f390239213a6c1664f18
|
|
BLAKE2b-256 checksum How to use checksums |
d031657b535c708efffe34d113e5852ceb3aac3412b69360440782dad5425411
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
poetry/1.8.4 CPython/3.12.3 Windows/11
|