[tahoe-dev] change to storage layout
Jim McCoy
jim.mccoy at gmail.com
Thu Feb 14 12:21:48 PST 2008
I case you don't remember why base64 was a bad idea way back when, you
are setting yourself up for a heaping helping of woe here. The OS X
HFS+ filesystem is case-insensitive, case-preserving, so you are going
to hit failures that will take you forever to figure out on the mac.
[It does open up a fun attack-vector though - create blobs that are
similar to ones you have received but differ only in the case of at
least one alpha element of the base62-encoded hash (much easier to
brute-force) and send these out to silently replace the ones you
received for every Mac user on the network]
def brute_case(ListOfBase62SIs):
hosed = None
lc_shares = dict([(string.lower(X), X) for X in ListOfBase62SIs])
while hosed is None:
(id, data) = generate_random_string_and_return_it_with_hash()
if string.lower(base62.b2a(id)) in lc_shares:
hosed = (id, data)
print "%s (hash %s) stomps on %s, you fail." % (data, id, lc_shares[id])
On Thu, Feb 14, 2008 at 6:00 AM, zooko <zooko at zooko.com> wrote:
> Folks:
>
> As of changeset [2136] -- 2008-02-12, the organization of shares on
> storage servers has changed to use base62 encoding instead of
> base32.
More information about the tahoe-dev
mailing list