Re: Tor Project infrastructure updates in response to security breach

2010-01-21 Thread Harry Hoffman

Hi Roger,

Thanks for the detailed explanation. It's always interesting to hear 
about how other go into the verification route when a compromise happens.


Do you know the nature of the compromise? Was it against Tor itself or 
one of the other services running on the Directory Authorities?


Just curious, as it sounds like each of the DA was running a different 
set of apps, but perhaps I read more into that then was said.


Also, is there a need for hardware to be apart to physically partition 
services (i.e. svn,git,dns)? Or do you guys already have that covered?


Cheers,
Harry

Roger Dingledine wrote:

On Wed, Jan 20, 2010 at 04:43:44PM -0500, Roger Dingledine wrote:

In early January we discovered that two of the seven directory
authorities were compromised (moria1 and gabelmoo), along with
metrics.torproject.org


Here are some more technical details about the potential impacts, for
those who want to know more about Tor's innards:

- #1: Directory authority keys

Owning two out of seven directory authorities isn't enough to make a new
networkstatus consensus (you need four for that), but it means you've
only got two more to go. We've generated new v3 long-term identity keys
for these two authorities.

The old v3 long-term identity keys probably aren't compromised, since
they weren't stored on the affected machines, but they signed v3 signing
keys that are valid until 2010-04-12 in the case of moria1 and until
2010-05-04 in the case of gabelmoo. That's still a pretty big window,
so it's best to upgrade clients away from trusting those keys.

You should upgrade to 0.2.1.22 or 0.2.2.7-alpha, which uses the new v3
long-term identity keys (with a new set of signing keys).

- #2: Relay identity keys

We already have a way to cleanly migrate to a new v3 long-term identity
key, because we needed one for the Debian weak RNG bug:
http://archives.seul.org/or/announce/May-2008/msg0.html

But we don't have a way to cleanly migrate relay identity keys. An
attacker who knows moria1's relay identity key can craft a new descriptor
for it with a new onion key (or even a new IP address), and then
man-in-the-middle traffic coming to the relay. They wouldn't be able to
spoof directory statements, or break the encryption for further relays
in the path, but it still removes one layer of the defense-in-depth.

Normally there's nothing special about the relay identity key (if you
lose yours, just generate another one), but relay identity keys for
directory authorities are hard-coded in the Tor bundle so the client
can detect man-in-the-middle attacks on bootstrapping.

So we abandoned the old relay identity keys too. That means abandoning
the old IP:port the authorities were listening on, or older clients will
produce warn messages whenever they connect to the new authority. Older
Tor clients can now take longer to bootstrap if they try the abandoned
addresses first. (You should upgrade.)

- #3: Infrastructure services

Moria also hosted our git repository and svn repository. I took the
services offline as soon as we learned of the breach -- in theory a clever
attacker could give out altered files to people who check out the source,
or even tailor his answers based on who's doing the git update. We're
in pretty good shape for git though: the git tree is a set of hashes
all the way back to the root, so when you update your git tree, it will
automatically notice any tampering.

As explained in the last mail, it appears the attackers didn't realize
what they broke into. We had already been slowly migrating Tor services
off of moria (it runs too many services for too many different projects),
so we took this opportunity to speed up that plan. A friendly anonymous
sponsor has provided a pile of new servers, and git and svn are now up
in their new locations. The only remaining Tor infrastructure services on
moria are the directory authority, the mailing lists, and a DNS secondary.

- #4: Bridge descriptors

The metrics server had an archive of bridge descriptors from 2009.
We used the descriptors to create summary graphs of bridge count and
bridge usage by country, like the ones you can see at
http://metrics.torproject.org/graphs.html

So it's conceivable that some bad guy now has a set of historical bridge
data -- meaning he knows addresses and public keys of the bridges, and
presumably some of the bridges are still running at those addresses and/or
with those public keys. He could use this information to help governments
or other censors prevent Tor clients from reaching the Tor network.

