Enterprise secrets daemon for LockStock Protocol - Secure Enclave in Software
Project description
LockStock Guard
Enterprise secrets daemon for LockStock Protocol - "Secure Enclave in Software"
Overview
LockStock Guard provides enterprise-grade secrets management for AI agent deployments. Unlike personal secrets managers, Guard implements user separation where the daemon holds secrets and agent applications request them via IPC.
AGENT SERVER
+------------------+ +---------------------------+
| lockstock-guard | | agent application |
| (liberty-user) | | (app-user) |
| | Unix | |
| - Owns vault | Socket | - Cannot read vault |
| - Decrypts |<------->| - Requests via IPC |
| - Serves | | - Gets only what needed |
+------------------+ +---------------------------+
/var/lib/liberty/secrets.enc (liberty:liberty, mode 600)
/var/run/liberty/liberty.sock (liberty:agents, mode 660)
Installation
pip install lockstock-guard
Requires: liberty-secrets (installed automatically)
Quick Start
1. Initialize the Enterprise Vault
# Create enterprise vault directory (as root or liberty-user)
sudo mkdir -p /var/lib/liberty /var/run/liberty
sudo chown liberty:liberty /var/lib/liberty
sudo chown liberty:agents /var/run/liberty
sudo chmod 750 /var/lib/liberty /var/run/liberty
# Initialize vault (as liberty-user)
sudo -u liberty liberty --vault /var/lib/liberty init
# Add agent secrets
sudo -u liberty liberty --vault /var/lib/liberty add AGENT_XYZ_SECRET
2. Start the Daemon
# Start daemon (as liberty-user or via systemd)
lockstock-guard start
# Or with custom paths
lockstock-guard start --vault /var/lib/liberty --socket /var/run/liberty/liberty.sock
# Check status
lockstock-guard status
3. Use from Agent Application
from lockstock_guard import client
# Get a secret (connects to daemon via socket)
secret = client.get("AGENT_XYZ_SECRET")
# List available keys
keys = client.list_keys()
# Connection pooling for multiple requests
with client.connect() as conn:
key1 = conn.get("API_KEY")
key2 = conn.get("DATABASE_URL")
Systemd Service
Install the systemd service for production:
sudo cp lockstock-guard.service /etc/systemd/system/
sudo systemctl daemon-reload
sudo systemctl enable lockstock-guard
sudo systemctl start lockstock-guard
Security Model
| Component | User | Access |
|---|---|---|
| Vault file | liberty-user | Read/write (mode 600) |
| Socket | liberty:agents | Group access (mode 660) |
| Daemon | liberty-user | Decrypts, serves secrets |
| Agent app | app-user (in agents group) | Socket only, no vault access |
Key security properties:
- Secrets never in environment variables
- Vault file inaccessible to agent processes
- Compromised agent cannot dump vault
- Least privilege - agent gets only requested secrets
Integration with LockStock MCP
The Guard integrates with the LockStock MCP Wallet server:
# MCP server configuration
export LIBERTY_SOCKET=/var/run/liberty/liberty.sock
export LOCKSTOCK_AGENT_ID=agent_xyz
# MCP Wallet retrieves secret from Guard daemon
# Agent never sees the secret directly
CLI Reference
lockstock-guard start [OPTIONS]
--vault PATH Vault directory (default: /var/lib/liberty)
--socket PATH Socket path (default: /var/run/liberty/liberty.sock)
--group NAME Socket group (default: agents)
--foreground Run in foreground (don't daemonize)
lockstock-guard stop
Stop the running daemon
lockstock-guard status
Check if daemon is running
License
MIT License - See LICENSE file
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file lockstock_guard-1.2.0.tar.gz.
File metadata
- Download URL: lockstock_guard-1.2.0.tar.gz
- Upload date:
- Size: 38.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3ee73a07fdcb9bf73779ecc11303d27336bd61132e4387e04ae36f859532110b
|
|
| MD5 |
e68250b563b3b9462596e0110a0c9701
|
|
| BLAKE2b-256 |
25be6ceb243fa1f28c2818654dd3fb6db92b27be99bfa2e7e90e3da6a6b7d252
|
File details
Details for the file lockstock_guard-1.2.0-py3-none-any.whl.
File metadata
- Download URL: lockstock_guard-1.2.0-py3-none-any.whl
- Upload date:
- Size: 36.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1f005f78bf6bb32d87b729c49d66814076416c8f8dbfcbd2a6ea255f340cce33
|
|
| MD5 |
40d1cf559d7f023c41457a9ad0634b99
|
|
| BLAKE2b-256 |
209beb8ae3774596a2d4f2013ed455cc8451d74b0c78c5481a4b6a00f93a460b
|