On 23/3/09 20:36, Nelson B Bolyard wrote:
Ian G wrote, On 2009-03-22 16:01 PDT:
Man in the Browser. It is a term that seems to have caught on to
describe what happens when the browser is taken over by malware, and it
owns the interface. To solve the security problems that arises in
online banking is more challenging, which is where the Europeans moved to.
Thanks. I don't know why that abbreviation didn't come to mind before.
This is one of those cases where dire predictions of doom& gloom did
not come to pass, *but* the European banks (generally, not all) put in
place enough to mitigate it.
What have they done? How do they stop, or detect, MITB?
I haven't followed it in depth, but the primary way that the E.B.s have
responded is to move their existing TAN system to a cellphone SMS (which
the europeans call "handys", brits call them mobiles). A TAN is a
transaction authentication number which is distributed on a paper sheet
to users. When the transaction is finalised, the user types in a TAN
taken from a supplied index like row,col, and crosses it out on the paper.
For the SMS interface, I think what happens is that the entire
transaction is then sent to the handy of the user, which the user then
presumably agrees with, and enters the TAN that is indicated in the SMS
message.
The further fix is to relate the transaction directly with the TAN so as
to link them together. There are experiments with this, but I'm unsure
of progress.
This is sometimes known as two-channel authentication, to distinguish it
from two-factor authentication which is subject to MITM, etc.
As the problem didn't surface to any great extent in the USA, there is
dispute as to whether it doesn't really exist, or whether there are just
easier pickings elsewhere, and it's coming sometime.
MITBs certainly exist. There's a company that bills itself as being the
"Nielsen ratings of the Internet" (more than one, I'm sure). They get
volunteers to install their software, and thereafter their software gets a
copy of every bit received by the volunteers' browsers. They formerly used
an MITM proxy (which, to their credit, even proclaimed itself as the MITM
proxy when you connected to it :) and installed their own root CA cert in
your browser, but that drew too much attention from certain quarters (ahem)
so they switched to MITB. This MITB only works in IE, or did so the last
time I checked, so it gets less attention around here. :)
Ha!
So (in a sense you will be familiar) SSL is often "blamed" for all sorts
of problems in online banking. This is somewhat fair because SSL was
originally pushed for the purpose of protecting transactions.
(or protecting anything else that went through the secure pipe against
certain threats defined in that threat model.)
Right. The message was "a secure pipe protects" ... wrap a lot of other
words around, and often the message migrates to:
SSL + firewalls = security.
(long debate in other circles...)
This simplistic view is extremely difficult to push past because those
that support SSL won't ever say "don't use SSL for that"
Certainly SSL (the protocol) is not mutually exclusive with other
technologies that have different scope than protecting transport
connections. For example, I use S/MIME over TLS daily. I wouldn't say
"Don't use TLS for secure email", but I would readily say (and have said)
"Don't use TLS *exclusively* (and nothing else) for secure email".
Ah. So, I see this is migrating to "use popular Internet RFC standards
for security." The problem with this is that some of them -- like
S/MIME -- are practically worthless whereas some of the non-RFC standard
products like Skype are very secure.
So when we consider a statement about such things, we have moved away
from a strict security discussion and across to a wider Internet / open
source / new economics discussion.
and meanwhile, SSL is still pushed as the way to do security for online
transactions.
Secure online transactions need secure pipes. They may also need other
things. I would say that secure pipes are necessary, but may not be
sufficient for all needs.
Nope. Secure transactions need systems that protect transactions, not
pipes. Indeed, putting them in a secure pipe is likely a way to make
them insecure, because at the beginning and end of the pipe, they lose
their clothing, and the pipe itself is generally designed to the wrong
security model. C.f. SSL is the canonical textbook example of why
secure pipes do not result in transaction protection, and likely reduced
overall protection by distracting from the real issues.
A secure transaction needs to integrate from the asset owner to the
asset facilitiator and then across to the asset receiver. This
generally involves dozens of steps over many time points, so the secure
pipe paradigm is simply too unreliable to work, aside from any questions
of whether the crypto covers the threat area (it doesn't).
Back in the 1990s, the American Banking Association commissioned a
complete redesign of the american payments infrastructure for just this
purpose. It's called X9.59, you may know it as "Lynn Wheeler's frequent
rants". Its design does not rely on pipes, and is secure even across
the open network.
(As it happens, I did the same thing before them, but without the
backing of the ABA, and more oriented to a 3-party model not a 4-party
model. Regardless of the wallet size, neither of us were able to budge
the incumbents. For fairly good business reasons; they make more money
running the old stuff.)
So its existence has an effect of blocking any accurate discussions.
Which is sort of rationalised at different levels.
I'll grant that the industry has just so much manpower to devote to all
these issues, and has prioritized secure transport ahead of other things, to
the delay of those other things. I wish I could say that secure transport
is finally becoming ubiquitous and trouble free, (as, say, TCP has become)
so that the industry could get on to other matters, but alas
there are still too many products that don't get it right.
You may know and/or recall that, back in the mid 90's when https and SSL
took off (in the browser market) largely because the number one browser
of that time backed it, there was another competing proposal for securing
web communications. It was based on securing the data, not the connection,
and its design had the property that its evidence of authenticity survived
the transport connection's termination. It was called shttp (which had an
unfortunate pronunciation) and was championed by Eric K Rescorla, who is
today the co-chair of the TLS working group (IINM).
Funnily enough, I had this same conversation with Eric. After he
understood what I was saying about transactions, he commented to effect
of "gosh, so I was right all along with shttp," which was the first time
I ever really heard of it.
So, it can truly be
said that the success of TLS did reduce the effort being expended on
alternative approaches.
Maybe it's time for a resurrection of shttp?
Well, if I have learnt anything in my time at Mozilla over the last 5
years, on and off, it is that there is no possibility of changing the
dominant paradigm by going through the front door. The barriers are
stacked up to the skys.
There are only two possibilities that I have seen. Complete whole-cloth
reworks from the ground up, *coupled to new applications*. This is the
Skype / SSH route. I'd love to do that, and make that money, but maybe
I'm not that smart :)
Or, we look at the existing successful code base and work out how to
unlock the chains and get it to users.
(Hence, today's subject line. What can we do to make client certs
actually reach out and deliver to users? Today's task: solve the
session problem.)
(By SSL, here, I do not mean the protocol, I mean the whole secure
browsing experience. For the protocol I prefer the term TLS. But
that's just me.)
Please do find another term for "the secure browsing experience". SSL
and TLS are both names for versions of the same protocol.
I'm willing to use any term, but I would like people to agree on it, and
not use the terms to distract people up and down the stack :) The
reason I use SSL is because the term has been so abused in the past that
it is fairly well recognisable. E.g., give up the lost fight.
And, "secure browsing" is so vague, it always sends people to sleep, or
causes them to say, oh, that's not my department, you need to talk to
the GUI/PKIX/CA/... people.
The problem has been that people who wanted a different model kept
wishing SSL had the model they wanted, and hating SSL for not having
the model they wanted, rather than inventing the thing they wanted.
TLS does not hold them back, except perhaps psychologically.
Exactly, like that! That's what we want to hear. So when any other
model is presented, the people who support the SSL model will hopefully
refrain from trashing the alternates :)
Once people state clearly that they're trying to solve a different problem
than transport level security (secure pipes), they'll probably get HELP
from some of the TLS folks who are bored with TLS now. The people who get
resistance are those who keep trying to turn TLS into something other than
secure pipes. I wonder if EKR is still interested in shttp.
I bet he'll say "use DTLS, you would be mad to use anything else." :-)
Which just so happens to be a variant of TLS written for UDP transport
... by Eric!
Although this is fine, the problem we face right here is: we are trying
to get security to users. Users have browsers. Browsers connect to
servers. The security that users want is authentication, primarily, and
some shonky encryption is fine.
So, fundamentally, we are talking about HTTP, and that is more or less
constructed as HTTP over cached sessions over TCP. So, the SSL model is
more or less pre-ordained here, as whatever you are doing, it always
ends up being a transaction layered over a connection.
Unless you want to redesign HTTP over UDP, which would be a very smart
thing to do. Then things would improve, because it is request-response
model, not a serial data model. But, this is totally out of the
question in the real world, because Mozilla only follows standards, it
doesn't do architecture beyond following pre-cut blueprints, and there
isn't a HTTP over UDP that I know of.
I think TLS folks do not push TLS as the solution where it doesn't fit.
TLS folks will be the first to tell you that TLS is not the solution to
secure email, for example. They will be quick to point people who are
trying to secure their email in the direction of S/MIME. Of course,
S/MIME and TLS are not mutually exclusive. I use them together every day.
That reminds me of the old joke about communist economists. They used
to say, there are communist economists who were good, ones who were
honest, and but there were no good honest communist economists.
Something like "There are no good honest security practitioners
suggesting that a user lose her day over getting S/MIME going."
(I use S/MIME every day too, and over TLS. I also suggest that the
other security people use it and be abused by it, maybe because I am a
sadist :) Although not scientific, here are some results: within this
one highly-motivated security community of around 20-40 people, I see
about a 60% success rate in install + certificates, and something less
than 10% success rate in delivered secure messages. E.g., worthless.)
When the NSS team was pressed into service for a time as the secure AIM
team, back in ~2001, we devised a hybrid in which S/MIME was used to secure
the instant messages, and TLS was used for file transfer. The entire
solution featured end-to-end security. Even TLS was end-to-end, with no
decryption and re-encryption in the middle. The user's same cert served
as both his S/MIME cert and his TLS server and client cert. The important
identity element was not his DNS name but rather his "screen name", but an
email address would also suffice. Each technology was used where it fit the
problem.
Ha. Sounds like fun! Real security is end-to-end, indeed.
But the need for secure pipes in the Web isn't going away soon.
Right. But it shouldn't interfere with the need for secure
transactions, which practically speaking cannot be helped with secure
pipes. And it should deliver its model up to the user's eyeballs,
something that the GUI people are told they should not do.
iang
--
dev-tech-crypto mailing list
dev-tech-crypto@lists.mozilla.org
https://lists.mozilla.org/listinfo/dev-tech-crypto