3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Mac環境のOpenSSLでQiitaサイトのTLSセキュリティ要件を確認してみる

Posted at

背景

  • macOSには既定で、OpenSSLがインストールされている。

  • qiita.comへのs_client接続で、TLS要件を確認してみる。

  • 確かめたいTLSセキュリティ要件は以下の通り。

    1. ハンドシェイクで選択されたTLSバージョンがTLSv1.2以上であること。
    2. 弱いTLS/SSLバージョンでの接続が禁止されていること。
    3. ルート証明書が妥当であること。
    4. サーバ認証がルートCA,中間CAを含む多階層の認証で行われること。
    5. クライアント認証が行われていること。
    6. サーバ証明書のRevocationチェック(OCSPプロトコル:RFC6960, RFC6961)が行われること。
  • Revocationチェックは、CRLの代替であるOCSP(https://ja.wikipedia.org/wiki/Online_Certificate_Status_Protocol
    )応答で良い。

考察

  • openssl s_clientで、httpsサイトのセキュリティ要件の大半は確認可能。
    • 余談だが、qiitaサイトではrevocationチェックがなく、msサイトではrevocationチェックが行われる。
  • opensslでのssl3, ssl2, ssl1でのs_client接続は、もはや非対応となった。tls1より下位プロトコルでの接続禁止を確かめることはできない。
  • 一般的なhttpsサイトではクライアント認証はないので、認証状況の確認には、別途、検証サイトを構築する必要がある。 (FTPSサイトなどが適当か? 後日検証予定)

環境

  • macOS 10.13.4
  • OpenSSL 2.2.7

OpenSSL起動/version確認/終了


$ openssl
OpenSSL> version
LibreSSL 2.2.7
OpenSSL> bye
TetsuonoMacBook-ea:~ thetsuthetsu$ 

例:qiita.comへのSSL接続



