# Zero Trust — Ninja Nexus

## Princip

> "Never trust, always verify."

Ninja Nexus antager, at netværket, enheden og brugeren kan være kompromitteret. Hver handling verificeres baseret på identitet, enhedstilstand og kontekst.

---

## De tre søjler

### 1. Verificer eksplicit

| Kontrol | Hvornår | Hvordan |
|---------|---------|---------|
| Identitet | Hver login, hver 15. min (session refresh) | OIDC + MFA |
| Enhed | Hver login, hvert 5. min (heartbeat) | Device cert + compliance |
| Kontekst | Ved adgang til følsomme ressourcer | IP, tid, geolocation (optional) |

### 2. Brug least privilege

- Brugere får minimum nødvendige permissions
- Admin-roller adskilt (Super Admin ≠ Support Admin)
- Agent kører med minimal service account (ikke SYSTEM hvor muligt)
- Remote support: tidsbegrænset, scope-begrænset adgang

### 3. Antag brud

- Audit alt
- Session revoke capability
- Device remote wipe
- Ingen persistent trust — re-verify kontinuerligt

---

## Implementering per komponent

### Shell
- Ingen cached credentials i plain text
- Session timeout (konfigurerbar, default 8 timer)
- Skærm-lock ved inaktivitet
- Ingen admin-funktioner i Shell

### Agent
- mTLS til cloud (device certificate)
- Policy enforcement uanset netværk
- Integrity self-check ved boot
- Ingen inbound ports (kun outbound + WebRTC)

### Control Center
- MFA påkrævet for alle admin-handlinger
- IP allowlisting (optional per tenant)
- API rate limiting
- Input validation på alle endpoints

### Identity
- Short-lived access tokens (15 min)
- Refresh token rotation
- MFA step-up for sensitive operations
- Account lockout efter 5 fejlede forsøg

---

## Conditional Access (eksempler)

| Regel | Betingelse | Handling |
|-------|------------|----------|
| Kræv MFA | Admin login | Block uden MFA |
| Begræns enhed | Trust score < 50 | Read-only adgang |
| Blokér login | Compliance = non_compliant | Block login |
| Step-up auth | Remote support start | Kræv MFA igen |
| Geo-block | Login uden for EU | Block (konfigurerbar) |

---

## Micro-segmentation

```
Internet ──► WAF/CDN ──► API Gateway ──► Services (internal network)
                                              │
                                         PostgreSQL (private)
                                         Redis (private)
                                         Blob Storage (private)
```

- Ingen direkte database-adgang fra internet
- Services kommunikerer via internal network med service tokens
- Agent har kun adgang til API Gateway (ikke direkte til DB)

---

*Se også: [DEVICE_TRUST.md](./DEVICE_TRUST.md) · [MFA_STRATEGY.md](./MFA_STRATEGY.md)*
