#396 closed enhancement (fixed)
Support for 3GPP/IMS digest AKA (AKAv1-MD5) SIP authentication
Reported by: | bennylp | Owned by: | bennylp |
---|---|---|---|
Priority: | normal | Milestone: | release-0.8.0 |
Component: | pjsip | Version: | trunk |
Keywords: | Cc: | ||
Backport to 1.x milestone: | Backported: |
Description (last modified by bennylp)
Digest AKA is utilized by 3GPP/IMS, and is specified in RFC 3310: Hypertext Transfer Protocol (HTTP) Digest Authentication Using Authentication and Key Agreement (AKA).
Change History (8)
comment:1 Changed 17 years ago by bennylp
- Description modified (diff)
- Status changed from new to assigned
- Summary changed from Support for digest AKA (AKAv1-MD5) SIP authentication to Support for 3GPP/IMS digest AKA (AKAv1-MD5) SIP authentication
comment:2 Changed 17 years ago by bennylp
r1489 added PJSIP_HAS_DIGEST_AKAv1_AUTH configuration to enable AKA support. Default is disabled for now.
comment:3 Changed 17 years ago by bennylp
comment:4 Changed 17 years ago by bennylp
Updated Symbian DEF file in r1494
comment:5 Changed 17 years ago by bennylp
- Resolution set to fixed
- Status changed from assigned to closed
In r1500:
- tested AKAv1 authentication (and it worked!)
- implemented AKAv2
- update pjsua to create AKA credential when AKA is enabled
- fixed miscellaneous authentication stuffs to support AKA, including supporting sending empty Authorization header to force proxy server to use MD5 challenge.
comment:6 Changed 17 years ago by bennylp
Updated documentation. Please see: PJSIP Digest AKAv1 and AKAv2 Authentication API on how to enable and use AKA authentication.
comment:7 Changed 17 years ago by bennylp
Updated VS2005 and eVC projects in r1505
comment:8 Changed 17 years ago by bennylp
r1511: Updated libmilenage Visual Studio project to option to use /MD instead of /MT
In r1488:
Initial support for AKA framework in r:
This implementation adds support for AKA authentication without adding footprint overhead to the stack.
To support AKA authentication, application just need to specify a new type of credential that uses callback function to calculate the response. Below is the snippet on how this should be used:
The PJSIP_CRED_DATA_EXT_AKA flag indicates that digest computation will be performed by the callback function in ext.aka.cb rather than the built-in MD5.
A new pjsip_auth_create_akav1() function is provided in the library to compute AKAv1 digest. When the algorithm in the challenge is "AKAv1-MD5" (case-insensitive), this function will parse nonce in the challenge to get RAND and AUTN values and compute AKAv1-MD5 response digest according to the AKA keys specified in the credential.
The pjsip_auth_create_akav1() function also supports falling back to the normal MD5 authentication, if the challenge specifies "MD5" as the algorithm. In this case, it assumes that data field contains the password of the credential, either in plain-text if PJSIP_CRED_DATA_PLAIN_PASSWD flag is specified, or hashed password if PJSIP_CRED_DATA_DIGEST flag is specified.
Alternatively application may create and use response calculation function other than pjsip_auth_create_akav1(), for example to support AKAv2 authentication.