Purpose
This methodology defines how Maelstrom AI identifies, assesses, prioritises, and treats information security risks for the Provii platform. It supports consistent risk management across our organisation and alignment with ISO 27001:2022 requirements.
Risk Management Framework
We follow a risk-based approach to security, focusing resources where they provide the most protection for our zero knowledge age verification service.
graph TD
A[Identify Assets & Threats] --> B[Assess Risks]
B --> C[Prioritize Risks]
C --> D[Select Treatment]
D --> E[Implement Controls]
E --> F[Monitor & Review]
F --> A
Risk Assessment Frequency
Regular Assessments: Annually (Q1 of each year)
Triggered Assessments when:
- Launching new services or major features
- Significant infrastructure changes (new cloud provider, architecture redesign)
- After security incidents
- Changes to threat surface (new attack vectors, vulnerabilities)
- Changes to legal/regulatory requirements
- Prior to ISO 27001 certification audits
Ongoing Monitoring: Continuous monitoring of key risk indicators
Step 1: Asset Identification
Asset Categories
We classify information assets into categories:
Critical importance - Compromise destroys trust in the entire system
- Signing keys (RedJubjub keys for credential issuance)
- Verification keys (public keys for proof verification)
- Proving/verification parameters (Groth16 circuit parameters)
- HMAC secrets (API authentication)
- API keys and tokens
High importance - Core business value and competitive advantage
- provii-crypto source code (ZKP implementations)
- provii-verifier, provii-issuer code
- SDK code (provii-agegate, provii-mobile-sdk)
- Architectural designs and specifications
- Cryptographic protocol documentation
High importance - Essential for service availability
- Cloudflare Workers and KV namespaces
- Durable Objects for state management
- GitHub repositories and CI/CD pipelines
- Static site infrastructure (Cloudflare Workers Assets)
- Developer workstations
Medium importance - Limited sensitivity due to zero knowledge architecture
- Audit logs (security events, access logs, IP addresses, request patterns)
- Configuration data (KV contents, wrangler.toml settings)
- Analytics data (service metrics, performance data)
- Customer support communications
Asset Register
We maintain an Asset Register documenting:
- Asset identifier and description
- Asset owner (role)
- Classification (critical, high, medium, low)
- Location (Cloudflare KV, GitHub, etc.)
- Dependencies on other assets
Step 2: Threat Identification
We consider threats across multiple categories:
External Threats
Cryptographic Attacks
- Breaking or weakening ZKP proofs
- Compromising signing keys
- Side-channel attacks on cryptographic operations
- Quantum computing threats (future consideration)
- Protocol implementation flaws
Infrastructure Attacks
- DDoS attacks on Cloudflare Workers
- Supply chain compromise (malicious dependencies)
- Compromise of Cloudflare or GitHub accounts
- Injection attacks (API, XSS, etc.)
- Replay attacks on challenges/proofs
Human-Targeted Attacks
- Phishing targeting team members
- Social engineering for credential theft
- Insider threats (malicious or negligent)
- Account takeover (GitHub, Cloudflare)
Third-Party Risks
- Cloudflare service disruption
- GitHub outage or compromise
- Vulnerabilities in open source dependencies
- npm registry compromise
- Certificate authority compromise
Internal Threats
- Accidental secret exposure in code/logs
- Configuration errors leading to security gaps
- Insufficient access controls
- Lack of security awareness
- Inadequate change management
Environmental Threats
- Developer workstation compromise
- Loss of key personnel (knowledge concentration)
- Natural disasters affecting cloud infrastructure
- Internet infrastructure disruption
Step 3: Vulnerability Assessment
For each asset-threat combination, we identify vulnerabilities:
Technical Vulnerabilities:
- Unpatched dependencies
- Cryptographic implementation bugs
- Weak authentication mechanisms
- Insecure configurations
- Insufficient logging/monitoring
Process Vulnerabilities:
- Lack of code review
- Insufficient testing coverage
- Weak incident response procedures
- Inadequate backup processes
Human Vulnerabilities:
- Insufficient security training
- Credential management weaknesses
- Social engineering susceptibility
Step 4: Risk Analysis
Likelihood Assessment
We assess the likelihood of each risk scenario:
| Level | Description | Examples |
|---|---|---|
| Rare (1) | Unlikely to occur in normal circumstances | Quantum computer breaking BLS12-381 today |
| Unlikely (2) | Could occur but not expected | Major Cloudflare datacenter failure |
| Possible (3) | Might occur occasionally | Supply chain vulnerability in dependency |
| Likely (4) | Expected to occur in some circumstances | Phishing attempt targeting team |
| Almost Certain (5) | Expected to occur frequently | Automated attacks on public APIs |
Impact Assessment
We assess business impact if the risk materialises:
| Level | Description | Criteria |
|---|---|---|
| Insignificant (1) | Minimal impact | Brief service degradation, no data compromise |
| Minor (2) | Limited impact | Service disruption <1 hour, minimal customer impact |
| Moderate (3) | Noticeable impact | Service outage 1-4 hours, or minor cryptographic weakness |
| Major (4) | Significant impact | Service outage >4 hours, or significant security vulnerability |
| Severe (5) | Catastrophic impact | Complete service failure, or signing key compromise |
Zero knowledge Impact Considerations
Because we don’t store PII, data breach impacts are fundamentally different:
<Check> What We CAN’T Lose:
- User identity information (during verification, no personal information is collected; during issuance, date of birth is processed ephemerally and immediately discarded)
- Personally identifiable data (zero knowledge architecture)
- Age verification history (proofs are ephemeral) </Check>
This significantly simplifies risk assessment compared to traditional identity systems.
Risk Scoring
Risk Score = Likelihood × Impact
| Risk Level | Score Range | Treatment Requirement |
|---|---|---|
| Low | 1-4 | Accept or monitor |
| Medium | 5-9 | Mitigate or accept with compensating controls |
| High | 10-15 | Mitigate with strong controls |
| Critical | 16-25 | Immediate mitigation, cannot accept |
Step 5: Risk Treatment
For each identified risk, we select a treatment option:
Treatment Options
Most common: Implement controls to reduce likelihood or impact
Example: Implement SLSA Level 3 supply chain security to mitigate dependency tampering risk
Documentation: Control implementation in Statement of Applicability
When: Risk is below acceptance threshold, or cost of mitigation exceeds benefit
Example: Accept risk of Cloudflare global outage (extremely rare, beyond our control)
Requirements: Documented justification, ISMS Owner approval
When: Eliminate the activity creating the risk
Example: Minimising PII processing through zero knowledge architecture (DOB processed ephemerally during issuance, never persisted)
Note: This is our fundamental approach - we design systems that avoid risks rather than just mitigate them
When: Share risk with third party (insurance, contracts)
Example: Cloudflare’s enterprise SLA transfers some availability risk
Note: Less common for security risks (can’t transfer reputation impact)
Control Selection
When mitigating risks, we select controls based on:
- Effectiveness: Does it meaningfully reduce risk?
- Cost: Implementation and operational costs
- Compliance: ISO 27001 Annex A alignment
- Feasibility: Can we implement it with our architecture?
- Impact: Does it affect usability or performance?
See Statement of Applicability for selected controls.
Step 6: Risk Treatment Plan
For each risk requiring treatment, we document:
| Element | Description |
|---|---|
| Risk ID | Unique identifier (e.g., RISK-2025-001) |
| Description | What could happen |
| Current Risk Score | Before treatment |
| Treatment Option | Mitigate, accept, avoid, or transfer |
| Selected Controls | Specific controls to implement |
| Owner | Role responsible for implementation |
| Timeline | Implementation deadline |
| Target Risk Score | After treatment |
| Status | Planned, in progress, implemented |
Step 7: Residual Risk
After implementing controls, we assess residual risk:
Residual Risk = Inherent Risk - Control Effectiveness
Acceptance Criteria:
- Critical risks: Must be reduced to Medium or Low
- High risks: Should be reduced to Medium or Low
- Medium risks: May be accepted if cost of further mitigation is excessive
- Low risks: Generally accepted
Approval: ISMS Owner must formally accept all residual risks above Low level.
Step 8: Monitoring and Review
Ongoing Monitoring
We continuously monitor:
Key Risk Indicators
- Failed authentication attempts
- Rate limit triggers
- Dependency vulnerability scans
- Service availability metrics
- Certificate expiration dates
Control Effectiveness
- Security test coverage
- Audit log completeness
- Incident response time
- Patch management cadence
- Training completion rates
Regular Reviews
Quarterly: Review key risk indicators, update risk scores for changing threat surface
Annually: Full risk assessment, review all controls, update risk register
After Incidents: Conduct root cause analysis, update risk assessment, implement lessons learned
Risk Acceptance Criteria
We accept risks when:
- Score ≤ 4 (Low)
- Cost of mitigation > value protected
- Risk is outside our control (e.g., internet infrastructure failure)
- Compensating controls reduce risk to acceptable level
- Documented and approved by ISMS Owner
We never accept:
- Risks to cryptographic integrity without strong compensating controls
- Risks that violate legal/regulatory requirements
- Risks with severe impact, regardless of likelihood
Documentation
All risk assessments produce:
- Risk Register - Living document of all identified risks (view register)
- Risk Treatment Plan - Actions to mitigate unacceptable risks
- Risk Acceptance Forms - Documented justification for accepted risks
- Risk Review Reports - Quarterly and annual reviews
Roles and Responsibilities
| Role | Responsibilities |
|---|---|
| ISMS Owner | Approve risk assessment methodology, accept residual risks, allocate resources |
| Security Lead | Conduct risk assessments, monitor risks, propose treatments, track implementation |
| Developer | Identify technical risks, implement controls, report vulnerabilities |
| All Team Members | Report potential risks and security concerns |
Special Considerations
Zero knowledge Architecture
Our risk profile is fundamentally different from traditional systems:
Cloud-Native Risks
Operating entirely on Cloudflare/GitHub:
Advantages:
- No physical security concerns
- Enterprise-grade DDoS protection
- Automatic scaling and resilience
Challenges:
- Dependency on third-party availability
- Limited control over infrastructure
- Account security is critical
Supply Chain Focus
Given our SLSA Level 3 commitment, supply chain risks receive extra scrutiny:
- Dependency vulnerability scanning in every build
- Hermetic builds prevent tampering
- Artefact signing supports integrity
- Transparency logs enable auditing
Related Documents
- Risk Register - Current risk assessment results
- Statement of Applicability - Controls implementing risk treatments
- ISMS Scope - Assets covered by risk assessments
- Information Security Policy - Overarching security principles
Document Information
- Version. 1.1
- Effective Date. 2025-01-13
- Last Updated. 2026-05-21
- Owner. ISMS Owner
- Maintained By. Security Lead
- Review Frequency. Annually
- Next Review. 2026-11-21
- Classification. Public