GoldenSMS

Description

GoldenSMS is a J2ME application used to send sms in a secure way to another mobile phone that has the application. The messages are send in a way that is extremely difficult to retrieve the encryption key or decrypt the messages from the ciphertext because the key is changed every time a sms is send. If the key is obtained in some way (ie. having physical access to the mobile phone) only the sms send from that time can be decrypted, all the previous messages are safe because the key renewal process is done in a destructive way, that means that you can't determinate the previous key used and decrypt the previous messages.

Go to top

Requirements

This aplication needs a mobile phone or sms capable device with:

A small list of devices that support this specifications:

The application uses the following libraries:

Go to top

How does it work

The encription mechanism used in GoldenSMS is really simple and efficient, it ensures that the sms sent can't be read by anybody but the receivers phone, and it also ensures that if for some reason the secret hash used to encrypt the sms is found by an attacker only the sms sent after that can be decrypted, all the previous sms remain safe.

The following image explains how does the algoritm work:

GoldenSMS algoritm

The sender and the receiver share a secret hash that is used to encrypt and decrypt the SMS, this hash was created when the users decided to use the application to exchange SMS and was generated using one of the available methods:

The shared hash is created from one of the mentioned methods using the SHA-1 hash algoritm and is keeped on the mobile phone with the phone number of the other user.

When a sms is sent, the sms is xored with the secret hash of the previous sms (or the initial hash if this is the first sms) adn the resulting cyphertext is sent to the receiver mobile phone.

The SHA-1 hash of the sms replaces the previous hash for the destination user on the senders mobile phone.

When the user receives a sms the application is started by the PushRegistry and the application uses the secret hash of the previous sms (or the initial hash if this is the first sms) to decrypt the sms using the xor operation.

After sucessfully decrypt the sms, its contents are shown to the user and the SHA-1 hash of the sms replaces the existing hash for the sender on th receivers mobile phone.

Go to top

Screenshots

Here are some screenshots of the application using the emulator:

Go to top

Installation

You can install GoldenSMS in the following ways:

Go to top

Download

Beta v1: 96.6 KB Download

Go to top

ToDo

List of planned thing to do in future versions of the application:

Go to top

License

This aplication is licensed under the terms of the GNU Lesser General Public License
For details check the license terms or an explained version.

Go to top

Contacts

You can contact me at this e-mail: rjlopes at gmail dot com

In case you have any problem using the application, want help, find a bug use the mailing list or the forum available in the support section.

Go to top

Support

If you have any problem using the applcaition you can get help in the project forum or using the mailing list.

If you are sure you found a bug on the application please fill a bug report, please make sure that nobody already submited a bug for the same issue.

Go to top

FAQ

  1. Why do i need this application?
    You need this application if you are interested that the sms you send to another person be keep private, that means that nobody be able to read its contents.
  2. How safe is it?
    The encryption mechanisms and the algoritm used are really safe, however a third party with many computational resources might be able to break the protection mechanism. After all everything can be breaked is just a matter of time, determination and enough resources.
  3. What happends if someone has physical access to my mobile phone?
    He might be able to get a copy of the encryption keys, after that all messages send from that time might be compromissed, you should meet with your contact and create a new key.
  4. Why does the application always ask me if i want to do XXXXX?
    That happends because the application is not signed, i had to buy a certificate to be able to sign the application, however the certificates are expensive (houndreds of dollars). But there is a workarround, you can add my certificate the trusted certificates of your mobile phone and the messages go away. You can find the certificate here
Go to top

Best viewed with Firefox   XHTML Validated   Uses CSS   Support This Project   SourceForge.net Logo