>> Jon Howell: Thank you all for coming. ... pleasure of having Bryan Ford here. He did his...

advertisement
>> Jon Howell: Thank you all for coming. Today we have the
pleasure of having Bryan Ford here. He did his graduate work at
M.I.T. and is connected with Peter [indiscernible] out at MPI,
and makes his way out here to visit us this week and if you
didn't get a chance to visit him and after seeing this talk
you'll want to, we might be able to squeeze you into his schedule
today. We've got a few spaces. Or you can join us for lunch.
But we're going to find out about how he can help protect us from
the horrific security problems we're having currently in the
cloud.
>> Bryan Ford: Well, it's great to be here finally. I'm told
that this isn't really needed, and yeah. Good to see you all.
So yeah. As Jon mentioned, one of the projects that I've been
working on for the past few years is in anonymous communication,
and I'm going to give kind of a somewhat high level overview of
various aspects of this. I hope it won't be too high level and
fluffy. And feel to interrupt me and, you know cause me to drill
down into details that might be of interest, might have to, you
know, skip other parts of the talk based on time, but I'm totally
flexible in terms of kind of adapting to what you prefer.
So this is a joint work with a number of people, both at Yale and
UT Austin, Vitaly Shmatikov's group as well as Paul
[indiscernible]'s group, especially Aaron Johnson, at the Naval
Research Lab.
So what's the basic motivation? Imagine some mythical country
called Repressistan, where there's some kind of political
dissidents who want to talk and want to organize protests, and
one of these guys says let's protest tomorrow at 9:00 a.m. in the
square and some of his buddies say okay, I'm in, you know, and
they're all tweeting their organization stuff. But, of course,
you know, the Repressistani police don't really like to see this
happening and they say, okay, you know, who's actually running
shot here. Well, you know, there's too many protesters for us to
throw all of them in jail, you know so we just need to catch the
ringleader, right. So basically, what the problem here that the
Dissent is trying to attack is, immediately anyway, the strength
in numbers problem. How do we kind of get some kind of an
ability to communicate and get some assurance of anonymity in
that communication, some strength in numbers.
Now, there's a complementary problem that we call the
unobservability problem. How do you prevent the Repressistani
police from knowing you're communicating at all. That's not our
primary focus, but it's very complementary and I'm happy to talk
about that too.
So, of course, you know, as I'm sure you're aware, in actually
corresponds to real situations. We all saw the Arab Spring
developing and the kind of the central, the major role that
social media played in the organization of these protests and
major events. And we found in the aftermath, we found a number
of things, both, you know, not just how central a role these
plays, but also how, you know, once these repressive governments
did figure out, you know, this internet thing and how it works
and how they can monitor and control it, they started to really
push back and bloggers who weren't using anonymous communication
technologies started getting harassed and thrown in jail and
stuff.
So this is, you know, this is a significant thing for various
people around the world. But it's, you know, it doesn't matter
for us around here, right? You know, who would want to track us,
you know, and, you know, in Freeistan, right? Of course, you
know, nobody in particular. Only, say, advertisers if you ever
spend money, you know, they'd like to kind of figure out exactly
what you might be interested in. Websites, you know, vendors
who, you know, tend to like to change prices based on your habits
and, you know, if you're more seriously, if you're a domestic
abuse victim, a lot of people really need not to be tracked by
the creepy exes that like to stalk people online, and there's
even creepy exes coming out of well known agencies that we've
been hearing about.
So if you run a business, then it's been
then your competitors
might want to know when you're browsing their website and, you
know what you're doing. If you're in any kind of minority group,
there are probably extremists that, you know, might want to track
you, you know. So this probably isn't a problem for most of us.
But for many, it is. If you happen to be within three social
hops of anyone, the police, you know, your favorite police force
thinks is of interest, then, you know, you're probably in this
net.
>>:
[indiscernible].
>> Bryan Ford: Probably. Well, so I was at CCS and I was at
Jacob Applebaum's key note where he made the point that, you
know, he's almost certainly of interest and, thereby, anyone in
that room at that time is probably, you know, kind of within one
hop of that and so I'm afraid you all are, you know, no more than
two hops away from someone of interest. So sorry about that.
But then, you know, if you're, say, you know, if you're a police
officer, then, you know, you might need to do, you know,
investigation of, say, criminal activity and they probably don't
want to see your connection coming from FBI.gov or, you know,
whatever. So it's a real two way street. Lots of diverse
people.
>>:
Question?
>> Bryan Ford:
Yeah.
>>: So what's [indiscernible] about this slide is if you remove
the word online from the title, this slide just as it is.
>> Bryan Ford: Sure, sure, yeah. The only problem is I don't
know how to do anything about non online anonymity so, you know,
yeah. But absolutely fair enough, yeah. So how can we protect
ourselves online? Well, there's, you know, some very well known
weak defenses that actually tend to get used a lot, you know,
disable your cookies, clear your browser history, set the do not
track flag that basically says, hey, website, please, please
don't track me. Pretty please, promise, you know. And, you
know, hopefully they will if they're nice. You can
there's a
lot of commercial VPNs. This is a very common way that users get
around, say, the great firewall of China, for example, these
commercial VPN services. But, of course, they're all central
point of failure that that one proxy gets hacked or some sub
polluted, you're probably out of luck.
And so this is what motivated more serious decentralized
anonymity systems, such as Tor, which it NSA calls it the king of
anonymity so
and I believe that, you know, that's probably
true. It's the current state of the art in actual deployed,
usable systems, and basically the idea, you know, if you're not
highly familiar with it already is it creates a series of tunnels
through typically three different intermediate relays, encrypted
tunnels so each of these is an onion wrapper, basically, and it
and because one of the concentric tunnels ends at each of the
intermediate spots, the content flowing in to a given router is
differently encrypted from the content coming out of the router,
which hopefully makes it very hard to tell, you know, what
which packet going in corresponds to which packet coming out, at
least based on the content.
And so, you know, that's kind of the
just the super high level
summary. And we've gotten actually some good news recently, you
know, that the NSA hates Tor, for example. So the most powerful
agency in the world that wants to try to break Tor, you know,
doesn't seem able to break it, at least as of earlier last
summer. So that's good.
On the other hand, the bad news is Tor and onion routing, the
whole technique of onion routing are fairly well known in the
research community to have a variety of potential weaknesses, and
we're just not sure, you know, how low hanging these fruit are
for attackers and that's kind of still a big open issue. And I'm
actually going
I want to organize my talk not really around
the components or the architectural components of Dissent or of
our project, per se, but rather around these classes of attacks.
Now, this is kind of my own classification, but all of the big,
major, kind of unsolved classes of attacks against onion routing
systems, as I'm aware of, seem to fall into these categories as
far as I know. And if you have, you know, know of anything that
doesn't cleanly fall into one of those, I'd love to hear and
discuss.
>>: How do you [indiscernible] if you put something out there
that improves security, but it's still vulnerable, would you have
done more damage because people can get secure [indiscernible].
>> Bryan Ford: Well, that's absolutely a constant issue for this
whole space of tools, you know, and I talk about it with the Tor
project people all the time, and, for example, the fact that, you
know, for the first few years after they released Tor, they had a
big disclaimer, this is very experimental software. Might have a
lot of bugs, you know. Beware, you know. But then there was
these other projects that were coming out with basically
completely snake oil and saying this is unbreakable crypto, you
know, and it creates this kind of moral dilemma. Well, you know
if you put all these kind of, you know, if you, you know,
properly hedge and, you know, put all the disclaimers and be, you
know, completely honest, yeah, this is experimental stuff, you
know, that might be broken. Then, you know, people are very
likely to you know, flock to the really bad stuff, right, you
know. And so, you know, it creates, you know, this, you know, a
serious dilemma that. And I don't have a good answer to that
yet.
Now, Dissent, you know, the system that I'll be talking about is
not yet at the stage where it really can be used in the real
world. So we're not yet at the stage of having to make that you
know, those difficult choices, although we hope to be able to
deploy it in some form soon. But, you know, in general, it's
>>: [indiscernible] I think about it in general you think about
take decipher, for example, would you feel comfortable putting it
out there, the proper disclaimers?
>> Bryan Ford: Yeah, yeah. And we intend to so and I think, you
know, deploy kind of new untested technology, it's also good to
be able to deploy it in ways where, you know, where there's a lot
of kind of kicking the tires uses where, hopefully, nobody's life
is depending on it, you know, and
but, you know, we can kind
of still get a lot of people, you know, playing with it and
analyzing it and, you know, gradually harden it further. But
yeah, you know, it's definitely a big, big challenge.
Yeah. So yeah. So I'm basically going to organize the talk
around these classes of attacks. And if you look through the
research literature, there's a lot of examples of each of these,
like global traffic analysis, active attacks, and I'll get into
these briefly, denial of security attacks, intersection attacks,
software exploits, which actually got a lot of news recently.
And so basically, the goal of the Dissent project is to
it's
kind of a deliberate clean slate effort on anonymous
communication systems. So if we could just kind of completely
rethink how we build anonymous communication system to try to
offer quantifiable and measurable guarantees ideally provable
guarantees, how might we do that. And so that's kind of the goal
and most importantly to kind of not just kind of patch individual
issues, but try to architect the system to address whole classes
of attacks, all right.
And so, you know, to put a big disclaimer right at the front,
Dissent as a clean slate architecture currently certainly does
not and may never, you know, this approach may never actually be
a drop in replacement for onion routing. But I think the, kind
of the claim of, you know, partial success so far is that at this
point, Dissent has some answer, you know, some very incomplete,
imperfect, but some answer to all of these major classes of
attacks against onion routing systems. So I'm hoping it can be a
basis for a further really, you know, interesting area of work.
So how does Dissent design around these kinds of attacks in and
so that's what the rest of this talk is going to be about, and I
can
some of these will just be brief. I can gloss over, skip
around if appropriate for time or other reasons.
So to start with the first problem, traffic analysis. So I
assume a lot of you have at least heard of this, especially in
the context of the Snowden leaks. But kind of the high level
issue is, you know, even if you have every
even if everything
is properly end to end encrypted and the NSA or whoever your, you
know, adversary is not actually breaking the encryption, there's
still
you're still revealing a lot through, say, the packet
links and bursts of traffic that you're using to interact in a
system.
And so just as a standard example, basic scenario, suppose Alice
lives in Repressistan and she wants to use Tor, and all of her
three Tor relays are in the free world TM, and she's using an
onion routed connection to that to post on a blog server that
also happens to be in Repressistan.
Now, unfortunately, what she doesn't realize is the RepressCo
state ISP monitors, going into and out of the Repressistani
border, and they've gotten smart and figured out a way to
fingerprint the traffic going across their routers. And if they
can kind of develop this to a sufficient
to a sufficiently
scalable point, they can kind of put time stamp fingerprints on a
lot of this traffic and kind of match what goes in one side with
what comes out the other and figure out, you know that, aha,
Alice is talking to this blog server.
So now this is
this is in principle, we don't know that
anybody is really doing this right now, but there are plenty of
research results that kind of measure and provide proof of
concepts of how this kind of fingerprinting works. And like in
this particular example,
showed that, say, out of
easily fingerprint with,
you know, what a user is
websites a user is going
and stuff.
from a few years ago, some other people
the top 2,000 websites, you can fairly
like, 80 percent accuracy exactly what,
going to, you know, which of those
through just by the SSL traffic patterns
So now, you know, are there actually attackers doing this? Not
that I'm aware of yet, and the Snowden slides seem to indicate
that even the NSA is still having kind of trouble with this. On
the other hand, it looks like it's very actively in progress. So
this one slide has something about, you know, goes into, go
outta, you know, which it's anybody's interpretation, but this
sounds a little like traffic analysis to me. And the more
concerning part is it says GCHQ has a working version now. I
don't know what exactly they have a working version of, but it
sounds like it's in a similar space.
So I expect, you know, somebody's going to do this before too
long if they haven't already. From the research world, just in
this past CCS, our colleagues from the NRL produced some very
really interesting simulation based studies trying to be kind of
the
provide the most realistic possible simulations of what ap
attacker might be able to do if an attacker owns, say, an
one
or more entire big ASs or one or more, you know, appropriately
placed IXPs. And so they see a lot of traffic going in and out.
And the upshot is, you know, if
it really depends on how
unlucky
lucky or unlucky you are as a user, how well or poorly
you're placed. If you're
if you're fairly lucky user, then,
you know, you might actually hold out for quite a while before
you get deanonymized. But if you're poorly placed, then the
attacker might deanonymize you very quickly in this fashion.
So how can we build systems that actually resist this kind of
traffic analysis? Now, as far as I'm aware, there are basically
two general approaches. One is basically to keep the onion
routing paradigm but pad traffic to more uniform rate. This
works to come degree. I'm not going to talk about it in great
detail, and they're continuing work, for example in the last
Sigcomm. And it does work against passive attacks, it seems
like, but it often fails against more active attacks.
So but like I said, since Dissent is exploring a clean slate
approach, we decided to take a very different approach using the
alternative dining cryptographers approach to anonymity, David
Chaum also invented along with [indiscernible] back in the '80s
but hasn't really been used in practical anonymity systems other
than Gun Sirer's Herbivore system back a number of years ago.
>>:
Can you [indiscernible] why is that [indiscernible] attacks?
>> Bryan Ford: I'll actually get into that in just a minute, in
the next section. So yeah, that's a good question. Yeah. Yeah,
so just to give you very brief high level overview, how if you're
not familiar with the dining cryptographers problem, assume one
of these people, say in this case, Alice, actually has a one bit
secret that she wants to share, and but they all
the group
wants to collaborate to allow an anonymous
any of their
members to share this one bit message anonymously without
revealing who
which of the members of that group sent it.
So in this case, each
so the standard illustration is these
are three cryptographers sitting around a table, and they flip a
coin. They each pair of cryptographers flip a coin beneath the
edge of the table where only that pair and not the third one can
see the result of the coin toss, and each cryptographer looks at
the coin to his left and his right and XORs their value together,
except in the case of Alice, she XORs both of her coins and her
secret and they all write this XORed result on the napkin on the
table. And so then they look at all the napkins and XOR those
values together and all the coins basically cancel out because
each continue got XORed into exactly two napkins, and that leaves
exactly the secret value, but provably reveals no information
about who actually put that secret value in there.
So this has been
this approach has been attractive for a long
time because it has this provable security even against traffic
analysis. So, you know, the NSA
an adversary can see
everything that goes on on the network, in principle, other than
the individual coins and is still protected. But it has a lot of
practical issues. Yeah.
>>: That works only if Alice does the XOR. If more than one
does, [indiscernible] the XOR of what everyone selected and the
synchronization problem is exactly what you're trying to hide.
So I don't understand this at all.
>>: It's provably secure is the wrong term here. It's provably
confidential, but your availability just disappeared because if
two people tried to transmit it at the same time.
>> Bryan Ford:
>>
Yes, yes.
That's the disruption problem, and I
[indiscernible] availability for confidentiality.
>> Bryan Ford: That one of the big problems which I'm just about
to get to. Yes, indeed. Yeah, sorry.
>>:
[indiscernible].
>>:
Again, this is why the word secure is always interesting.
>> Bryan Ford:
>>:
Yes.
It's provable confidentiality.
>> Bryan Ford: Yeah. So provable, you know, yeah. Yes.
Anonymity against traffic analysis, I should have said, yeah.
And, you know, that should be qualified too if there are
colluding parties in there. You're only anonymous among the non
colluding, you know, honest parties. You know, so there's some
caveats. But in general, there's this big classic problem. Why
DC nets hasn't really been practical for at least three reasons.
One is just when you actually scale this up to large groups, the
natural way to get maximal anonymity is, you know, you actually
need to kind of any to any, all to all, you know coin flipping
relationships, not just kind of around the table because if you
just kind of use a ring of coins around the table, then if, say,
an attacker is immediately to your left and your right, they can
isolate and deanonymize you and stuff.
So there's the kind of end by end cost. Kind of more related to
what I think you were referring to, if any participant actually
disappears at the wrong time, you know, and doesn't produce their
napkin, then everything is useless and you kind of have to start
over. And even more seriously, if anybody doesn't want you to
communicate, they can just jam the whole system with random bits
all the time and the system is useless. And so this has been a
kind of a
one of the major technical challenges with DC nets
for a long time. In Dissent, so in our OSDI 2012 paper on
Dissent, we really address the scaleability issue.
And we did this by adopting a quasi, cloud like client multi
server model where we assume we have a set of independently run
servers, which may be cloud servers or something, and the clients
each of clients shares a coin with each of the servers, but not
directly with other clients. And kind of the upshot of the
anonymity property it provides is that as long as at least one of
those servers is not compromised, all of the others can be
compromised, but as long as least one is honest and not colluding
with the others, then that creates an ounce coin sharing graph
with all of the honest clients. In this case, the blue ones, and
you still kind of get the ideal provable anonymity set in that
context among the honest clients. Now, and this is actually a
way to make it scale, at least a lot better than it did before.
And we were able to demonstrate it up to, like, 5,000 virtual
clients on 300
the 320 physical test bed nodes we had and
basically we ran into test bed limitations before the system
stopped scaling.
>>:
[inaudible].
>> Bryan Ford: So this was 16 servers, as I recall. Either 8 or
16. And actually we found that this is elsewhere in the paper,
but we, having more servers actually, you know, made it scale
better in that at some point, the servers become a bottleneck as
you would expect and
yeah.
>>: [indiscernible] as to why you need the protocol if you have
an honest server?
>> Bryan Ford: So actually, one thing I should have been clearer
about, we assume
the trust model is that we assume there
exists an honest server among this set, but we don't assume that
anybody, any of the clients or anybody knows which that honest
server is. So the honest
the clients don't have to
don't
have to choose a particular server to say I trusted that server
is honest. The clients just say, okay, I trust that someone
there exists someone in this set of servers that I, you know,
that, you know, I believe is not out to get me, right. Does that
answer your question, or did I
>>
[indiscernible] with multiple servers?
>> Bryan Ford: So another thing I didn't really get into, I
guess, in enough depth is the
these coin sharing, the clients
are sharing secrets with each of the servers. But they don't
actually have to physically communicate directly with each of the
servers. In the actual physical communication protocol, in fact,
each client typically only communicates with one upstream server.
But it doesn't have to trust that upstream server. That one
upstream server that it's communicating directly with can't
deanonymize the client. Of course, it can DOS the client. It
can say, okay, I'm not going to serve you, but then the client
can go to a different server. That's easily detectable, right.
But, you know, even if the client's upstream service
server is
kind of silently malicious, it can't deanonymize the client by
itself.
>>: Is it hard to get [indiscernible] do you have a sense for
how many servers you would need [indiscernible].
>> Bryan Ford: Well, so yeah. So unfortunately, it's really,
really hard, you know, for a lot of reasons to compare Dissent
configurations against Tor. For one thing because they really
provide fundamentally different communication abstractions.
Dissent is providing a multi cast, you know, ethernet like multi
cast channel, you know. Whereas Tor is providing a big bundle of
point to point channels. And if you look at kind of how Dissent
scales, you know, compared to other multi cast communication
systems, it becomes easier to kind of compare scaleability and
reliability and performance.
At the moment, I really don't have a good way to compare, you
know, a Dissent configuration against a Tor configuration kind of
that I would really call apples to apples, you know.
>>:
[indiscernible].
>> Bryan Ford: So we can
one way we can use Dissent is as an
anonymous communication proxy, in which case one of the servers
ends up acting as an exit node, and that can be just a well
established one or all of them ka do that. So Dissent is more
kind of at the foundation is more of anonymity primitive that we
can kind of build a number of applications on and other
you
know, other applications you might like, you know, anonymous
chat, you might just have the chat room, the state just among the
servers and there's no need for an exit, you know, role.
>>: Are you trying to hide the fact that someone's using
Dissent?
>> Bryan Ford: So that gets back to this other unobservability
challenge, and the Dissent project isn't
currently isn't
primarily focused on that. At least our part at Yale isn't
primarily focused on that. The other hand, it's trying hard to
be compatible with that and to play well with some of the efforts
in that space to build unobservability protocols. And those
basically fit in as access, you know, as ways to get to Dissent
without, you know, the bad guy figuring out that you're going to
dissent. So that's synergistic. I think you were
>>: So my original confusion still stands. I understand how,
given this, that unless all of the servers are compromised you
can't tell whether a [indiscernible]. That's pretty easy to see
[indiscernible]. What I don't understand is that if you have
more than one client that might be flipping the bit, then in the
output of the whole system, you still on the get one bit out of
the system.
>> Bryan Ford:
>>:
Right.
So what you get is an XOR of all of the
>> Bryan Ford: Yeah so this is the
alluding to two problems. Jamming.
might maliciously
>>:
so this is
you're
So, you know, two clients
[indiscernible].
>> Bryan Ford: But you might be referring to scheduling as well.
So for this system to work well, basically, there has to be an
arrangement such that only one client, you know, is supposed to
transmit it at any given time slot. It's ethernet like.
>>: Doesn't that [indiscernible] the whole point of the system.
Because now I know both
I know which client is supposed to
transmit it and then I know the output of the system, I know that
that client transmitted that bid and the whole thing collapses.
>> Bryan Ford:
>>:
No, no.
Obviously, you thought of this.
>> Bryan Ford: Yeah, yeah, so this is actually in kind of
further down in some of the details that I
I will actually
allude to them briefly later on, but I don't really have that in
my talk. Basically what Dissent does is it uses a verifiable
shuffle as a setup phase. So before all of this DC net stuff is
happening, you have a bunch of clients that come online. They
all kind of register, say hey I'm online, I want to participate,
and then it runs this other, you know, cryptographic primitive
known as a verifiable shuffle among all of the servers. Each of
the clients kind of submits something like a ballot. These are
algorithms developed for voting systems. They deposit one of the
you know, a ballot, a constant sized blob into this verifiable
shuffle. The servers all collectively and verifiably shuffle
them into a random permutation, and those come out the end and
through that shuffle, each client basically gets a pseudonym. So
it injects a public key. Each client gets to put one public key
into the shuffle, one reencrypted, randomized public key comes
out, and that gets used as a schedule and so basically, the way
you can think of it is kind of in the first end bit time slot,
whichever client owns the first public key that came out of the
shuffle gets to transmit. And in the next time slot, you know,
the owner of the next public key, whoever that is, comes out.
And everybody knows what this schedule is, and everybody can
identify their own public key, their own kind of pseudonym key,
but any don't know who else owns which other key because the
shuffle anonymizes.
>>:
[indiscernible].
>> Bryan Ford: Yeah, yeah, so that actually
yeah, I have more
detail on that, you know, in other versions of this talk. But I
kind of
yeah.
>>:
[indiscernible].
>> Bryan Ford:
Yeah.
>>: So you said if you had more servers, then would the system
scale better?
>> Bryan Ford:
I mean to a point, you know.
>>: The down side on having more servers is that each connection
takes longer, or
>> Bryan Ford: So we haven't done a lot of
we haven't pushed
the kind of server side scaleability and really kind of tested
the boundaries in that space yet. So but there are some kind of
ultimately non scalable interactions at the server side, you
know, if we really scale up the number of servers a lot that for
one thing puts more load on the clients because the clients have
to compute more, basically more pairwise shared secrets and
stuff. But also, the servers have some, you know, all to all
communication among the servers and that's going to start not
scaling at the server side if we, you know, in the current
protocol.
Now, there's perfectly reasonable ways to make this multi level,
you know, and, you know, I'm pretty sure we could kind of build
multi level hierarchies and use that to scale it a lot further
but we just haven't gotten there yet. Yeah, so I'm probably kind
of going a little too slow here so I should probably kind of skip
through some of this. Maybe I'll just briefly
sorry, briefly
touch on the active attacks since it already came up and skip a
couple of the others and then look at the exploits. Yeah, let's
see.
So another major class of attacks that isn't so easy to deal
with, with padding, is called active attacks. One of many
examples is known as a congestion attack, where, for example,
let's say, I'm an attacker and I want to see who this particular
victim is talking with. And I just hypothesize, well, let's pick
an arbitrary relay. I want to test whether his connection goes
through that relay. So I just hammer it with some kind of
traffic, kind of congest it, slow it down and make I own the
public server or I can see what comes out of that, and I see,
well, did his traffic coming out of that slow down or, you know,
this can operate from either end.
And there are some, you know, kind of proof of concept prototypes
of this kind of attack in the research world that lends some
evidence that it's realistic, and, you know, I don't want to
dwell in great detail on that, but really kind of get into how
Dissent's architecture trials to deal with this kind of attack.
And it basically does it by making the system more collective,
make decisions more collectively. And in particular, we have the
idea, so the anonymizer is, if we kind of consider that whole DC
nets blob to be an abstract box, we consider that the data plane,
but then we also have an abstract control plane which we consider
to be collective. A collectively
we call it the policy oracle
that decides kind of who does what at a given time.
But the policy oracle doesn't know, doesn't have privacy
sensitive information. It doesn't know which users own which
pseudonyms or which slots. And so what it boils down to is the
policy oracle is running a game of Simon Says. Did any of you
play Simon Says as a kid? Still remember it? So basically, the
policy oracle is saying I don't know who owns what, but Simon
Says everybody, the owner of pseudonyms one through five each
gets a one bit slot. And that one bit slot is just there so that
if you want to send something for real, you can set that one bit
and request a bigger slot later. And so, say, pseudonym three
says I have something to send. It sets its bit in the next round
the policy oracle says I see pseudonym three, whoever that is,
wants to send. Okay. I'm going to give pseudonym three a 1K
slot next round and everybody else doesn't get anything, right.
So, you know, and, you know, there's all kinds of policies and,
you know, policy issues to explore in this space. But just kind
of the high level point, the high level picture is to
of the
goal is to kind of collectivize the decisions and sanitize the
timing of things going through the system. So the classic, say,
congestion attack is to create some kind of recognizable delay
pattern on traffic going into an onion routing system. And an
onion routing system will preserve that, because these are
individual streams, right, that it's trying to add as little
delay as possible. But those get preserved and that's how you
get deanonymized, whereas when you have this, basically this
collective control plane that kind of running everything in
lockstep, this Simon Says game basically the stuff that's coming
out is coming out exactly when the control plane says to come out
and the control plane doesn't know who owns what. So he can't
release deanonymized users even if you wanted to. So, you know,
I know this is kind of very high level to drill down just a
little bit into how it
how we actually implement this,
basically, because the control plane doesn't know
doesn't have
any sensitive information, we can just replicate it freely. So
in the case of Dissent, we basically replicate the logic across
servers in kind of a, you know, logically peer view type fashion
so all of the servers kind of have to be in agreement on what the
next step is and what the next result of this logic is. So yeah.
So without kind of getting into further detail on that, I should
probably skip through the next stuff.
So denial of security is basically a powerful and interesting way
to take denial of service attacks and use that to deanonymize
users. And it applies to DC nets. To some versions of DC nets
as well as onion routing. Basically how Dissent deals with it is
by designing the protocol so that if somebody does try to disrupt
the DC nets, there's a way to figure out how they did that. And
we've actually come up with a number of different ways. It's a
kind of difficult technical challenge, kind of the most recent
one, the scalable Dissent provided one way, one kind of blame
mechanism to figure out who's disrupters after the fact. More
recently, at USENIX security, we explored a way using zero
knowledge proofs and elliptic curve cryptography for all of the
encryption and DC nets, and that kind of gives us a more
proactive way of preventing disruption in the first place. And
so there's some interesting trade offs there, as you might
expect. Yeah?
>>:
[indiscernible].
>> Bryan Ford: Sure, sure, yeah so let's see. The brief
the
very high level version of it, so is we
instead of in the
basic DC nets protocol, we use bits and we XOR them together.
You know, bits are the alphabet that an XOR is the combining
operation. We place the bits with elliptic curve group elements.
So, you know, items are encrypted in elliptic curve group
elements, and the combining operation is multiplication or, you
know. And then for each communication slot, coming out of that
shuffle, we know that there is a public private key pair that
defines which anonymous user is supposed to be able to transmit
in that slot. Now, all of the users with their ciphertexts,
their ECC encrypted ciphertexts provide a zero knowledge proof
that's basically an either/or proof that says either I know the
secret key. Kind of proof of knowledge. Either I know the
secret key corresponding tonight current transmission slot, and
that allows me to transmit anything I want in that slot, or I
don't know the secret key, but I have transmitted an encryption
of zero, of a null, you know, an identity element that's not
going to step on anybody who might actually know that key and be
trying to transmit. So that's kind of the basic idea is just an
application of either/or proof. Zero knowledge proofs.
>>:
[inaudible].
>> Bryan Ford: Yeah. So in this case, all of the servers check
all of the proofs and we have several ways that can shake out as
far as kind of how aggressively and proactively we check, and
that leads to different, you know, performance trade offs as
well, yeah. Yeah, and I'm happy to talk more about that offline.
But yeah. And so since I'm, you know, really running out of
time, I should probably kind of skip most of this. So the
intersection attack problem is another really big problem in
anonymous communications in systems in general, in that, for
example if Alice is even trying to post a blog server in the free
world, but these blog entries are time stamped and the RepressCo
state ISP can see which of its local users were actually online
at each of the times that Alice posted something, aha, well,
there's only one
all of thor users are coming and going, but
only Alice was in all of those sets corresponding to each of
those time stamps, right.
And so in general, this is a very, very difficult attack that I
don't know any anonymity systems, including Dissent, that have a,
you know, a totally bulletproof answer to this. What Dissent
does is at a high level is basically first of all tries to give
users a useful metrics as to kind of what their vulnerability is,
and it uses this kind of policy oracle logic to simulate
adversary's eye view. You know, if the adversary can see all
these IP addresses coming online and going offline, what might
the adversary be computing from this, and it simulates the
adversary and uses that to give the user a set of anonymity
metrics. And we have a couple that kind of represent different
things. One is we call possinymity. It's a possibilistic
anonymity set size meaning, you know, what is the set of users
that could possibly have posted the messages that came out on
your pseudonym, you know.
And that's different from indinymity, which is a probabilistic
anonymity, which is what does the set of users who's kind of
intersection attack relevant kind of behavioral footprint is
completely indistinguishable from yours. And that's kind of a
much higher standard. You're going to get smaller numbers but
kind of better, kind of better guarantees. And so, you know, I
probably need to skip over. But basically, this was work we just
presented at CCS on kind of first cut approach to providing some
level of intersection attack resistance. And when we did some
analysis based on just IRC data sets to get a sense for kind of
how realistically can you get, you know, some level of anonymity
over some particular time, and that, of course, as you might
expect depends on how long you want to use a given pseudonym
before you refresh it and, you know, start clean or something
like that. And it also depends a lot on user behavior so, you
know, there's a lot of interesting issues in there.
>>:
[indiscernible].
>> Bryan Ford: Yeah, sorry, sorry. So this is basically showing
based on
yeah, I probably have to give this as context. So
this is a
represents an IRC trace of a big active football IRC
group. And basically, there's some subset of users that tend to
be on all the time, and a lot of, you know, a lot of the others
are on very intermittently. It's hard to get long term
intersection attack resistance anonymity sets with those kinds of
users, but we can get them out of those kinds of users,
basically.
And kind of analyzing what kind of anonymity you can get in those
kind of contexts, you know, it depends fundamentally on how long
you want to keep using a pseudonym. Like if you're just trying
to say go grab a web page, maybe you only need a pseudonym for a
minute, you know, for a brief TCP session, then let's see. I'm
yeah, yeah, I actually misremember
yes. This is actually
hm. Yeah. I misremembered which graph was this. So this
so
this is actually
there's actually two important factors. One
is how long you need to keep the pseudonym. The other is how
responsive you want that pseudonym to be. And the X axis here is
basically kind of the round time, meaning how often each round
completes. And so if you need a highly interactive session, you
need to be kind of down here. You know. If you're doing a kind
of Tor like use, you're trying to do interactive communication,
you need small communication round times. Whereas if you're in
kind of a micro blogging, say, or you just want to post a blog
entry once a day, you can have much, much larger round times and
Dissent can kind of aggregate the anonymity set
aggregate all
of the users that show up at any point in the day into one
anonymity set and then you can kind of be over here.
And the Y axis is basically kind of an estimate of how much
how big anonymity set you can expect to get over a long period of
time. In this case, the whole month of the trace. And so the
point was if you need really interactive communication, well
turns out unfortunately there's only like ten users that were
really online all the time that can't be intersected out of your
set the whole time and so it's really hard to get, you know, long
term, you know, anonymity with, you know, with high
responsiveness just because of, you know, user churn. Whereas if
you're willing to tolerate some delay, well, you can, you know,
get up to kind of a hundred member longish term anonymity set.
That still, you know, might not be what you really want.
So, you know, in a sense, this was just trying to kind of
illustrate it's kind of a hard problem in the long term and we
don't have good answers for that yet. It might ultimately depend
on, you know, can we build systems that encourage users to
interact in the right way to kind of be online in an
indistinguishable sense for long periods of time. So there's a
lot of interesting issues in that space.
So yeah. And so, yeah, I'm really out of time. But yeah, so the
last general attack category, which got a lot of attention
recently is basically software exploits. You know, the best
anonymity system, you know, even if it's perfect here, is still
vulnerable if, say, the website is malicious and it sends you a
browser exploit that attacks your browser instead of the
anonymity system and the browser is no ordinary process that goes
and the exploit goes and looks up its IP address and send it to,
you know, some arbitrary party. And this is one of the things
that happened over the summer to Tor.
And so this software exploits basically appear to be the low
hanging fruit that's actually getting used. And, of course, this
is, you know some what solutions to this are somewhat orthogonal,
you know, browser
to anonymous communication protocols, but
we're trying to do something about this too, and this was under
development since at least a year ago but it partly addresses
some of these recently revealed issues. And basically, the idea
is we package up the browser and all the plug ins that you might
want to use into a sand box of some kind, and you put the
anonymizing system outside of it so the only way that that
browser environment can actually get out is through the anonymity
system. It doesn't even know its true IP address or true Mac
address or anything. So even if it gets exploited, you know,
hopefully, you know, unless the bad guy can also escape the VM,
you know, you have a little bit better protection.
Now, this is, again, very ongoing work. I'll skip this. But and
we can actually do either Dissent or Tor or Dissent plus Tor in
this kind of complementary environment.
So yeah.
So
um hmm.
>>: So just to clarify, so the solution is basically, if I
understand correctly, to take the browser and the UI
[indiscernible] is that
>> Bryan Ford: Yes, exactly. So this is kind of a, in some
sense, a very conventional isolation sand boxing based approach
just, you know, applied to this problem. Yeah. And, of course,
as you know well, it has its strengths and weaknesses. So, you
know, where is Dissent? So, you know, it's a proof of concept.
It works for some things. But it's very preliminary. It's not
really ready for real deployment, but there's a lot of further
scaleability and other questions. But kind of the upshot is
you know, the high level take home point, I think, getting back
to your original idea, you know, is the question is is there any
way we can design anonymity systems that could eventually be
truly resistant to all of these many classes of serious attacks.
And although, you know, Dissent is still a lot
a long ways
away from kind of proving to actually providing that, it's at
least kind of through the ground up effort, I think we find
we're finding some really interesting ways forward in that space.
Yeah. And thanks, and sorry for going long and I'm happy to take
questions or further discussion, however you want to do it.
>>: A lot of these five classes, Tor's been out there for a long
time and it's been a large target, always [indiscernible].
>> Bryan Ford:
Yeah.
Yep.
>>: So is Dissent or do you have some
so Dissent clearly has
different properties from Tor. Do you think there's going to be
eventually a session on attacks on Dissent or
>> Bryan Ford: I hope so if we can kind of get it to a really
deployable and deployed level, then, you know, and can kind of
build a user base, you know, I would, you know, certainly hope
for that to happen.
>>:
[indiscernible] or are you pretty sure that [indiscernible].
>> Bryan Ford: Well, so I'm sure there
on the one hand, you
know, if Dissent were to become kind of popular, you know, and,
you know, comparable to Tor, I'm sure we would see a similar
stream of attack papers and I would want to see that. I feel
like I have some confidence that more of those papers would be
about kind of details, kind of patch like either particular
security bugs, where a patch is clear, and many of the Tor attack
papers are of that form, you know. Many of
a high percentage
of the Tor attack papers, you look through them and for each one,
oh, yeah, you just need to fix Tor that way and that way and that
way, and yeah, it's no kind of fundamental thing, whereas what
these five bullet points are kind of trying to bring out is the
area, the whole large areas where the whole onion routing model
just doesn't have an answer to the
to major broad classes of
attacks. And I have some confidence based on the fact that, you
know, Dissent is built on algorithms that actually have provable
properties and we actually have a number of team members working
on formal verification of these properties, I'm pretty sure
those, you know, those attacks will be more either bugs or places
where the assumptions, you know, the assumptions of the kind of
provable model fail to match the real world. And that's going to
be a big issue in any practical anonymity system too. Well, you
know, it said it's providing, you know, measurable, quantifiable
anonymity sets. But oops, the attacker found a way to stack your
anonymity set with malicious nodes because there's some symbol of
vulnerability in the way that nodes get into the system, you
know. There's that whole huge space and, you know, there's no
perfect answer, you know. There's going to be a lot of issues
like that.
>>: So I have a question about Tor and about these attacks in
general. So I understand the research community actually started
formulating attacks against Tor. Has there been any evidence
that sort of the bad guys, the Repressistans of the world have
used sort of these type of [indiscernible] system attacks where
introduce, you know, malicious nodes or you have [indiscernible]
attacks or things like that?
>> Bryan Ford: So we do have at least there's at least anecdotal
evidence of Repressistans running a few Tor nodes, for example.
Most of it's anecdotal. We're not really sure, you know, whether
it's truly the government or just some, you know, hacker Army,
you know. A lot of that is kind of anecdotal. We're not really
sure. There is also a lot of strong, you know, very clear
evidence of, you know, Repressistan's trying to, just kind of
trying to deanonymize and use whatever tools they can to track
their users and break in to and, you know, monitor them in
general such as this Iran's repeated hacking attacks against
certificate authorities to get CA private keys and men in the
middle, all these SSL connections and stuff.
>>: The question is about [indiscernible]. Who can attack
[indiscernible] systems attacks that have this nature of
attacking by introducing malicious nodes or Tor [indiscernible]
and then there is the sort of software attacks where you go after
certificates or [indiscernible] machine. I'm sort of trying to
my question is about the former class, because the second class I
can see how
>> Bryan Ford:
>>:
The former was
Was systems where you break the, sort of the algorithms.
>> Bryan Ford:
>>:
Yeah, yeah.
Then the keys or malware or
>> Bryan Ford: Right, yeah. So I don't
so I don't know of
I think, you know, most of the low hanging fruit for the
attackers at the moment is either in the software exploit space
or the, say, CA vulnerable, kind of the, you know, masquerading
as somebody else. Breaking the identity space. And not so much
in the kind of direct attacks on the distributed systems. So
>>: I mean, obviously, it's hard to know [indiscernible] I think
that the, what we know with certainty, because we actually have
the traces, we can actually see it happening is that countries
like China, Iran and Libya in the old days, et cetera, they have
launched numerous attacks to just completely block all possible
access to Tor and they've done a lot of work to fingerprint
connections to tell if this is a Tor connection or not and we've
actually seen and tracked and those are very well known attacks.
>> Bryan Ford: Yeah, so they're trying very aggressively, for
example to root out all the Tor bridges. So I didn't get into
the Tor architecture, but it also
besides the well known onion
routers, there's this layer of bridges that provide entries to
the Tor network that are
try to provide some blocking
resistance. But, you know, China tries really hard to kind of
sniff out is that node a Tor bridge? Let's try talking Tor with
it to see, you know, and, you know, I mean, so it's
those
kinds of concerted attacks very much exist. But yeah. But I
don't know of kind of really
>>: We definitely know, for example
I mean, it turned out to
be a [indiscernible] attack. It was done as a [indiscernible]
concept but that was launched where essentially attackers put in
their own nodes and they just intercepted a bunch of traffic and
it turns out lots of people weren't, for example, using SSL over
Tors, even though the Tor traffic was secure, the event traffic
wasn't and they used this to collect passwords and all sorts of
other information. And that was launched and successfully done.
But that was done by someone trying to prove a point that you
could do this.
>> Bryan Ford:
Yes.
>> Jon Howell: Okay. If you would like to chat more with Bryan,
we have a spot at 2:00 and a spot at 5:00. You can talk to me
afterward. But let's thank him again for speaking.
Download