Skip to main content

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

  1. Clone the repository from GitHub:

    git clone https://github.com/XichengTong/SoftwareSupplyChainSecurity_HW1.git
    cd SoftwareSupplyChainSecurity_HW1
    
  2. 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:

  1. Python 3.8 or Higher:

    • Download and install Python from python.org.
    • Verify installation:
      python --version
      
  2. rekor-cli (for interacting with the Rekor transparency log):

  3. cosign (for signing and verifying artifacts):

    • Installation using brew (macOS):
      brew install cosign
      
    • For other platforms, follow instructions on the Cosign GitHub repository.
  4. pipenv or pip for Python package management:

    • Install pipenv:
      pip install pipenv
      
    • Alternatively, you can use pip (comes by default with Python).

Usage

  1. Signing Artifacts: To sign an artifact, use the cosign tool:

    cosign sign --key cosign.key artifact.bundle
    
  2. 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>
    
  3. 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)

Source distribution for xichengtong-rekor 3.0
File Size Uploaded
xichengtong_rekor-3.0.tar.gz 9.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for xichengtong-rekor 3.0
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

3.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page