Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
authproof-sdk — Kryptografisch signierte Delegationsbelege für KI-Agenten. Legen Sie genau fest, was eine KI darf und nicht darf — signiert, überprüfbar, manipulationssicher. | Kitploit
Tools/GitHubGitHub/commonguy25/authproof-sdk
Authentifizierung & AutorisierungKryptographieIdentitäts- & Zugriffsmanagement (IAM)LieferkettensicherheitAPI-SicherheitKI-Sicherheit
GitHubcommonguy25/authproof-sdk

authproof-sdk

Kryptografisch signierte Delegationsbelege für KI-Agenten. Legen Sie genau fest, was eine KI darf und nicht darf — signiert, überprüfbar, manipulationssicher.

Repository anzeigen
6vor 2 MonatenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
Webseite

AuthProof SDK

AuthProof ist ein kryptografisches Delegationsprotokoll für agentische KI. Die meisten Protokolle in diesem Bereich setzen gegen eine vom Betreiber definierte Richtlinie durch – was dem Betreiber die Befugnis gibt, die ursprüngliche Absicht des Benutzers nachträglich zu erweitern oder neu zu interpretieren. AuthProof basiert auf einem anderen Vertrauensmodell: Der private Schlüssel des Benutzers signiert das Autorisierungsobjekt, das die Ausführung steuert, und der Live-Modellzustand wird sowohl zum Zeitpunkt der Autorisierung als auch unmittelbar vor der Ausführung verifiziert. Die Kombination aus benutzersignierter Autorisierung und Live-Modellzustandssteuerung ist die spezifische Behauptung – nicht eine breite Durchsetzungsgeschichte.

Was es anders macht:

  • Der Benutzer ist die signierende Instanz. Jedes konkurrierende Protokoll (AIP, AITH, OAP, SAGA, AgentSpec) setzt gegen eine vom Betreiber definierte Richtlinie durch. Bei AuthProof signiert der private Schlüssel des Benutzers direkt das Autorisierungsobjekt. Der Betreiber kann den Umfang nach der Signierung durch den Benutzer nicht erweitern.

  • Zweiphasige Modellzustandsbindung. Das Modell wird zum Zeitpunkt der Autorisierung gemessen und unmittelbar vor der Ausführung erneut gemessen. Wenn das Modell zwischen diesen beiden Zeitpunkten abgedriftet ist, wird die Ausführung bei der Vorausführungsprüfung blockiert.

  • Anbieteraktualisierung vs. böswillige Ersetzung, unterschieden. Das Protokoll klassifiziert Änderungen des Modellzustands in zwei Kategorien: legitime Anbieteraktualisierungen (PROVIDER_UPDATE_REQUIRES_REAUTH) und nicht autorisierte Austausche (MALICIOUS_MODEL_SUBSTITUTION). Jede erzeugt einen maschinenlesbaren Ablehnungsgrundcode, der angibt, welche Komponenten geändert wurden.

Pre-Execution Verifier

Das deterministische Tor, das vor der Ausführung einer Agentenaktion läuft.

Der PreExecutionVerifier sitzt außerhalb der Agenten-Laufzeitumgebung. Die Laufzeitumgebung erhält erst die Kontrolle, wenn der Prüfer bestanden wurde. Ein kompromittierter oder bösartiger Agent kann ihn nicht umgehen – er läuft, bevor die Laufzeitumgebung startet.

Warum es wichtig ist

Traditionelle Autorisierungsprüfungen finden innerhalb der Agenten-Laufzeitumgebung statt. Wenn die Laufzeitumgebung kompromittiert ist, können diese Prüfungen übersprungen, neu angeordnet oder umgangen werden. PreExecutionVerifier eliminiert diese Angriffsfläche, indem er die Autorisierung vollständig außerhalb der Laufzeitumgebung durchführt. Der Agent führt nur aus, wenn – und nur wenn – alle sechs aufeinanderfolgenden Prüfungen zuerst bestanden werden.

Schnellstart```js

import { PreExecutionVerifier, DelegationLog } from 'authproof-sdk/pre-execution-verifier' import { RevocationRegistry } from 'authproof-sdk'

// 1. Set up the gate const delegationLog = new DelegationLog() const revocationRegistry = new RevocationRegistry() await revocationRegistry.init({ privateKey, publicJwk })

const verifier = new PreExecutionVerifier({ delegationLog, revocationRegistry }) await verifier.init({ privateKey: verifierKey, publicJwk: verifierPub })

// 2. Register your delegation receipt delegationLog.add(receiptHash, receipt)

// 3. Gate every action — before the agent runs const result = await verifier.check({ receiptHash, action: { operation: 'read', resource: 'calendar' }, operatorInstructions: 'Summarize meetings. Stay within scope.', programHash, // optional: prevents code substitution attacks })

if (!result.allowed) { throw new Error(Blocked: ${result.blockedReason}) } // Agent runtime only reaches here after all six checks pass

root@kitploit:~
### Sechs sequentielle Prüfungen (stoppt bei erstem Fehler)

| # | Prüfung | Blockiert wenn |
|---|---------|---------------|
| 1 | Quittungssignatur | ECDSA P-256-Signatur ungültig oder Quittung manipuliert |
| 2 | Widerruf | Quittung wurde über `RevocationRegistry` widerrufen |
| 3 | Zeitfenster | Quittung abgelaufen oder noch nicht gültig (Log-Zeitstempel-Orakel, nicht Client-Uhr) |
| 4 | Umfang | Aktion nicht in `ScopeSchema.allowedActions` oder scheitert an textbasierter Bereichsabstimmung |
| 5 | Anweisungen des Betreibers | Aktuelle Anweisungen stimmen nicht mit dem bei Ausstellung in der Quittung gesperrten Hash überein |
| 6 | Programm-Hash | Bereitgestellter `programHash` stimmt nicht mit dem festgelegten `executes`-Hash überein (Code-Ersetzungsprävention) |

Jedes Prüfergebnis – bestanden oder nicht bestanden – wird automatisch in einem unveränderlichen `ActionLog` protokolliert, der mit dem eigenen Schlüssel des Prüfers signiert ist.

### Middleware-Integrationen

Einsatzbereite Wrapper für gängige Frameworks. Jeder Wrapper leitet jeden Aufruf durch `PreExecutionVerifier`, bevor der umschlossene Code ausgeführt wird.

- **[LangChain](https://github.com/commonguy25/authproof-sdk/blob/HEAD/src/middleware/langchain.js)** — umschließt jeden Agenten mit einer `invoke()`-Methode
- **[Express/HTTP](https://github.com/commonguy25/authproof-sdk/blob/HEAD/src/middleware/express.js)** — Anfrage-Middleware für jedes Express-kompatible Framework
- **[Generischer Funktionswrapper](https://github.com/commonguy25/authproof-sdk/blob/HEAD/src/middleware/generic.js)** — umschließt jede asynchrone Funktion```js
// LangChain
import { authproofMiddleware } from 'authproof-sdk/middleware/langchain'
const guardedAgent = authproofMiddleware(agent, { receiptHash, verifier })

// Express
import { authproofMiddleware } from 'authproof-sdk/middleware/express'
app.use(authproofMiddleware({ verifier, getReceiptHash: (req) => req.headers['x-receipt-hash'] }))

// Any function
import { guardFunction } from 'authproof-sdk/middleware/generic'
const guardedExecute = guardFunction(executeAction, { receiptHash, verifier, action })

Das Problem

Jedes bestehende IETF-Framework für Agentenidentität — AIP, draft-klrc-aiagent-auth, WIMSE — befasst sich mit Service-zu-Agenten-Vertrauen: wie ein nachgelagerter Dienst überprüft, ob ein Agent berechtigt ist, ihn aufzurufen. Keines von ihnen adressiert Benutzer-zu-Betreiber-Vertrauen.

Die Delegationskette in aktuellen agentischen Systemen ist:``` User → Operator → Agent → Services

root@kitploit:~
Der Benutzer weist den Operator an. Der Operator weist den Agenten an. Aber es existiert zum Zeitpunkt der Delegation kein kryptografischer Nachweis über die ursprüngliche Absicht des Benutzers. Der Operator wird zu einem vertrauenswürdigen Dritten mit unkontrollierter Befugnis, die Anweisungen des Benutzers zu erweitern, zu verzerren oder zu unterlassen, bevor sie den Agenten erreichen.

Die Konsequenzen:

- Benutzer können nicht beweisen, was sie autorisiert haben.
- Aufsichtsbehörden haben keine Prüfpfad.
- Gerichte haben keine Beweiskette.
- Agenten können legitime Operatoranweisungen nicht von kompromittierten oder böswilligen unterscheiden.

AuthProof schließt diese Lücke.

---

## Das Kern-Primitiv: Delegationsbeleg

Ein **Delegationsbeleg** ist ein signiertes Autorisierungsobjekt, das in einem dezentralen Append-Only-Log verankert wird, bevor eine Agentenaktion beginnt. Es enthält vier erforderliche Felder:

### Umfang (Scope)

Eine explizite Positivliste erlaubter Operationen. Alles, was nicht aufgeführt ist, ist standardmäßig verweigert. Ausgedrückt in strukturiertem Format – nicht in natürlicher Sprache. Operationsklassen:

| Klasse | Beschreibung |
|---|---|
| `reads` | Lesezugriff auf bestimmte Ressourcen |
| `writes` | Schreibzugriff auf bestimmte Ressourcen |
| `deletes` | Löschen bestimmter Ressourcen |
| `executes` | Ausführung eines bestimmten Programms, referenziert durch seinen **statischen Capability-Signatur-Hash** |

`executes` ist die gefährlichste Klasse. Sie muss den kryptografischen Hash des statischen Capability-DAG eines Safescript-Programms referenzieren – nicht einen Namen, URI oder eine Beschreibung. Kein Hash-Match bedeutet keine Ausführung.

### Grenzen (Boundaries)

Explizite Verbote, die unter keinen Umständen durch Operatoranweisungen außer Kraft gesetzt werden können. Vom Benutzer definierte harte Grenzen, die jede nachfolgende Operatoranweisung überdauern.

### Zeitfenster (Time Window)

Gültigkeitsdauer der Autorisierung. Der **Log-Zeitstempel** ist die Zeitquelle – nicht die Client-Uhr. Client-Uhren werden explizit von der Zeitvalidierung ausgeschlossen.

### Operator-Anweisungs-Hash (Operator Instruction Hash)

Ein kryptografischer Hash der vom Operator zum Zeitpunkt der Delegation angegebenen Anweisungen. Wenn der Operator den Agenten anschließend anders anweist, ist die Abweichung aus dem Log erkennbar, ohne dass zusätzliche Vertrauensannahmen erforderlich sind.

Der Benutzer signiert dieses Objekt mit seinem privaten Schlüssel über **WebAuthn/FIDO2 unter Verwendung der sicheren Enklave des Geräts**. Die Signatur wird vor jeder Agentenaktion im Log veröffentlicht. Jede nachfolgende Agentenaktion referenziert den Beleg-Hash. Aktionen außerhalb des Umfangs sind kryptografisch ungültig.

---

## Vertrauensstapel-Architektur (Trust Stack Architecture)

Drei Protokollschichten eliminieren drei vertrauenswürdige Dritte:

### Schicht 1 – Signiertes Capability-Manifest *(entfernt Vertrauen in die Registrierung)*

Im aktuellen MCP-Ökosystem gibt es keine kryptografische Bestätigung, dass die Beschreibungen eines Tool-Servers mit dem übereinstimmen, was er tatsächlich tut. Ein Operator kann ein beliebiges Schema präsentieren.

Die Lösung: Tool-Server veröffentlichen ein **kryptografisch signiertes Capability-Manifest**, bevor eine Benutzerautorisierung erfolgt. Das Feld `scope` des Delegationsbelegs referenziert den **Hash dieses Manifests** – nicht das selbstberichtete Schema des Operators. Abweichungen zwischen Serververhalten und Manifest sind auf der Log-Ebene erkennbar.

### Schicht 2 – Delegationsbeleg *(entfernt Vertrauen in den Operator)*

Die ursprüngliche Absicht des Benutzers wird unveränderlich aufgezeichnet, bevor Operatoranweisungen den Agenten erreichen. Abweichungen des Operators sind nachweisbar.

### Schicht 3 – Safescript-Ausführung *(entfernt Vertrauen in den Code)*

[Safescript](https://github.com/safescript) ist eine quelloffene, sandboxed Sprache für die Ausführung von KI-Agenten. Ihre statische DAG-Struktur bedeutet, dass die vollständige Capability-Signatur jedes Programms berechnet werden kann, bevor es ausgeführt wird – keine dynamische Dispatch, keine Laufzeit-Capability-Erweiterung.

Die `executes`-Umfangsklasse referenziert einen bestimmten Safescript-Capability-Signatur-Hash. Wenn das vom Operator bereitgestellte Programm nicht dem festgelegten Hash entspricht, wird die Ausführung blockiert. Der Agent kann nach der Delegation nicht durch ein anderes Programm ersetzt werden.

---

## Schnellstart (Quick Start)

---```js
import { AuthProof, Scope, KeyCustody } from 'authproof-sdk';

// Initialize with hardware-backed key custody (recommended)
const authproof = new AuthProof({
  custody: KeyCustody.HARDWARE, // WebAuthn/FIDO2 via device secure enclave
  log: 'https://log.authproof.dev',
});

// Define permitted operations — explicit allowlist, deny-by-default
const scope = new Scope()
  .allow('reads',  ['resource://calendar/events', 'resource://email/inbox'])
  .allow('writes', ['resource://calendar/events'])
  .deny('deletes', '*')
  .execute('sha256:a3f1c9d8...', { program: 'scheduler-v1.sg' }); // Safescript hash

// Hard limits that survive any operator instruction
const boundaries = {
  never: ['external-network', 'credential-store', 'payment-methods'],
};

// Issue the Delegation Receipt — anchored to log before any agent action
const receipt = await authproof.delegate({
  scope,
  boundaries,
  window: { duration: '8h' },           // validated against log timestamp
  operatorInstructions: instructionText, // hashed and committed
});

// receipt.id    — unique receipt identifier
// receipt.hash  — reference in every agent action
// receipt.log   — append-only log anchor

// Agent-side: validate an action against the receipt
const check = await authproof.validate({
  receiptHash: receipt.hash,
  action: { class: 'writes', resource: 'resource://calendar/events' },
});

if (!check.authorized) {
  // Out-of-scope action: surface a micro-receipt request to the user
  const microReceipt = await authproof.requestMicroReceipt({
    action: check.requestedAction,
    parent: receipt.hash,
  });
}

Dynamische Autorisierung: Micro-Receipts

Für Tool-Aufrufe, die nicht vom ursprünglichen Delegationsbeleg abgedeckt sind, kann der Agent nicht stillschweigend fortfahren. Das Protokoll schreibt vor:

  1. Der Agent identifiziert eine nicht im Umfang enthaltene Fähigkeitsanforderung.
  2. Der Agent zeigt dem Benutzer eine Fähigkeitsanfrage an, die die spezifische Aktion beschreibt.
  3. Der Benutzer signiert einen Micro-Receipt, der nur diese Aktion abdeckt.
  4. Der Agent fährt fort, unter Bezugnahme auf den Hash des Micro-Receipt.

Unbekannte Aktionen erfordern eine explizite neue Autorisierung durch den Benutzer. Die Abhängigkeitsauflösung folgt derselben Regel — Abhängigkeiten werden mit dem Hash des zum Zeitpunkt der Delegation festgelegten Abhängigkeitsmanifests abgeglichen. Unerwartete Abhängigkeiten stellen eine Umfangsverletzung dar.


