# Model Fingerprinting and Watermarking for Attribution **Kategori:** AI Security Engineering **Dato:** 2026-04 **Status:** Active --- ## 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 - **1-year retention:** Lineage data lagres i ett år **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/ai-foundry/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-04 **Neste review:** Q3 2026 (eller ved nye C2PA-oppdateringer)