SSL Handshake

SAS 資訊安全 (9)

基本介紹

教學目標

初步了解 SAS 9 平台中進行 SSL Handshake 的基本概念。

重點概念

首先安全連線使用非對稱加密演算法進行金鑰交換(例如:RSA),使用對稱加密演算法進行機敏資料的加密(例如:AES),使用訊息驗證碼確認訊息的完整性(例如:SHA),使用壓縮演算法減少資料的傳輸。同時標準主要有 SSL 和 TLS,其中 SSL v3 已知為不安全,而 TLS v1.2 相對較安全,主要是採用 AES256 進行機敏資料的加密和採用 SHA256 進行資料完整性的確認。

接著安全連線主要會進行 SSL Handshake 的流程,分別為:

  1. 客戶端透過協定傳送 Hello 訊息、隨機數值、密碼套件清單和壓縮方法。
  2. 伺服器透過協定、隨機數值、密碼套件和壓縮方法傳送 Hello 訊息。
  3. 伺服器傳送公開金鑰的憑證。
  4. 伺服器傳送 Hello Done 訊息。
  5. 客戶端驗證伺服器,主要將會傳送公開金鑰憑證和加密在伺服器公開金鑰中的預先私密金鑰。
  6. 伺服器驗證客戶端,主要伺服器和客戶端將會建立共同私密金鑰。
  7. 客戶端傳送加密規格讓伺服器知道如何進行加密。
  8. 伺服器傳送加密規格讓客戶端知道如何進行加密。

其中 SSL 需要公開和私密金鑰配對,在進行 SSL Handshake 的初始階段時,伺服器將會傳送公開金鑰至客戶端,以及客戶端會傳送公開金鑰至伺服器,但是私密金鑰永遠不會發送至任何地方。在進行 SSL Handshake 的流程中,發送者將會透過配對金鑰中的私密金鑰對秘密進行加密,再由接收者使用配對金鑰中的另一個私密金鑰進行解密,一但 SSL Handshake 完成公開和私密配對的金鑰就不再被使用。此外,公開鑰對主要是儲存在憑證檔案中和私密金鑰主要是儲存在金鑰檔案中,為了傳送憑證,發送者必須要指出哪個公開憑證能夠存取私密金鑰,並且安全伺服器永遠傳送憑證至客戶端,客戶端也可能被要求傳送憑證至伺服器。

再來憑證如何被接收方進行驗證,主要會進行下述三件確認事項,分別為:

  1. 確認憑證沒有過期和被撤銷。
  2. 確認憑證中的通用名稱 (Common Name,CN) 將用於發於發送憑證的主機。
  3. 確認憑證中列出憑證頒發機構 (Certificate Authority,CA) 是已知和有效的。若是憑證中還有中繼憑證頒發機構也必須經過驗證,以利建立憑證鏈。

其中 SSL 主要使用憑證來描述使用的公開和私密配對金鑰,主要是使用 X.509 標準定義憑證中包括的訊息,像是通用名稱、公開金鑰、由憑證頒發機構所產生的簽章,以及憑證的格式主要有三種,分別為:

  1. DER (Distinguished Encoding Rules):主要是由 X.690 所定義的二進位檔案輸出。
  2. PEM (Privacy Enhanced Mail):主要是帶有 BEGIN 和 END 標記 Base64 編碼的 DER 檔案,同時一個憑證檔案中可以有許多的憑證。
  3. P12 (PKCS12):主要在檔案中同時具有公開金鑰和私密鑰的檔案格式,其中私密金鑰是被密碼所保護,同時在 Windows 平台上也被稱為 PFX 格式。

至於我們要如何查看憑證,則主要在網際網路選項中選擇「內容」->「憑證」進行查看和安裝憑證,以及可以透過 Microsoft Management Console (MMC) 工具安裝憑證,以利憑證儲存至所有的使用者中進行應用。請注意必須要確認所有人皆有權限存取機器中儲存的憑證檔案,憑證檔案儲存的路徑為「%ALLUSERSPROFILE%\Microsoft\Crypto\RSA\MachineKeys」。

