之前有介紹透過使用IISCrypto來快速設定SSL相關的資安設定。正常來說只要重啟以後禁用的ssl和cipher suite應該就不會出現。
不過如果用一些檢測工具,例如透過Qualys SSL Lab的SSL ServerTest,那麼有可能還是會看到已經禁用的cipher suite。
這是為什麼呢?這樣到底如何驗證設定是否有成功?這篇將會介紹如何透過local檢測的方式確認修改是否有成功。
發生原因
有時候web的機器本身是我們管理,但是整個架構並不是,因此並不知道是不是還有什麼在Server外面, 以我遇到的例子來看,很有可能是在Server外面還有一層Web Application Framework(WAF)導致。
所以就算Server那台透過IISCrypto設定好了,但是假設外面那台沒有設定,那麼當使用網路的服務像是ssl labs的測試,檢測到的其實是外面那台,而不是Server本身。
解決方式 - 使用TestSSLServer工具做local測試
既然不知道Server外面有什麼可能導致線上測試不準確,那麼可以使用工具local直接測試機器是否設定成功。
一開始使用的工具是:nmap - 但是我自己在測試的時候並沒有成功,並且這個需要安裝的東西比較多(都是檢測用的),因此就放棄使用。
最後使用的是:TestSSLServer。
TestSSLServer工具檔案
- 官方網站
- Github
- 直接下載鏈接:.Net 2.0版本、.Net 4.0版本
(兩個版本執行起來沒有差異,只是看電腦有那.net framework就用那個版本)
TestSSLServer的使用方式
這個是一個command line的工具,下載下來之後,使用cmd執行即可。
最簡單的使用方式就是輸入:TestSSLServer4.exe localhost
從上面的截圖可以看出其實3DES相關的cipher沒有了,但是網路的測試還是又出現。
如果想要把結果儲存起來,可以使用TestSSLServer4.exe -text result.txt localhost - 這個就是把結果匯出到檔案result.txt
。
TestSSLServer cipher suite強度介紹
這個工具其實也可以看出目前允許使用的cipher suite強度如何。
在第一欄(Server)有三個值:
- 第一個值有三種值(0代表非加密,1代表非常弱,2代表弱,3代表強)
- 第二個值如果是f表示支援前向安全性(Forward Secrecy),如果不支援則是-
- 第三個值如果是A表示anonymous,要不然就是-
理論上3f-是最強的suite。
從截圖裡面可以看出這台的強度都至少在3,因此強度來說應該都沒有問題。
結語
有時候明明設定好了,但是測試不通過的原因是因為被測試的並不是你改的機器,因此用local的工具來測試比較準確。
以這個例子來說,至少有證據表示local看起來設定沒問題,至於線上測試有問題可能就是別的系統(非我們可以控制的部分)導致。