Gleichzeitige Agenten

Jedes Delegationsereignis trägt eine eindeutige Beleg-ID. Gleichzeitige Agenten referenzieren jeweils ihren eigenen Beleg-Hash. Sie sind durch den Beleg unterscheidbar, nicht durch die Agentenidentität.


Schlüsselverwaltung

Die Hardware-Verwahrung ist die empfohlene Standardeinstellung. Der private Schlüssel verlässt nie die sichere Enklave; das Signieren wird durch Gerätebiometrie oder PIN geschützt.


Aktionsprotokoll

Ein Delegationsbeleg definiert, was ein KI-Agent zu tun autorisiert ist. Das Aktionsprotokoll zeichnet auf, was er tatsächlich getan hat — und macht jede Abweichung sofort überprüfbar.

Jede Aktion, die ein Agent ausführt, erzeugt einen signierten, mit Zeitstempel versehenen Eintrag, der mit dem aktiven Beleg verknüpft ist. Die Einträge bilden eine manipulationssichere Kette: Jeder Eintrag enthält den SHA-256-Hash des vorherigen, sodass jede nachträgliche Änderung ohne einen vertrauenswürdigen Dritten erkennbar ist. Die diff()-Methode ist das Audit-Primitiv — sie gleicht den autorisierten Umfang des Belegs mit jeder aufgezeichneten Aktion ab und gibt etwaige Abweichungen zurück.```js import AuthProof, { ActionLog } from 'authproof-sdk';

// 1. Issue a delegation receipt as normal const { privateKey, publicJwk } = await AuthProof.generateKey();

const { receipt, receiptId } = await AuthProof.create({ scope: 'Search the web for competitor pricing. Read calendar events.', boundaries: 'Do not send emails. Do not make purchases.', instructions: 'Cite sources. Keep under 500 words.', ttlHours: 4, privateKey, publicJwk, });

// 2. Initialize the action log with the agent's signing key const log = new ActionLog(); await log.init({ privateKey, publicJwk });

// Register the receipt so diff() knows what was authorized log.registerReceipt(receiptId, receipt);

// 3. Record each action the agent takes const e1 = await log.record(receiptId, { operation: 'Search competitor pricing', resource: 'web/search', parameters: { query: 'rival.com pricing 2024' }, });

const e2 = await log.record(receiptId, { operation: 'Read calendar events', resource: 'calendar/events', parameters: { range: 'this_week' }, });

// 4. Verify an individual entry (signature + chain integrity) const check = await log.verify(e1.entryId); // { valid: true, reason: 'Signature and chain integrity verified' }

// 5. Diff: authorized scope vs. everything that was done const report = log.diff(receiptId); // { // clean: true, // totalEntries: 2, // compliant: [{ entry: {...}, reason: '"Search competitor pricing" matches authorized scope' }, ...], // violations: [], // }

// A scope violation surfaces immediately await log.record(receiptId, { operation: 'Send email', resource: 'email/outbox' }); const auditReport = log.diff(receiptId); // auditReport.violations[0].reason → // '"Send email" outside authorized scope (0% scope match, 92% boundary overlap)'

root@kitploit:~
### Action Log API

| Methode | Beschreibung |
|---|---|
| `new ActionLog()` | Erstellt eine neue Log-Instanz. Der Zustand befindet sich im Arbeitsspeicher. |
| `log.init({ privateKey, publicJwk })` | Initialisiert mit dem ECDSA P-256-Schlüssel des Agenten. Erforderlich vor `record()`. |
| `log.registerReceipt(receiptHash, receipt)` | Registriert eine Quittung für den Bereichsvergleich. Erforderlich vor `diff()`. |
| `log.record(receiptHash, action)` | Hängt einen signierten, verketteten Eintrag an. Gibt den versiegelten Eintrag zurück. |
| `log.verify(entryId)` | Überprüft die Signatur und Kettenposition eines Eintrags. Gibt `{ valid, reason }` zurück. |
| `log.getEntries(receiptHash)` | Alle Einträge für eine Quittung in chronologischer Reihenfolge. |
| `log.diff(receiptHash)` | Vergleicht alle Einträge mit dem Bereich der Quittung. Gibt `{ compliant, violations, clean }` zurück. |

### Produktionswarnung

Zeitstempel in v1 verwenden die Client-Uhr. Für Compliance- oder rechtliche Kontexte, in denen Zeitstempel unabhängig überprüfbar sein müssen, ersetzen Sie diese vor dem Einsatz in der Produktion durch eine vertrauenswürdige RFC-3161-Zeitstempelbehörde.

### Wichtig

Definieren Sie den Bereich immer mit expliziten `allowedActions`-Arrays. Die textbasierte Bereichsübereinstimmung ist nur für die Entwicklung verfügbar und für Produktions- oder Compliance-Kontexte nicht geeignet.

---

## Vertrauliche Bereitstellung

Führen Sie AuthProof-Agenten in hardware-attestierten Trusted Execution Environments (TEEs) aus. Die Klasse `ConfidentialRuntime` bindet Delegationsbelege an Enklavenmessungen, sodass jede Substitution von Modellgewichten, Verifiziercode oder Plattform vor der Ausführung erkennbar ist.

### Hardwareanforderungen

- **Intel TDX** – Intel Ice Lake Xeon oder neuer (4. Generation Xeon Scalable). Azure DCdsv3-Serie, GCP C3 Confidential VMs.
- **AMD SEV-SNP** – AMD EPYC der 3. Generation (Milan) oder neuer. Azure DCasv5-Serie, AWS m6a mit Nitro Enclaves.

### Erstellen eines Belegs mit TEE-Messungsbindung```javascript
import { AuthProofClient } from 'authproof-sdk';

