Files
boc/intelligence/build-c2-partner-modell.md
T
Bernt bae705aa97 ARCHITECTURE: NFC roadmap, edge AI, audit logging
- Add NFC ePassport roadmap (ICAO 9303, eIDAS)
- Add TensorFlow.js edge face detection (BlazeFace)
- Add structured audit logger (GDPR-compliant)
- Risk scoring support

Part of KYC Apple Native UX v1.1.0
2026-06-29 16:24:48 +00:00

354 lines
15 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# BUILD-C2 — Partner-/Geo-modell & DNS-designdokument
**Datum:** 2026-06-06
**Källa:** BUILD-C1 domäninventering + affärsregler (Erik, låst)
**Status:** Design — INGA mutationer genomförda
**Nästa steg:** C3-skript är förberett men ej kört — kräver explict godkännande
---
## 0. Principfastlägganden (gäller alla klasser)
| Princip | Beslut |
|---------|--------|
| **Anti-spoofing** | DMARC `p=reject` på ALLA domäner utan aktiv MX/mailflöde. På aktiva maildomäner kvarstår `p=none` tills DKIM verifierats i produktion. |
| **Single point of failure** | Mailu på mail.wavult.com är enda MX-infra — acceptabel för nuvarande skala men dokumenterat som framtida risk. |
| **Ingen mail utan ägare** | Övriga marknadsdomäner ska INTE ta emot mail som hamnar i Wavults brevlåda utan att någon ansvarar. |
| **Ingenting destruktivt utan verifiering** | MX-borttagning på döda domäner och zone-konsolidering kräver explicit Erik-godkännande och record-jämförelse. |
| **DMARC-skärpning på aktiva maildomäner** | `aamos.systems`, `landvex.com`, `quixzoom.com`, `wavult.com`, `aamos.ai` — dessa får INTE höjas till `p=reject` förrän DKIM-signaturer verifierats i praktiken (se flagga nedan). |
---
## 1. EU/USA-domäner (38 domäner i EU/Global-klassen)
### 1.1 Designbeslut: Fullständiga brevlådor vs. catch-all-redirect
**Rekommendation:** Hub-and-spoke — fulla brevlådor ENBART på primärdomäner (.com + aamos.systems), catch-all-redirect på alla landssuffix.
**Motivering:**
- Att ge alla 38 EU-domäner fulla brevlådor skapar omöjlig förvaltningsbörda (38 × N alias = hundratals poster).
- Catch-all på landssuffix → vidarebefordring till primärdomänens brevlåda är branschstandard för europeiska marknadssatsningar.
- Mailu stödjer catch-all och alias utan extra licens.
- DMARC `p=reject` på landssuffix skyddar mot spoofing utan att aktivera mailmottagning.
### 1.2 Tre-nivåmodell
```
NIVÅ 1 — Primärdomäner (full mail + roll-routing):
landvex.com → fulla brevlådor + roll-alias (ceo/cfo/coo/cto/cmo/info/support)
quixzoom.com → fulla brevlådor + roll-alias
aamos.systems → fulla brevlådor + roll-routing (redan live, vår plattform)
aamos.ai → redirect-alias → aamos.systems (eller egna brevlådor om varumärket kräver det)
wavult.com → fulla brevlådor (holding/group-level: ceo@wavult.com etc.)
NIVÅ 2 — EU-landsdomäner (MX → mail.wavult.com + catch-all → primär):
landvex.{se,eu,de,fr,nl,es,it,fi,ch,co.uk,be,dk}
landvex.{net,org}
landvex-gov.eu, landvex-intelligence.eu, landvex-infrastructure.eu
landvex-systems.com, landvex-secure.com
quixzoom.{eu,nl,de,fr,es,it,fi,ch,co.uk,be,dk}
quixzoom.{net,org}
wavult.se
NIVÅ 3 — Utan MX, DMARC reject (defensivt skydd):
Övriga marknadsdomäner (klass 2 nedan)
Döda domäner (efter verifiering)
```
### 1.3 Roll-alias-modell för primärdomäner
Baseras på befintlig aamos.systems-modell. Replikera på landvex.com, quixzoom.com, wavult.com:
| Alias | → Person/roll |
|-------|--------------|
| `ceo@[domän]` | → CEO (roll-baserat, person-agnostiskt) |
| `cfo@[domän]` | → CFO |
| `coo@[domän]` | → COO |
| `cto@[domän]` | → CTO |
| `cmo@[domän]` | → CTO (Leon borta, ruttad till CTO enligt befintlig config) |
| `info@[domän]` | → info-brevlåda eller catch-all |
| `support@[domän]` | → support-kö |
**OBS:** Roll-routingkonfiguration sker i Mailu (admin-UI), inte i DNS. DNS behöver bara MX-post + SPF + DKIM + DMARC.
### 1.4 DNS-poster per EU-domän (Nivå 2-mall)
```dns
; Catch-all via MX → mail.wavult.com
@ IN MX 10 mail.wavult.com.
; SPF — tillåt Mailu-servern + Google (om G Workspace används som backup)
@ IN TXT "v=spf1 mx a:mail.wavult.com ~all"
; DKIM — kopieras från aamos.systems (samma Mailu-instans, samma selector)
; Selector: mail (eller wavult — verifiera i Mailu-admin)
mail._domainkey IN TXT "<DKIM-pubkey från Mailu hämta via admin>"
; DMARC — p=none initialt, skärps till quarantine/reject efter DKIM-verifiering
_dmarc IN TXT "v=DMARC1; p=none; rua=mailto:dmarc@aamos.systems; ruf=mailto:dmarc@aamos.systems; fo=1"
```
### 1.5 DMARC-skärpningsplan (aktiva maildomäner)
> ⚠️ **KRITISK FLAGGA:** Höj INTE till `p=reject` på `aamos.systems`, `landvex.com`, `quixzoom.com`, `wavult.com`, `aamos.ai` förrän:
> 1. DKIM-signaturer verifierats via `mail-tester.com` eller `dmarcian.com`
> 2. DMARC-rapporter (rua) analyserats i minst 2 veckor
> 3. Inga legitima sändare saknas i SPF/DKIM
**Rekommenderad skärpningssekvens:**
1. Aktivera DMARC `p=none` + rua-rapportering → vänta 2 veckor
2. Granska rapporter, åtgärda avvikelser
3. Höj till `p=quarantine; pct=10` → vänta 1 vecka
4. Höj till `p=quarantine; pct=100` → vänta 1 vecka
5. Höj till `p=reject`
**Landssuffix (Nivå 2) som saknar aktiv MX idag** kan sättas direkt till `p=reject` eftersom inga legitima avsändare existerar.
---
## 2. Övriga marknader — Partner-domäner (13 domäner)
### 2.1 Domänlista
| Domän | Marknad |
|-------|---------|
| landvex.mx | Mexico 🇲🇽 |
| landvex.lat | LATAM 🌎 |
| landvex.asia | Asien 🌏 |
| landvex.in | Indien 🇮🇳 |
| landvex.jp | Japan 🇯🇵 |
| landvex.co | Colombia/.co global 🌍 |
| quixzoom.mx | Mexico 🇲🇽 |
| quixzoom.lat | LATAM 🌎 |
| quixzoom.in | Indien 🇮🇳 |
| quixzoom.jp | Japan 🇯🇵 |
| quixzoom.asia | Asien 🌏 |
| quixzoom.co | Colombia/.co global 🌍 |
| *(landvex.tech, quixzoom.tech — se nedan)* | |
### 2.2 Rekommendation: Alternativ (a) — Ingen MX + DMARC reject
**Rekommenderar alternativ (a): Ingen MX + DMARC reject**
**Motivering:**
| Aspekt | Alt (a): Ingen MX + reject | Alt (b): Partner@ vidarebefordrar |
|--------|---------------------------|-----------------------------------|
| **Spoofingskydd** | ✅ Maximalt — ingen mail accepteras | ⚠️ Partial — MX öppnar attackyta |
| **Partner-kommunikation** | ✅ Sker via primärdomän (partner@landvex.com) tills lokal partner aktiveras | ❌ Förvirrar — vem äger inkorgen? |
| **Underhåll** | ✅ Noll — set-and-forget | ❌ Kräver vidarebefordring per domän |
| **Signalering** | ✅ Tydlig: "Denna marknad är inte aktiv" | ❌ Tvetydigt — halvt aktiv |
| **GDPR/ansvar** | ✅ Ingen data samlas in på partnermarknaden | ⚠️ Risk om ingen äger inkorgen |
| **Partneraktivering** | ✅ DNS-ändring när partner aktiveras | Samma |
**Slutsats:** Alternativ (a) är renare, säkrare och kräver noll löpande underhåll. När en lokal partner aktiveras lägger vi till MX + SPF + DKIM + DMARC för den specifika domänen.
### 2.3 DNS-poster för partnerdomäner (ingen MX)
```dns
; Ingen MX-post = ingen mailmottagning
; SPF — explicita neka (inga auktoriserade avsändare)
@ IN TXT "v=spf1 -all"
; DMARC — omedelbart reject (inga legitima avsändare finns)
_dmarc IN TXT "v=DMARC1; p=reject; rua=mailto:dmarc@aamos.systems"
; Ingen DKIM-post behövs (inga avsändare att signera)
```
### 2.4 Oklar klassificering: .tech och .co
**landvex.tech / quixzoom.tech:**
- Generiska TLDs utan tydlig marknadstillhörighet
- Om de används som tech/developer-domäner → klassas som EU (Nivå 2)
- Om de inte används aktivt → partnermodell (ingen MX + reject)
- **Fråga till Erik:** Används .tech aktivt? Om inte → avveckla eller partnermodell
**landvex.co / quixzoom.co:**
- .co används globalt men är Colombias ccTLD
- Om de är Colombia-specifika → partnermodell (lokal partner)
- Om de är globala backup-domäner → EU Nivå 2
- **Fråga till Erik:** Är .co globalt defensiv registrering eller Colombia-specifik?
---
## 3. Döda varumärken — Avvecklingsdesign
### 3.1 Domäner
| Domän | MX-status | Zone ID |
|-------|-----------|---------|
| corpfitt.com | ✅ AKTIV MX (mail.wavult.com) | Z03586003P55GRO87T6M3 |
| hypbit.com | ✅ AKTIV MX (mail.wavult.com) | Z06944491GZGBRKHYNYSK |
| pixdrift.com | ❌ Ingen MX | Z06885272CR0QX3ZHVMTK |
### 3.2 Avvecklingssekvens (corpfitt.com och hypbit.com)
> ⚠️ **Kräver Erik-godkännande innan genomförande**
**Steg 1 — Verifiera att ingen aktiv korrespondens pågår:**
- Kontrollera Mailu-loggar: finns det inkommande mail till corpfitt.com / hypbit.com de senaste 90 dagarna?
- Finns det aktiva konton/alias i Mailu för dessa domäner?
- Om JA → parkera brevlådorna, informera berörda mottagare, sätt bounce-meddelande
**Steg 2 — Säker avveckling (efter verifiering):**
```dns
; Ta bort MX-posten
; (Radera MX 10 mail.wavult.com.)
; Lägg till SPF-avvisning
@ IN TXT "v=spf1 -all"
; Lägg till DMARC reject
_dmarc IN TXT "v=DMARC1; p=reject; rua=mailto:dmarc@aamos.systems"
```
**Steg 3 — Framtida val (Erik-beslut):**
- **Behåll zone** med DMARC reject → defensivt skydd mot domain squatting (rekommenderat om varumärket kan återupptas)
- **Radera zone** → frigjord domän kan registreras av annan (permanent avveckling)
### 3.3 pixdrift.com (ingen MX)
Pixdrift har redan ingen MX. Enda åtgärden:
```dns
; Om det saknas — lägg till SPF och DMARC
@ IN TXT "v=spf1 -all"
_dmarc IN TXT "v=DMARC1; p=reject; rua=mailto:dmarc@aamos.systems"
```
Kräver ingen erikgodkänd MX-borttagning — kan implementeras direkt.
---
## 4. Okända domäner — Öppna frågor till Erik
> ⚠️ **Inget destruktivt föreslås** för dessa domäner. Inga DNS-förändringar tills produktstatus klarlagts.
### 4.1 Öppna frågor
| Domän | Zone ID | Fråga |
|-------|---------|-------|
| `aakira.ai` | Z03635911UUILKCUZ19T4 | Vad är Aakira? Aktiv produkt, planerad, eller död? Ska den kopplas till Wavult-arkitekturen? |
| `apifly.com` | Z0446278GDE5PNAOQP0O | Apifly — aktiv produkt? Har den egna kunder/användare? Ska MX aktiveras? |
| `apifly.se` | Z10396092LJCJ3FH4V8GA | Komplement till apifly.com — samma frågeställning |
| `apbxp.cloud` | Z06961913786CYDDS7661 | Okänt varumärke och syfte. Är det ett internt verktyg, en dead-end registrering, eller aktiv produkt? |
| `prexo.co` | Z02639111HPSKSMSUDUU | Okänt varumärke. .co-TLD — är det Colombia-marknad eller global? |
### 4.2 Rekommendation i väntan på svar
Tills Erik svarar: **vidta inga åtgärder**. Dessa domäner har ingen aktiv MX (utom möjligen aakira.ai — verifiera). Ingen spoofing-risk utan aktiv MX, men kontrollera om DMARC-poster saknas.
**Om DMARC saknas på dessa domäner** (verifiera med `dig TXT _dmarc.<domain>`) kan en `p=none`-post läggas till som neutral åtgärd — samlar data utan att blockera.
---
## 5. Duplikatzoner — Konsolideringsdesign
### 5.1 Fyra duplikatpar
| Domän | Zone A | Zone B |
|-------|--------|--------|
| `landvex.ch` | Z060292760R1ZY0PQH3V | Z00716462L6XS9QZX1HHS |
| `quixzoom.co.uk` | Z035263432T28MD24XUIG | Z06391212CQRAVQ1FMNHV |
| `aamos.ai` | Z0992155TZTAVTB9DKU | Z10021043NUR85M9WUOQM |
| `wavult.com` | Z03332778KCOYPM9OBKP | Z02946821NE63OOAKDTKA |
### 5.2 Konsolideringsprotokoll (INNAN borttagning)
> ⚠️ **ALDRIG radera zone utan att först jämföra record-sets**
**Algoritm för att avgöra vilken zone som är aktiv:**
```bash
# Steg 1: Lista records i BÅDA zones
aws route53 list-resource-record-sets --hosted-zone-id ZONE_A --output json > zone_a_records.json
aws route53 list-resource-record-sets --hosted-zone-id ZONE_B --output json > zone_b_records.json
# Steg 2: Jämför antal records
# Zone med FLER records är troligen den aktiva
# Steg 3: Kontrollera NS-poster mot externa DNS
# Vilken zones NS-poster matchar vad registraren delegerar till?
dig NS landvex.ch +short
# Jämför med:
aws route53 list-resource-record-sets --hosted-zone-id ZONE_A | grep -A5 '"NS"'
aws route53 list-resource-record-sets --hosted-zone-id ZONE_B | grep -A5 '"NS"'
# Steg 4: Den zone vars NS-poster matchar registrarens delegering ÄR den aktiva
# Den andra är en "phantom zone" — radera den
# Steg 5: Migrera eventuella unika records från phantom → aktiv zone
# Steg 6: Radera phantom zone
```
### 5.3 Speciellt fall: wavult.com och aamos.ai (har aktiv MX)
För `wavult.com` och `aamos.ai` som har aktiv MX och mail-trafik:
- Extra försiktighet — MX-avbrott orsakar mail-bounces
- Verifiera NS-delegation INNAN borttagning
- Genomför under lågtrafiktid
### 5.4 Förväntad situation
Sannolikt scenario: En zone är "äkta" (NS-poster delegerade av registraren), den andra är en gammal kopia från en migration som aldrig städades upp. Records i den falska zonen påverkar ingenting (DNS resolver hittar aldrig till den), men de kan förvirra.
---
## 6. Intern infrastruktur (wavult.local, git.wavult.com)
| Domän | Hantering |
|-------|-----------|
| `wavult.local` | Privat Route53-zone — vidta ingen åtgärd, behåll |
| `git.wavult.com` | Intern Git-host — behåll, lägg till DMARC om det saknas: `p=reject` (inga legitima avsändare) |
---
## 7. Beslutsmatris — sammanfattning per domänklass
| Klass | MX | SPF | DKIM | DMARC | Ansvarig |
|-------|----|-----|------|-------|----------|
| **Primärdomäner (Niv. 1)** | mail.wavult.com | `mx a:mail.wavult.com ~all` | Mailu-selector | `p=none` → skärps efter DKIM-verifiering | Wavult-teamet |
| **EU-landsdomäner (Niv. 2)** | mail.wavult.com | `mx a:mail.wavult.com ~all` | Kopiera från primär | `p=none``p=reject` (kan skärpas direkt när MX aktiverats + DKIM verifierats) | Wavult-teamet |
| **Partnerdomäner (Niv. 3)** | **Ingen** | `v=spf1 -all` | Ingen | `p=reject` (omedelbart) | Wavult äger, lokal partner aktiverar vid behov |
| **Döda domäner** | **Ta bort** (efter verifiering) | `v=spf1 -all` | Ingen | `p=reject` | Erik-godkännande krävs |
| **Okända domäner** | Ingen åtgärd | Ingen åtgärd | Ingen åtgärd | `p=none` (neutral, valfritt) | Erik-beslut krävs |
| **Duplikatzoner** | Record-jämförelse → radera phantom | — | — | — | Erik-godkännande + verifiering |
| **Intern infra** | Behåll som är | `v=spf1 -all` (inga externa sändare) | Ingen | `p=reject` | Wavult-teamet |
---
## 8. Öppna frågor — krävs Eriks input
1. **corpfitt.com + hypbit.com:** Pågår aktiv korrespondens? Ska MX stängas av?
2. **aakira.ai:** Produkt, projekt eller dead-end?
3. **apifly.com + apifly.se:** Aktiv produkt?
4. **apbxp.cloud + prexo.co:** Vad är detta?
5. **landvex.tech + quixzoom.tech:** Används de? Avveckla eller EU Nivå 2?
6. **landvex.co + quixzoom.co:** Global defensiv eller Colombia-specifik?
7. **Duplikatzoner:** Godkänn konsolideringsprotokoll (NS-verifiering → radering)
8. **wavult.com:** Ska det vara en "group-level" maildomän med ceo@wavult.com etc., eller räcker aamos.systems?
9. **DMARC-skärpning på aktiva maildomäner:** Har DKIM verifierats i praktiken (mail-tester.com)?
---
## 9. Implementationsordning (när beslut är tagna)
**Fas 1 — Säker (kan göras omgående, ingen destruktiv åtgärd):**
- Lägg till DMARC `p=none` på alla EU-landsdomäner som saknar det (Nivå 2)
- Lägg till DMARC `p=reject` + SPF `-all` på partnerdomäner (Nivå 3)
- Lägg till DMARC `p=reject` + SPF `-all` på pixdrift.com (har redan ingen MX)
**Fas 2 — Med Eriks godkännande:**
- MX-borttagning på corpfitt.com + hypbit.com (efter Mailu-loggkontroll)
- Duplikatzon-konsolidering (efter NS-verifiering)
**Fas 3 — DMARC-skärpning (aktiverade maildomäner):**
- Kör DMARC-rapport-analys 2 veckor → skärp stegvis till reject
**Fas 4 — Okända domäner:**
- Väntar på Eriks input
---
*Design av OpenClaw subagent BUILD-C2 | 2026-06-06 | Inga mutationer gjorda — read-only*
*Implementationsskript: /home/bernt/.openclaw/workspace/build/c3-apply-dns.sh (förberett, ej kört)*