CT1において、SCT2をクライアントに提供する方法は3つあります。
1. X.509 v3 Extensionによる方法
これは、いろいろなウェブサイトのサーバー証明書で見ることができます。証明書自体にSCTが埋め込まれているものです。
例えばtwitter.com
の現時点の証明書であれば以下の様な感じで書かれていました。
CT Precertificate SCTs: Signed Certificate Timestamp: Version : v1(0) Log ID : A4:B9:09:90:B4:18:58:14:87:BB:13:A2:CC:67:70:0A: 3C:35:98:04:F9:1B:DF:B8:E3:77:CD:0E:C8:0D:DC:10 Timestamp : Jul 17 19:51:00.991 2018 GMT Extensions: none Signature : ecdsa-with-SHA256 30:45:02:21:00:8B:F9:25:DD:54:D4:8F:0C:F6:61:1E: 9C:10:3D:12:BA:C5:07:1C:E5:74:9D:AE:B1:E5:A1:0A: 95:EB:10:E4:19:02:20:23:7B:A2:00:02:68:8A:80:00: 20:97:B6:11:BD:16:0B:B6:E2:EF:EC:EC:1E:F7:0B:E3: E3:9F:B3:8B:51:C8:30 Signed Certificate Timestamp: Version : v1(0) Log ID : 87:75:BF:E7:59:7C:F8:8C:43:99:5F:BD:F3:6E:FF:56: 8D:47:56:36:FF:4A:B5:60:C1:B4:EA:FF:5E:A0:83:0F Timestamp : Jul 17 19:51:01.145 2018 GMT Extensions: none Signature : ecdsa-with-SHA256 30:45:02:20:6E:08:9D:A7:60:20:E5:B9:85:22:FD:4E: BE:9C:24:DB:6F:28:D6:BB:FC:52:75:9C:98:B1:32:91: 9E:8B:36:26:02:21:00:FF:6E:5A:E9:72:34:F0:03:4B: 15:BF:96:1C:C0:ED:9B:2F:33:18:0B:E8:D9:BC:86:C5: 0A:4C:89:67:2D:BF:8A
2.TLS Extensionによる方法
TLSネゴシエーションのServer Hello
の際に、SCTを提供する方法です。
google.co.jp
にHTTPSでアクセスしたときのTLSネゴシエーションをWiresharkで見てみると以下のような形で
SCTが書かれていました。
TLS Extensionによる方法でSCTを提供する場合、証明書に埋め込む必要がないので、
1の方法と比べて、Precertificate
がいらないメリットがあるのかなと思います。
認証局から証明書(SCTが含まれない)を発行してもらい、CTログサーバーには 自分で登録し、受領したSCTを自身のウェブサーバーに設定して公開すればよいからです。
CTログサーバーに登録する方法としては、例えばSectigo(COMODO)が下記のように公開しています。
上記の手順に従うと、手動でMammoth(Sectigoが運用するCTログサーバー)に登録することができそうです。
3.OCSP Stapling
TLS通信を行う際の、OCSP StaplingにてSCTを提供する方法がある様なのですが 実例を知らない為どのように実際に見えるのかわかりません。