$ openssl s_client -connect qiita.com:https -CApath /etc/ssl/certs -status
depth=4 C = US, O = "Starfield Technologies, Inc.", OU = Starfield Class 2 Certification Authority
verify return:1
depth=3 C = US, ST = Arizona, L = Scottsdale, O = "Starfield Technologies, Inc.", CN = Starfield Services Root Certificate Authority - G2
verify return:1
depth=2 C = US, O = Amazon, CN = Amazon Root CA 1
verify return:1
depth=1 C = US, O = Amazon, OU = Server CA 1B, CN = Amazon
verify return:1
depth=0 CN = qiita.com
verify return:1
CONNECTED(00000005)
OCSP response: no response sent
---
Certificate chain
 0 s:/CN=qiita.com
   i:/C=US/O=Amazon/OU=Server CA 1B/CN=Amazon
 1 s:/C=US/O=Amazon/OU=Server CA 1B/CN=Amazon
   i:/C=US/O=Amazon/CN=Amazon Root CA 1
 2 s:/C=US/O=Amazon/CN=Amazon Root CA 1
   i:/C=US/ST=Arizona/L=Scottsdale/O=Starfield Technologies, Inc./CN=Starfield Services Root Certificate Authority - G2
 3 s:/C=US/ST=Arizona/L=Scottsdale/O=Starfield Technologies, Inc./CN=Starfield Services Root Certificate Authority - G2
   i:/C=US/O=Starfield Technologies, Inc./OU=Starfield Class 2 Certification Authority
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIFaDCCBFCgAwIBAgIQA8SkCl1LNmkM+7KLD3oRQTANBgkqhkiG9w0BAQsFADBG
MQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRUwEwYDVQQLEwxTZXJ2ZXIg
Q0EgMUIxDzANBgNVBAMTBkFtYXpvbjAeFw0xODA0MjkwMDAwMDBaFw0xOTA1Mjkx
MjAwMDBaMBQxEjAQBgNVBAMTCXFpaXRhLmNvbTCCASIwDQYJKoZIhvcNAQEBBQAD
ggEPADCCAQoCggEBAKs+3UigdedoNqX/b62DHJIZ3jntxZwl5RA5KW8pOvNKZNVW
BttFsGhy2S+A+3BMDkPd5K+z6aMsh+is0ZJUWpvPX73/BBpVqzkCPUT2L8qhhIxj
bXJ1uWkfajCaiv788o8jLLNkoajSzDnuGEhoYuENw7JhGhkKypPCGU6W1UFWMzX5
nrcmlC0DCw0DilSYzDZOF61cTZHRXlcZTfs86knuctw8yGkq7uGuT3FXPvAVxx7X
aX4GTe2cjcqqzmTPNDhVznBRNexvNIdJk2KJ+l4DlFB3tPt/kjavNe3VVe5ebZFr
2movnCkaW6ARwFuhf6i2Lbn+KAukjhcpLhBdO6MCAwEAAaOCAoIwggJ+MB8GA1Ud
IwQYMBaAFFmkZgZSoHuVkjyjlAcnlnRb+T3QMB0GA1UdDgQWBBTaOt1gsM5Ct/iS
nZHW8khK2QsYXDAhBgNVHREEGjAYgglxaWl0YS5jb22CCyoucWlpdGEuY29tMA4G
A1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAUBggrBgEFBQcDAQYIKwYBBQUHAwIwOwYD
VR0fBDQwMjAwoC6gLIYqaHR0cDovL2NybC5zY2ExYi5hbWF6b250cnVzdC5jb20v
c2NhMWIuY3JsMCAGA1UdIAQZMBcwCwYJYIZIAYb9bAECMAgGBmeBDAECATB1Bggr
BgEFBQcBAQRpMGcwLQYIKwYBBQUHMAGGIWh0dHA6Ly9vY3NwLnNjYTFiLmFtYXpv
bnRydXN0LmNvbTA2BggrBgEFBQcwAoYqaHR0cDovL2NydC5zY2ExYi5hbWF6b250
cnVzdC5jb20vc2NhMWIuY3J0MAwGA1UdEwEB/wQCMAAwggEEBgorBgEEAdZ5AgQC
BIH1BIHyAPAAdgC72d+8H4pxtZOUI5eqkntHOFeVCqtS6BqQlmQ2jh7RhQAAAWMR
AzreAAAEAwBHMEUCIEbwxneZSpucK7eV8PqTMvBaoFg0e35GXA3hqrADS8vEAiEA
hT49YdyzmujNcx7nf4HN4QbdUzE8XGjY0S7GRirpHOQAdgCHdb/nWXz4jEOZX73z
bv9WjUdWNv9KtWDBtOr/XqCDDwAAAWMRAzrRAAAEAwBHMEUCIFVAVSOPORu+fEO3
BNUbEiZ8xjJSNWIv6PRtXLZCqU0HAiEA7UFA2EL5sjQFRD+At9j4BND0woi7geWr
X7wJJ1PPolQwDQYJKoZIhvcNAQELBQADggEBAHX4PVsOqFK1kiHKFx7f0TSB7blO
EAcZlTf5zpqCPLOLVmb98MKGBAgXHBBMiUXhioimhSdfuNMJWUw6G8ra0AF8e3bu
79I7Bm/NqugLfnKfc+SHKm9tCvo28aywjlVbsb36cmo2i9HpqAiZv6n2sNtYRUwR
HOAYwSt02O4Db4A4bX9cevCnTwKz8jSG0aPv+fthnaRej2C+FxDs071o7eQ3oUvZ
LtFgpd6hK5vjiFWEInSz6FPcJyfPXDSt00uOtJESeGwtJNEPEGyLZxKG1MiAXYPb
1wRRUqGj0TPHaNq8++1DCfVZ6vNNRyypWlmR+atX/5fj4bEGfaDSZLbLilg=
-----END CERTIFICATE-----
subject=/CN=qiita.com
issuer=/C=US/O=Amazon/OU=Server CA 1B/CN=Amazon
---
No client certificate CA names sent
---
SSL handshake has read 5487 bytes and written 444 bytes
---
New, TLSv1/SSLv3, Cipher is ECDHE-RSA-AES128-GCM-SHA256
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
    Protocol  : TLSv1.2
    Cipher    : ECDHE-RSA-AES128-GCM-SHA256
    Session-ID: E07CE4E3650FAB02607D6B5885FBAAC88D9713C4F62877DCACD15A89FBDFED85
    Session-ID-ctx: 
    Master-Key: 9CEF65FD19B1AD014E59A930AE6C60503B899E2B82585A1B4CCDDA03D90814E724EA53C14AD872744A7F226AF782CF8C
    TLS session ticket lifetime hint: 43200 (seconds)
    TLS session ticket:
    0000 - 91 23 7d bd f0 59 c5 3e-dc ea 5c bf 2f 98 11 35   .#}..Y.>..\./..5
    0010 - 07 f8 1b 6f 41 d0 ff ec-2c e2 22 13 35 2a e3 aa   ...oA...,.".5*..
    0020 - f5 d9 3b e3 e1 22 71 fc-e0 91 8e 24 a0 da d2 8f   ..;.."q....$....
    0030 - ba 7f 6f c6 24 00 45 b1-42 4d b2 c4 19 80 57 95   ..o.$.E.BM....W.
    0040 - 59 63 b8 1d 6d c2 94 c9-a4 8d 5a 01 61 b0 9a 18   Yc..m.....Z.a...
    0050 - 1e e6 04 63 f6 3a be 5f-7f a6 24 a6 ca 35 9d 07   ...c.:._..$..5..
    0060 - b3 21 b2 52 ed 38 16 8b-44 22 e9 54 b2 a2 86 d6   .!.R.8..D".T....
    0070 - 10 a7 0e 9d da 60 7c 1c-a0 bd 73 9e 35 49 6b 0c   .....`|...s.5Ik.
    0080 - 45 53 75 e1 13 84 90 05-f5 f3 59 6d 29 a6 5b dd   ESu.......Ym).[.
    0090 - 76 01 f2 82 82 c9 7c 7e-14 1e cc c0 99 31 3c 97   v.....|~.....1..
    00a0 - 66 c2 19 8a dc 0e e8 0f-69 b9 81 3f ca 53 74 92   f.......i..?.St.

    Start Time: 1536410060
    Timeout   : 300 (sec)
    Verify return code: 0 (ok)
---

要件1. ハンドシェイクで選択されたTLSバージョン

  • SSL-Session: Protocol: TLSv1.2

要件2. 弱いTLS/SSLバージョンでの接続不可

TLSv1.1での接続不可 (オプション -tls1_1) : OK


$ openssl s_client -connect qiita.com:https -CApath /etc/ssl/certs -tls1_1 -status | head
write:errno=54
CONNECTED(00000005)
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 0 bytes and written 0 bytes
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported

TLSv1での接続不可 (オプション -tls1) : OK


TetsuonoMacBook-ea:~ thetsuthetsu$ openssl s_client -connect qiita.com:https -CApath /etc/ssl/certs -tls1 -status | head
write:errno=54
CONNECTED(00000005)
---
no peer certificate available
---
No client certificate CA names sent
---
SSL handshake has read 0 bytes and written 0 bytes
---
New, (NONE), Cipher is (NONE)
Secure Renegotiation IS NOT supported

SSLv以下での接続不可  : 不明

  • openssl: -ssl3, -ssl2オプションの廃止

要件3. ルート証明書が正しいこと

  • Certificate chainの証明書連鎖を確認する。
    • チェーン0(s) : CNがサイト名に一致すること。qiita.comで正しい。
    • チェーン3(s) : ルート証明書がStarfield Class 2 Certification Authorityから発行されている。
          

要件4. サーバ認証がルートCA,中間CAを含む多階層の認証で行われること。

  • 以下の中間CA2つを含む4階層の認証が行われている。
    • depth=1 C = US, O = Amazon, OU = Server CA 1B, CN = Amazon
    • depth=2 C = US, O = Amazon, CN = Amazon Root CA 1

要件5. クライアント認証の有無。

  • 「No client certificate CA names sent」の出力通り、クライアント認証は行われていない。
  • 一般的なHTTPSサイトなので当然。

要件6. サーバ認証時、証明書のRevocationチェックを行うこと。

  • OCSP response: no response sent : 要件を満たさない。
  • 参考) ocsp応答のあるサイト「www.office.com」 への接続例

$ openssl s_client -connect www.office.com:https -CApath /etc/ssl/certs -status | head
depth=2 C = IE, O = Baltimore, OU = CyberTrust, CN = Baltimore CyberTrust Root
verify return:1
depth=1 C = US, ST = Washington, L = Redmond, O = Microsoft Corporation, OU = Microsoft IT, CN = Microsoft IT TLS CA 5
verify return:1
depth=0 CN = portal.office.com
verify return:1
CONNECTED(00000005)
OCSP response: 
======================================
OCSP Response Data:
    OCSP Response Status: successful (0x0)
    Response Type: Basic OCSP Response
    Version: 1 (0x0)
    Responder Id: 546D834E713BB4ED0E57829451B0BED494F9E833
    Produced At: Sep  6 12:59:18 2018 GMT
    Responses:
3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?