最後我們可以透過 OpenSSL 的指令驗證客戶端進行 SSL handshake 的流程是否正確,指令為「openssl s_client -connect www.sas.com:443 -state」,其結果輸出為:

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
c:\Apache24\bin>openssl s_client -connect www.sas.com:443 -state
CONNECTED(00000148)
SSL_connect:before SSL initialization
SSL_connect:SSLv3/TLS write client hello
SSL_connect:SSLv3/TLS write client hello
SSL_connect:SSLv3/TLS read server hello
depth=1 C = US, O = DigiCert Inc, OU = www.digicert.com, CN = DigiCert SHA2 High Assurance Server CA
verify error:num=20:unable to get local issuer certificate
SSL_connect:SSLv3/TLS read server certificate
SSL_connect:SSLv3/TLS read server key exchange
SSL_connect:SSLv3/TLS read server done
SSL_connect:SSLv3/TLS write client key exchange
SSL_connect:SSLv3/TLS write change cipher spec
SSL_connect:SSLv3/TLS write finished
SSL_connect:SSLv3/TLS write finished
SSL_connect:SSLv3/TLS read change cipher spec
SSL_connect:SSLv3/TLS read finished
---
Certificate chain
0 s:/C=US/ST=North Carolina/L=Cary/O=SAS Institute Inc./CN=*.sas.com
i:/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert SHA2 High Assurance Server CA
1 s:/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert SHA2 High Assurance Server CA
i:/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert High Assurance EV Root CA
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIFQzCCBCugAwIBAgIQCBUFBAbEG2mfaYUuCY58SDANBgkqhkiG9w0BAQsFADBw
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
d3cuZGlnaWNlcnQuY29tMS8wLQYDVQQDEyZEaWdpQ2VydCBTSEEyIEhpZ2ggQXNz
dXJhbmNlIFNlcnZlciBDQTAeFw0xNTA0MjMwMDAwMDBaFw0xODA0MjcxMjAwMDBa
MGYxCzAJBgNVBAYTAlVTMRcwFQYDVQQIEw5Ob3J0aCBDYXJvbGluYTENMAsGA1UE
BxMEQ2FyeTEbMBkGA1UEChMSU0FTIEluc3RpdHV0ZSBJbmMuMRIwEAYDVQQDDAkq
LnNhcy5jb20wggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC4JccuNlsh
5qomSFWEfjZ2vxnCfWdTXeSVAdI8sf6OFVlCkAFk7615ATJdkU+d/5KR7vW3S5L8
nSkRRydebEK5ubBqzCM2+10XFRB9r2KZRUkdWq+hEa8ooYZtyiph1M/5NPCDfb+i
jWU6wk4ccFNfMHNFLxUHxePfldknJFZfohjAJqcnl1CsEThrXwrsAfA+YdMsQTGj
MAKcl6Pt3vlQGl7y0u7cYqdaMb6Doxsnype5XZrB0bzb3fhgpGlCX9oy/lnMbzjY
P6XbZWTFMpf7bpV/JVeJFCHjUTsCsP+vuEPQJTuN7pDLfV1b9Gg2ojKubc16XWqa
8q6CrObWASXNAgMBAAGjggHhMIIB3TAfBgNVHSMEGDAWgBRRaP+QrwIHdTzM2WVk
YqISuFlyOzAdBgNVHQ4EFgQUmendREGu/CV+UfnHWshYXItQkuowHQYDVR0RBBYw
FIIJKi5zYXMuY29tggdzYXMuY29tMA4GA1UdDwEB/wQEAwIFoDAdBgNVHSUEFjAU
BggrBgEFBQcDAQYIKwYBBQUHAwIwdQYDVR0fBG4wbDA0oDKgMIYuaHR0cDovL2Ny
bDMuZGlnaWNlcnQuY29tL3NoYTItaGEtc2VydmVyLWc0LmNybDA0oDKgMIYuaHR0
cDovL2NybDQuZGlnaWNlcnQuY29tL3NoYTItaGEtc2VydmVyLWc0LmNybDBCBgNV
HSAEOzA5MDcGCWCGSAGG/WwBATAqMCgGCCsGAQUFBwIBFhxodHRwczovL3d3dy5k
aWdpY2VydC5jb20vQ1BTMIGDBggrBgEFBQcBAQR3MHUwJAYIKwYBBQUHMAGGGGh0
dHA6Ly9vY3NwLmRpZ2ljZXJ0LmNvbTBNBggrBgEFBQcwAoZBaHR0cDovL2NhY2Vy
dHMuZGlnaWNlcnQuY29tL0RpZ2lDZXJ0U0hBMkhpZ2hBc3N1cmFuY2VTZXJ2ZXJD
QS5jcnQwDAYDVR0TAQH/BAIwADANBgkqhkiG9w0BAQsFAAOCAQEAW2nmp0OXrUKa
FzgRXdpdqYwBdQaofA6w3PbYMTtwonR+lJ6EjVwyIUzETluZspX0LreyjZThOy4o
cP92L+xkNkM/49l5tkNJF6ZXlb6p9P/4SEhMfIRu24q1FC8V55L6l3mC/Vp4uoat
C8OAokDcBmQIlYDOOPli8PdhV6iEuXZd5RV5YPgFh3KXsb1xjVoZo8JMksmIXNe4
8BO8fylAk1GI0tW4S+WTtDXcDvl2ylU4/tdx/YmoDMPxxkwOlbrIfhH3PSrCWXW1
KVvB4BR52NihcK19p/UhkBA7rblsgwiK3EaWWEs22QaBEjJDqgtceUpWJZJrtZom
TTPK+eMf8w==
-----END CERTIFICATE-----
subject=/C=US/ST=North Carolina/L=Cary/O=SAS Institute Inc./CN=*.sas.com
issuer=/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=DigiCert SHA2 High Assurance Server CA
---
No client certificate CA names sent
Peer signing digest: SHA256
Server Temp Key: DH, 1024 bits
---
SSL handshake has read 3252 bytes and written 366 bytes
Verification error: unable to get local issuer certificate
---
New, TLSv1.2, Cipher is DHE-RSA-AES256-GCM-SHA384
Server public key is 2048 bit
Secure Renegotiation IS supported
Compression: NONE
Expansion: NONE
No ALPN negotiated
SSL-Session:
Protocol : TLSv1.2
Cipher : DHE-RSA-AES256-GCM-SHA384
Session-ID: B04F6359E4F2B79C59D66C890DFB1EE79D1CFEDD0A8D1401577836EB5C0BEE75
Session-ID-ctx:
Master-Key: DE7C03273C799D36744D82594F6C9B1BC009E1C523723383A7C6C65203AED436D9355AADB96C7F826E5E69E8A533AFE6
PSK identity: None
PSK identity hint: None
SRP username: None
Start Time: 1512870383
Timeout : 7200 (sec)
Verify return code: 20 (unable to get local issuer certificate)
Extended master secret: no
---

