TLS1.3抓包分析(3)——EncryptedExtentions等

其實在最開始抓包的時候就發(fā)現(xiàn)了一個問題琼开,就是在ChangeCipherSpec消息之后易结,沒有加密擴展、證書柜候,甚至Finished消息都沒有衬衬。在握手過程中,F(xiàn)inished消息是一定存在的改橘,所以說明用Wireshark抓的包存在問題滋尉,之前提到過,ChangeCipherSpec之后的消息都是進行加密了的飞主,所以可能是因為Wireshark沒有對后續(xù)的消息進行解密狮惜,所以只是顯示了ApplicationData,即加密傳輸?shù)臄?shù)據(jù)碌识。

wireshark抓包1

那么要想利用wireshark對其進行分析碾篡,就要想辦法得到密鑰,對加密的消息進行解密筏餐,這里的解決方法參照https://jingyan.baidu.com/article/20b68a88b2af7f796cec62b3.html开泽。
簡要步驟:
1.創(chuàng)建一個log文件,因為Firefox和Chrome瀏覽器都支持用log文件的方式記錄下用來加密TLS數(shù)據(jù)包對稱會話秘鑰的魁瞪,所以創(chuàng)建ssl.log來保存會話密鑰穆律。
2.配置環(huán)境變量惠呼。右鍵點擊我的電腦->屬性->高級系統(tǒng)設置->高級->環(huán)境變量->系統(tǒng)變量
環(huán)境變量1

然后新建一個系統(tǒng)環(huán)境變量,變量名是SSLKEYLOGFILE峦耘,變量值就是你的log文件的位置剔蹋。
環(huán)境變量2

3.在Wireshark中進行配置。編輯->首選項->協(xié)議Protocols->SSL辅髓,在(pre)-Master-Secret log filename一欄中添加剛才的log文件位置泣崩。
Wireshark配置

然后再進行抓包,抓包結(jié)果如圖:

抓包結(jié)果

可以看到之前的Application Data被解析為EncryptedExtentions洛口、Certificate矫付、Certificate verrify、Finished第焰,下面將對這幾個消息進行逐個分析买优。
解析后的消息

Encrypted Extentions加密擴展

Encrypted Extentions

加密擴展中包含兩個擴展內(nèi)容——supported_groupsserver_name
Type樟遣、Length依舊表示類型和長度,不再進行單獨解釋身笤。
supported_groups包含的是服務器所支持的曲線組豹悬,這里有x25519、secp256r1液荸、secp384r1瞻佛。
server_name表示服務器名,此處加密擴展是服務器發(fā)給客戶端的娇钱,所以置為空伤柄。

Certificate

Certificate1

Certificate Request Context Length,在此處置為空文搂,即長度為0适刀。
Certificate Request一般是在加密擴展消息之后服務器(可選)進行發(fā)送的,服務器用它來請求客戶端發(fā)送證書煤蹭,如果服務器發(fā)送了Certificate Request笔喉,客戶端一般需要在后面發(fā)送自己的Certificate,并在Certificate消息中包含Certificate Request Context來進行響應硝皂;所以服務器發(fā)送的證書中常挚,Certificate Request Context為空,長度為0稽物。
Certificates奄毡,證書(CertificateEntry)序列,每個CertificateEntry包含一個證書和一組擴展贝或。

signedCertificate
version吼过,版本為v3锐秦;serialNumber,序列號那先。
signatureAlgorithm Id农猬,簽名算法ID,這里表示sha256WithRSAEncryption售淡。
issuer斤葱,證書頒發(fā)者,用X.509 DN表示揖闸,DN是由RDN構(gòu)成的序列揍堕,RDN用“屬性類型=屬性值”的形式表示。
CountryName汤纸,國家衩茸,此處為US。
OrganizationName贮泞,機構(gòu)名楞慈,此處為Let's Encrypted。
commonName啃擦,通用名稱囊蓝,此處為Let's Encrypted Authority X3。

Certificate2

validity令蛉,表示證書的合法性聚霜,包含證書有效期的起止時間。
subject珠叔,證書的主體蝎宇,也用X.509 DN表示,即RDN序列祷安。
commonName姥芥,通用名稱,此處為tls13.crypto.mozilla.org汇鞭,即所頒發(fā)證書的對象撇眯。 subjectPublicKeyInfo,證書主體公鑰信息虱咧。
Algorithm熊榛,公鑰算法,這里用的是RSA腕巡。
subjectPublicKey包含的就是具體的公鑰玄坦,包括modulus(系數(shù))和Exponent(指數(shù))。
Certificate3

extentions,擴展煎楣,這里有9個擴展豺总,分別是keyUsageextKeyUsage择懂、basicConstraints喻喳、subjectKeyIdentifierauthorityKeyIdentifier困曙、authorityInfoAccessSyntax表伦、subjectAltNamecertificatePolicies慷丽、SignedCertificateTimestampList蹦哼。
keyUsage

keyUsage,表示證書的公鑰可以完成的功能或服務要糊,這里包含digitalSignature和keyEncipherment纲熏。
extensions

