Day 05 of the wFabricSecurity Open-Source Engineering Series.
Just because two containers share a Docker network doesn't mean they should talk. wFabricSecurity enforces cryptographic micro-segmentation between all nodes.
The Pain Points We Faced
- Any peer on the network accepting requests from any other node without authorization
- Compromised slave worker nodes sending malicious commands back to orchestrator masters
- Static firewall rules unable to understand cryptographic Common Names (CN=...)
The Implementation
from wFabricSecurity import FabricSecurity, PermissionDeniedError
security = FabricSecurity(me="MasterNode", msp_path="/opt/fabric/msp")
# Explicitly permit MasterNode to send tasks to SlaveNode (unidirectional)
security.register_communication(
sender="CN=MasterNode",
recipient="CN=SlaveNode"
)
# Attempt to send message to unauthorized rogue node raises error:
try:
security.verify_permissions(sender="CN=SlaveNode", recipient="CN=SecretVault")
except PermissionDeniedError as e:
print(f"BLOCKED: Lateral communication prohibited: {e}")
Why This Architecture Wins
- Default-Deny Policy: All communication between nodes is blocked until explicitly allowed.
- CN-Based Matrix: Register allowed channels with register_communication('CN=A', 'CN=B').
- Directional Enforcement: Supports unidirectional and bidirectional communication rules.
Verification & Status
Tested and verified against Hyperledger Fabric environments. Compatible with Python 3.10+ with cryptographic identity management, code integrity hashing, and token-bucket rate limiting.
Top comments (0)