cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
804
Views
0
Helpful
1
Replies

IP 8861 SRTP Issues with AES_256_GCM_8

donileo
Level 1
Level 1

I'm in the process of integrating my Cisco IP 8861 3PCC with Freeswitch but see some interesting behavior in regards to SRTP crypto. I am on sip88xx.11-3-1MPP-697.loads firmware which I believe is the latest for this phone.

 

Freeswitch passes the following line for crypto in the INVITE SDP:


a=crypto:1 AEAD_AES_256_GCM_8 inline:obfuscated
a=crypto:2 AEAD_AES_128_GCM_8 inline:obfuscated
a=crypto:3 AES_256_CM_HMAC_SHA1_80 inline:obfuscated
a=crypto:4 AES_192_CM_HMAC_SHA1_80 inline:obfuscated
a=crypto:5 AES_CM_128_HMAC_SHA1_80 inline:obfuscated
a=crypto:6 AES_256_CM_HMAC_SHA1_32 inline:obfuscated
a=crypto:7 AES_192_CM_HMAC_SHA1_32 inline:obfuscated
a=crypto:8 AES_CM_128_HMAC_SHA1_32 inline:obfuscated
a=crypto:9 AES_CM_128_NULL_AUTH inline:obfuscated

But then the phone replies back with:

a=crypto:1 AEAD_AES_256_GCM inline:obfuscated.

 

I see two problems with this:

 

1. How can the phone reply back with AEAD_AES_256_GCM (not the same as AEAD_AES_256_GCM_8) when that isn't even in the original invite list. It's assumed that the Invite SDP contains what the remote side supports so if the phone doesn't support any of the cryptos specified in the Invite SDP it should respond back with the appropriate SIP unsupported message or something like that. In this case the phone does support at least one of the options which is AES_CM_128_HMAC_SHA1_80 but refuses to choose that for the encryption.

 

2. In the case where in the phone Audio Configuration -> Encryption Method: AES 128 is chosen: 

  • The phone still chooses AEAD_AES_256_GCM as the encryption method. This looks like a bug to me because if the user specified explicitly that they want to use AES 128 the phone should not reply back with it choosing AES 256 GCM which the user has not chosen to support / use. In this scenario, just like the above, the phone needs to select AES_CM_128_HMAC_SHA1_80. However in this case even if the remote side were to send something like a=crypto:1 AEAD_AES_256_GCM inline:obfuscated the phone needs to understand that it can't choose this because AES_256 is not selected. It would still need to choose AES_CM_128_HMAC_SHA1_80.
1 Reply 1

donileo
Level 1
Level 1
Anyone?