總結在 SAS 9 平台中我們能夠進行 SSL Handshake 流程以利客戶端透過 HTTPS 安全連線的方式存取 SAS 9 平台。

相關資源

資安管理 SSL/TLS (1)

基本介紹

教學目標

初步了解 SSL/TLS 基本概念,尤其是 SSL Handshake 協商流程。

重點概念

SSL 的全名為 Secure Socket Layer,TLS 的全名稱 Transport Layer Security 兩者皆為加密協定主要提供網際網路中安全的通訊。SSL 主要被使用於證明內容,其將會透過加密技術在網際網路中提供端點驗證和通訊隱私,然而通常僅有伺服器被驗證,我們會使用公開金鑰基礎架構 (Public Key Infrastructure,PKI) 部署驗證資訊至客戶端,其協定允許客戶端和伺服器應用程式通訊時避免 eavesdropping、tampering 、 message forgery 、… 等問題發生。

大部份網站會透過網頁瀏覽器交換機密的使用者資訊,此時透過 SSL 加密協定就能夠保護其工作階段中的機敏資訊,為了方便識別我們會將網址中的 HTTP 以 HTTPS 取代之後,該網址連線至的網站使用 SSL 加密協定,也就是所謂 HTTPS 安全協定,SSL 主要使用非對稱金鑰交換在客戶端與伺服器進行協商,所有主流網頁瀏覽器皆會支援 SSL 加密協定,其中 SSL Handshake 就是在客戶端與伺服器建立初始安全通訊的工作階段。