I'm not actually so worried about this one though, because a) we didn't
have that many bridges to begin with in 2009 (you should run a bridge!),
b) there seems to be considerable churn in our bridges, so last year's
list doesn't map so well to this year's list), and c) we haven't been
doing a great job lately at keeping China from learning bridges as it is.

Hope that helps to explain,
--Roger


Re: Tor Project infrastructure updates in response to security breach

2010-01-21 Thread Mike Perry
Thus spake Paolo Palmieri (palma...@gmx.it):

  would it make sense to sign the torbutton xpi's?
 
 Actually, I've always been quite amazed by the fact that TorButton's
 .xpi (binary?) files are not signed.

 I'd really like to see this implemented in the future.

Just as in the Tor repo, I gpg sign the Torbutton git tags. I also gpg
sign .xpis, but have been sloppy about posting them publicly.

As for actual Firefox-compatible builtin xpi signatures, the last time
I looked into those they were exceedingly complicated and needed a
special Code Signing Certificate, which required me bending over and
paying Verisign or some other SSL Mafia Member a lot of money
($200-500/yr) to examine my rectum for a while. Maybe the Tor Project
can get one of these for me, but I am not certain its really worth it.

I suppose I could also create a rogue code signing certificate and
provide that over SSL for people to install, but then I wonder if
vanilla Firefox will reject my XPIs then because they are signed, but
with an invalid cert.

For now, I think the right answer is Fetch it over SSL or Check the
git/gpg sig.

-- 
Mike Perry
Mad Computer Scientist
fscked.org evil labs


pgpG7EGSQVvmT.pgp
Description: PGP signature


Re: Tor Project infrastructure updates in response to security breach

2010-01-21 Thread marcel
on Thu, Jan 21, 2010 at 02:09:42PM -0800, Mike Perry wrote:
 For now, I think the right answer is Fetch it over SSL

Fetch it over SSL from addons.mozilla.org (the Mozilla Foundation
obviously did bend over)

/marcel


signature.asc
Description: Digital signature


Re: Tor Project infrastructure updates in response to security breach

2010-01-21 Thread Jacob Appelbaum
Mike Perry wrote:
 
 I suppose I could also create a rogue code signing certificate and
 provide that over SSL for people to install, but then I wonder if
 vanilla Firefox will reject my XPIs then because they are signed, but
 with an invalid cert.
 

I have a few of those laying around. I guess we could run some tests and
find out?

Best,
Jake



signature.asc
Description: OpenPGP digital signature


Re: Tor Project infrastructure updates in response to security breach

2010-01-21 Thread Jim



Mike Perry wrote:

Just as in the Tor repo, I gpg sign the Torbutton git tags. I also gpg
sign .xpis, but have been sloppy about posting them publicly.


snip


For now, I think the right answer is Fetch it over SSL or Check the
git/gpg sig.


Could you make a point of publicly posting the .xpi gpg signatures along 
with the .xpis?  I have never liked the method of downloading the 
extensions via the browser and installing all in one step.  I prefer to 
download the extension, convince myself it is authentic (such as gpg), 
possibly install it locally in a test accound, and finally install it 
locally in the account(s) where I intend to use it.  At present, the 
missing ingredient in being able to do that is not having a signature to 
verify against.


So I'd much appreciate being able to get the signature w/o having to 
figure out git.  Particularly if that signature has already been created.


Thanks,
Jim

***
To unsubscribe, send an e-mail to majord...@torproject.org with
unsubscribe or-talkin the body. http://archives.seul.org/or/talk/


Tor Project infrastructure updates in response to security breach

2010-01-20 Thread Roger Dingledine
You should upgrade to Tor 0.2.1.22 or 0.2.2.7-alpha:
https://www.torproject.org/download.html.en

In early January we discovered that two of the seven directory
authorities were compromised (moria1 and gabelmoo), along with
metrics.torproject.org, a new server we'd recently set up to serve
metrics data and graphs. The three servers have since been reinstalled
with service migrated to other servers.

We made fresh identity keys for the two directory authorities, which is
why you need to upgrade.

