OpenVPN解密(一)
OpenVPN載荷含義圖。
- 第1個數據包
Client->Server
|38| openvpn初始建立會話請求
|5f|f2|07|b2|27|12|14|2d|session
|00|00|00|01|4d|da|14|7c|大包packetid 時間戳
|00|資料包確認
|00|00|00|00| 包序列號
- 第2個數據包
Server->Client
|40| 服務端相應
|7a|26|7c|45|a6|72|e1|a2|session
|00|00|00|01|4d|da|14|7c|
|01|00|00|00|00|5f|f2|07|b2|27|12|14|2d|
|00|00|00|00|
- Client->Server
|28|回執確認
|5f|f2|07|b2|27|12|14|2d|
|00|00|00|02|4d|da|14|7c|
|01|00|00|00|00|7a|26|7c|45|a6|72|e1|a2|
- 第4個數據包
Client->Server
|20|openpvn控制流資料包含SSL握手資料
|5f|f2|07|b2|27|12|14|2d|
|00|00|00|03|4d|da|14|7c|(可能沒有)
|00|
|00|00|00|01|
|16|03|01|00|5f|01|00|00|5b|03|01|4d|da|14|7c|77|15|6d|32|69|2a|3d|90|fc|8d|3d|a6|68|83|3f|11|e2|63|b7|1b|e5|d1|46|95|3b|99|a6|e5|00|00|34|00|39|00|38|00|35|00|16|00|13|00|0a|00|33|00|32|00|2f|00|66|00|05|00|04|00|63|00|62|00|61|00|15|00|12|00|09|00|65|00|64|00|60|00|14|00|11|00|08|00|06|00|03|01|00|
- 第5個數據包
Server->Client
|20|
|7a|26|7c|45|a6|72|e1|a2|
|4c|b7|ae|78|e9|67|ca|bb|2b|71|0d|fc|48|51|08|9a|30|6c|dd|54|
|00|00|00|02|4d|da|14|7c|
|01|00|00|00|01|5f|f2|07|b2|27|12|14|2d|
|00|00|00|01|
|16|03|01|00|2a|02|00|00|26|03|01|4d|da|14|7c|5b|f3|9a|fa|b9|d3|b1|75|b7|ba|4f|9d|33|6e|4b|25|cc|f3|dd|6f|d6|73|b0|6e|f0
- 第6個數據包
Server->Client
|20|
|7a|26|7c|45|a6|72|e1|a2|
|16|28|bc|a4|3a|34|01|45|26|2b|ab|59|ea|ee|d3|88|b4|dd|11|ee|
|00|00|00|03|4d|da|14|7c|
|00|
|00|00|00|02|
|30|09|06|03|55|04|06|13|02|61|61|31|0b|30|09|06|03|55|04|08|13|02|61|61|31|0b|30|09|06|03|55|04|07|13|02|61|61|31直接串接上一個包沒有發完的內容
- 第7個數據包
|30| openvpn資料流
總體思路:和ipsec類似openvpn有兩層加密引數協商,一層是ssl握手金鑰協商,供ssl加密隧道使用,該隧道中傳遞openvpn自身加密引數;第二層是openvpn自身使用,傳輸vpn資料。
因此,通過openvpn 20控制流資料還原ssl握手引數,解密原ssl加密隧道密文,在20控制流最後幾個資料包包含了openvpn自身加密引數協商。
在下一篇文章將要講述ssl握手隧道解密。