Implementing RSA RSACryptoServiceProvider *and* JavaScript

From: news.bt.com (a_at_b.c)
Date: 11/17/04


Date: Wed, 17 Nov 2004 20:52:43 +0000 (UTC)

I'm currently trying to strengthen up the security on a large ASP.NET
application. I use MD5 hashes for the user/password, and a token to 'salt'
the resultant hash. This is secure.

The next step -- and I'm *really* surprised that *everyone* doesn't do
this -- is to prevent 'Evil Eve' from listening in over the network when the
passwords and/or other sensitive information is updated. The best method
here is to use asymetrical encryption using the framework's
RSACryptoServiceProvider. Of course, this won't work on the client because
you have to use JavaScript on the client (forget Java and Activex as these
are out of the question). Therefore I want to implement RSA on the client in
JavaScript.

Having hunted around the internet, I keep drawing a blank here. There are
several implementations of RSA, but none of them are compatible with the
RSACryptoServiceProvider object. The bottom line is there's some enormous
numbers involved here (1024 bits worth!), so there's a shed load of scary
maths involved.

I do have a fallback which basically requires the user to enter their
username and password, to concatinate this to a 'salt' and use this as the
key to use a symetric encription algorithm such as 3DES. I don't like this
because it requires the user to keep re-entering their username/password
(this would be a major pain if you need to update the passwords of lots of
users).

I know that this is effectively reinventing SSL, but SSL isn't an option
for many customers as the certificates are quite expensive and are often
difficult to implement on public, i.e. shared, web servers.

I would *really* appreciate it if someone could point me in the direction of
a JavaScript RSA implementation that works with the
RSACryptoServiceProvider.

TIA,
G.



Relevant Pages

  • RE: Implementing RSACryptoServiceProvider *and* JavaScript
    ... One of the things I discovered is the 'standard' RSA algorithms, ... I've more-or-less come to the conclusion that the RSACryptoServiceProvider ... >> passwords and other sensitive information is passed from the client back to ... >> a JavaScript RSA implementation that works with the RSACryptoServiceProvider. ...
    (microsoft.public.dotnet.framework.aspnet.security)
  • RE: Good salt practices, references?
    ... Subject: Good salt practices, references? ... A static salt is all but worthless; all it does is prevent an attacker from ... > It's then stored on the server, ... > When the user authenticates, the client takes the user's input, ...
    (SecProg)
  • Re: public key vs passwd authentication?
    ... > original salt and the sequence number. ... the client might possibly want to keep a log of all server "salts" ... if any client hash value leaks that is for an iteration less than ... currently be used by a server. ...
    (comp.security.ssh)
  • Re: How to encrypt/decrypt a file
    ... Modified to use random IV value (and random salt). ... You just have to love it when Mitch and Valery fight. ... IVs should always be randomly generated for each run through the encryption ... If the server encrypts data before sending it to the client, ...
    (microsoft.public.dotnet.security)
  • Re: Authenticate a User.
    ... > getpwent/cryptin default config, and in conf he can change it over ... > to PAM if he likes. ... > the client is on different machine. ... > be send back the salt from the server to the client, ...
    (comp.os.linux.development.apps)