ctmap/

directory
v0.0.0-...-6879f63 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 8, 2024 License: Apache-2.0

README

Verifiable Map for CT Logs

Intro & Motivation

To verifiably find certificates in a log that have been issued for domains that a user controls, the user must inspect every certificate in the log. The current alternative to this is to trust a non-verifiable log aggregator / search service.

A verifiable map built from a log maintains verifiability, while providing point lookup and proofs of non-inclusion.

Status

This is a demo / proof of concept.

Running

First you will need to clone a log locally using the clone/cmd/ctclone tool found in this repository. Once a log has been downloaded and verified, a map can be built using a command such as:

go run -ldflags "-X google.golang.org/protobuf/reflect/protoregistry.conflictPolicy=warn" ./experimental/batchmap/ctmap/cmd/build --alsologtostderr --mysql_log_uri 'mirror:letmein@tcp(localhost)/google_xenon2022' --count 10000 --map_output_root_dir=/tmp/mapfun/

To run this in Dataflow, a GCP project must have been provisioned along with a Cloud Storage Bucket for the output (in the example below, this bucket is named $GCP_PROJECT-xenon2022). Additionally, the ctclone tool should have run on a VM and populated a MySQL database with a known IP address.

To run the job on Dataflow in such a GCP project:

go run -ldflags "-X google.golang.org/protobuf/reflect/protoregistry.conflictPolicy=warn" ./experimental/batchmap/ctmap/cmd/build --alsologtostderr --v=2 --runner=dataflow --project=$GCP_PROJECT --region=us-central1 --staging_location=gs://$GCP_PROJECT-xenon2022/staging --mysql_log_uri 'mapper:letmein@tcp($MYSQL_IP)/googlexenon2022' --count 100 --map_output_root_dir=gs://$GCP_PROJECT-xenon2022/map/

Note that this must be run from a machine that has access to the Cloud MySQL instance.

Directories

Path Synopsis
cmd
build
build is a tool to build a map from a given clone of a log.
build is a tool to build a map from a given clone of a log.
internal
pipeline
Package pipeline contains Beam pipeline library functions for the CT verifiable map.
Package pipeline contains Beam pipeline library functions for the CT verifiable map.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL