here are some more details which explain our choices:
suppose there is no way for an attacker to perform active attacks (man-
in-the-middle, connection hijacking, setting up a spoofed server,
etc.). The only thing he can do is to sniff the network traffic,
trying to steal passwords for a later use.
My schema is intended to prevent this only risk, nothing more. So I
have only been careful about:
- the password bits which travels on the network must be encrypted;
- on every new connection, bits which are exchanged during
authentication must be completely different, in order to prevent
replay attacks
We are trying to implement a minimum effort solution in order to raise
a bit the security level of the system. More standard and powerful
solutions are currently unfeasible because of several reasons (tight
deadlines, concerns about speed of execution, and also some politics).
Thanks for any other comment you can give
On Jan 9, 1:43 pm, Dominick Baier
<dbaier@pleasepleasenospam_leastprivilege.com> wrote:
> How do you want to protect the clients against spoofed servers? In other
> words - there are no server authentication bits in your scheme.
[quoted text clipped - 36 lines]
> > Thanks in advance
> > jaqq
Dominick Baier - 10 Jan 2008 14:58 GMT
fair enough. In this case your scheme looks good to me.
-----
Dominick Baier (http://www.leastprivilege.com)
Developing More Secure Microsoft ASP.NET 2.0 Applications (http://www.microsoft.com/mspress/books/9989.asp)
> here are some more details which explain our choices:
>
[quoted text clipped - 60 lines]
>>> Thanks in advance
>>> jaq
Valery Pryamikov - 11 Jan 2008 08:58 GMT
On Jan 10, 3:36 pm, gianluca.orte...@nsn.com wrote:
> here are some more details which explain our choices:
>
[quoted text clipped - 16 lines]
>
> Thanks for any other comment you can give
Clearly, you have little experience with cryptography and secure
protocol design (judging by funny mistake "Private" instead of
"Public", as welll as bad protocol design and the fact that you ask
that question here ;)
Using SslStream, as it was suggested by Dominic, will only save you
your development time (it will probably be faster than implementing
your own schema) and it will save you embarrassments from the problems
of your totally flawed schema.
-Valery.
gianluca.ortelli@nsn.com - 11 Jan 2008 13:55 GMT
OK, but can you detail your "totally flawed" in some points (except
for the private/public mistake)? for example, in which ways could an
attacker break this schema?
About the alternative solutions, the decision is not completely up to
me. Otherwise I would have enthusiastically embraced an SSL or SSH
solution.
gianluca
Valery Pryamikov - 14 Jan 2008 08:35 GMT
On Jan 11, 2:55 pm, gianluca.orte...@nsn.com wrote:
> OK, but can you detail your "totally flawed" in some points (except
> for the private/public mistake)? for example, in which ways could an
[quoted text clipped - 5 lines]
>
> gianluca
First of all - there was no definition of the scheme, just some
mumbling that only give very vague idea about what you want to do. But
even from that it is clear to see that many active attacks (with man
in the middle) break the scheme completely. (f.e. attacker pretends to
be a server and after one single answer from your client, attacker
already knows everything about how to authenticate him/her self to a
real server).
Even if we forget about the most devastating attack on your "protocol"
when attacker is able to intersect communication between client and
server and replace server's public key with attackers' own public key
- you still have lots of extra openings for new attack on your
protocol. Take for example your "reversible obfuscation of the
password". How do you "encrypt reversibly obfuscated" password? Is it
RSA encrypted or RSA enveloped? If it is RSA encrypted, what padding
scheme you use? If you use good padding - what is the reason for you
"reversible obfuscation of password"? Your obfuscation can not improve
security of your protocol, but it can however introduce a lot of
weaknesses! Since it is reversible you have to assume that algorithm
is known to attacker (see Auguste Kerckhoff's 6 rules of secure system
design that he expressed in 1883!). That means that control over "a
random number that is sent from server" gives attacker possibility to
do lots of extra bits twigging and open lots of new vectors of
attack.
What you wrote was not(!) in any way description of secure protocol.
You want to see how secure protocol is described - check definition of
standard security protocols! But remember that even with these
protocols, lots of things are still omitted from the description (such
as some security proofs and assumptions), but assumes familiarity with
articles referred from the standard protocol description.
-Valery
Dominick Baier - 11 Jan 2008 14:09 GMT
Valery! Good to know you are alive. Could you ping me with your new email
address?
-----
Dominick Baier (http://www.leastprivilege.com)
Developing More Secure Microsoft ASP.NET 2.0 Applications (http://www.microsoft.com/mspress/books/9989.asp)
> On Jan 10, 3:36 pm, gianluca.orte...@nsn.com wrote:
>
[quoted text clipped - 28 lines]
> of your totally flawed schema.
> -Valery.
Dominick Baier - 11 Jan 2008 14:51 GMT
well - yes - i assumed that the public/private was a typo...;)
-----
Dominick Baier (http://www.leastprivilege.com)
Developing More Secure Microsoft ASP.NET 2.0 Applications (http://www.microsoft.com/mspress/books/9989.asp)
> On Jan 10, 3:36 pm, gianluca.orte...@nsn.com wrote:
>
[quoted text clipped - 28 lines]
> of your totally flawed schema.
> -Valery.