Moria also hosted our git repository and svn repository. We took the
services offline as soon as we learned of the breach. It appears the
attackers didn't realize what they broke into -- just that they had
found some servers with lots of bandwidth. The attackers set up some ssh
keys and proceeded to use the three servers for launching other attacks.
We've done some preliminary comparisons, and it looks like git and svn
were not touched in any way.

We've been very lucky the past few years regarding security. It still
seems this breach is unrelated to Tor itself. To be clear, it doesn't
seem that anyone specifically attacked our servers to get at Tor. It
seems we were attacked for the cpu capacity and bandwidth of the servers,
and the servers just happened to also carry out functions for Tor.

We've tried to address the most common questions below.

* Does this mean someone could have matched users up to their
destinations?

No. By design, Tor requires a majority of directory authorities (four
in this case) to generate a consensus; and like other relays in the
Tor network, directory authorities don't know enough to match a user
and traffic or destination.

* Does this mean somebody could have changed the Tor source?

No, we've checked the source. It does mean you should upgrade so your
client knows about all the currently valid directory authorities.

* Does this mean someone could have learned more about Tor than an
ordinary user?

Since our software and specifications are open, everyone already has
access to almost everything on these machines... except some old bridge
descriptors, which we give out only in small batches as entry points for
blocked clients.

* Can I trust Tor's security?

We've taken steps to fix the weaknesses identified and to harden our
systems further. Tor has a track record of openness and transparency,
with its source code and specifications and also with its operations.
Moreover, we're disclosing breaches such as this so you can monitor our
status. You shouldn't assume those who don't disclose security breaches
never have any!

--Roger



signature.asc
Description: Digital signature


Re: Tor Project infrastructure updates in response to security breach

2010-01-20 Thread Roger Dingledine
On Wed, Jan 20, 2010 at 04:43:44PM -0500, Roger Dingledine wrote:
 In early January we discovered that two of the seven directory
 authorities were compromised (moria1 and gabelmoo), along with
 metrics.torproject.org

Here are some more technical details about the potential impacts, for
those who want to know more about Tor's innards:

- #1: Directory authority keys

Owning two out of seven directory authorities isn't enough to make a new
networkstatus consensus (you need four for that), but it means you've
only got two more to go. We've generated new v3 long-term identity keys
for these two authorities.

The old v3 long-term identity keys probably aren't compromised, since
they weren't stored on the affected machines, but they signed v3 signing
keys that are valid until 2010-04-12 in the case of moria1 and until
2010-05-04 in the case of gabelmoo. That's still a pretty big window,
so it's best to upgrade clients away from trusting those keys.

You should upgrade to 0.2.1.22 or 0.2.2.7-alpha, which uses the new v3
long-term identity keys (with a new set of signing keys).

- #2: Relay identity keys

We already have a way to cleanly migrate to a new v3 long-term identity
key, because we needed one for the Debian weak RNG bug:
http://archives.seul.org/or/announce/May-2008/msg0.html

But we don't have a way to cleanly migrate relay identity keys. An
attacker who knows moria1's relay identity key can craft a new descriptor
for it with a new onion key (or even a new IP address), and then
man-in-the-middle traffic coming to the relay. They wouldn't be able to
spoof directory statements, or break the encryption for further relays
in the path, but it still removes one layer of the defense-in-depth.

Normally there's nothing special about the relay identity key (if you
lose yours, just generate another one), but relay identity keys for
directory authorities are hard-coded in the Tor bundle so the client
can detect man-in-the-middle attacks on bootstrapping.

So we abandoned the old relay identity keys too. That means abandoning
the old IP:port the authorities were listening on, or older clients will
produce warn messages whenever they connect to the new authority. Older
Tor clients can now take longer to bootstrap if they try the abandoned
addresses first. (You should upgrade.)

- #3: Infrastructure services

Moria also hosted our git repository and svn repository. I took the
services offline as soon as we learned of the breach -- in theory a clever
attacker could give out altered files to people who check out the source,
or even tailor his answers based on who's doing the git update. We're
in pretty good shape for git though: the git tree is a set of hashes
all the way back to the root, so when you update your git tree, it will
automatically notice any tampering.

