⚖️Formate im Vergleich

Welche Endung steht für welchen Container? Wo dürfen Makros stecken? Und was bedeuten „Strict“, „Transitional“ und „Kompatibilitätsmodus“?

📊Die Word-Familie und ihre Verwandten

EndungSeitContainerSignaturMakrosStandardMIME-Typ
.doc
Word 97–2003-Dokument
Word 97 (1997)CFB / OLE2 (binär)D0 CF 11 E0 A1 B1 1A E1ja – Storage Macros[MS-DOC], [MS-CFB] (seit 2008 offengelegt)application/msword
Binärstrukturen: FIB, Piece Table, FKPs. Word 6.0/95 nutzten eine ältere Variante.
.dot
Word 97–2003-Vorlage
Word 97CFB / OLE2D0 CF 11 E0 A1 B1 1A E1ja[MS-DOC] (Flag fDot im FIB)application/msword
Gleiches Format wie .doc, im FIB ist fDot = 1 gesetzt.
.docx
Word-Dokument
Word 2007ZIP + OPC + XML50 4B 03 04 („PK“)nein – Word verweigert MakrosECMA-376, ISO/IEC 29500application/vnd.openxmlformats-officedocument.wordprocessingml.document
Hauptpart hat den Content-Type …wordprocessingml.document.main+xml.
.docm
Word-Dokument mit Makros
Word 2007ZIP + OPC + XML50 4B 03 04ja – word/vbaProject.binECMA-376 + [MS-OFFMACRO2]/[MS-OVBA]application/vnd.ms-word.document.macroEnabled.12
vbaProject.bin ist selbst wieder eine CFB-Datei (D0 CF 11 E0 …).
.dotx
Word-Vorlage
Word 2007ZIP + OPC + XML50 4B 03 04neinECMA-376application/vnd.openxmlformats-officedocument.wordprocessingml.template
Wie .docx, nur der Content-Type des Hauptparts lautet …template.main+xml.
.dotm
Word-Vorlage mit Makros
Word 2007ZIP + OPC + XML50 4B 03 04jaECMA-376 + [MS-OVBA]application/vnd.ms-word.template.macroEnabled.12
Typisch für Normal.dotm, die globale Vorlage von Word.
.rtf
Rich Text Format
1987Text (7-Bit, Steuerwörter){\rtf1keine Makros – aber eingebettete OLE-ObjekteMicrosoft RTF Specification 1.9.1 (2008)application/rtf
Lesbar mit jedem Texteditor: {\rtf1\ansi … {\b fett} …}.
.odt
OpenDocument-Text
2005 (ODF 1.0)ZIP + XML50 4B 03 04 … „mimetype“möglich (LibreOffice Basic)OASIS ODF, ISO/IEC 26300application/vnd.oasis.opendocument.text
Erster ZIP-Eintrag mimetype, unkomprimiert – daher steht der MIME-Typ ab Byte 38 lesbar in der Datei.

🔀.doc und .docx im direkten Vergleich

🧱 .doc

  • Binär: Offsets, Bitfelder, Little-Endian-Zahlen
  • Text über Piece Table verstreut, Formatierung in FKPs
  • Teile können ohne Neuschreiben geändert werden (Schnellspeicherung)
  • Makros direkt im Dokument möglich
  • Parser müssen sehr genau sein – historisch viele Sicherheitslücken
  • Keine Kompression: meist größer als die gleiche .docx

🗂️ .docx

  • ZIP + XML: mit Bordmitteln lesbar und erzeugbar
  • Text und Formatierung zusammen in document.xml
  • Datei wird beim Speichern komplett neu geschrieben
  • Keine Makros – dafür gibt es .docm
  • Offener Standard (ECMA-376 / ISO/IEC 29500)
  • Deflate-Kompression; Bilder liegen als eigene Dateien im ZIP

📐Strict vs. Transitional

ISO/IEC 29500 kennt zwei Konformitätsstufen. Transitional enthält Altlasten, damit alte Binärdokumente verlustfrei übertragen werden können; Strict lässt sie weg und nutzt eigene Namensräume.
AspektTransitionalStrict
Namensraum w:http://schemas.openxmlformats.org/wordprocessingml/2006/mainhttp://purl.oclc.org/ooxml/wordprocessingml/main
Namensraum r:http://schemas.openxmlformats.org/officeDocument/2006/relationshipshttp://purl.oclc.org/ooxml/officeDocument/relationships
Altlasten (VML, Kompatibilitäts-Flags)erlaubt – für die verlustfreie Umwandlung alter .doc-Dateiennicht erlaubt
Ausrichtungleft / right (und start / end)nur start / end
Word speichertstandardmäßig („Word-Dokument (*.docx)“)nur auf Wunsch („Strict Open XML-Dokument“, ab Word 2013)

Beide Varianten tragen die Endung .docx. Ältere Programme (z. B. Word 2007) können Strict-Dateien nicht öffnen.

🕹️Kompatibilitätsmodus

Der Kompatibilitätsmodus steht in word/settings.xml. Er sorgt dafür, dass ein altes Dokument genauso umbricht wie in der Word-Version, mit der es erstellt wurde.

Aktueller Modus – auch Word 2016 bis 2024 und Microsoft 365 schreiben 15.

Beim Öffnen einer .doc arbeitet Word im Kompatibilitätsmodus; Datei → Informationen → Konvertieren hebt den Wert auf 15 an. Der Modus steuert das Layout (Zeilenumbruch, Tabellen, Abstände) – nicht das Dateiformat.

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<w:settings xmlns:w="http://schemas.openxmlformats.org/wordprocessingml/2006/main">
  <w:defaultTabStop w:val="708"/>
  <w:compat>
    <w:compatSetting w:name="compatibilityMode" w:uri="http://schemas.microsoft.com/office/word" w:val="15"/>
  </w:compat>
</w:settings>

🛡️Sicherheit: Makros, Mark-of-the-Web und externe Inhalte

⚠️ Makros
VBA-Makros können in .doc/.dot (Storage Macros) und .docm/.dotm (word/vbaProject.bin) stecken, nicht in .docx. Eine .docx mit Makro-Part lehnt Word ab. Die Endung sagt also schon viel – aber nur, wenn sie stimmt: Die Signatur prüfen die Werkzeuge auf dieser Seite.
💡 Mark-of-the-Web (MotW)
Browser und Mailprogramme markieren heruntergeladene Dateien unter Windows mit dem NTFS-Datenstrom Zone.Identifier. ZoneId=3 bedeutet Internet: Word öffnet die Datei in der Geschützten Ansicht, und seit 2022 blockiert Office VBA-Makros aus solchen Dateien standardmäßig.
⚠️ Externe Beziehungen
Auch ohne Makros kann eine .docx Inhalte nachladen: eine externe Vorlage (attachedTemplate in settings.xml.rels, „Remote Template Injection“) oder ein externes OLE-Objekt – so funktionierte „Follina“ (CVE-2022-30190). Der Datei-Untersucher unter Werkzeuge listet externe Ziele auf.
✅ Metadaten
docProps/core.xml bzw. \x05SummaryInformation enthalten Autor und Bearbeiter. Vor der Weitergabe: Datei → Informationen → Auf Probleme überprüfen → Dokument prüfen.

PowerShell: Mark-of-the-Web ansehen und entfernen

PS> Get-Content .\angebot.docm -Stream Zone.Identifier
[ZoneTransfer]
ZoneId=3
ReferrerUrl=https://example.org/
HostUrl=https://example.org/downloads/angebot.docm

PS> Unblock-File .\angebot.docm    # entfernt den Stream – nur bei vertrauenswürdiger Quelle!

Verdächtige Beziehung in einer .docx

word/_rels/settings.xml.rels
<Relationship Id="rId1"
  Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/attachedTemplate"
  Target="https://example.org/vorlage.dotm"
  TargetMode="External"/>

Beispiel mit example.org – so sieht das Muster aus, das Sicherheitsscanner suchen.