Windows

Get-TlsCipherSuite 輸出中 Protocols 欄位的值是什麼意思?

  • August 30, 2021

Powershell 有一個Get-TlsCipherSutecmdlet,它返回有關 TLS 可以使用的密碼的資訊。

輸出包括一個Protocols似乎設置為數字數組的欄位,例如:

PS C:\>Get-TlsCipherSuite -Name "AES"
KeyType               : 0
Certificate           : ECDSA
MaximumExchangeLength : 65536
MinimumExchangeLength : 0
Exchange              : ECDH
HashLength            : 0
Hash                  :
CipherBlockLength     : 16
CipherLength          : 256
BaseCipherSuite       : 49196
CipherSuite           : 49196
Cipher                : AES
Name                  : TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
Protocols             : {771, 65277}

作為每個密碼套件的欄位值的數字的含義是什麼Protocols(例如,771652677)?

注意:如果您去探索,請注意此命令的輸出似乎與 不兼容select,請參閱https://windowsserver.uservoice.com/forums/301869-powershell/suggestions/16511008-get-tlsciphersuite-does-not -輸出行為良好的ob

它們似乎是TLS 版本欄位中使用的值的十進製表示。771 = 0x0303 = TLS_1_265277 = 0xFEFD = DTLS_1_1。您可以看到在各種 TLS 庫中定義的類似常量:

TLS_VERSIONS = {
   # SSL
   0x0002: "SSL_2_0",
   0x0300: "SSL_3_0",
   # TLS:
   0x0301: "TLS_1_0",
   0x0302: "TLS_1_1",
   0x0303: "TLS_1_2",
   0x0304: "TLS_1_3",
   # DTLS
   0x0100: "PROTOCOL_DTLS_1_0_OPENSSL_PRE_0_9_8f",
   0x7f10: "TLS_1_3_DRAFT_16",
   0x7f12: "TLS_1_3_DRAFT_18",
   0xfeff: "DTLS_1_0",
   0xfefd: "DTLS_1_1",
}

因此,它們可能代表該密碼可用的 TLS/SSL 協議版本。

引用自:https://serverfault.com/questions/910177