# Einen Nachweis prüfen

Am Ende wissen Sie, ob ein Nachweis von Szenera stammt und seit der Signatur unverändert ist: auf der öffentlichen Prüfseite mit Nummer und Prüfcode oder mit der Datei, und wer es genau wissen will, von Hand mit Manifest und öffentlichem Schlüssel.

> **Typ:** anleitung
> **Für wen:** Wer einen Nachweis erhalten hat und ihm nicht einfach glauben will, etwa die Agentur eines Herstellers, bevor sie eine Rechnung freigibt. Ebenso, wer einen eigenen Nachweis vor der Weitergabe prüft.
> **Voraussetzung:** Der Nachweis als PDF oder seine Nummer mit Prüfcode. Ein Konto bei Szenera ist nicht nötig. Für die Prüfung von Hand eine Kommandozeile mit `openssl` ab Fassung 3 und `shasum`.
> **Ort im Portal:** die Prüfseite auf der Website von Szenera, deren Adresse im Fuß jeder Seite des Nachweises steht. Im Portal führt **Auswertung** › Reiter **Nachweise** › **Prüfen** dorthin.

Jede Seite eines Nachweises trägt im Fuß die **Nummer** nach dem Muster `SZN-2026-000398`, die Seitenzahl, die Prüfsumme der Zahlen und den **Prüfcode** aus zwölf Zeichen in drei Gruppen, etwa `K7QF-2M9P-XW4D`. Nummer und Prüfcode gehören zusammen: Mit der Nummer allein zeigt die Prüfseite nichts an, damit niemand fremde Nachweise durchzählen kann.

## Schritte

### Mit Nummer und Prüfcode

1. Öffnen Sie die Prüfseite. Sie fragt: „Stammt dieser Nachweis von uns, und ist er unverändert?“
2. Tragen Sie unter **Mit Nummer und Prüfcode** die **Nachweisnummer** und den **Prüfcode** ein. Groß- und Kleinschreibung, Leerzeichen und Striche spielen keine Rolle, und bei der Nummer dürfen die führenden Nullen fehlen: `SZN-2026-398` ist dieselbe Nummer wie `SZN-2026-000398`.
3. Klicken Sie auf **Prüfen**.

### Mit der Datei

1. Ziehen Sie das PDF unter **Mit der Datei** auf **PDF hier ablegen** oder klicken Sie auf **Datei auswählen**. Bis 20 MB, auch das Manifest und das Stundenprotokoll eines Nachweises nimmt die Prüfseite an.
2. Die Prüfseite rechnet die Prüfsumme der Datei in Ihrem Browser und liest Nummer und Prüfcode aus dem PDF. Die Datei selbst verlässt Ihren Rechner nicht, an Szenera gehen nur Nummer, Prüfcode und Prüfsumme.

![Die öffentliche Prüfseite mit dem Ergebnis Echt und unverändert (1), den vier Prüfungen ab Signatur gültig (2), den Angaben des Nachweises mit Werbepartner, Werbekampagne, Buchung, Zeitraum und Ergebnis (3) und dem Verweis auf einen Nachtrag (4)](/de/docs/analytics/bilder/f4e3902a-proof-check-result.png)

*1 Ergebnis · 2 die vier Prüfungen · 3 Angaben des Nachweises · 4 Es gibt einen Nachtrag*

## Ergebnis prüfen

| Ergebnis | Bedeutung |
|---|---|
| **Echt und unverändert** | Signiert von Szenera an dem genannten Tag, und seitdem ist kein Zeichen verändert worden. Bei einem Nachweis ohne Signatur steht dort **Ausgestellt ohne Signatur**. |
| **Der Nachweis ist in sich nicht stimmig** | Nummer und Prüfcode oder Datei passen, aber die Signatur oder der bei Szenera abgelegte Inhalt passt nicht zum Eintrag im Verzeichnis. Verlassen Sie sich nicht auf diesen Nachweis und wenden Sie sich an Szenera. |
| **Nicht der signierte Stand** | Die Nummer steht im Verzeichnis, aber der Prüfcode passt nicht zu ihr, oder die Datei weicht vom signierten Stand ab. Fordern Sie den Nachweis neu an. |
| **Diese Nummer kennen wir nicht** | Die Nummer steht nicht im Verzeichnis. |

Bei **Echt und unverändert** und bei **Der Nachweis ist in sich nicht stimmig** stehen vier Prüfungen da, beim zweiten mit **Signatur ungültig** oder **Inhalt verändert**:

- **Signatur gültig**: mit welchem Schlüssel und welchem Verfahren signiert wurde.
- **Inhalt unverändert**: Die Prüfsumme stimmt mit dem Verzeichnis überein.
- **Gerätestapel lückenlos**: aus wie vielen Stapeln von wie vielen Displays der Nachweis entstand, jede Kette ohne Lücke. **Gerätestapel mit Lücken** heißt, ein Gerät hat zwischendurch neu begonnen oder Stapel fehlen. Die Zahlen gelten trotzdem, die Lücke ist ausgewiesen.
- **Im Verzeichnis eingetragen**: wann die Nummer vergeben wurde und bis zu welchem Jahr der Nachweis aufbewahrt wird.