SSL Handshake 協定組成主要有兩個階段,分別為必要的第一階段伺服器驗證和非必要的第二階段客戶端驗證。在第一個階段伺服器在回應給客戶端的請求中會傳送憑證和 Cipher 相關屬性,接著客戶端會產生主要的金鑰,主要是用於加密伺服器的公開金鑰和傳送被加密的主要金鑰至伺服器。伺服器透過主要金鑰驗證訊息,並且再透過主要金鑰返回被驗證的訊息,接著會再透過主要的金鑰衍生出金鑰持續針對通訊的資料進行加密和驗證。第二個階段伺服器傳送 Challenge 的訊息給客戶端,客戶端會進行驗證同時傳送客戶端包括公開金鑰的數位憑證,至於 SSL 資訊交換的流程主要有八個步驟:

  1. 客戶端傳送 SSL 相關資訊給伺服器,像是版本號碼、Cipher 設定、隨機產生資料、…等需要與伺服器進行 SSL 安全通訊的資訊。
  2. 伺服器傳送 SSL 相關資訊給客戶端,像是版本號碼、Cipher 設定、隨機產生資料、…等需要與客戶端進行 SSL 安全通訊的資訊。同時伺服器也會傳送所擁有的憑證,以及若客戶端請求伺服器資源時則會需要客戶端驗證的相關數位憑證。
  3. 客戶端使用與伺服器相同的資訊驗證伺服器,若是伺服器無法被驗證,則連線就無法被建立,代表 SSL Handshake 協商發生錯誤。
  4. 客戶端使用在 SSL Handshake 中所有被產生的資料建立工作階段的 Parameter Secret,接著會透過伺服器公開金鑰進行加密,之後傳送被加密的 Parameter Secret 給伺服器。
    若是伺服器已經請求客戶端驗證,則客戶端也會簽署此次 SSL Handshake 僅有伺服器和客戶端知道的資料,之後會傳送被簽署的資料、憑證和被加密的 Parameter Secret 至伺服器。
    若是伺服器已經請求客戶端驗證,則伺服器會嘗試驗證客戶端,若是客戶端無法被驗證,則工作階段就會被終止,接著伺服器會使用私密金鑰解密 Parameter Secret,然後執行接下來的步驟產生 Master Secret。
  5. 伺服器和客戶端會使用 Master Secret 產生工作階段金鑰,主要為被使用於加密和解密在 SSL 工作階段資訊交換的對稱金鑰,以及驗證完整性,同時還會偵測 SSL 安全連線之間的任何資料改變情況。
  6. 客戶端透過工作階段金鑰加密訊息傳送給伺服器,同時讓伺服器知道客戶端 SSL Handshake 已結束。
  7. 伺服器透過工作階段金鑰加密訊息傳送給客戶端,同時讓客戶端知道伺服器 SSL Handshake 已結束。
  8. 當客戶端和伺服器 SSL Handshake 皆已結果,就完成 SSL Handshake ,接著代表 SSL 工作階段開始,客戶端和伺服器將會使用工作階段金鑰加密和解密傳送的資料,同時驗證資料的完整性。

可是上述的流程有點太多技術名詞,是否能夠更簡單的說明流程呢? 請參考下述說明流程。

  1. 客戶端會傳送訊息至伺服器,訊息內容為:「嗨,請您設定加密工作階段,這有我們將會使用的 Chiper 組合列表和 SSL/TLS 的版本。」。
  2. 伺服器會回應訊息至客戶端,訊息內容為:「嗨,請使用這個來自於您列表中特別的 Chiper 組合,我也已經確認,並且我會使用 1.2 版本的 TLS 協定,此外這有我的憑證主要包括公開金鑰。」。
  3. 客戶端驗證伺服器憑證,然後取得公開金鑰,接著客戶端會使用公開金鑰的憑證加密全新的 Pre-master Key 給伺服器。
  4. 伺服器會使用私密金鑰解密 Pre-master Key,也就是 Parameter Secret。
  5. 客戶端和伺服器現在皆使用前置主金鑰運算將被分享的秘密金鑰,稱為 Shared Secret,也就是 Master Secret。
  6. 客戶端會傳送已被加密訊息至伺服器,訊息內容為:「嗨,這有一個被加密的訊息,請嘗試解密訊息和驗證訊息是否符合規格,同時之後我將會傳送以 Shared Secret 加密的訊息。」。
  7. 伺服器會解密和驗證訊息,若是正常運作則伺服器會回傳訊息至客戶端,訊息內容為:「嗨,您的加密訊息確認無誤,現在我傳送一個被加密的訊息,請嘗試解密訊息和驗證訊息是否符合規格,同時之後我將會傳送以 Shared Secret 加密的訊息。」。
  8. 客戶端和伺服器現在皆使用 Shared Secret 加密和保護它們接下來工作階段的所有通訊內容。

