git.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Ilari Liusvaara <ilari.liusvaara@elisanet.fi>
To: Andreas Krey <a.krey@gmx.de>
Cc: Nguyen Thai Ngoc Duy <pclouds@gmail.com>, git@vger.kernel.org
Subject: Re: [RFC 0/2] Git-over-TLS (gits://) client side support
Date: Wed, 13 Jan 2010 19:36:10 +0200	[thread overview]
Message-ID: <20100113173610.GA7609@Knoppix> (raw)
In-Reply-To: <20100113161711.GB17687@inner.home.ulmdo.de>

On Wed, Jan 13, 2010 at 05:17:11PM +0100, Andreas Krey wrote:
> On Wed, 13 Jan 2010 16:47:47 +0000, Ilari Liusvaara wrote:
> 
> If you don't want public read access then you need to wedge a script
> between stunnel and git itself that checks whether authentication is
> present, yes.

That would violate layering badly. You need to decode the request
first before you can authorize. And the git daemon does that.
 
> > And besides: Gits:// uses certificates as keypairs,
> 
> My gripe with this is that I would expect gits: to be the same
> as git: except that there is SSL underneath. git: does not have
> authentication, so there should be none in gits: except what
> SSL provides.

All authentication in gits:// is at TLS (SSL) level or even lower.

> (And the auth via unix domain sockets would be
> usable for plain git: as well; there is no reason to encrypt
> local traffic?)

In fact, git-remote-gits has unencrypted mode (should be compatible
with git-daemon). The reason its there is mainly for Unix domain
sockets support and more advanced IPv6 support (interface indexes and
numeric addresses actually work).

> (Is the unix auth via unix domain sockets part of GnuTLS?)

No, that server-only feature is part of the OS itself. In fact, it
needs no client-side support.

> That's another story. I think that it would be possible nowadays
> to implement gits:// (in both ways) via core.gitproxy and a server-side
> wrapper program (stunnel or else), but that has the disadvantage of
> being unable to just provide a clone url without installing special
> software besides git.

GIT_PROXY abuse? There are even better ways: smart transport remote
helpers (in next I think). Git can actually dispatch those (and yes,
that's exactly what this uses).

And gits:// client is also buildable selfstanding. That would require
new client software, but its still nicer than GIT_PROXY abuse.

Another problem with GIT_PROXY abuse: How to deal with potentially
multiple custom protocols. Remote helpers can deal with that nicely.

> ...
> > The authentication support for smart-http seems pretty bad (making the
> > old mistake of not binding authentications).
> 
> Mind to explain 'binding authentications'?

Actually, that was little badly choosen term and not the true problem,
but the basic problem is that one peer has to trust the the other peer's
authentication for security of its own authentication.

In how authentications used by gits:// are designed, even if client doesn't
detect trying to authenticate with attacker, the attacker doesn't get any
replayable credentials without breaking crypto keys (as opposed to just
passwords). This holds true even for password authentication (PAKE-type
scheme is used).

HTTP basic auth can be trivially sniffed if attacker can become other end
of the encrypted link (crypto is by far the strongest link...). Digest auth
is harder, but its essentially brute force against password (as opposed to
trying to break a key).


-Ilari

  reply	other threads:[~2010-01-13 17:36 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-01-13 13:19 [RFC 0/2] Git-over-TLS (gits://) client side support Ilari Liusvaara
2010-01-13 13:19 ` [RFC 1/2] Git-over-TLS (gits://) client side support (part 1 of 2) Ilari Liusvaara
2010-01-13 13:19 ` [RFC 2/2] Git-over-TLS (gits://) client side support (part 2 " Ilari Liusvaara
2010-01-13 13:25   ` Alex Riesen
2010-01-13 13:39 ` [RFC 0/2] Git-over-TLS (gits://) client side support Nguyen Thai Ngoc Duy
2010-01-13 13:57   ` Ilari Liusvaara
2010-01-13 14:12     ` Andreas Krey
2010-01-13 14:47       ` Ilari Liusvaara
2010-01-13 16:17         ` Andreas Krey
2010-01-13 17:36           ` Ilari Liusvaara [this message]
2010-01-13 18:35             ` Andreas Krey
2010-01-13 19:18               ` Ilari Liusvaara
2010-01-13 19:30                 ` Avery Pennarun
2010-01-13 20:06                   ` Ilari Liusvaara
2010-01-13 20:13                     ` Avery Pennarun
2010-01-13 21:04                       ` Ilari Liusvaara
2010-01-13 22:03                         ` Avery Pennarun
2010-01-13 22:06                           ` Shawn O. Pearce
2010-01-13 23:00                           ` Ilari Liusvaara
2010-01-13 23:51                             ` Avery Pennarun
2010-01-14  8:51                               ` Ilari Liusvaara
2010-01-14 20:46                                 ` Avery Pennarun
2010-01-14 23:08                                   ` Ilari Liusvaara
2010-01-13 19:40                 ` Andreas Krey
2010-01-13 20:47                   ` Ilari Liusvaara
2010-01-13 19:11     ` Avery Pennarun
2010-01-13 20:00       ` Ilari Liusvaara
2010-01-13 20:13 ` Edward Z. Yang

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=20100113173610.GA7609@Knoppix \
    --to=ilari.liusvaara@elisanet.fi \
    --cc=a.krey@gmx.de \
    --cc=git@vger.kernel.org \
    --cc=pclouds@gmail.com \
    /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).