As explained in the last mail, it appears the attackers didn't realize
what they broke into. We had already been slowly migrating Tor services
off of moria (it runs too many services for too many different projects),
so we took this opportunity to speed up that plan. A friendly anonymous
sponsor has provided a pile of new servers, and git and svn are now up
in their new locations. The only remaining Tor infrastructure services on
moria are the directory authority, the mailing lists, and a DNS secondary.

- #4: Bridge descriptors

The metrics server had an archive of bridge descriptors from 2009.
We used the descriptors to create summary graphs of bridge count and
bridge usage by country, like the ones you can see at
http://metrics.torproject.org/graphs.html

So it's conceivable that some bad guy now has a set of historical bridge
data -- meaning he knows addresses and public keys of the bridges, and
presumably some of the bridges are still running at those addresses and/or
with those public keys. He could use this information to help governments
or other censors prevent Tor clients from reaching the Tor network.

I'm not actually so worried about this one though, because a) we didn't
have that many bridges to begin with in 2009 (you should run a bridge!),
b) there seems to be considerable churn in our bridges, so last year's
list doesn't map so well to this year's list), and c) we haven't been
doing a great job lately at keeping China from learning bridges as it is.

Hope that helps to explain,
--Roger

***
To unsubscribe, send an e-mail to majord...@torproject.org with
unsubscribe or-talkin the body. http://archives.seul.org/or/talk/


Re: Tor Project infrastructure updates in response to security breach

2010-01-20 Thread Peter Thoenen
 In early January we discovered that two of the seven directory
 authorities were compromised (moria1 and gabelmoo), along with
 metrics.torproject.org, a new server we'd recently set up to serve
 metrics data and graphs. The three servers have since been reinstalled
 with service migrated to other servers.

While the issue was resolved, could this of had an impact had they known what 
they broke into between the time of breach and time of discovery?

Do we know how they broke in?

***
To unsubscribe, send an e-mail to majord...@torproject.org with
unsubscribe or-talkin the body. http://archives.seul.org/or/talk/


Re: Tor Project infrastructure updates in response to security breach

2010-01-20 Thread Roger Dingledine
On Wed, Jan 20, 2010 at 11:12:29PM -0500, Peter Thoenen wrote:
  In early January we discovered that two of the seven directory
  authorities were compromised (moria1 and gabelmoo), along with
  metrics.torproject.org, a new server we'd recently set up to serve
  metrics data and graphs. The three servers have since been reinstalled
  with service migrated to other servers.
 
 While the issue was resolved, could this of had an impact had they known
what they broke into between the time of breach and time of discovery?

Yes, depending on how paranoid you want to get.

I don't think they could have done anything particularly devious with
the directory authority. We've got that pretty well sorted out with the
distributed trust thing -- nothing moria1 does can rig the consensus
by itself.

So it's really a question of the services running.

Moria was running a nameserver for torproject.org (still is), so they
could send web requests elsewhere. If people check SSL certs, no problem
(modulo the usual points about SSL not being perfect); if they don't
check SSL certs, we hope they check package signatures. This risk isn't
specific to our machines though -- your local ISP can lie to you about
your DNS resolves, or some jerk could redirect our bgp record like how
Pakistan stole Youtube for a few hours last year.

It was also the mail host for @torproject.org, though most of the mails
went off to other mail servers after that. So they could have read my
mail. Most of my mail is public (and/or boring) anyway though.

I could imagine that they might try to sneak in a commit to the git
repository. We have a hook that mails all commits to the mailing list,
and we watch that pretty well. But they could disable the hook during
their commit. As I mentioned in the earlier mail, the git tree is made up
of hashes, so they can't just modify it outright. I've looked over the
'git log' output, and didn't find anything odd. It might be neat to do
an automated comparison of mails that made it to the mailing list vs
commits to the git repository, if we wanted another layer of checking.

