> On Apr 30, 2019, at 12:21 PM, Michael Wojcik <michael.woj...@microfocus.com> 
> wrote:
> 
>> From: openssl-users <openssl-users-boun...@openssl.org> on behalf of Felipe 
>> Gasper <fel...@felipegasper.com>
>> Sent: Tuesday, April 30, 2019 11:06
> 
>> My question is, does TLS allow a client to be _able_ to parse an incomplete 
>> message?
>> Or is it that only the entire  message can be decoded?
> 
> TLS doesn't have the concept of a "message". It has records. Application data 
> from the peer may occupy one or more records.
> 
> If a record can't be received completely, while it might be possible to 
> decrypt the partial content (or, depending on cipher type and chaining mode, 
> all but the last cipher block received), it wouldn't be possible to 
> authenticate the data. Thus you'd fall prey to Moxie Marlinspike's 
> Cryptography Doom Principle. Except in unusual circumstances (e.g. attacking 
> the peer, or forensics) you Don't Want To Do That.
> 
> Consider that if you're using a stream cipher, or a block cipher in a 
> streaming mode such as GCM, that an attacker can 1) tamper with the 
> application data in a record by bit-flipping, then 2) abort the conversation 
> by forging an RST or similar, cutting the tampered block short. If the 
> receiver attempts to act on the data in the partial block, the attack 
> succeeds.
> 
> Even just attempting to decrypt and log the partial data could be dangerous, 
> for example if the log is later displayed using a web-based tool that has an 
> XSS vulnerability, or some sort of binary parser with an exploitable overflow 
> (e.g. a buggy Wireshark dissector).

Ah, ok, that makes sense. Thank you for your response!

-FG

Reply via email to