Skip to main content

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

  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.

Project details


Release history Release notifications | RSS feed

This version

3.0

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

xichengtong_rekor-3.0.tar.gz (9.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

xichengtong_rekor-3.0-py3-none-any.whl (9.8 kB view details)

Uploaded Python 3

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

Hashes for xichengtong_rekor-3.0.tar.gz
Algorithm Hash digest
SHA256 c43dbec00e3e73fbee05c6230160a0fa30b9e65df807493bf04d084eb81722f5
MD5 7c4268d8a920454e15be0ca27fdb2c20
BLAKE2b-256 70cdcb54dbc79b286391d56960f2b1030d7c52436fedf95b0f853db725afc3ba

See more details on using hashes here.

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

Hashes for xichengtong_rekor-3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 cbe8f6643aad211cc35f9978b0963cf1c5b14df959f5f390239213a6c1664f18
MD5 292ce9f67fe635b2302bdc75758c0be9
BLAKE2b-256 d031657b535c708efffe34d113e5852ceb3aac3412b69360440782dad5425411

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page