Durch die Integration des Open-Source-Projekts The Update Framework bietet das Container-Tool nun optional Funktionen zum Signieren und Verifizieren von Images an, um Sicherheitsrisiken zu reduzieren.
Im Zuge der Veröffentlichung von Docker 1.8 haben die Entwickler des Tools zum Verpacken von Anwendungen und deren Abhängigkeiten mit Docker Content Trust einen neuen Sicherheitsmechanismus vorgestellt. Er soll Nutzer vor gefälschten Images und Replay-Angriffen schützen. Nach der Aktivierung von Content Trust sind Publisher in der Lage, ihre Images zu signieren, sodass auf Clientseite die Möglichkeit besteht, eine Verifikation heruntergeladener Images durchzuführen. Eine solche Funktion war schon länger nachgefragt, da bisher eine Möglichkeit fehlte, Urheber und Version zweifelsfrei festzustellen und nicht alle vom Nutzer gewünschten Images auch in der Trusted Registry des Projekts zu finden sind.
Ist Content Trust beim Nutzer freigeschaltet, kann er nur noch signierte Images aus dem Repository extrahieren, sie einsetzen oder für Build-Vorgänge nutzen. In der Registry sind dann wohl auch nur noch entsprechende Images sichtbar. Das Feature ist aktuell nicht standardmäßig aktiviert, zum Freischalten ist die Umgebungsvariable DOCKER_CONTENT_TRUST zu setzen. Zudem ist zu beachten, dass Docker Content Trust derzeit nur für den Docker Hub bereitstellt, nicht aber für die Docker Trusted Registry und private Registries. Unter der Haube
Der Content-Trust-Mechanismus arbeitet mit vier Schlüsseln: dem Offline Key, einem Target und einem Snapshot Key, die zusammen den Tagging Key ergeben und einem Timestamp (Zeitstempel). Bis auf Letzteren werden laut Dokumentation alle Schlüssel lokal auf Seite des Clients erstellt und gespeichert. Der Zeitstempel hingegen wird in einem Signing Server generiert und dort hinterlegt. Der Offline Key ist zum Erstellen der Tagging-Schlüssel nötig und gehört zu einer Person oder Organisation. Da er zentral für alle anderen Schritte ist und ein Verlust mit erheblichen Aufwand zur Wiederherstellung verbunden, sollte er an einem sicheren Ort gespeichert werden und zudem wird eine Sicherungskopie empfohlen.
Der Tagging Key ist mit einem Image Repository verbunden und alle, die ihn besitzen, sind in der Lage, Tags im Repository zu signieren. Tatsächlich ist das Verfahren so angelegt, dass Publisher den Tag-Teil eines Images signieren (es kann also auch Images geben, die einen signierten und einen nicht signierten Tag aufweisen). Der Zeitstempel hingegen kommt beispielsweise zum Schutz vor Replay-Angriffen zum Einsatz, da er verhindert, dass bereits signierte, aber veraltete Versionen einer Software genutzt werden, die in späteren Versionen behobene Schwachstellen aufweisen. Letztere könnten Angreifer für ihre Zwecke nutzen.
Um all das umsetzen zu können, haben die Entwickler ein Notary genanntes Programm in die Docker Engine integriert, das wiederum das Projekt The Update Framework nutzt. Bei Letzterem handelt es sich um eine Bibliothek, die Entwicklern helfen soll, ihre Software-Update-Systeme abzusichern. Mehr Informationen zu diesen Hilfsmitteln und der Funktionsweise von Docker Content Trust sind in der Bekanntmachung zu finden.