網路城邦
上一篇 回創作列表 下一篇   字體:
IIS Log 追蹤用戶端使用的TLS版本與加密演算法
2024/04/25 09:56:22瀏覽60|回應0|推薦0

詮力科技的簡訊發送平台有提供API供客戶呼叫發送簡訊,近年來無論是網站或是API趨勢都是逐漸淘汰Http改走Https,但現實的困境是走Https時Server端與Client端要有共同支援的TLS版本以及TLS演算法,才能建立Https連線,進而呼叫API。

然而當Server要升級以支援新的TLS版本與加密演算法時,會發現現有的API的客戶太多,怎麼知道現行的客戶會不會因為Server升級導致API呼叫失敗呢?那就衍生了需要能夠追蹤用戶端使用的TLS版本與加密演算法的這個需求。

依照IIS預設的行為,如果Https連線無法建立,通常在第一時間連線就會斷線,IIS Log不會有任何的連線紀錄,除非客戶主動反映API無法連線,否則無法得知客戶無法發送API,反而會以為客戶只是沒有發API的需求。

經過一番搜尋,發現在Win 2012 R2以上的Server,IIS Log可以啟用設定,紀錄到用戶端的TLS版本與使用的加密演算法,這樣可以方便制定更好的Server升級策略,減少對客戶的不良影響,以下為設定方式:

1.打開C:\Windows\System32\inetsrv\config\ 中的 IIS 配置檔 ApplicationHost.config。

2.找到想要啟用TLS相關紀錄的網站區塊(下依照不同網站會有個別的)

3.在該網站區塊下的下(註:若網站區塊下無此區塊則需手動加入)加入下列內容:

完成後config會如下圖所示:

4.回到IIS管理界面,選擇被設定好的網站→紀錄→選取欄位

可以看到剛剛設定的欄位加到自訂欄位區,已經有跳出新增的四個變數了

5.此時,新的IIS Log的變化為Log檔名增加了_x

Log的最後也增加了4個變數

其中TLS版本的變數定義請參考安全協定版本,加密演算法的變數定義則參考密碼套件演算法

這樣去分析IIS Log的TLS版本和加密演算法不是很直覺,有一個HttpLogBrowser工具可協助轉換這幾個變數。下載HttpLogBrowser後,選擇工具圖案設定的按鈕→Default settings→Analysis(2)→勾選『Translate cryptographic fields』

接著選擇載入的IIS Log,HttpLogBrowser此時顯示的Log還不包含那4個變數,要在標題列區按右鍵→Show Column Chooser

並勾選4個新欄位

畫面上就會把TLS版本以及加密演算法都顯示出來了。

此工具還可以很方便的下條件過濾條件,例如只顯示TLS 1.0的資料等,或是做統計圖表。但如果需要把結果匯出來,則需使用此工具的付費版本。

結論:本文做法僅提供Server要升級前評估客戶端使用狀況,決定是否可直接升級Server或是得與客戶協調,等客戶端Server也升級後才能升級Server的決策使用。若希望幫客戶做到無痛移轉,例如可以判斷客戶的TLS版本,若為舊TLS版本,將流量導向舊Server,若為新TLS版本,將流量導向新Server,就是另一篇文章的故事了。

Ref 1: Identify and forbid weak TLS usage in IIS (finalanalytics.com)

Ref 2: IIS Custom Logging for TLS | UKFast Documentation

( 知識學習其他 )
回應 推薦文章 列印 加入我的文摘
上一篇 回創作列表 下一篇

引用
引用網址:https://classic-blog.udn.com/article/trackback.jsp?uid=acaj2018&aid=180540327