background image

03 Jan 2022

弱點掃描-SSL加密演算法不安全的演算法

最近公司資安檢查報告中被檢查出了一個關於SSL的加密連線的弱點,這個弱點是因為我們沒有把不安全的加密演算法關閉導致這個弱點的產生, 在公司的政策中線上的伺服器不能任意安裝任何程式,所以IISCrypto就只能放棄無法使用,所以我修改的部分是使用修改幾碼的方式進行, 由於我不太熟悉資安,修改後要如何驗證呢這些已知有問題的演算法是否已經正確的被關閉了呢?

所以我又在網路上google找到幾個腳本,透過openssl與curl的搭配可以掃描我們的server支援了哪些SSL的加密方式,有從server site的檢查與client site的檢查。

1# server side
2URL="https://yi-shiuan.github.io/"
3
4ciphers=$(openssl ciphers 'ALL:eNULL' | sed -e 's/:/ /g')
5
6 for cipher in ${ciphers[@]}
7 do
8 echo -n Testing $cipher...
9 result=$(echo -n | openssl s_client -cipher "$cipher" -connect $URL 2>&1)
10 if [[ "$result" =~ ":error:" ]] ; then
11   error=$(echo -n $result | cut -d':' -f6)
12   echo NO \($error\)
13 else
14   if [[ "$result" =~ "Cipher is ${cipher}" || "$result" =~ "Cipher    :" ]] ; then
15     echo YES
16   else
17     echo UNKNOWN RESPONSE
18     echo $result
19   fi
20 fi
21 sleep 1
22 done
23
1# client site的檢查
2URL="https://yi-shiuan.github.io/"
3
4DELAY=1
5ciphers=$(openssl ciphers 'ALL:eNULL' | sed -e 's/:/ /g')
6
7for cipher in ${ciphers[@]}
8do
9    printf -v pad %30s
10    printf "Checking ${cipher:0:30} ... "
11    curl -s -S -o /dev/null --no-progress-meter --tls-max 1.2 --ciphers $cipher $URL
12    if [ $? -eq 0 ]; then
13        echo OK
14    fi
15done
16

參考資料

IISCrypto

叡揚資訊

SSL Ciphers

文章標籤