但是流程有八個步驟太複雜了,是否能夠更簡化為階段流程呢? 請參考下述三個主要階段流程說明。

  1. 伺服器在傳送其包含公開金鑰的憑證之後就完成部份的 SSL Handshake 協商。(細節請參考第 1 步驟至第 4 步驟)
  2. 客戶端在傳送已完成的訊息,代表已經確認 Shared Secret 交換和驗證流程已順利成功。(細節請參考第 5 步驟至第 7 步驟)
  3. 客戶端開始傳送應用程式的資料,以利進行安全的操作。(細節請參考第 8 步驟)

最後在實務應用中我們經常會碰到 SSL Handshke Failures 的錯誤訊息導致網頁應用程式無法正常使用,此時最有可能會發生在初始協商第一個階段,客戶端和伺服器可能無法進行驗證,原因可能是通訊協定版本和 Cipher 不相同所造成,當然也有可能是重新協商的安全選項或客戶端憑證請求。至於要如何確認 SSL/TLS 連線和相關資訊進行分析,則可以透過下述指令。

測試 SSL 連線指令之範例

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
c:\Apache24\bin>openssl s_client -connect leoyeh.me:443
CONNECTED(00000158)
depth=1 C = US, O = Let's Encrypt, CN = Let's Encrypt Authority X3
verify error:num=20:unable to get local issuer certificate
---
Certificate chain
0 s:/CN=www.leoyeh.me
i:/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3
1 s:/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3
i:/O=Digital Signature Trust Co./CN=DST Root CA X3
---
Server certificate
-----BEGIN CERTIFICATE-----
MIIFCDCCA/CgAwIBAgISA3OASIRpV7eLLmq/wHnuCKs1MA0GCSqGSIb3DQEBCwUA
MEoxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1MZXQncyBFbmNyeXB0MSMwIQYDVQQD
ExpMZXQncyBFbmNyeXB0IEF1dGhvcml0eSBYMzAeFw0xNzA4MTMwMDE1MDBaFw0x
NzExMTEwMDE1MDBaMBgxFjAUBgNVBAMTDXd3dy5sZW95ZWgubWUwggEiMA0GCSqG
SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDDhPPRlDV858i61vNclVmg6C6nC9fi2SLJ
sHDeLZRMfGd+7+dkJL4PNk5PiBfsZPS8oXDSviSwHcE/bWVTHSuaMXMvvYVpnQu/
K03UJaSGLvSbKofVH+56OYIbyGJ18PT8Aj4eWiVI5+gS6fmVx6jv5ASISRBJdMze
R057PXE63zXumu/IeYzwz8jDGQd4yFuyXIlQP1HKJTS65zHHX+hO2N8KheSN4t7Q
twG6h+YXKv90ufTv5SXijEJuM406brxEMutz+y6Mkn5JvLAhuwEB38RgxuLOR8qF
QxOX9q+xo8v7/lgdNnLwBpCbsrG7WZaE105VJEN4CMAs7Zp35Q3rAgMBAAGjggIY
MIICFDAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0lBBYwFAYIKwYBBQUHAwEGCCsGAQUF
BwMCMAwGA1UdEwEB/wQCMAAwHQYDVR0OBBYEFNnw6L8lvnlIq/Ys9uKcgU1tZuYj
MB8GA1UdIwQYMBaAFKhKamMEfd265tE5t6ZFZe/zqOyhMG8GCCsGAQUFBwEBBGMw
YTAuBggrBgEFBQcwAYYiaHR0cDovL29jc3AuaW50LXgzLmxldHNlbmNyeXB0Lm9y
ZzAvBggrBgEFBQcwAoYjaHR0cDovL2NlcnQuaW50LXgzLmxldHNlbmNyeXB0Lm9y
Zy8wIwYDVR0RBBwwGoIJbGVveWVoLm1lgg13d3cubGVveWVoLm1lMIH+BgNVHSAE
gfYwgfMwCAYGZ4EMAQIBMIHmBgsrBgEEAYLfEwEBATCB1jAmBggrBgEFBQcCARYa
aHR0cDovL2Nwcy5sZXRzZW5jcnlwdC5vcmcwgasGCCsGAQUFBwICMIGeDIGbVGhp
cyBDZXJ0aWZpY2F0ZSBtYXkgb25seSBiZSByZWxpZWQgdXBvbiBieSBSZWx5aW5n
IFBhcnRpZXMgYW5kIG9ubHkgaW4gYWNjb3JkYW5jZSB3aXRoIHRoZSBDZXJ0aWZp
Y2F0ZSBQb2xpY3kgZm91bmQgYXQgaHR0cHM6Ly9sZXRzZW5jcnlwdC5vcmcvcmVw
b3NpdG9yeS8wDQYJKoZIhvcNAQELBQADggEBAHTJepxm+oj1irBJXYmqiAcsPUm2
BQmeD+rWffwVl4U2QrX/ddTsnD7PANHJpOS+PB1XHxMGvRekWp8/Kq+tcTDujQTq
i6gd5tWI/lEpiYlVOMw9GBPbvgr2EBXfEbcYX9Zhdr/g9q8A10gFPlvdiFFQc57Q
HieDVJN0M1T/4A1i5ajS7iuRDmxxZCTX390zXZ5ZAULSLJX4u2Q3CFy2Gjlj/XbN
NzoMAETvx62n8XvkbyT4OeOjpYgTpV26437pzyX1Ks9lzB0nqoT59FWAPbq0Qskj
WZARXHeQPMPIARHj2RLX83LkXPo814D+Tjl18UIY10Gx0dBeZx9jkNuU4xo=
-----END CERTIFICATE-----
subject=/CN=www.leoyeh.me
issuer=/C=US/O=Let's Encrypt/CN=Let's Encrypt Authority X3
---
No client certificate CA names sent
Peer signing digest: SHA512
Server Temp Key: ECDH, P-256, 256 bits
---
SSL handshake has read 3155 bytes and written 302 bytes
Verification error: unable to get local issuer certificate
---
New, TLSv1.2, Cipher is ECDHE-RSA-AES256-GCM-SHA384
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-AES256-GCM-SHA384
Session-ID: 57C8C964E802FDE202E1B7219A73E5339377872D605B7CB11F77DDB609F1A110
Session-ID-ctx:
Master-Key: 953F9FC02F91B3592C98B00908959626B0D6643836F102762F07BA90A53168D2CCF2BC70CCCE823AC7A5858637AE740D
PSK identity: None
PSK identity hint: None
SRP username: None
TLS session ticket lifetime hint: 300 (seconds)
TLS session ticket:
0000 - ba b6 f2 21 e4 08 8c 67-04 95 04 3b 3e b0 1f 8e ...!...g...;>...
0010 - 04 89 d8 00 14 d6 2a a2-2f 50 bb 97 76 6f 1e b4 ......*./P..vo..
0020 - 3e 2f 6e c0 6f 48 c8 82-52 41 fa e8 52 59 de c3 >/n.oH..RA..RY..
0030 - c8 5f e8 08 67 ce c3 77-22 56 5c cc 57 8c 72 e0 ._..g..w"V\.W.r.
0040 - 0c 60 32 6d 60 6e 86 09-ed a3 14 ab 4a 2a 39 db .`2m`n......J*9.
0050 - 18 09 81 5b 0a 88 1d fd-a7 01 aa 89 dd 2b 54 73 ...[.........+Ts
0060 - 03 fa 21 9c 0b 98 19 a2-c4 7b ee 9a 81 54 8b 5a ..!......{...T.Z
0070 - c7 c3 e7 2a 19 71 c8 99-09 77 ae a1 33 e7 39 45 ...*.q...w..3.9E
0080 - 81 43 22 e0 f1 a9 d3 6b-64 5b 7c 67 4e da 01 54 .C"....kd[|gN..T

0090 - 18 3a d7 e1 e4 46 d1 0f-48 1c 05 3a e5 6a 8c 76 .:...F..H..:.j.v
00a0 - ab d4 9b 6f 6e 1c 01 2a-49 a4 c7 79 57 45 0b a4 ...on..*I..yWE..
00b0 - 2c 7b 49 c0 cb bc bd 89-d2 4a 4d 0b 4d ff 0a 54 ,{I......JM.M..T


Start Time: 1504939264
Timeout : 7200 (sec)
Verify return code: 20 (unable to get local issuer certificate)
Extended master secret: no
---

總結本篇主要是先了解 SSL/TLS 基本概念,尤其是 SSL Handshake 流程,至於有關 SSL/TLS 更多的資安風險和除錯方式將在之後進行說明。

相關資源