extKeyUsage碎乃,表示Extended Key Usage,包含一系列的KeyPurposeID路操,每一個都表示一種用途,這里包括serverAuth和clientAuth屈藐。
basicConstraints奶赠,基本約束擴展鱼填,標識證書的主體是否為CA以及包含有效證書路徑的最大深度
subjectKeyIdentifier车柠,主體密鑰標識符剔氏,用來識別包含特定密鑰的證書塑猖。
authorityKeyIdentifier竹祷,**密鑰標識符,用來識別證書所用私鑰對應的公鑰羊苟。
extensions

authorityInfoAccessSyntax塑陵,序列中的每個條目都描述了擴展所在的證書的頒發(fā)者提供的附加信息的格式和位置。信息的類型和格式由accessMethod字段指定;accessLocation字段指定信息的位置蜡励。
subjectAltName令花,表示Subject Alternative Name,主體可選名凉倚,可使身份與證書主體綁定兼都,此處只給出了一個GeneralName。
certificatePolicies擴展

certificatePolicies稽寒,證書策略擴展包含一個或多個策略信息術語的序列扮碧,每個術語由對象標識符(object identifier,OID)和可選限定符(optional qualifiers)組成。
SignedCertificateTimestampList

SignedCertificateTimestampList,表示證書時間戳序列,包含時間戳(Timestamp)慎王、簽名算法(Signature Algorithm)蚓土、簽名(Signature)以及其他字段。
signature到剛才的extensions都是signedCertificate中的內(nèi)容赖淤。

Certificate4

algorithmIdentifier蜀漆,表示算法標識符,包含Algorithm ID咱旱,對應于特定算法确丢,此處為sha256WithRSA。
Padding莽龟,填充內(nèi)容蠕嫁,此處為空。

另外一個證書的內(nèi)容和上述內(nèi)容類似毯盈,不再進行詳細敘述剃毒,因為證書的內(nèi)容不是研究的重點,所以敘述比較簡單搂赋,具體看rfc5280對X.509證書的定義https://tools.ietf.org/html/rfc5280#section-4.1.2.9赘阀。

Certificate Verify

Certificate Verify and Finished

Signature Algorithm,簽名算法脑奠,此處為rsa_pss_rsae_sha256基公。
Signature,簽名內(nèi)容宋欺。

Finished

Finished消息是身份驗證階段的最后一條消息轰豆,Verify Data是通過HMAC計算得來的,包含finished_key和握手消息的hash齿诞。
verify_data =HMAC(finished_key,Transcript-Hash(Handshake Context,Certificate, CertificateVerify))

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末酸休,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子祷杈,更是在濱河造成了極大的恐慌斑司,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,376評論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件但汞,死亡現(xiàn)場離奇詭異宿刮,居然都是意外死亡,警方通過查閱死者的電腦和手機私蕾,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,126評論 2 385
  • 文/潘曉璐 我一進店門僵缺,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人踩叭,你說我怎么就攤上這事磕潮。” “怎么了?”我有些...
    開封第一講書人閱讀 156,966評論 0 347
  • 文/不壞的土叔 我叫張陵揉抵,是天一觀的道長亡容。 經(jīng)常有香客問我,道長冤今,這世上最難降的妖魔是什么闺兢? 我笑而不...
    開封第一講書人閱讀 56,432評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮戏罢,結(jié)果婚禮上屋谭,老公的妹妹穿的比我還像新娘。我一直安慰自己龟糕,他們只是感情好桐磁,可當我...
    茶點故事閱讀 65,519評論 6 385
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著讲岁,像睡著了一般我擂。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上缓艳,一...
    開封第一講書人閱讀 49,792評論 1 290
  • 那天校摩,我揣著相機與錄音,去河邊找鬼阶淘。 笑死衙吩,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的溪窒。 我是一名探鬼主播坤塞,決...
    沈念sama閱讀 38,933評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼澈蚌!你這毒婦竟也來了摹芙?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,701評論 0 266
  • 序言:老撾萬榮一對情侶失蹤惜浅,失蹤者是張志新(化名)和其女友劉穎瘫辩,沒想到半個月后伏嗜,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體坛悉,經(jīng)...
    沈念sama閱讀 44,143評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,488評論 2 327
  • 正文 我和宋清朗相戀三年承绸,在試婚紗的時候發(fā)現(xiàn)自己被綠了裸影。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,626評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡军熏,死狀恐怖轩猩,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤均践,帶...
    沈念sama閱讀 34,292評論 4 329
  • 正文 年R本政府宣布晤锹,位于F島的核電站,受9級特大地震影響彤委,放射性物質(zhì)發(fā)生泄漏鞭铆。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,896評論 3 313
  • 文/蒙蒙 一焦影、第九天 我趴在偏房一處隱蔽的房頂上張望车遂。 院中可真熱鬧,春花似錦斯辰、人聲如沸舶担。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,742評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽衣陶。三九已至,卻和暖如春闸氮,著一層夾襖步出監(jiān)牢的瞬間祖搓,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,977評論 1 265
  • 我被黑心中介騙來泰國打工湖苞, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留拯欧,地道東北人。 一個月前我還...
    沈念sama閱讀 46,324評論 2 360
  • 正文 我出身青樓财骨,卻偏偏與公主長得像镐作,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子隆箩,可洞房花燭夜當晚...
    茶點故事閱讀 43,494評論 2 348