我目前正在嘗試實現一個tls握手到我寫的一個http代理中。我知道我可以使用OpenSSL爲我完成這項工作,但我有興趣自己編寫它。TLS握手消息解析
我目前正在通過TLS RFC工作,並且對如何解析ClientHello消息感到困惑,特別是它可能會或可能沒有會話ID,並且似乎沒有計算密碼組數量的事實或壓縮方法。
有沒有人知道這樣做的最好方法?
我目前正在嘗試實現一個tls握手到我寫的一個http代理中。我知道我可以使用OpenSSL爲我完成這項工作,但我有興趣自己編寫它。TLS握手消息解析
我目前正在通過TLS RFC工作,並且對如何解析ClientHello消息感到困惑,特別是它可能會或可能沒有會話ID,並且似乎沒有計算密碼組數量的事實或壓縮方法。
有沒有人知道這樣做的最好方法?
session_id的前面是長度。與密碼套件和壓縮算法一樣。
什麼是你缺少的是RFC的4.3節:
可變長度向量通過指定法律 長度的子範圍(含),使用符號定義。當 編碼時,實際長度在字節 流的向量內容之前。長度將以數字的形式消耗盡可能多的字節,以保持向量的指定最大長度(上限) 長度。具有零的實際長度字段的可變長度向量被稱爲空向量。
葉,不幸我第一次錯過了。我再讀了幾遍,終於抓住了這條線。 –
看看THIS INCREDIBLE BOOK。我不得不在沒有使用任何GPL軟件的情況下爲嵌入式系統實現TLS 1.2,這非常有用。
「我如何實現TLS」很可能過於寬泛。 –
我的問題不是實現整個事情,問題是我不知道如何處理事情是可選的情況下,它似乎沒有消息中的元素告訴我會有多少物品。 –
我不知道你爲什麼要這樣做。除了CONNECT命令之外,沒有必要以任何方式處理內容來編寫HTTP代理。如果你的代理是一個SSL端點,你當然應該使用OpenSSL,如果你不再是SSL端點,你也不需要解析SSL,只需直接發送它即可。 – EJP