[VoiceOps] question about stir/shaken - iat and DATE header

John S. Robinson jsr at communichanic.com
Thu Jul 1 15:30:49 EDT 2021


Date header has been part of RFC-3261 SIP 
<https://datatracker.ietf.org/doc/html/rfc3261.html> for 19 years now, 
but was not used all that much. IAT and Date are both part of the specs 
and more recent RFC's that define stir-shaken.   So the seldom-used but 
long time defined Date: header is now required.    Furthermore, IAT is 
part of the formal JSON in the Identity header and must be present, or 
the claims are not valid.

Normally, IAT would restate the Date with Unix Epoch date.   IAT is 
signed, but the Date header is not signed.

When a call is received and Verified, the the plain-text signed JSON is 
validated.   If verified IAT is stale, the call is rejected.   True, 
someone could mess with Date header along the route or SIP From header 
or PAI.   And for that matter, someone could mess with the JSON 
attributes that are signed.   But then the verification would fail, and 
the call should not be delivered.   That's part of the beauty of the 
system.

Best regards,

    John


On 7/1/2021 12:29, Joseph Jackson wrote:
>
> I’ve heard that TNSi also counts on the date header being present.
>
> So far we don’t see a lot of people passing tokens with the date header.
>
> *From:*VoiceOps [mailto:voiceops-bounces at voiceops.org] *On Behalf Of 
> *Matthew Yaklin
> *Sent:* Thursday, July 01, 2021 12:25 PM
> *To:* voiceops at voiceops.org
> *Subject:* [VoiceOps] question about stir/shaken - iat and DATE header
>
> All,
>
> Pretty simple question here. When you do a verify request are you 
> filling in the iat with your sbc’s current date/time or using the DATE 
> information from the invite?
>
> With Neustar the iat is currently optional. IQNT is basically removing 
> the DATE header in a test we are doing by sending them a call and 
> getting it back in a different region.
>
> It really does not make sense to me to use the DATE header because it 
> could be messed with by anyone in the path. It is untrusted. The iat 
> is trusted so when you verify it makes more sense to use the current 
> date/time of your SBC because the limitation is 60 seconds from AS to VS.
>
> I imagine Neustar made it optional because their own system has some 
> intelligence when it comes to this expiration of the AS.
>
> On top of that Metaswitch is not prepared for this situation. They are 
> basically counting on that DATE header to be there in their 
> recommended perimeta SBC config. They plan to fix it by using the 
> current date/time.
>
> Just looking for how others are handling this. Just leaving it blank 
> for now?
>
> Matt
>
>
> _______________________________________________
> VoiceOps mailing list
> VoiceOps at voiceops.org
> https://puck.nether.net/mailman/listinfo/voiceops

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://puck.nether.net/pipermail/voiceops/attachments/20210701/5c5ba8fd/attachment-0001.htm>


More information about the VoiceOps mailing list