Axe 4 : Techniques

OSCAL - Open Security Controls Assessment Language

OSCAL transforme la documentation de conformité de Word/Excel en formats JSON/YAML lisibles par la machine, avec quatre couches :

  1. Catalogs - Définitions de contrôles (NIST 800-53, ISO 27001, BSI IT-Grundschutz)
  2. Profiles - Baselines spécifiques à l'organisation
  3. Implementation Layer - System Security Plans, Component Definitions
  4. Assessment Layer - Assessment Results, POA&M

Le BSI documente officiellement : « OSCAL est compatible avec les normes internationales ». Le GCBoK définit les taxonomies de conformité allemandes (GoBD, BSI, RGPD) comme catalogues OSCAL - cela n'existe pas encore sur le marché.

OPA / Rego - Policy as Code

Open Policy Agent avec le langage Rego. Les règles de conformité sont implémentées sous forme de code, qui est vérifié automatiquement par rapport au Git-State.

VPRM - Verifiable Process Reward Model

Dans le contexte du GCBoK, OPA/Rego fonctionne comme VPRM : les garde-fous pour les agents IA sont créés par un jeu de règles déterministe, et non par du prompt engineering. Ainsi, les agents IA ne sont pas sécurisés par des contraintes de prompt, mais par la validation de code.

Signature GPG

Chaque commit Git pertinent pour la conformité est signé avec GPG. La signature lie :

À partir des métadonnées .v7g.md, les GPG-Fingerprints sont liés aux V7GUIDs - les identités restent à l'épreuve de la falsification même si un agent IA manipule la structure sémantique.

Architecture de keyring GPG pour la traçabilité forensique

Pour que les signatures GPG restent vérifiables à long terme — même des années après leur création, après expiration ou révocation de la clé, et lors d'une reconstruction à partir d'archives git bundle/ZIP — les clés publiques doivent faire partie du dépôt. Le GCBoK définit à cet effet un modèle de keyring dans le dépôt :

Structure : .gitcover/keys/

.gitcover/
├── keys/
│   ├── team-lead.asc          # Öffentliche Schlüssel von Team-Leads
│   ├── service-accounts/      # CI/CD, Bots, Automation
│   └── identities/            # Personenbezogene Schlüssel (nur PII-Repos)
│       ├── person-a.asc
│       └── person-a_governikus.pdf  # Identitätsnachweis pgp.governikus.de
├── trusted-keys.gpg           # Gesammelter Keyring (optional, für Verifier)
└── compliance/                # GoBD/DSGVO-Dokumente

Modèle à deux niveaux : TOP-Repo vs. PII-Repo

Niveau Dépôt Contenu Pertinence RGPD
Organisationnel TOP-Repo (Tenant Organizational Platform) Clés des Team-Leads, Service-Accounts, bots CI/CD, ancre de confiance trusted-keys.gpg Aucune donnée à caractère personnel — conforme au RGPD
Personnel PII-Repo (Personal Identifiable Information) Clés des développeurs, justificatifs d'identité (confirmations Governikus), GPG-Fingerprints personnels PII — accès uniquement via les Org-Unit-Claims (voir ci-dessous)

Cette séparation reflète les deux niveaux de responsabilité en matière de PII :

  1. Juridique — niveau Tenant (entité juridique, p. ex. GCC, GCD, CFP)
  2. Organisationnel — PMO/Divisions/Departments/Locations (≈ AD Organizational Unit)

Vérification isolée du keyring local

Un vérificateur (ou un auditeur 10 ans plus tard) vérifie sans dépendre du keyring GPG local :

# Nur Repository-Schlüssel nutzen, lokalen Keyring ignorieren
gpg --no-default-keyring --keyring .gitcover/keys/team-lead.asc \
    --verify-commit <commit-hash>

Validité temporelle et cycle de vie des clés

La question « La signature était-elle valide au moment du commit ? » trouve sa réponse dans l'intégration au dépôt :

Pertinence pour la documentation des procédures GoBD et NIS2

Voir aussi : La série d'articles « Instructions de procédure GoBD pour Git » dans le GCBoK (Module 3 : Intégrité cryptographique, Module 4 : Signatures & authenticité) approfondit ces thèmes. Le projet de recherche GitCover.IdP (BSFZ 288-335-338/2026-1) étudie l'intégration IdP.

uuidV7 - UUID Version 7

UUID Version 7 compatible RFC-4122 : basée sur le temps, triable, résistante aux collisions. L'extension spécifique à GitCover par des identifiants de classe de 14 bits transforme les UUIDs en V7GUIDs (voir Concepts).

Git comme IdP - Identity Provider

Des dépôts Git basés sur Gitea en tant que Single Source of Truth (SSoT) pour un système intégré de gestion des identités et des accès (IAM). Le projet de recherche reconnu par le BSFZ étudie si les organisations/équipes Git peuvent représenter des OAuth2-Clients et des permissions et gérer plus de 1 000 utilisateurs de manière performante.

Responsabilité à deux niveaux pour les PII (Juridique + Organisationnel)

Les données à caractère personnel (PII) sont soumises, dans le stack GitCover, à une double responsabilité qui se reflète dans l'architecture des dépôts et dans les claims OIDC :

Niveau Périmètre Type de dépôt Claim OIDC Exemple
1. Juridique Tenant (entité juridique) TOP-Repo + PII-Repo tenant_id (basé sur V7GUID) GCC, GCD, CFP, ADA
2. Organisationnel PMO / Division / Department / Location PII-Repo (à granularité fine) org_unit_id (≈ AD Organizational Unit) GCC-Portfolio, GCD-IT, CFP-Sales

Hiérarchie des claims dans le pipeline Inlet

Le pipeline Inlet (voir Démarches : Isolation des Tenants lit le fichier others.json selon le User-Claim et injecte les chemins autorisés :

{
  "tenant_id": "0197a3b2-f3c0-7b00-8001-000000000042",
  "org_unit_id": "ORG-1-Portfolio",
  "allowed_repos": [
    "TOP",
    "PII/ORG-1-Portfolio"
  ]
}

Ainsi, un utilisateur avec org_unit_id = ORG-1-Portfolio obtient l'accès au PII-Repo du portfolio, mais pas à PII/ORG-2-IT — même avec le même tenant_id.

Voir aussi : Le projet de recherche sur GitCover.IdP est décrit dans Projets de recherche. L'architecture de keyring (TOP vs. PII) est décrite ci-dessus sous « Architecture de keyring GPG ».