On 08/08/18 15:01, Benjamin Kaduk wrote:
> On Wed, Aug 08, 2018 at 02:52:27PM +0100, Matt Caswell wrote:
>>
>>
>> On 08/08/18 14:45, Eric Rescorla wrote:
>>>
>>>
>>> On Wed, Aug 8, 2018 at 6:26 AM, Matt Caswell <m...@openssl.org
>>> <mailto:m...@openssl.org>> wrote:
>>>
>>>
>>>
>>>     On 08/08/18 14:21, Benjamin Kaduk wrote:
>>>     > On Wed, Aug 08, 2018 at 02:05:00PM +0100, Matt Caswell wrote:
>>>     >> Draft 28 defines the inappropriate_fallback alert as follows:
>>>     >>
>>>     >> inappropriate_fallback  Sent by a server in response to an invalid
>>>     >>       connection retry attempt from a client
>>>     >>
>>>     >> With the introduction of the downgrade protection sentinels it now 
>>> seems
>>>     >> that an inappropriate fallback could also be detected by the client.
>>>     >> Should this wording be changed?
>>>     > 
>>>     > Well, *fallback* specifically is inherently client-driven; the things 
>>> the
>>>     > client could detect would be more of an incorrectly negotiated version
>>>     > (presumably due to an active attack).
>>>
>>>     Consider the scenario where a server supports TLSv1.3/TLSv1.2 but does
>>>     not support RFC7507 (TLS Fallback Signalling Cipher Suite Value).
>>>
>>>     If the client attempts a TLSv1.3 connection first and fails (e.g. an
>>>     active attacker prevented it) and then falls back to TLSv1.2 it would be
>>>     able to detect that its fallback attempt was inappropriate when it sees
>>>     the downgrade protection sentinels. In that case inappropriate_fallback
>>>     seems reasonable.
>>>
>>>
>>> I don't think that is the alert I would choose in this circumstance.
>>> Probably "illegal_parameter"
>>
>> illegal_parameter suggests to me that the peer is misbehaving in some
>> way - which isn't the case here? Also it seems strange that we would
>> have a more explicit alert than the generic illegal_parameter, that
>> seems to precisely describe the scenario (a fallback occurred, and it
>> turns out it was inappropriate) but not be able to use it.
> 
> Aren't the semantics here "whoops, I made a new connection attempt that
> I shouldn't have; let me go back out of that"?  In which case one could
> argue even for close_notify...

Well, it is an error condition. The client is expecting this to be ok
and it isn't and has to abruptly close. close_notify doesn't seem like a
good match to me.

Matt

_______________________________________________
TLS mailing list
TLS@ietf.org
https://www.ietf.org/mailman/listinfo/tls

Reply via email to