1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
|
---
title: Expect-CT
slug: Web/HTTP/Headers/Expect-CT
tags:
- HTTP
- Reference
- Referenz
- Security
- Sicherheit
- Verschlüsselung
- header
translation_of: Web/HTTP/Headers/Expect-CT
---
<p>{{HTTPSidebar}}</p>
<p><span class="seoSummary">Der <code>Expect-CT</code> HTTP Header erlaubt es Webseiten, die Anforderungen der <a href="/en-US/docs/Web/Security/Certificate_Transparency">Certificate Transparency</a> (kurz: CT) zu aktivieren und/oder zu erzwingen, um so der (unbemerkten) Verwendung falsch ausgestellter Zertifikate vorzubeugen.</span></p>
<p>CT-Anforderungen können erfüllt werden über einen der nachstehenden Mechanismen:</p>
<ul>
<li>X.509v3 certificate extension: signierte SCTs (SCT=<em>signed certificate timestamp)</em> werden direkt in das Zertifikat einbettet</li>
<li>Eine TLS-Erweiterung des Typs <code>signed_certificate_timestamp</code> wird während des handshakes gesendet</li>
<li>OCSP stapling (über die <code>status_request</code> TLS-Erweiterung) und das Bereitstellen einer <code>SignedCertificateTimestampList</code> mit einem oder mehreren SCTs</li>
</ul>
<div class="note">
<p>Wenn eine Webseite die Verwendung des <code>Expect-CT</code> Headers aktiviert, fordert sie den Browser darüber auf, jedes im Zusammenhang mit der Webseite verwendete Zertifikat in <strong><a href="https://www.certificate-transparency.org/known-logs">öffentlichen CT Protokollen</a> </strong>nachzuschlagen.</p>
</div>
<div class="note">
<p>Browsers <strong>ignorieren</strong> den <code>Expect-CT</code> Header bei HTTP-Verbindungen; der Header hat nur bei HTTPS-Verbindungen einen Effekt.</p>
</div>
<div class="note">
<p><code>Expect-CT</code> wird im Juni 2021 voraussichtlich obsolet werden. Seit Mai 2018 ist es erforderlich, dass neue ausgestellte Zertifikate standardmäßig SCTs unterstützen. Ältere Zertifikate, vor März 2018 ausgestellt, können eine Gültigkeitsdauer von 39 Monaten haben, wodurch sie alle im Juni 2021 ablaufen.</p>
</div>
<table class="properties">
<tbody>
<tr>
<th scope="row">Header type</th>
<td>{{Glossary("Response header")}}</td>
</tr>
<tr>
<th scope="row">{{Glossary("Forbidden header name")}}</th>
<td>yes</td>
</tr>
</tbody>
</table>
<h2 id="Syntax">Syntax</h2>
<pre>Expect-CT: report-uri="<uri>",
enforce,
max-age=<age></pre>
<h2 id="Direktiven"> Direktiven</h2>
<dl>
<dt><code>max-age</code></dt>
<dd>
<p>Die Anzahl der Sekunden nach dem Empfang des <code>Expect-CT</code>-Header-Feldes, während der der User-Agent den Host der empfangenen Nachricht als bekannten <code>Expect-CT</code> Host betrachten sollte.</p>
<p>Falls ein Cache einen Wert enthält der größer ist, als dieser abbilden kann oder seine nachfolgenden Berechnungen überlaufen, dann verwendet der Cache automatisch den für ihn größtmöglichen positiven Ganzzahlwert (integer) bzw. 2,147,483,648 (2<sup>31</sup>).</p>
</dd>
<dt><code>report-uri="<uri>"</code> {{optional_inline}}</dt>
<dd>
<p>Die URI wohin der Browser <code>Expect-CT</code> Fehler melden soll.</p>
In Kombination mit der <code>enforce</code> Direktive wird die Konfiguration als sogenannte "enforce-and-report" (erzwinge und melde) gewertet, wodurch dem user agent signalisiert wird, dass sowohl die Einhaltung der Certificate Transparency Richtlinien erzwungen als auch jede Verletzung berichtet werden soll.</dd>
<dt><code>enforce</code> {{optional_inline}}</dt>
<dd>
<p>Verlangt vom user agent, dass die Einhaltung der Certificate Transparency Richtlinien erzwungen werden soll (anstatt diese nur zu berichten). Gleichzeitig verweigert der user agent zukünftige Verbindungen, die gegen die Certificate Transparency Richtlinien verstoßen.</p>
<p>In Kombination mit den Direktiven <code>enforce</code> und <code>report-uri</code> wird die Konfiguration als sogenannte "enforce-and-report" (erzwinge und melde) gewertet, wodurch dem user agent signalisiert wird, dass sowohl die Einhaltung der Certificate Transparency Richtlinien erzwungen als auch jede Verletzung berichtet werden soll.</p>
</dd>
</dl>
<h2 id="Beispiel">Beispiel</h2>
<p>Dieses Beispiel legt fest, dass die Certificate Transparency für den Zeitraum von 24 Stunden erzwungen werden soll und jede Verletzung in dem Zusammenhang wird gemeldet an die angegebene URL unter <code>foo.example</code>.</p>
<pre>Expect-CT: max-age=86400, enforce, report-uri="https://foo.example/report"</pre>
<h2 id="Hinweise">Hinweise</h2>
<p>Root CAs, die manuell als vertrauenswürdig festgelegt werden, übersteuern und verhindern <code>Expect-CT</code> Berichte/Durchsetzung.</p>
<p>Browser merken sich eine <code>Expect-CT</code> Richtlinie nicht, außer eine Webseite hat bewiesen, dass sie Zertifikate bereitstellt, die den Certificate Transparency Anforderungen genügen. Browser implementieren ihre eigenen Modelle darüber, welche CT-Protokolle diese für die Bewertung der Vertrauenswürdigkeit heranziehen.</p>
<p>Google Chrome beispielsweise erzwingt eine <code>Expect-CT</code> Richtlinie nur für einen Zeitraum von 10 Wochen nach dem Build Datum.</p>
<h2 id="Spezifikationen">Spezifikationen</h2>
<table class="standard-table">
<thead>
<tr>
<th scope="col">Specification</th>
<th scope="col">Title</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="https://tools.ietf.org/html/draft-ietf-httpbis-expect-ct-08">Internet Draft</a></td>
<td>Expect-CT Erweiterung für HTTP</td>
</tr>
</tbody>
</table>
<h2 id="Browser_Unterstützung">Browser Unterstützung</h2>
<div class="hidden">Diese Kompatibilitätstabelle auf dieser Seite wird aus strukturierten Daten erstellt. Wenn du an diesen Daten mitwirken möchtest, besuche bitte die URL <a href="https://github.com/mdn/browser-compat-data">https://github.com/mdn/browser-compat-data</a> und sende uns einen Pull Request.</div>
<p>{{Compat("http.headers.Expect-CT")}}</p>
|