I would really appreciate input on option 2 i.e. how much of a problem are 
long CHKs?

On Thursday 23 April 2009 03:03:00 Matthew Toseland wrote:
> Argh, no, this doesn't work, because the pubkey is known, and there is no 
way 
> for the node to verify that the content is in fact valid. An attacker can 
not 
> only cause collisions, he can preemptively block known content by inserting 
> bogus data to where it would be posted.
> 
> So what does that leave?
> 
> On Thursday 23 April 2009 01:48:46 Matthew Toseland wrote:
> > 1) Duplicate the top block with SSKs: 
> > SSK,3@<pubkey>,<cryptokey>,<extra>/<filename> would insert e.g. 
> > SSK@<pubkey>,<cryptokey>,<extra>/<filename>-N for a series of N's.
> 
> Make cryptokey the hash of the content, avoids different-content attacks.
> 
> > 2) CHKs with extra routing keys:
> > CHK@<routing key 1>,<routing key 2>,<routing key 3>,<crypto key>,<extra>
> 
> Replace crypto key with the hash of the content, and derive the crypto key 
for 
> each block:
> cryptokey_N = H ( H(data) + "N" )
> 
> 3) Reinserting the top block when a download has finished, and also at some 
> point after inserting the data. IMHO this may help, but it does not address 
> the core problem. We need redundancy over *different areas of the keyspace*.
> 
> 4) An FCP command to reinsert a file, given a known top-block key. If we 
> cannot reconstruct as-is, we fail, but if we can, we reinsert that block 
> (exactly as is, like a binary blob), and the rest of the CHK-based blocks 
> under it.
> 
> Maybe a combination of 1) and 4) ?
> 
> On first insert:
> User inserts the data as DSK,3@/filename.
> The node creates a random pubkey, and hashes the content of the top block to 
> get the cryptokey. It inserts each block, and returns 
> DSK,3@<pubkey>,<cryptokey>,<extra>/filename
> 
> The filename could be ignored if we want.
> 
> On reinsert:
> The original URI must be specified, and have been downloaded. If it is kept 
on 
> the download queue then we can simply click a button to reinsert.
> 
> For SSKs:
> User inserts the data as SSK,3@<privkey>,<cryptokey>,<extra>/<filename>
> 
> We insert to SSK@<pubkey>,<cryptokey>,<extra>/<filename>-<N> for N in 0, 1, 
2.
> 
> Since the URI is not content-derived, there is the possibility of the 
inserter 
> will insert different content to each slot. AFAICS this cannot be avoided.
> 
> The major disadvantages are:
> - When reinserting we MUST know the original URI.
> - There is no way to heal the alternate top-blocks.
> 
> IMHO the latter is more serious than the former, but full convergence would 
be 
> ideal. Option 2 has neither of these problems, but does have very long URIs. 
> Mostly keys are copied and pasted, so maybe that isn't a big problem?
> 
> If people are happy with option 2 (very long CHKs), I can implement it 
> reasonably quickly...
> > 
> > Neither of these schemes is acceptable IMHO. The former allows for an 
> attacker 
> > to insert different content to different keys, and get some info about 
> > targets that way, and it is non-convergent, not allowing for reinserts. 
The 
> > latter doubles the length of the already way too long CHKs.
> > 
> > I propose a new key type which is convergent, has URIs shorter than 
existing 
> > CHKs, and any number of duplicate blocks: the Content Multiplication Key 
> (for 
> > want of a better name, alternatives are welcome).
> > 
> > DETAILS:
> > 
> > Insert the splitfile normally, except for the top block. The top block 
must 
> > fit inside a 1KB SSK payload. 
> > 
> > Hash the content of the top block:
> > 
> > hash of content: H(data)
> > 
> > Create a private key:
> > 
> > privkey = MAKE_PRIVKEY ( H ( H(data) + "0" ) )
> > 
> > Create the base crypto key:
> > 
> > ckey_base = H ( H ( data + "1" ) )
> > 
> > Create a series of crypto keys:
> > 
> > ckey_N = H ( ckey_base + "N" )
> > 
> > Insert to a series of SSKs:
> > 
> > SSK@<privkey>,<ckey_N>,<extra>
> > 
> > Announce the key:
> > 
> > UMK,N@<H(data)>,<extra>/<filename>
> > (Where N is the number of copies inserted)
> > 
> > The filename is ignored. This will make the Frost folk happy.
> > 
> 
> 
> 


-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 835 bytes
Desc: This is a digitally signed message part.
URL: 
<https://emu.freenetproject.org/pipermail/devl/attachments/20090423/1e1b599b/attachment.pgp>

Reply via email to