On 19/12/2018 14:04, Hannes Tschofenig wrote:
Thanks, Ludwig. The list of steps below help me to understand the concern.

----


1.) C obtains token and pop-key from AS
2.) C transmits token to RS and sets up secure communication (e.g.
DTLS-PSK) using the pop-key
3.) C sends secure requests to the RS
4.) token expires, an attacker manages to get hold of the pop-key
5.) C continues to send requests containing sensitive information to the RS , 
attacker can now read the messages and spoof positive responses from the RS. C 
never notices that the token is invalid and that it is actually talking to the 
attacker.


----

In step (4) you tie the expiry of the token to the attacker getting
hold of the key. What happens if the attacker gets hold of the pop
key before the token expires?

If it is detected the AS would revoke the token. Then the client _could_ use client introspection to get that information. Note that this is what the CMU people are looking at.

Additionally, if you use DTLS/TLS just
having the PoP key still requires the attacker to run a new DTLS/TLS
handshake with the RS.

If the pop-key was used as a basis for doing a DTLS-PSK handshake, the attacker should be able to hijack the connection and impersonate either party.


It would also be useful to know where the
attacker got the PoP key from and how you can even detect the
compromise.

That is a different story entirely. You could imagine the case of an RS improperly deleting an expired token and the associated pop-key, and then being subject to a physical attack that recovers that information.


Additionally, there is the question why the RS wouldn't stop
communicating if the token expired since it has that information.

The RS would indeed stop, but since the token is opaque to the client, it has no way of knowing that the token has expired, and our clever attacker is using the pop-key to impersonate the RS and maintain the illusion that the connection is still alive an running.

Normally, the idea is that the RS has a protected resource and the
client wants to access it. That's why the RS is asking the client to
send a token that gives it access.


Yes but say e.g. that the RS is a message broker and the client is a publisher, writing sensitive data to the RS.


I think Steffi's point definitely warrants text in the security considerations, outlining how a client could detect that a token has expired.

/Ludwig

--
Ludwig Seitz, PhD
Security Lab, RISE
Phone +46(0)70-349 92 51

_______________________________________________
Ace mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/ace

Reply via email to