Svn is less secure. It's just a database, and people can muck with it how
they like. We've compared several of the svn repositories to backups, and
nothing looked out of the ordinary. Good thing we moved Tor, Torbutton,
BridgeDB, etc to git last year. The website wml files are still in svn
and not git though, to make it easier for our volunteer translators;
give us a holler if you find Tor sucks scribbled in some corner. :)

If you want to scale up on the paranoid meter, you could imagine ssh
client buffer overflows for the developers when we connected to it. That
rabbit-hole goes as far as you like.

Speaking of rabbit-holes, my gpg key is nearly a decade old and only
1024 bits. Sometime in the next little while I'm going to switch to a
bigger one.

 Do we know how they broke in?

As I understand it, we have a 450G disk image from one of the machines
sitting somewhere in Canada, but not anywhere near any of the Tor people.

The attacker(s) were sloppy, so we know some things like the name of the
local-to-root exploit they used (which by its name works on a surprisingly
wide spread of kernel versions... security is hard). I still don't know
how they got in to moria originally, though. Too much was going on on
that machine.

--Roger

***
To unsubscribe, send an e-mail to majord...@torproject.org with
unsubscribe or-talkin the body. http://archives.seul.org/or/talk/


Re: Tor Project infrastructure updates in response to security breach

2010-01-20 Thread Roger Dingledine
On Thu, Jan 21, 2010 at 12:25:08AM -0500, grarpamp wrote:
 It would be easier to just sign the git revision hashes at various intervals.
 Such as explicitly including the revision hash that each release is
 made from in the release docs itself. And then signing that release.
 That way everyone... git repo maintainers, devels, mirrors, users...
 can all verify the git repo via that signature. Of course the sig key material
 needs to be handled in a sanitary way, but still, it's the idea that matters.
 And git, not svn, would need to be the canonical repo committers commit
 to, etc.
 
 Thanks for Tor.

We do sign the git repository for each release (stable and development).

Do a git clone of Tor, and then 'git tag -l'.

Saying the git hash of the release in the release notes is not a crazy
notion though.

--Roger

***
To unsubscribe, send an e-mail to majord...@torproject.org with
unsubscribe or-talkin the body. http://archives.seul.org/or/talk/


Re: Tor Project infrastructure updates in response to security breach

2010-01-20 Thread Sebastian Hahn


On Jan 21, 2010, at 6:25 AM, grarpamp wrote:


As I wrote someone earlier...
It would be easier to just sign the git revision hashes at various  
intervals.

Such as explicitly including the revision hash that each release is
made from in the release docs itself. And then signing that release.
That way everyone... git repo maintainers, devels, mirrors, users...
can all verify the git repo via that signature. Of course the sig  
key material
needs to be handled in a sanitary way, but still, it's the idea that  
matters.
And git, not svn, would need to be the canonical repo committers  
commit

to, etc.


This already happens. Clone the Tor repository, and you'll find a  
signed tag named tor-0.2.2.7-alpha.


Use git tag -v tor-0.2.2.7-alpha to check for yourself.

Sebastian
***
To unsubscribe, send an e-mail to majord...@torproject.org with
unsubscribe or-talkin the body. http://archives.seul.org/or/talk/


Re: Tor Project infrastructure updates in response to security breach

2010-01-20 Thread grarpamp
ok, cool. thx guys.

would it make sense to sign the torbutton xpi's?
and torsocks?
perhaps since it all comes from the same git repo it isn't necessary.
***
To unsubscribe, send an e-mail to majord...@torproject.org with
unsubscribe or-talkin the body. http://archives.seul.org/or/talk/


Re: Tor Project infrastructure updates in response to security breach

2010-01-20 Thread Paolo Palmieri
 would it make sense to sign the torbutton xpi's?

Actually, I've always been quite amazed by the fact that TorButton's
.xpi (binary?) files are not signed.
I'd really like to see this implemented in the future.

Thanks,
Paolo
***
To unsubscribe, send an e-mail to majord...@torproject.org with
unsubscribe or-talkin the body. http://archives.seul.org/or/talk/