[Cryptography] Cryptographically securing a two-phase commit

Patrick Chkoreff pc at fexl.com
Thu Jul 30 10:14:59 EDT 2020


Bill Stewart wrote on 7/29/20 7:05 PM:

> - get some upfront information in Part 1 including some keys and maybe
> some hashes and maybe the size of the blob, maybe signed.

Getting the the size of the blob up front, along with the identity of
the sender, sounds crucial.

If the sender is known good, you might be fine with a 200 MB blob.  If
they subsequently send you junk, that's one strike against them.  If
they try to send you 1000 MB, that's one strike as well, and you cut the
connection after receiving the 200 MB.  Too many strikes, and the
identity goes to status bad.

If the sender is unknown, treat them the same as good except with a 5 MB
size limit up front.

If the sender is known bad, you cut the connection immediately.

Also, as others have indicated, collect all the raw data first and do as
little work as possible as it's coming in.  Only
hash/decrypt/authenticate that first header block announcing the
intended size and sender identity.

They can still DoS you by creating new sender identities, but they're
only wasting 5 MB of your time.  If that's an issue, you may need a more
rigorous process of registering new identities, possibly requiring
payment or proof of work on the sender's computer.


-- Patrick


More information about the cryptography mailing list