簡體   English   中英

OpenSSL 可以列出 websocket 服務器支持的所有加密算法嗎?

[英]Can OpenSSL list all encryption algorithms a websocket server supports?

有沒有辦法通過命令行將 websocket 端點/URL 提供給 OpenSSL,它會列出 websocket 服務器支持的所有各種加密算法?

我確定我在某個地方看到過這個但再也找不到了

不可能向 TLS 服務器詢問所有支持的密碼。 我們所能做的就是探測服務器的特定密碼,並觀察它是否報告服務器將支持該密碼。 對於 openssl 命令行,這意味着使用openssl s_client -no_tls1_3 -cipher...來探測 TLS 1.2 和更低的密碼,使用 openssl openssl s_client -tls1_3 -ciphersuites... -tls1_3 -ciphersuites... 來探測 TLS 1.3 密碼。

成功握手的示例:

$ openssl s_client -no_tls1_3 -cipher AES128-GCM-SHA256 -connect google.com:443
...
SSL-Session:
    Protocol  : TLSv1.2
    Cipher    : AES128-GCM-SHA256

對於失敗的握手:

$ openssl s_client -no_tls1_3 -cipher AES128-SHA256 -connect google.com:443
...
SSL-Session:
    Protocol  : TLSv1.2
    Cipher    : 0000

但是,這種方法有幾個限制:

  • 只能探測正在使用的openssl版本支持的密碼,見openssl ciphers -V
  • 某些服務器可能會將特定密碼限制為特定 TLS 協議版本,例如僅使用 TLS 1.0 的較弱密碼。 因此,在探測時還必須遍歷各種 TLS 協議版本
  • 某些服務器僅在客戶端宣布支持特定 ECC 曲線時才限制密碼
  • 某些服務器在同一個 IP 地址上的不同域有不同的配置

因此,對於成功的測試,可以確保密碼得到支持。 對於不成功的測試,不能完全確定密碼不受支持,因為它可能僅在特定上下文中受支持。 對於未經測試的密碼,人們不知道這些是否受支持。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM