OK I got a hold of Aaron's white paper from
http://www.ardiri.com/publications/palmsource2000.pdf

It's very good - more about protecting the software from being copied rather
than preventing data form being seen but does point out that:
"An applications algorithm is always open - to the point of being able to
read it in the operating
systems assembly language."

While the paper does provide techniques for protecting against this, as
Pascal says: 
"It is not because the algorithm is known that it is no longer secure !"

So this is where I am:

I will protect the application with a password. I should store the password
encrypted (or hashed).
I also have to store the key on the device and the user has to be able to
decrypt the data - so I figure I encrypt the key using the user's password.
Of course, the users won't want to enter lengthy, strong passwords using
Graffiti. I figure that I should use RC4 with  to encrypt the data. So, I
figure AES or 3DES is unlikely to improve on RC4 (especially if I use "a key
wider than 128 bits, avoiding weak keys and always skip the first 256 bytes
of output") - because the weak point of the system is that the password
gives access to the data. 
If my customer insists, I can use AESLib to encrypt.

I'm interested in the Aaron's dynamic key idea - any pointers about how I
implement that?

Colin

-----Original Message-----
From: Pascal LEVY [mailto:[EMAIL PROTECTED]
Sent: 03 March 2004 10:25
To: Palm Developer Forum
Subject: Re: encryption/decryption Palm Database


> Because the algorithm is known, it is no longer a trade secret.
>
>   --> why not change the algorithm slightly? :)
>
> > We are not using wireless and I think a symmetric key is fine. If I
could
> > get a hold of some open source AES or 3DES code, I could show my
customer
> > the performance compared to RC4.
>
> you can say your using a custom symmetric RC4 based algorithm. one of
> the problems with using RC4 based on the url's above is the fact that
> it is using a "known" algorithm, just modify it slightly :)

It is not because the algorithm is known that it is no longer secure !
Everybody knows about RSA, and it is still robust. As long as you avoid some
pitfalls, RC4 is secure. Use a key wider than 128 bits, avoid weak keys,
always skip the first 256 bytes of output, and you'll be ok.

IMHO, the lack of security comes from the plateform, not from the encryption
algorithm. A palm device can easily be stolen or borrowed, providing a
malicious user both your encrypted database *and* the application that
encrypt/decrypt it...

In other words, whatever the encryption algorithm you use, your application
won't be secure unless you protect your application from the user point of
view using passwords, and from the hacker point of view using one of the
mechanism Aaron describes in its famous white paper about software
protection.

-- Pascal



-- 
For information on using the Palm Developer Forums, or to unsubscribe,
please see http://www.palmos.com/dev/support/forums/

-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/support/forums/

Reply via email to