Encryption of post data

P

Peter Young

I'm looking for ideas on encrypting form data. For example, if a user enters
a password, I would like to encrypt it before it gets posted, then decrypt
it server-side.

The obvious answer for a password is to 1-way hash it. Unfortunately, this
is for data that will not be known ahead of time - I have the requirement of
needing to encrypt any password-style textbox entries, then decrypt them on
the server. This is intended to provide 'better-than-nothing' security when
SSL is not present, and most likely would only be employed over an intranet.

It's my understanding that symmetric algos are fastest, but the problem
there is that the single key to encrypt/decrypt will need to be sent to the
client machine, which means it, along with the post data, is viewable by
anyone snooping.

An asymmetric algorithm, it would then seem, would do the trick. A public
key could be used client-side to encrypt, and then a private key could be
used server-side to decrypt. However, from googling on this, it appears that
javascript might not be up to the task from a performance perspective. I
haven't found any clear answers on this topic.

Any thoughts or direction on this are much appreciated.

TIA,
Pete
 
D

David Dorward

Peter said:
I'm looking for ideas on encrypting form data. For example, if a user
enters a password, I would like to encrypt it before it gets posted, then
decrypt it server-side.

http with SSL, AKA https.
 
S

Steven Dilley

Peter Young said:
I'm looking for ideas on encrypting form data. For example, if a user enters
a password, I would like to encrypt it before it gets posted, then decrypt
it server-side.

It's my understanding that symmetric algos are fastest, but the problem
there is that the single key to encrypt/decrypt will need to be sent to the
client machine, which means it, along with the post data, is viewable by
anyone snooping.

An asymmetric algorithm, it would then seem, would do the trick. A public
key could be used client-side to encrypt, and then a private key could be
used server-side to decrypt. However, from googling on this, it appears that
javascript might not be up to the task from a performance perspective. I
haven't found any clear answers on this topic.

Any thoughts or direction on this are much appreciated.

Here is what you need: You do a normal encoding of the text. You send
the decoding key with the text, but you encode it using public/private key
encryption (with as many bits as the law allows).

The simplest way to do that is to use built-in security: secure sockets and
secure http.
 
P

Peter Young

Steven Dilley said:
Here is what you need: You do a normal encoding of the text. You send
the decoding key with the text, but you encode it using public/private key
encryption (with as many bits as the law allows).

Is this so that it performs fast enough, vs. just encrypting everything with
public/private?
The simplest way to do that is to use built-in security: secure sockets and
secure http.

I understand that, which is why I said this is intended to provide
'better-than-nothing' security when SSL is not present.

Thanks,
Pete
 
D

Disco

Peter said:
I'm looking for ideas on encrypting form data. For example, if a user
enters a password, I would like to encrypt it before it gets posted,
then decrypt it server-side. ....
Pete

Not sure if this will help, but here is a link to a javascript MD5 thing....
http://pajhome.org.uk/crypt/md5/

* Encrypt on the client.
* Send encrypted to server.
* Make use of encrypted. (either as is, or MD again)
eg...
md5("password") returns 5f4dcc3b5aa765d61d8327deb882cf99
....then...
md5("5f4dcc3b5aa765d61d8327deb882cf99") = returns
696d29e0940a4957748fe3fc9efd22a3

.... as i say, not sure if this will help, but it may.
 
P

Peter Young

http with SSL, AKA https.
Yes, but you're being silly, the effort involved in doing this for the
limited security it might give is not worth the effort, when you could
just enable SSL, what is stopping you?

It's not up to me. This is a product that we sell. If the customer wants
true security, we tell them to use SSL. However, they don't all want to use
SSL, yet they expect us to say we've at least tried to make it secure. I
want the implementation to be as secure as possible given that SSL is not
being used. Is that silly? Probably. But in a competitive marketplace, we do
what we have to do to keep the customer's interest.

-Pete
 
S

Steven Dilley

Peter Young said:
Is this so that it performs fast enough, vs. just encrypting everything with
public/private?

Yes, exactly.
I understand that, which is why I said this is intended to provide
'better-than-nothing' security when SSL is not present.

What is the reason for avoiding ssl? Cost? Inconvenience?
 
G

Grant Wagner

Peter said:
It's not up to me. This is a product that we sell. If the customer wants
true security, we tell them to use SSL. However, they don't all want to use
SSL, yet they expect us to say we've at least tried to make it secure. I
want the implementation to be as secure as possible given that SSL is not
being used. Is that silly? Probably. But in a competitive marketplace, we do
what we have to do to keep the customer's interest.

-Pete

And in this case, doing what's in the customer's best interest would be to
explain to them that any "security" without SSL is not secure and they are
fooling themselves if they think otherwise.

The costs of development on this "security" to this point could have been put
towards purchasing a certificate to enable SSL.

When I discover I am doing business with a company that relies on half-assed
security measures, I move my business elsewhere.

--
| Grant Wagner <[email protected]>

* Client-side Javascript and Netscape 4 DOM Reference available at:
*
http://devedge.netscape.com/library/manuals/2000/javascript/1.3/reference/frames.html

* Internet Explorer DOM Reference available at:
*
http://msdn.microsoft.com/workshop/author/dhtml/reference/dhtml_reference_entry.asp

* Netscape 6/7 DOM Reference available at:
* http://www.mozilla.org/docs/dom/domref/
* Tips for upgrading JavaScript for Netscape 6/7 and Mozilla
* http://www.mozilla.org/docs/web-developer/upgrade_2.html
 
P

Peter Young

And in this case, doing what's in the customer's best interest would be to
explain to them that any "security" without SSL is not secure and they are
fooling themselves if they think otherwise.

We do.
The costs of development on this "security" to this point could have been put
towards purchasing a certificate to enable SSL.

We aren't the ones buying the certificate. Once again, we build a product
that is sold to many customers. For whatever reason, some of the customers
don't want SSL, but they still want a warm fuzzy from us saying we've done
all we can short of SSL to make it secure.

Steven gave me a very good suggestion elsewhere in this thread, and it looks
like it will work fine.
 
J

Jim Ley

We do.


We aren't the ones buying the certificate. Once again, we build a product
that is sold to many customers. For whatever reason, some of the customers
don't want SSL, but they still want a warm fuzzy from us saying we've done
all we can short of SSL to make it secure.

If it's intranet, you don't even need to purchase a certificate, self
signed one with authority pushed out to the desktops, or just ignored.

Jim.
 
P

Peter Young

If it's intranet, you don't even need to purchase a certificate, self
signed one with authority pushed out to the desktops, or just ignored.

That's good to know, thanks.

-Pete
 
D

Douglas Crockford

And in this case, doing what's in the customer's best interest would be to
We aren't the ones buying the certificate. Once again, we build a product
that is sold to many customers. For whatever reason, some of the customers
don't want SSL, but they still want a warm fuzzy from us saying we've done
all we can short of SSL to make it secure.

Security is the bane of the internet. Link encryption does not by itself provide
secure distributed systems, but it is a necessary precondition. SSL provides
link encryption. It has been well tested over many years. It is madness to not
use it in environments that provide it.

Whatever you roll on your own is necessarily less trustworthy than SSL. If your
customers don't want SSL because they don't trust it, they should not be
satisfied by this effort. A better use of resources would be to educate them and
you on secure distributed architecture. False security can be horrendously
expensive.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Similar Threads


Members online

No members online now.

Forum statistics

Threads
473,769
Messages
2,569,580
Members
45,054
Latest member
TrimKetoBoost

Latest Threads

Top