const client = new AuthProofClient();
const { receipt } = await client.delegate({
  scope: 'Summarize calendar events',
  operatorInstructions: 'Stay within scope.',
  expiresIn: '2h',
  privateKey,
  publicJwk,
  teeConfig: {
    platform:     'intel-tdx',
    verifierHash: verifierCodeHash,   // SHA-256 of your verifier binary
    modelHash:    modelWeightsHash,   // SHA-256 of model weights
  },
});
// receipt.teeMeasurement.expectedMrenclave is now bound to the receipt

Bereitstellen auf Azure Confidential Computing (Intel TDX)```javascript

import { ConfidentialRuntime } from 'authproof-sdk';

// Generate deployment configuration const config = ConfidentialRuntime.azureTDXConfig({ receiptHash, verifierHash, modelHash, region: 'eastus', }); // config.vmSize === 'Standard_DC4ds_v3' // config.attestationEndpoint === 'https://sharedeus.eus.attest.azure.net' // config.receiptBinding binds the receipt to the VM measurement

// At runtime inside the VM: const runtime = new ConfidentialRuntime({ platform: 'intel-tdx', verifier, actionLog, }); const result = await runtime.launch({ receiptHash, agentFn, operatorInstructions, verifierHash, modelHash, teeMeasurement: receipt.teeMeasurement, // mismatch blocks execution });

root@kitploit:~
Azure SKU-Anforderungen: `Standard_DC4ds_v3` oder größer aus der DCdsv3-Serie. Aktivieren Sie die vertrauliche OS-Datenträgerverschlüsselung. Verwenden Sie den gemeinsamen Endpunkt von Microsoft Azure Attestation (MAA) zur Zitatüberprüfung.

### Bereitstellen auf AWS Nitro Enclaves```javascript
const config = ConfidentialRuntime.awsNitroConfig({
  receiptHash,
  verifierHash,
  modelHash,
  region: 'us-east-1',
});
// config.instanceType === 'c6a.xlarge'
// config.enclaveOptions.enabled === true
// config.pcr0 is the combined receipt+verifier+model measurement

