git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Matthias Andree" <matthias.andree@gmx.de>
To: "Linus Torvalds" <torvalds@linux-foundation.org>
Cc: git@vger.kernel.org
Subject: Re: encrypted repositories?
Date: Mon, 20 Jul 2009 14:09:28 +0200	[thread overview]
Message-ID: <op.uxc712eh1e62zd@balu.cs.uni-paderborn.de> (raw)
In-Reply-To: <alpine.LFD.2.01.0907171226460.13838@localhost.localdomain>

Am 17.07.2009, 21:38 Uhr, schrieb Linus Torvalds  
<torvalds@linux-foundation.org>:

>
>
> On Fri, 17 Jul 2009, Matthias Andree wrote:
>>
>> Assume you have a repository where you want to work on embargoed  
>> information,
>> so that not even system administrators of the server you're pushing to  
>> can get
>> a hold of the cleartext data.
>
> If the server can't ever read it, you're basically limited to just one
> story:
>
>  - use rsync-like "stupid" transports to upload and download things.
>
>  - a "smart" git server (eg the native git:// style protocol is not going
>    to be possible)

I don't know all its features, apparently it's online recompression - this  
is no longer going to be available.

> and you strictly speaking need no real git changes, because you might as
> well just do it by uploading an encrypted tar-file of the .git directory.
> And there is literally no upside in doing anything else - any native git
> support is almost entirely pointless.
>
> You could make it a _bit_ more useful perhaps by adding some helper
> wrappers, probably by just implementing a new transport name (ie instead
> of using "rsync://", you'd just use "crypt-tgz://" or something).
>
> Now, that said, there are probably situations where maybe you'd allow the
> server to decrypt things _temporarily_, but you don't want to be  
> encrypted
> on disk, and no persistent keys on the server, then that would open up a
> lot more possibilities.

> Of course, that still does require that you trust the server admin to
> _some_ degree - anybody who has root would be able to get the keys by
> running a debugger on the git upload/download sequence when you do a
> upload or download.
>
> Maybe that kind of security is still acceptable to you, though?

No, the server can't be allowed access to the keys or decrypted data.

I'm not sure about the graph, and if I should be concerned. Exposing the  
DAG might be in order.

It would be ok if the disk storage and the over-the-wire format cannot use  
delta compression then. It would suffice to just send a set of objects  
efficiently - and perhaps smaller revisions can be delta-compressed by the  
clients when pushing.

I admit haven't checked how the current git:// over-the-wire protocol[s]  
work[s]. I think client-side delta compression may require limiting the  
graph depths or delta size (when exceeded, the client must send the  
standalone self-contained object rather than a delta), so that the server  
can refuse patches when the delta nesting or size gets too deep/big.

I think this would generate the git server to something like a storage  
device for objects, perhaps with the DAG if exposed.


On a more general note, is someone looking into improving the http://  
efficiency?  Perhaps there are synergies between my plan of (a) encryption  
and (b) more efficient "dumb" (http/rsync/...) protocol use.

-- 
Matthias Andree

  parent reply	other threads:[~2009-07-20 12:10 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-07-17 15:14 encrypted repositories? Matthias Andree
2009-07-17 16:06 ` Michael J Gruber
2009-07-17 20:22   ` Jakub Narebski
2009-07-17 16:30 ` Matthias Kestenholz
2009-07-17 19:38 ` Linus Torvalds
2009-07-17 20:22   ` John Tapsell
2009-07-17 20:40     ` Linus Torvalds
2009-07-17 20:42       ` Linus Torvalds
2009-07-18 19:09         ` encrypted repositories? with git-torrent? Thomas Koch
2009-07-20 12:13           ` Matthias Andree
2009-07-20 12:09   ` Matthias Andree [this message]
2009-07-20 13:48     ` encrypted repositories? Jakub Narebski
2009-07-21  8:30       ` Matthias Andree
2009-07-20 15:30     ` Jeff King
2009-07-21  8:25       ` Matthias Andree
2009-07-23 10:40         ` Jeff King
2012-08-02 14:52 ` J-S-B

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=op.uxc712eh1e62zd@balu.cs.uni-paderborn.de \
    --to=matthias.andree@gmx.de \
    --cc=git@vger.kernel.org \
    --cc=torvalds@linux-foundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).