Darunter nennt die Prüfseite Werbepartner, Werbekampagne, Buchung, Art, Zeitraum, Abschluss, Ergebnis und die Fassungen von Gültigkeitsregel und Kontaktmodell. Gibt es zu einem Abschluss einen Nachtrag, führt **Nachtrag prüfen** dorthin, bei einem Nachtrag **Abschluss prüfen** zurück. Die Karte **Zum Nachrechnen** führt die Dateien des Nachweises mit ihren Prüfsummen, **Was dieser Nachweis nicht sagt** seine Grenzen.

## Von Hand nachrechnen

Wer der Prüfseite nicht vertrauen will, prüft mit dem, was im PDF steckt. Das PDF trägt drei Dateien als Anhang: das Manifest `SZN-….manifest.json`, die Signatur `SZN-….manifest.sig` und das Stundenprotokoll `SZN-….csv`. Jeder PDF-Leser mit Anhang-Leiste zeigt sie, auf der Kommandozeile holt `pdfdetach -saveall SZN-….pdf` sie heraus.

1. **Den öffentlichen Schlüssel holen.** Auf der Prüfseite unter **Öffentliche Schlüssel** steht jeder Schlüssel mit **Verfahren**, **Fingerabdruck**, **Gilt seit** und **Abgelöst am**. **Schlüssel anzeigen** zeigt ihn als Text, den Sie als `szenera.pem` speichern. Welcher Schlüssel signiert hat, nennt das Manifest im Feld `keyId`.
2. **Die Signatur prüfen.** Die Signatur ist Ed25519 über die Bytes des Manifests, Base64-kodiert:

   ```bash
   base64 -d SZN-2026-000398.manifest.sig > manifest.sig.bin
   openssl pkeyutl -verify -pubin -inkey szenera.pem -rawin \
     -in SZN-2026-000398.manifest.json -sigfile manifest.sig.bin
   ```

   `Signature Verified Successfully` heißt: Das Manifest stammt von Szenera und ist unverändert. Ältere Fassungen von OpenSSL und das LibreSSL mancher Systeme kennen `-rawin` nicht, dann meldet der Befehl einen Fehler statt eines Ergebnisses. Prüfen Sie die Datei so, wie sie aus dem PDF kommt, ohne sie in einem Editor neu zu speichern: Schon ein umformatiertes Leerzeichen bricht die Signatur.
3. **Die Zahlen prüfen.** Das Manifest trägt im Feld `dataSha256` die Prüfsumme der Zahlen. Sie geht über alle Zeilen des Stundenprotokolls, die nicht mit `#` beginnen, also über Kopfzeile und Datenzeilen:

   ```bash
   grep -v '^#' SZN-2026-000398.csv | shasum -a 256
   ```

   Stimmt der Wert mit `dataSha256` überein, stehen im Protokoll dieselben Zahlen, die signiert wurden. Derselbe Wert steht gekürzt im Fuß jeder Seite.
4. **Die übrigen Dateien prüfen.** Das Manifest führt unter `files` jede weitere Datei mit ihrer Prüfsumme, etwa die Bildschirmaufnahmen der Stichprobe. `shasum -a 256 <Datei>` muss denselben Wert ergeben.

Das Manifest nennt außerdem die Gerätestapel, auf denen der Nachweis beruht, und eine gemeinsame Prüfsumme über sie (`batchMerkleRoot`). Sie macht nachträgliche Änderungen an den gemeldeten Daten sichtbar, lässt sich aber nur mit Szenera zusammen gegen die Stapel prüfen. Der **Prüfcode** leitet sich aus der Prüfsumme des Manifests ab und passt deshalb nur zu genau diesem signierten Stand.

## Wenn etwas nicht klappt

| Symptom | Bedeutung | Lösung |
|---|---|---|
| **Der Prüfcode passt nicht zur Nummer** | Ein Tippfehler oder ein Code eines anderen Nachweises. | Lesen Sie beide aus dem Fuß derselben Seite ab. Der Prüfcode kennt die Buchstaben O, I, L und U nicht: Was wie ein O aussieht, ist eine Null. |
| **Die Datei trägt die Nummer …, ihr Inhalt weicht aber vom Abschluss ab.** | Das PDF wurde nach der Signatur verändert, auch ein erneutes Speichern aus einem Bearbeitungsprogramm genügt dafür. | Fordern Sie den Nachweis neu an, oder prüfen Sie mit Nummer und Prüfcode. |
| **Ohne Signatur** | Der Nachweis wurde ohne Signatur ausgestellt. Die Prüfsummen gelten, die Herkunft ist nicht belegt. | Fragen Sie bei dem nach, der Ihnen den Nachweis gab. |
| `Signature Verification Failure` beim Nachrechnen | Das Manifest wurde verändert, oder es ist der falsche Schlüssel. | Holen Sie das Manifest erneut aus dem PDF und nehmen Sie den Schlüssel mit der `keyId` des Manifests. |
| Die Prüfsumme der Zahlen weicht ab. | Das Protokoll wurde bearbeitet, oder Zeilen fehlen. | Holen Sie das Protokoll erneut aus dem PDF. |
| Nach vielen Versuchen antwortet die Prüfseite nicht mehr. | Die Prüfseite begrenzt die Versuche je Internetanschluss. | Warten Sie einige Minuten. |

## Weiterführendes

- [Nachweise und Verweise für Werbepartner](/de/docs/analytics/manage-proofs)
- [Warum ist eine Lücke keine Null?](/de/docs/analytics/about-gaps)
- [Was misst die Auswertung, und was nicht?](/de/docs/analytics/about-measurement)