AWS-Anforderungen: c6a.xlarge oder größer mit --enclave-options Enabled. Verwenden Sie nitro-cli, um das Enclave-Image zu erstellen und auszuführen. PCR0 im Attestierungsdokument muss mit config.pcr0 übereinstimmen, damit die Empfangsbindung gültig ist.

Bereitstellung auf Kubernetes```javascript

const manifest = ConfidentialRuntime.kubernetesConfig({ receiptHash, platform: 'intel-tdx', namespace: 'production', }); // manifest is a full K8s List containing: // - Pod with TDX node selector and attestation sidecar // - ServiceAccount with minimal RBAC // - ConfigMap with receipt binding

root@kitploit:~
Anwenden mit `kubectl apply -f` nach der Serialisierung in YAML. Der Node-Selektor `intel.feature.node.kubernetes.io/tdx: "true"` erfordert das Intel Device Plugin für Kubernetes.

### eBPF-Kernelmodul — Hilfe gesucht

Die TEE-Durchsetzungsschicht ist auf der Userspace-Seite vollständig (`ConfidentialRuntime`, `TokenPreparer`). Der letzte Durchsetzungsschritt – das Validieren des signierten Fähigkeitstokens bei jedem Syscall über einen eBPF-LSM-Hook – erfordert ein Kernelmodul, das für Beiträge offen ist.

Ingenieure mit eBPF-LSM-Erfahrung (Isovalent, Red Canary oder ähnlich) sind besonders willkommen. Eröffnen Sie ein Issue oder einen PR unter https://github.com/Commonguy25/authproof-sdk/issues

---

## Beispiele

Zwei ausführbare Beispiele befinden sich im Verzeichnis `examples/`.

**[`examples/langchain-example.js`](https://github.com/commonguy25/authproof-sdk/blob/HEAD/examples/langchain-example.js)** – Zeigt den vollständigen LangChain-Integrationspfad: Erzeuge ein Schlüsselpaar, stelle eine Delegationsquittung aus, initialisiere `PreExecutionVerifier` und umschließe jeden Agenten mit `authproofMiddleware`, sodass jeder `invoke()`-Aufruf blockiert wird, bevor die Agentenlaufzeit die Kontrolle erhält. Enthält einen Mock-Agenten, den Sie sofort ausführen können, und das exakte Code-Muster für einen echten `AgentExecutor`. Führen Sie es mit `npm run example:langchain` aus.

**[`examples/webauthn-example.html`](https://github.com/commonguy25/authproof-sdk/blob/HEAD/examples/webauthn-example.html)** – Eine eigenständige Drei-Karten-Browser-Demo des vollständigen Delegationsablaufs. Karte 1 ermöglicht die Definition von Umfang, Grenzen und Bedieneranweisungen und signiert dann eine Quittung mit einem lokalen Schlüssel (ersetzen Sie `navigator.credentials` für echtes WebAuthn). Karte 2 zeigt die Quittungs-ID, das Ablaufdatum, den Systemprompt und das rohe JSON an. Karte 3 ermöglicht es Ihnen, eine beliebige vorgeschlagene Aktion einzugeben und in Echtzeit gegen die Quittung zu überprüfen, wobei jedes Prüfergebnis angezeigt wird. Direkt im Browser öffnen – kein Build-Schritt erforderlich.

---

## Installation```bash
npm install authproof-sdk
  • npm: https://www.npmjs.com/package/authproof-sdk
  • GitHub: https://github.com/Commonguy25/authproof-sdk
  • Protokollspezifikation: WHITEPAPER.md
Tool herunterladen
ModellBeschreibungEmpfohlen
HardwareWebAuthn/FIDO2 über das sichere Enklave des Geräts. Privater Schlüssel verlässt nie die Hardware.Ja — Standard
DelegatedVertrauenswürdiger Schlüsselmanager hält den Schlüssel im Namen des Benutzers.Umgebungen ohne FIDO2-Unterstützung
Self-custodyBenutzer hält und verwaltet seinen eigenen privaten Schlüssel.Fortgeschrittene Benutzer, abgeschottete Arbeitsabläufe