ChromeでGmailにアクセスしているときに、アドレスバーのロックアイコンをクリックして接続タブに移動すると、「サーバーから証明書の透過性情報が提供されませんでした」というメッセージが表示されます(Chromeの前に= 45、メッセージは「このWebサイトのIDはGoogle Internet Authority G2によって検証されていますが、公的な監査記録はありません」として表示されました。
証明書に公開監査記録がないというのはどういう意味ですか?公的監査記録のない証明書を使用しているサイトの特定の脅威は、公的監査記録のある証明書を使用しているサイトにはないのですか?
注:証明書がないためにここにいる場合Chromeから信頼されていますが、これは理由ではありません。 Chromeは、CT情報がなくても証明書を信頼します。証明書が信頼されていない場合は、見逃している可能性のある追加の要因があります。
これは Certificate Transparency の概念に関係しています。
現在、ブラウザーは次の4つの条件が満たされている場合に証明書を信頼します:(a)証明書が信頼できるCAによって署名されている、(b)現在の時間が証明書の有効期間内である(notBefore
とnotAfter
の間)、(c )証明書も署名証明書も失効しておらず、最後に(d)証明書が目的のURLのドメイン名と一致している。
しかし、これらの規則は、虐待の扉を開いたままにします。信頼されたCAは、本来持ってはならない人々に証明書を発行できます。これには、侵害されたCA( DigiNotar など)と Trustwave のようなCAが含まれ、SSLトラフィックの中間者傍受の実行に使用するために少なくとも1つの中間署名証明書を発行します。 CAの失敗のキュレーションされた履歴は、CAcertの CAとPKIに対するリスクと脅威イベントの履歴 で確認できます。
ここで重要な問題は、CAがこれらの証明書を秘密裏に発行することです。実際に証明書を確認するまで、TrustwaveまたはDigiNotarが不正な証明書を発行したことはわかりません。この場合、あなたはおそらく実際に実行できる人物ではなく、加害者の標的です。実際の監査。悪用や間違いを防ぐために、CAは署名した証明書の履歴を作成する必要がありますpublic。
これに対処する方法は、発行された証明書のログを作成することです。これは発行者が保守することも、他の誰かが保守することもできます。ただし、重要な点は、(a)ログは編集できず、append新しいエントリのみが可能であり、(b)time証明書がログに追加されたことは、適切なタイムスタンプによって検証されます。もちろん、改ざんを防ぐためにすべてが暗号で保証されており、一般の人はログの内容を見て、本来持ってはならないはずのドメインに対して証明書が発行されているかどうかを確認できます。
ブラウザーが、証明書にあるはずのはずなのに(---)あるが、そうでない、またはログにはあるが何かが一致しない(タイムスタンプが間違っているなど)証明書を見つけた場合、その後、ブラウザは適切なアクションを実行できます。
Chromeで表示しているのは、表示している証明書の公開可聴ログが存在するかどうかを示しています。存在する場合、Chromeは、適切なログエントリがいつ作成されたかを確認することもできます。
Googleは、「既知のログ」のリストを維持しています 彼らのサイトで 。これを書いている時点では、Google、Digicert、Izenpe、およびCertlyによって維持されるログがあり、それぞれが任意の数のCAの監査証跡を維持できます。
Chrome team 示されています 2015年1月1日以降に発行されたEV証明書はすべて、EVと見なされるためのパブリック監査証跡を持っている必要があります。EV証明書の取り扱い経験が得られた後監査ログが適用された場合、すべての証明書発行者へのロールアウトが続行されます。
Googleは証明書の透明性検索フォームを標準の透明性レポートに追加しました。つまり、気になるドメインをクエリして、それらのドメインのどの証明書が透明性ログに表示されるかを確認できます。これにより、たとえば、CAが協力していると想定して、ドメインで現在有効な証明書を確認できます。
ここで探してください: https://www.google.com/transparencyreport/https/ct/
証明書が更新されたときに警告する特定のドメイン名をtrackしたい場合は、ログを直接追跡する必要があることに注意してください。このフォームは、アラートを生成するためではなく、特定の時点のクエリを実行するために役立ちます。
これはGoogleが作成した Certificate Transparency というプロジェクトで、SSL証明書システムの欠陥を修正しようとしています。
基本的に3つの主要な目標があります。 ( http://www.certificate-transparency.org/what-is-ct から取得)
ソース: http://www.certificate-transparency.org/certificate-transparency-in-chrome
2015年1月1日以降、すべてのEV証明書には公開監査記録(署名済み証明書のタイムスタンプ)が必要です。これらのレコードを含める最も一般的な方法は、埋め込みSCTを使用することです。この方法では、証明書ファイル自体に新しい証明書拡張/ OID(1.3.6.1.4.1.11129.2.4.2)が含まれています。
OVおよびDV証明書の場合、CAに証明書をCTログに追加するように要求できます。 DigiCertがこれを行うことを知っています。最終的には、これらの証明書タイプでもCTを有効にする必要がある可能性があります。
SCTを埋め込むには、CAが証明書に対して証明書を有効にした後、パブリック監査レコードを取得する証明書を再発行する必要があります。
Chrome=証明書が「公的な監査記録を持っていない」と報告した場合、それはどういう意味ですか?
タイラーはメッセージとCTを説明するのに素晴らしい仕事をしたと思うので、それを再ハッシュする必要はありません。
テストサイトに対する@Colonel Panicのコメントに基づいて、エンドエンティティ(サーバー)証明書がどのように見えるかを次に示します。注:正しい証明書を取得するには、TLS 1.0(以上)およびサーバー名表示を使用する必要があります。それは -servername
以下のオプション。
$ openssl s_client -connect embed.ct.digicert.com:443 -tls1 -servername embed.ct.digicert.com | \
openssl x509 -text -noout
depth=1 C = US, O = DigiCert Inc, CN = DigiCert SHA2 Secure Server CA
verify error:num=20:unable to get local issuer certificate
Certificate:
Data:
Version: 3 (0x2)
Serial Number:
03:e0:aa:80:19:13:06:8a:28:73:f0:24:29:3e:e4:61
Signature Algorithm: sha256WithRSAEncryption
Issuer: C=US, O=DigiCert Inc, CN=DigiCert SHA2 Secure Server CA
Validity
Not Before: Nov 13 00:00:00 2014 GMT
Not After : Nov 18 12:00:00 2015 GMT
Subject: C=US, ST=Utah, L=Lehi, O=DigiCert, Inc., CN=embed.ct.digicert.com
Subject Public Key Info:
Public Key Algorithm: rsaEncryption
Public-Key: (2048 bit)
Modulus:
00:9a:64:73:61:53:66:b8:aa:80:c7:cc:53:67:6a:
df:da:a9:b1:6a:c5:53:63:55:5f:14:4c:b3:27:d1:
3c:e4:0a:1a:e7:16:48:bc:15:46:7e:63:e8:27:3c:
c5:28:bd:79:cf:34:d5:9a:67:1e:0c:27:6e:ec:00:
5e:69:38:5b:a7:16:4f:b9:09:ec:fc:7e:f2:41:b7:
f9:54:f4:6c:c3:22:a6:f5:99:f4:be:9d:64:26:75:
9e:b2:b9:16:d7:f5:51:9f:53:ce:74:ca:d6:d6:7a:
4a:d4:4d:0e:4d:73:93:30:3c:b9:b8:1d:a0:d8:94:
8c:59:7e:82:a4:4c:82:fc:c3:73:7f:b1:56:28:4e:
b5:f7:73:53:ac:7b:30:a4:bc:b9:6c:c0:b6:67:0d:
19:5e:40:22:11:11:8c:6d:3a:87:47:08:e6:5c:7b:
17:7c:64:7a:a1:ff:8c:7c:37:b6:b7:91:2c:c2:90:
7e:cc:48:1f:57:1e:f9:db:d4:ac:cf:d9:2b:60:ff:
13:2d:88:c5:7e:d8:eb:ec:ed:85:d7:9e:f9:56:32:
ca:c1:6b:24:64:9f:63:ba:83:ee:a1:85:4a:e3:ad:
45:8c:92:95:3a:e0:80:91:9b:60:b5:75:88:86:4e:
0f:81:8c:b5:f4:77:fd:e5:f3:36:f6:33:d6:2b:a0:
c4:91
Exponent: 65537 (0x10001)
X509v3 extensions:
X509v3 Authority Key Identifier:
keyid:0F:80:61:1C:82:31:61:D5:2F:28:E7:8D:46:38:B4:2C:E1:C6:D9:E2
X509v3 Subject Key Identifier:
88:4F:83:16:87:AD:AE:1E:FF:04:4A:79:66:92:C6:9F:62:69:4F:B1
X509v3 Subject Alternative Name:
DNS:embed.ct.digicert.com
X509v3 Key Usage: critical
Digital Signature, Key Encipherment
X509v3 Extended Key Usage:
TLS Web Server Authentication, TLS Web Client Authentication
X509v3 CRL Distribution Points:
Full Name:
URI:http://crl3.digicert.com/ssca-sha2-g3.crl
Full Name:
URI:http://crl4.digicert.com/ssca-sha2-g3.crl
X509v3 Certificate Policies:
Policy: 2.16.840.1.114412.1.1
CPS: https://www.digicert.com/CPS
Authority Information Access:
OCSP - URI:http://ocsp.digicert.com
CA Issuers - URI:http://cacerts.digicert.com/DigiCertSHA2SecureServerCA.crt
X509v3 Basic Constraints: critical
CA:FALSE
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 : Nov 13 16:57:03.632 2014 GMT
Extensions: none
Signature : ecdsa-with-SHA256
30:45:02:20:06:14:6A:E3:6D:0F:84:5D:6A:98:E7:29:
94:80:8B:F2:A4:23:85:68:4E:F9:BC:50:7C:FF:7B:94:
EB:20:54:82:02:21:00:91:63:83:FD:F6:31:5E:38:08:
AF:A7:5E:00:B7:0B:9B:1F:8B:FD:4D:7E:49:3C:43:E6:
64:E5:4B:F9:60:D7:89
Signed Certificate Timestamp:
Version : v1(0)
Log ID : 68:F6:98:F8:1F:64:82:BE:3A:8C:EE:B9:28:1D:4C:FC:
71:51:5D:67:93:D4:44:D1:0A:67:AC:BB:4F:4F:FB:C4
Timestamp : Nov 13 16:57:03.619 2014 GMT
Extensions: none
Signature : ecdsa-with-SHA256
30:45:02:20:61:4F:69:89:80:6A:62:2D:8E:A2:D0:24:
A5:E2:1D:74:67:51:77:C1:9B:DE:99:DE:16:56:2B:02:
77:A8:25:49:02:21:00:D3:41:6C:5D:88:40:F0:7A:FE:
E0:25:09:86:71:63:86:49:54:DD:96:E4:B5:9B:4A:84:
65:A9:25:12:F1:B7:E0
Signature Algorithm: sha256WithRSAEncryption
62:0c:d1:51:08:8a:a3:d1:df:bc:53:ba:e9:58:67:41:ea:5f:
e3:51:f2:0b:9d:24:b4:77:6a:cf:96:ff:c5:ce:1c:55:1e:77:
8a:49:46:7d:19:ef:52:4f:d3:24:b1:f2:95:60:67:40:d4:d1:
f4:27:e4:66:55:45:c6:a5:51:a6:87:d0:09:af:f6:48:9b:df:
24:c9:28:ad:47:b9:f6:a3:86:cb:64:64:3d:90:92:0e:94:f7:
d2:8b:d6:79:b4:df:f2:3f:f5:6e:ea:08:b3:b0:37:87:a3:30:
a7:f1:db:b7:86:b2:39:64:35:93:ee:5f:7b:01:51:5f:b1:e1:
e0:d1:5d:a6:e6:a3:53:3f:66:97:16:8f:18:c4:fa:fc:8e:85:
79:a1:95:7b:69:0b:f5:a4:92:1f:04:cf:ed:f6:95:e3:8f:b4:
2a:6a:be:0c:a2:b6:53:99:5d:50:78:23:1c:fb:cb:2e:1d:be:
b5:8d:83:2e:08:96:f8:c9:be:96:13:ed:61:0f:cf:57:44:ff:
3a:d5:10:b0:bd:08:1f:27:c4:cf:97:17:e8:6a:62:bc:6d:e9:
64:39:a0:36:79:d6:02:84:b7:47:26:9b:5d:b1:92:aa:f1:36:
1a:31:9e:27:f2:25:54:89:17:ac:56:54:b0:e0:41:67:e4:b8:
7b:e0:2c:88
プライベートPKIを実行している場合に、これらのいずれかを実際に作成する方法はわかりません。 OpenSSLではOIDがサポートされています。
$ grep -R "1.3.6.1.4.1.11129.2.4.2" *
crypto/objects/obj_dat.h:951, /* OBJ_ct_precert_scts 1 3 6 1 4 1 11129 2 4 2 */
crypto/objects/objects.txt:1 3 6 1 4 1 11129 2 4 2 : ct_precert_scts : CT Precertificate SCTs
そして:
$ grep -R ct_precert_scts *
crypto/objects/obj_dat.h:0x2B,0x06,0x01,0x04,0x01,0xD6,0x79,0x02,0x04,0x02,/* [6191] OBJ_ct_precert_scts */
crypto/objects/obj_dat.h:{"ct_precert_scts","CT Precertificate SCTs",NID_ct_precert_scts,10,
crypto/objects/obj_dat.h:951, /* "ct_precert_scts" */
crypto/objects/obj_dat.h:951, /* OBJ_ct_precert_scts 1 3 6 1 4 1 11129 2 4 2 */
crypto/objects/obj_mac.num:ct_precert_scts 951
crypto/objects/objects.txt:1 3 6 1 4 1 11129 2 4 2 : ct_precert_scts : CT Precertificate SCTs
crypto/x509v3/v3_scts.c: {NID_ct_precert_scts, 0, NULL,
include/openssl/obj_mac.h:#define SN_ct_precert_scts "ct_precert_scts"
include/openssl/obj_mac.h:#define LN_ct_precert_scts "CT Precertificate SCTs"
include/openssl/obj_mac.h:#define NID_ct_precert_scts 951
include/openssl/obj_mac.h:#define OBJ_ct_precert_scts 1L,3L,6L,1L,4L,1L,11129L,2L,4L,2L
したがって、プレゼンテーション/ディスプレイのサポートがありますが、[〜#〜] no [〜#〜]の例OpenSSLの自己文書化コードでそれを使用する方法の。通常、セルフドキュメンテーションは<openssl src>/apps
サブコマンドでの機能の使用によるディレクトリ。
OpenSSLメーリングリストには、それに関する未解決の質問があります。 サーバー証明書にCT Precertificate SCTを追加する方法 。