ms-ai-architect/skills/ms-ai-security/references/ai-security-engineering/model-fingerprinting-watermarking.md

570 lines
22 KiB
Markdown

# Model Fingerprinting and Watermarking for Attribution
**Category:** AI Security Engineering
**Last updated:** 2026-06-19
**Status:** Active
**Type:** reference
**Source:** https://learn.microsoft.com/azure/machine-learning/concept-model-management-and-deployment
---
## Innhold
- [Hva dette handler om](#hva-dette-handler-om)
- [Content Watermarking i Microsoft-stakken](#content-watermarking-i-microsoft-stakken)
- [Model Fingerprinting og Provenance](#model-fingerprinting-og-provenance)
- [Legal og Compliance Implications](#legal-og-compliance-implications)
- [Implementering i Microsoft-stakken](#implementering-i-microsoft-stakken)
- [Anbefalinger for norsk offentlig sektor](#anbefalinger-for-norsk-offentlig-sektor)
- [For Cosmo Skyberg](#for-cosmo-skyberg)
- [Kilder](#kilder)
## Hva dette handler om
Model fingerprinting og watermarking er teknikker for å etablere eierskap, spore opprinnelse og beskytte AI-modeller og AI-generert innhold mot uautorisert bruk, kopiering eller manipulasjon. Dette er kritiske sikkerhetskontroller i en tid hvor AI-modeller representerer betydelig forretningsverdi, og hvor AI-generert innhold må kunne verifiseres og spores.
**To primære bruksområder:**
1. **Content Watermarking** — merking av AI-generert innhold (bilder, video, lyd) med metadata eller synlige merker som viser at innholdet er AI-generert og hvem som har generert det
2. **Model Fingerprinting** — unik identifikasjon av ML-modeller for å bevise eierskap, detektere kopiering og spore uautorisert distribusjon
Microsoft implementerer begge tilnærminger i Azure AI-plattformen for å sikre transparens, etterlevelse og beskyttelse av immaterielle rettigheter.
---
## Content Watermarking i Microsoft-stakken
### C2PA Content Credentials (Azure OpenAI)
**Coalition for Content Provenance and Authenticity (C2PA)** er den tekniske standarden Microsoft bruker for å merke AI-generert innhold med tamper-evident metadata.
**Støtte i Microsoft:**
- **Azure OpenAI** (DALL-E 3, GPT-image-1): Alle genererte bilder får automatisk Content Credentials
- **Azure Text to Speech Avatar**: Video-output merkes med content credentials (kun `.mp4`)
- **Microsoft 365 Copilot**: AI-generert innhold (bilder, video, lyd) kan merkes med watermarks (policy-styrt)
**Manifest-struktur (C2PA):**
| Felt | Innhold | Formål |
|------|---------|--------|
| `description` | `"AI Generated Image"` | Attesterer at innholdet er AI-generert |
| `softwareAgent` | `"Azure OpenAI DALL-E"` eller `"Azure OpenAI ImageGen"` | Identifiserer generasjonsmodellen |
| `when` | Timestamp | Når credentials ble opprettet |
| `generator` | `"Microsoft Azure Txt to Speech Avatar Service"` | For TTS avatar-videoer |
**Kryptografisk signering:**
- Manifest er **cryptographically signed** med et sertifikat som tracer tilbake til Microsoft
- Gjør metadata **tamper-evident** — manipulering kan detekteres
- Signatur verifiserer at innholdet faktisk kommer fra Azure AI
**Verifikasjon:**
1. **Content Credentials Verify** (https://contentcredentials.org/verify)
- Web-basert verktøy for å inspisere C2PA-metadata
- Viser utsteder (Microsoft Corporation), timestamp, modell
2. **Content Authenticity Initiative (CAI) open-source tools**
- Programmatisk verifikasjon via SDKer og biblioteker
- For integrasjon i egne applikasjoner
**No-op setup:**
- Content Credentials er **alltid aktivert** — ingen konfigurasjon nødvendig
- Metadata legges til automatisk i alle støttede formater
---
### Visual and Audio Watermarking (Microsoft 365)
Microsoft 365 tilbyr **synlige og hørbare watermarks** for AI-generert innhold som et ekstra lag for transparens.
**Policy-kontroll:**
- Admins aktiverer via **Cloud Policy**: _"Include a watermark when content from Microsoft 365 is generated or altered by AI"_
- Gjelder video og lyd (f.eks. Clipchamp-video, Copilot-audioresume)
- Bilder: Brukerstyrt (aktiveres i myaccount.microsoft.com/privacy)
**Karakteristikker:**
- **Ikke-muterbar:** Watermark kan ikke fjernes eller modifiseres av brukeren
- **Persistent:** Vises også ved printing og screenshots
- **MIP-labeling aware:** Støtter sensitivity-labeled PDFer
**Metadata uansett:**
Selv om watermark er deaktivert, legges **C2PA-metadata** til i alle AI-genererte filer (modell, app, timestamp).
---
## Model Fingerprinting og Provenance
### Hva er model fingerprinting?
Model fingerprinting er teknikker for å:
1. **Identifisere unikt en modell** — skape en "fingeravtrykk" som identifiserer modellen
2. **Detektere kopiering** — oppdage om noen har stjålet eller replikert modellen
3. **Verifisere eierskap** — bevise at en gitt modell tilhører deg
4. **Spore distribusjon** — følge hvor modellen brukes uautorisert
**Trussel-kontekst (MITRE ATT&CK):**
- **AML.T0050: Backdoor Model** — adversaries embed backdoors i modeller
- **AML.T0020: Compromise Model Supply Chain** — poisoned models i model marketplaces
- **T1195: Supply Chain Compromise** — compromised libraries, datasets
### Teknikker for model fingerprinting
#### 1. Model Watermark Embedding (Steganography in Neural Networks)
**Konsept:**
- Embed et unikt signal (watermark) i modellens vekter eller arkitektur
- Signalet påvirker ikke modellens prediksjoner, men kan detekteres
- Brukes til å bevise eierskap hvis modellen blir stjålet
**Metoder:**
- **Weight perturbation:** Modifiser vekter i spesifikke lag med et hemmelig signal
- **Trigger-set embedding:** Tren modellen til å svare på spesifikke, ukjente input-mønstre (trigger inputs)
- **Adversarial watermarking:** Bruk adversarial examples som watermark-trigger
**Eksempel:**
En modell kan trenes til å returnere en spesifikk output for et hemmelig input som bare eieren kjenner. Hvis noen stjeler modellen, kan eieren bevise eierskap ved å vise denne oppførselen.
**Begrensninger:**
- Kan fjernes ved re-training eller model pruning (hvis angriper har tilgang til vekter)
- Kan påvirke modellytelse hvis ikke designet forsiktig
- Krever at eieren kan teste modellen (white-box eller black-box testing)
#### 2. Model Provenance og Registry
**Azure Machine Learning Model Registry** (Microsoft-tilnærming):
**Model provenance tracking:**
- **Model registration:** Hver modell får en unik ID, versjonsnummer, metadata
- **Metadata captured automatically:**
- Training script snapshot
- Training data lineage (hvilke datasets ble brukt)
- Training metrics og hyperparameters
- Hvem som trengte modellen, når, hvor
- Eksperiment-ID (MLflow eller Azure ML experiment tracking)
- **Tagging:** Custom tags for å kategorisere modeller (miljø, godkjenningsstatus, etc.)
**Approval workflows (AI-1 Security Benchmark):**
1. **Centralized model registry** — single source of truth
2. **Automated security validation:**
- Hash verification (integrity check)
- Backdoor scanning (static analysis)
- Adversarial testing
3. **RBAC:** Kun autorisert personell kan registrere og deploye modeller
4. **Multi-stage approval:**
- Security team review
- Data provenance validation
- Business owner sign-off
5. **Audit trails:**
- Azure Monitor logging av alle model-relaterte hendelser
- Registration attempts, approval decisions, deployment actions
**Eksempel-policy:**
```
"[Preview]: Azure Machine Learning Deployments should only use approved Registry Models"
```
- Blokkerer deployment av modeller som ikke er i approved list
- Krever at modeller har gjennomgått security scanning
- Håndheves via Azure Policy (Deny effect)
**Benefits:**
- **Traceability:** Fullt spor fra data til deployed model
- **Accountability:** Hvem godkjente modellen for prod?
- **Compliance:** Møter krav i regulerte bransjer (GDPR, AI Act, finansregulering)
- **Incident response:** Hvis modell oppfører seg unormalt, kan lineage fortelle hvorfor
#### 3. Data Lineage og Unity Catalog (Databricks)
**Unity Catalog for AI governance:**
- **Runtime lineage:** Fanger data-lineage ned til kolonnenivå på tvers av notebooks, jobs, dashboards
- **Model-to-dataset tracking:** Når en modell trenes på en tabell, trackes upstream dataset
- **Cross-workspace visibility:** Lineage deles på tvers av workspaces i samme metastore
- **Retensjon:** Lineage vist i Catalog Explorer beholdes på ubestemt tid (data fra 1. september 2024 og senere); lineage-system-tables (`system.access.table_lineage` / `column_lineage`) har et rullende 1-års-vindu
**Anvendelser:**
- **Compliance audits:** Kan bevise at modellen er trent på godkjente datasett
- **Bias debugging:** Spor bias tilbake til data preprocessing eller source data
- **Reproducibility:** Re-create modeller med eksakt samme data-input
**Three-level namespace:**
- Catalog → Schema → Table/View/Model
- Brukes til å strukturere data og AI-assets
---
### Detection of Model Copies (Model Stealing Detection)
**Model stealing** (MITRE #5):
- Adversary recreates modellen ved å query API og lære fra outputs
- Bruker extracted model til å utvikle adversarial attacks offline
**Fingerprinting for detection:**
1. **Query pattern analysis:**
- Monitorere API calls for systematiske queries som ligner model extraction
- Detektere brute-force querying av modell-inputs
2. **Output obfuscation:**
- Returner rounded confidence values (ikke flere desimaler)
- Begrens detaljer i API-respons
3. **Rate limiting:**
- Begrens antall API-kall per bruker/IP
- Stopper brute-force model extraction
4. **Watermark triggers:**
- Hvis modellen har embedded watermark, kan du teste en mistenkt kopi for watermark-response
- Beviser at kopien er derived fra din modell
---
## Legal og Compliance Implications
### Immaterielle rettigheter
**Model watermarking som IP-beskyttelse:**
- I mange jurisdiksjoner kan watermarked modeller være lettere å beskytte juridisk
- Beviser eierskap hvis noen distribuerer uautorisert kopi
- Kan brukes som bevis i rettssak
**C2PA for copyright:**
- Content credentials etablerer **provenance** — hvem genererte innholdet
- Viktig for å bevise originality i copyright-tvister
- Hjelper å skille AI-generert innhold fra menneskeskapt innhold
### Regulatory Compliance
**EU AI Act:**
- **Transparency krav:** AI-systemer må kunne forklare sine beslutninger
- **Provenance tracking:** Organisasjoner må kunne dokumentere data-lineage og modell-lineage
- **Content labeling:** AI-generert innhold må merkes som AI-generert (C2PA oppfyller dette)
**GDPR:**
- **Right to explanation:** Brukere har rett til å vite hvordan AI-beslutninger påvirker dem
- **Data lineage:** Må kunne spore hvilke persondata som ble brukt til å trene modellen
**Norsk offentlig sektor:**
- **Utredningsinstruksen § 5:** Krever dokumentasjon av beslutningsgrunnlag
- **Forvaltningsloven § 24:** Begrunnelsesplikt — lineage hjelper å forklare AI-beslutninger
- **Personopplysningsloven (GDPR):** Må kunne dokumentere databehandling
---
## Implementering i Microsoft-stakken
### Content Watermarking: C2PA for bilder
**Azure OpenAI (DALL-E 3, GPT-image-1):**
```python
from openai import AzureOpenAI
client = AzureOpenAI(
api_key="YOUR_API_KEY",
api_version="2024-05-01-preview",
azure_endpoint="https://YOUR_RESOURCE.openai.azure.com"
)
# Generate image — Content Credentials automatically applied
response = client.images.generate(
model="dall-e-3",
prompt="A futuristic cityscape at sunset",
size="1024x1024"
)
image_url = response.data[0].url
# Download image — will contain C2PA manifest with Microsoft signature
```
**Verifikasjon (C2PA):**
```python
# Using Content Authenticity Initiative (CAI) tools
# pip install c2pa-python
from c2pa import Reader
reader = Reader("generated_image.png")
manifest = reader.get_manifest()
print(f"Issuer: {manifest.issuer}") # Microsoft Corporation
print(f"Software: {manifest.claim_generator}") # Azure OpenAI DALL-E
print(f"Timestamp: {manifest.timestamp}")
```
**Output:**
```
Issuer: Microsoft Corporation
Software: Azure OpenAI DALL-E
Timestamp: 2026-02-05T14:23:45Z
```
---
### Model Provenance: Azure Machine Learning
**Model registration med metadata:**
```python
from azure.ai.ml import MLClient
from azure.ai.ml.entities import Model
from azure.identity import DefaultAzureCredential
ml_client = MLClient(
credential=DefaultAzureCredential(),
subscription_id="YOUR_SUBSCRIPTION",
resource_group_name="YOUR_RG",
workspace_name="YOUR_WORKSPACE"
)
# Register model with provenance metadata
model = Model(
name="fraud-detection-model",
version="2",
path="./model",
type="mlflow_model",
description="Fraud detection model trained on balanced dataset",
tags={
"environment": "production",
"approval_status": "approved",
"training_data": "fraud_dataset_v3_balanced",
"trained_by": "data-science-team",
"compliance": "GDPR-compliant"
},
properties={
"experiment_id": "fraud-detection-exp-001",
"training_date": "2026-02-05",
"data_lineage": "fraud_raw -> fraud_balanced -> model",
"metrics": {"auroc": 0.94, "precision": 0.89}
}
)
registered_model = ml_client.models.create_or_update(model)
print(f"Model registered: {registered_model.name}:{registered_model.version}")
```
**Query model provenance:**
```python
# Retrieve model with full metadata
model = ml_client.models.get(name="fraud-detection-model", version="2")
print(f"Model: {model.name} v{model.version}")
print(f"Training data: {model.tags['training_data']}")
print(f"Trained by: {model.tags['trained_by']}")
print(f"Experiment: {model.properties['experiment_id']}")
print(f"Data lineage: {model.properties['data_lineage']}")
print(f"AUROC: {model.properties['metrics']['auroc']}")
```
**Output:**
```
Model: fraud-detection-model v2
Training data: fraud_dataset_v3_balanced
Trained by: data-science-team
Experiment: fraud-detection-exp-001
Data lineage: fraud_raw -> fraud_balanced -> model
AUROC: 0.94
```
---
### Model Approval Policy (Azure Policy)
**Enforce approved models only:**
```json
{
"properties": {
"displayName": "[Preview]: Azure Machine Learning Deployments should only use approved Registry Models",
"policyType": "BuiltIn",
"mode": "All",
"description": "Restrict model deployments to only approved publisher names and asset IDs from Azure Machine Learning Model Catalog.",
"parameters": {
"allowedPublisherNames": {
"type": "Array",
"metadata": {
"displayName": "Allowed Publisher Names",
"description": "List of approved publisher names"
},
"defaultValue": ["Microsoft", "OpenAI", "Meta"]
},
"approvedAssetIds": {
"type": "Array",
"metadata": {
"displayName": "Approved Asset IDs",
"description": "List of approved model asset IDs"
}
},
"effect": {
"type": "String",
"defaultValue": "Deny",
"allowedValues": ["Audit", "Deny", "Disabled"]
}
},
"policyRule": {
"if": {
"allOf": [
{
"field": "type",
"equals": "Microsoft.MachineLearningServices/workspaces/onlineEndpoints/deployments"
},
{
"not": {
"field": "Microsoft.MachineLearningServices/workspaces/onlineEndpoints/deployments/model.assetId",
"in": "[parameters('approvedAssetIds')]"
}
}
]
},
"then": {
"effect": "[parameters('effect')]"
}
}
}
}
```
**Håndhever:**
- Kun modeller fra approved publishers kan deployes
- Må ha gjennomgått security scanning (backdoor detection, adversarial testing)
- Audit trail i Azure Monitor for alle deployment attempts
---
## Anbefalinger for norsk offentlig sektor
### 1. Content Watermarking
**Anbefalte kontroller:**
- **Aktiver C2PA Content Credentials** for all AI-generert innhold (bilder, video, lyd)
- **M365 watermark policy:** Vurder synlige watermarks for video/lyd hvis innholdet kan misbrukes
- **Verifikasjonsrutiner:** Etabler prosedyrer for å verifisere content credentials når innhold mottas eksternt
**Compliance:**
- **Forvaltningsloven § 11a:** AI-generert innhold i saksbehandling må kunne spores
- **Personopplysningsloven:** Hvis AI-generert innhold inneholder persondata, må provenance dokumenteres
### 2. Model Fingerprinting og Provenance
**Anbefalte kontroller:**
- **Model registry:** All modeller skal registreres i Azure ML Model Registry med metadata
- **Data lineage tracking:** Bruk Unity Catalog eller Azure ML lineage for å spore data-til-modell
- **Approval workflows:** Implementer multi-stage godkjenning før prod-deployment
- **Audit logging:** Azure Monitor logging av alle model-relaterte hendelser (registration, approval, deployment)
**Governance:**
- **NIST AI RMF:** Model provenance støtter "Govern" og "Map" functions
- **ISO/IEC 42001:** Krever traceability av AI-systems
- **Digdir AI-prinsipper:** Transparens krever at modeller kan forklares — lineage hjelper
### 3. Supply Chain Security
**Trusselmodell:**
- **Backdoor models:** Adversary embedder backdoor i modell og distribuerer via model marketplace
- **Poisoned datasets:** Training data compromised med adversarial examples
- **Model theft:** Adversary extracts modell via API queries
**Mitigations:**
- **Azure Policy enforcement:** Kun approved models fra trusted publishers
- **Security scanning pipeline:** Hash verification, backdoor scanning, adversarial testing
- **Rate limiting:** Begrens API queries for å stoppe model extraction
- **RBAC:** Kun autorisert personell kan registrere og deploye modeller
### 4. Legal og Contractual Considerations
**IP-beskyttelse:**
- Watermark modeller hvis de representerer betydelig forretningsverdi
- Inkluder IP-klausuler i kontrakter med leverandører (hvem eier modellen?)
**Liability:**
- Hvis AI-generert innhold fører til skade, kan provenance bevise hvem som genererte det
- Viktig for å etablere ansvarslinje i juridiske tvister
---
## For Cosmo Skyberg
### Når dette temaet er relevant
**Trigger-signaler:**
- Kunde spør om "hvordan bevise at innholdet er AI-generert"
- Kunde er bekymret for "model theft" eller "uautorisert bruk av modellen"
- Kunde trenger å oppfylle transparenskrav i AI Act eller GDPR
- Kunde driver med høy-verdi ML-modeller (f.eks. fraud detection, medical diagnostics)
- Kunde jobber i regulerte bransjer (finans, helse, offentlig sektor)
### Conversational framing
"Model fingerprinting og watermarking handler om to ting: **å bevise eierskap av AI-modeller**, og **å merke AI-generert innhold slik at det kan spores**. I Microsoft-stakken har vi innebygde løsninger for begge — C2PA Content Credentials for innhold, og Azure ML Model Registry for modell-provenance."
**Spørsmål å stille:**
1. "Trenger dere å bevise at innhold er AI-generert, eller trenger dere å beskytte selve modellen mot kopiering?"
2. "Jobber dere i en bransje med strenge compliance-krav (GDPR, AI Act, finansregulering)?"
3. "Har dere høy-verdi modeller som representerer kritisk IP?"
4. "Trenger dere å kunne dokumentere data-lineage for audit-formål?"
### Decision tree for anbefalinger
```
Trenger kunde watermarking/fingerprinting?
├─ Ja, for AI-generert innhold (bilder, video, lyd)
│ ├─ → Anbefal: Azure OpenAI (C2PA automatisk)
│ ├─ → Anbefal: M365 watermark policy (hvis synlige merker ønskes)
│ └─ → Anbefal: Verifikasjonsrutiner (contentcredentials.org/verify)
├─ Ja, for modell-beskyttelse (IP-beskyttelse, eierskap)
│ ├─ → Anbefal: Azure ML Model Registry med approval workflow
│ ├─ → Anbefal: Azure Policy (kun approved models)
│ ├─ → Anbefal: Audit logging (Azure Monitor)
│ └─ → Anbefal: RBAC (kun autorisert personell kan deploye)
├─ Ja, for compliance (GDPR, AI Act, norsk regelverk)
│ ├─ → Anbefal: Data lineage tracking (Unity Catalog eller Azure ML)
│ ├─ → Anbefal: Model provenance metadata (tags, properties)
│ └─ → Anbefal: Audit trails (bevise at data er GDPR-compliant)
└─ Nei
└─ → Fortsett med standard sikkerhetskontroller
```
### Teknisk depth vs. executive summary
**For tekniske stakeholders:**
- Gå i dybden på C2PA-manifest struktur, kryptografisk signering
- Vis kodeeksempler for model registration og provenance queries
- Diskuter steganography i neural networks som avansert teknikk
**For executives:**
- Fokus på compliance (GDPR, AI Act), IP-beskyttelse, reputasjonsrisiko
- Fremhev at Microsoft har **innebygde løsninger** (C2PA, Model Registry) — no custom development
- Fremhev kostnaden ved **ikke** å ha watermarking (tap av IP, compliance-brudd)
### Common pitfalls å advare mot
1. **"Vi kan legge til watermark senere"**
- Nei — C2PA må være embedded fra generering (kan ikke retrofitte)
- Anbefal: Aktiver fra dag 1
2. **"Vi trenger ikke model provenance, vi har god intern kontroll"**
- Compliance-krav (AI Act, GDPR) krever dokumentasjon
- Audit trails er kritiske for incident response
3. **"Watermark kan fjernes hvis noen er motivert nok"**
- Korrekt for synlige watermarks, men C2PA-signature er tamper-evident
- Detection av manipulasjon er også verdifullt
---
*(Verified MCP 2026-04)*
## Kilder
1. **C2PA Specification** — https://c2pa.org/specifications/specifications/2.1/specs/C2PA_Specification.html
2. **Azure OpenAI Content Credentials** — https://learn.microsoft.com/en-us/azure/foundry-classic/openai/concepts/content-credentials
3. **Azure Text to Speech Content Credentials** — https://learn.microsoft.com/en-us/azure/ai-services/speech-service/text-to-speech-avatar/content-credentials
4. **Microsoft 365 Watermarking** — https://learn.microsoft.com/en-us/copilot/microsoft-365/watermarks
5. **Azure Machine Learning Model Management** — https://learn.microsoft.com/en-us/azure/machine-learning/concept-model-management-and-deployment
6. **Microsoft Security Benchmark: AI-1 (Approved Models)** — https://learn.microsoft.com/en-us/security/benchmark/azure/mcsb-v2-artificial-intelligence-security
7. **Threat Modeling AI/ML Systems** — https://learn.microsoft.com/en-us/security/engineering/threat-modeling-aiml
8. **Unity Catalog Data Lineage** — https://learn.microsoft.com/en-us/azure/databricks/data-governance/unity-catalog/data-lineage
9. **Content Authenticity Initiative (CAI)** — https://opensource.contentauthenticity.org/
10. **Coalition for Content Provenance and Authenticity (C2PA)** — https://c2pa.org/
---
**Sist oppdatert:** 2026-06-19
**Neste review:** 2026-09-19 (eller ved nye C2PA-oppdateringer)