Skip to main content

SPIFFE/SPIRE bridge with TIBET provenance — your server thinks it's talking to SPIRE, but gets auditable trust

Project description

tibet-spiffe

SPIFFE/SPIRE Bridge with TIBET Provenance — your server thinks it's talking to SPIRE, but gets auditable trust.

Part of the TIBET protocol suite by Humotica AI Lab.

The Problem

SPIFFE/SPIRE tells you WHO a workload is. But not WHAT it did, or WHY.

When relay station 3 gets compromised, SPIRE says "yes, this is relay-3." But it can't tell you that relay-3 modified a drone command, changed a payment amount, or poisoned an AI pipeline.

The Solution

tibet-spiffe bridges SPIFFE identities with TIBET provenance:

SPIFFE/SPIRE tibet-spiffe adds
Workload identity (SVID) + TIBET provenance chain
Node attestation + Full audit trail
SVID rotation + Rotation history with intent
Federation + Cross-domain trust scoring
Trust domain + FIR/A behavioral trust

Your existing infrastructure sees standard SPIFFE IDs. TIBET adds the provenance layer underneath.

Install

pip install tibet-spiffe

Quick Start

from tibet_spiffe import AttestationEngine

engine = AttestationEngine(trust_domain="humotica.com")

# Node attestation (like SPIRE node-attestor)
node = engine.attest_node("relay-3", trust_score=0.8)
print(node.svid.spiffe_id)  # spiffe://humotica.com/node/relay-3

# Workload attestation (like SPIRE workload-attestor)
api = engine.attest_workload("api-server", node_svid=node.svid)
print(api.svid.spiffe_id)   # spiffe://humotica.com/workload/api-server
print(api.svid.jis_did)     # jis:api-server

# Identity bridge (SPIFFE ↔ JIS)
did = engine.bridge.spiffe_to_did(api.svid.spiffe_id)
spiffe = engine.bridge.did_to_spiffe(did)

# Full audit trail
for token in engine.audit_trail():
    print(f"[{token['action']}] {token['erachter']['intent']}")

CLI

# Interactive demo
tibet-spiffe demo

# Attest a node
tibet-spiffe attest-node relay-3 -d humotica.com -t 0.8

# Attest a workload
tibet-spiffe attest-workload api-server -d humotica.com -j

Architecture

┌─────────────────────────────────────────────────┐
│  Your Infrastructure                            │
│  (sees standard SPIFFE IDs)                     │
│                                                 │
│  spiffe://humotica.com/workload/api-server      │
│  spiffe://humotica.com/node/relay-3             │
│                                                 │
├─────────────────────────────────────────────────┤
│  tibet-spiffe bridge                            │
│                                                 │
│  SPIFFE ID ←→ JIS DID (bidirectional)           │
│  SVID issuance = TIBET token                    │
│  SVID rotation = TIBET provenance chain         │
│  Attestation = TIBET-audited                    │
│  Federation = trust-scored                      │
│                                                 │
├─────────────────────────────────────────────────┤
│  TIBET Layer                                    │
│  • ERIN: what was attested                      │
│  • ERAAN: what it depends on                    │
│  • EROMHEEN: where it happened                  │
│  • ERACHTER: why it was needed                  │
└─────────────────────────────────────────────────┘

Integration with tibet-workload

from tibet_spiffe import AttestationEngine
from tibet_workload import WorkloadEngine

spiffe = AttestationEngine(trust_domain="humotica.com")
workload = WorkloadEngine()
workload.connect_spiffe(spiffe)  # Link workload steps to SPIFFE SVIDs

IETF Drafts

License

MIT — Humotica AI Lab 2025-2026

Project details


Download files

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

Source Distribution

tibet_spiffe-0.1.0.tar.gz (10.9 kB view details)

Uploaded Source

Built Distribution

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

tibet_spiffe-0.1.0-py3-none-any.whl (12.8 kB view details)

Uploaded Python 3

File details

Details for the file tibet_spiffe-0.1.0.tar.gz.

File metadata

  • Download URL: tibet_spiffe-0.1.0.tar.gz
  • Upload date:
  • Size: 10.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for tibet_spiffe-0.1.0.tar.gz
Algorithm Hash digest
SHA256 e96533d6a9cb1029c6b5612ddc70758ee81a8ecf8ddd156b8b77259cc47fb955
MD5 cd1294df650163a5cdbb93c198e10425
BLAKE2b-256 13735677818d9b4ca5f937cb72c1ad03ec15105894094c4ba2f041bcb79e3503

See more details on using hashes here.

File details

Details for the file tibet_spiffe-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: tibet_spiffe-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 12.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for tibet_spiffe-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7186cc5a101c2f60f0ee610994f7c6bae75305e377090201699807c0e6100ec8
MD5 d7b9fe5eac55612b489e4e90014adb77
BLAKE2b-256 a66e8bfde175cff16c13fd7ad6d6145ed14f930445b6444c1ac6ed8ad60c291d

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