How davideandreotti/dcmb works
This research prototype studies inspection of encrypted FaaS traffic through two approaches: DCMB, using delegated credentials, and ETSI TLMSP, using a policy middlebox. The main workflow is client traffic through the relevant middlebox to an application service, alongside certificate/attestation verification; separate campaign tools run and analyze latency and other benchmarks. README documents deployment profiles and benchmark capabilities, but sampled excerpts do not expose all service wiring, so some subsystem links are documented or marked unverified rather than inferred from names.
Main entry points: NewMiddlebox/middleboxHandler.go TLMSP middlebox · main.go Backend gateway · middlebox/middleboxHandler.go DCMB middlebox · run_campaign.py TLMSP campaign runner
Components 23
DCMB services
- DCMB client
DC/Middlebox/cmd/client/main.go - Backend gateway
DC/Middlebox/cmd/gateway/main.go - DCMB middlebox
DC/Middlebox/cmd/middlebox/middleboxHandler.go - Certificate service
DC/Middlebox/cmd/certserver/main.go - DCAP quote verifier
DC/Middlebox/cmd/certserver/quoteverify_dcap.cpp - Application server
DC/Middlebox/cmd/appserver/main.go - Docker backend
DC/Middlebox/cmd/gateway/docker_backend.go
TLMSP policy
- TLMSP client
ETSI/NewMiddlebox/client.go - TLMSP middlebox
ETSI/NewMiddlebox/middleboxHandler.go - TLMSP listener
ETSI/NewMiddlebox/listener.go - Python policy
ETSI/Middlebox/mb.py - Policy message types
ETSI/Middlebox/MessageTypes.py - JWT validation
ETSI/Middlebox/jwtParser.py - Policy workflow model
ETSI/Middlebox/randomize.py
Benchmarking
- DCMB campaign runner
DC/Middlebox/benchmarking/run.py - DCMB results plotter
DC/Middlebox/benchmarking/plot_latency.py - TLMSP campaign runner
ETSI/Benchmarking/run_campaign.py - Latency analysis
ETSI/Benchmarking/run_latency.py
Protocol internals
- TLS ClientHello parsing
DC/Middlebox/internal/tlshello/tlshello.go - Ticket identity
DC/Middlebox/internal/ticketidentity/ticketidentity.go - DCAP verifier interface
DC/Middlebox/cmd/certserver/quoteverify_dcap.h
Other components
- FaaS client
- FaaS application
Connections 24
- FaaS client → DCMB client: sends requests
README.md - DCMB client → Backend gateway: uses DCMB path
- Backend gateway → DCMB middlebox: routes traffic
- DCMB middlebox → Certificate service: requests credentials
- DCMB middlebox → Application server: forwards requests
- Backend gateway → Docker backend: manages backends
- DCMB middlebox → TLS ClientHello parsing: parses ClientHello
- Backend gateway → Ticket identity: uses affinity
- Certificate service → DCAP verifier interface: uses verifier API
- DCAP verifier interface → DCAP quote verifier: declares interface
DC/Middlebox/cmd/certserver/quoteverify_dcap.cpp - FaaS client → TLMSP client: sends requests
- TLMSP client → TLMSP middlebox: uses TLMSP
- TLMSP middlebox → TLMSP listener: accepts connections
- TLMSP middlebox → Python policy: invokes policy
- Python policy → Policy message types: matches messages
ETSI/Middlebox/mb.py - Python policy → JWT validation: validates tokens
ETSI/Middlebox/mb.py - Policy workflow model → Policy message types: uses message types
ETSI/Middlebox/randomize.py - Policy workflow model → JWT validation: validates tokens
ETSI/Middlebox/randomize.py - TLMSP middlebox → FaaS application: serves requests
- DCMB campaign runner → DCMB client: runs experiments
- DCMB campaign runner → DCMB results plotter: produces results for
README.md - TLMSP campaign runner → Latency analysis: runs analysis
ETSI/Benchmarking/run_campaign.py - TLMSP campaign runner → TLMSP middlebox: starts stack
- TLMSP campaign runner → DCMB results plotter: shares campaign results
README.md