There are 4 parts.
-- /1./ --
For those that are
new let me explain my discussion with Philipp Winter.
I suggest a browser
fingerprinting based bridge distribution.
Each fingerprint
only gets one bridge, so if you keep automatically asking you just
keep getting the same address over and over.
I can tell you that
it is almost impossible to exhaustively spoof a fingerprint, and we
can use that to our advantage. We can group similar fingerprints
together so that it doesn't matter if someone spoofs a few things.
And we should ignore the user-agent.
>>I think I'm
missing something here. Doesn't it suffice for an adversary
to tamper with a
single feature to create a new browser fingerprint, and
thus obtain
different bridges? I suppose it would depend on how the
server derives its
fingerprints.<<
Like I said: Once
we've given out all the bridges to each unique fingerprint then we
start grouping new fingerprints to the nearest match.
In other words we
assume the first users are more legitimate, and the GFW comes along
later. So in the beginning we give out a new bridge to a fingerprint
that is anyhow different from one we’ve seen before, and once we’ve
given them all out (that we are willing to give out through
fingerprinting), then if a new fingerprint comes along, he gets the
same bridge as the fingerprint that had the highest quantity of same
aspects to it. This defeats partial spoofing. Like I said, full
spoofing is near impossible.
-- /2./ --
>>I know lots
of people in China using Linode and Google Cloud which also
a credit card. They
only support the credit card like VISA or MasterCard
instead of China
UnionPay card. So it isn't too hard if someone wants to
get the card,
especially is GFW who be described as "unlimited fund" by
GFW technology
review blog.
They don't block the
IP just because a few people use it. Yes, the
credit card it did
block a lot of people:(<<
Thanks Tom for
clearing up my misunderstanding.
-- /3./ –
Why not switch Obfs4
bridges to dynamic IPs and remove UpdateBridgesFromAuthority. This
would make it like WAY more blocking resistant.
-- /4./ –
I take back what I
said, I recon the Salmon algorithm is currently the best proxy
distribution we have. I’m planning to read the paper, but just from
what I’ve seen from the talk... https://www.invidio.us/watch?v=RO3wXRn8BfY
… I see one major
vulnerability: what if the GFW gets just one bridge, then creates
thousands of accounts (which there is no barrier for), then sends an
invite across all of those accounts, then waits for trust level to
get high, and all of those accounts gets a new bridge, repeat until
you know all the bridges, then only block them all in one go once
they have all the addresses.
The solution is to
put a limit on how many addresses are given out per accounts with
knowledge of a certain bridge. Basically extending the recommendation
grouping that every bridge which accounts know only allows for a
finite quantity of new bridges to be received. So an adversary that
has one address can’t crawl the whole network, but only a fraction
of it.
Another but minor
weakness, I don’t think social network based distribution would
scale well compared to fingerprinting based distribution.
I’m not claiming
to know it all but hopefully my thoughts are helpful.