SSL-MITM protection

The OpenPGP-encryption will always protect the body of your email, but to protect your identity and to protect against MITM-attacks you must have another crypto layer, most providers use SSL for this.

The use of SSL/TLS can lead to a false sense of security, over the last years there have been several successful attacks against SSL, another risk with SSL is the CA-certificates, if some "bad people" use a valid CA-certificate they can decrypt your SSL-traffic in realtime, totally transparent, without any warnings. Read more here.

This means that SSL is not always secure enough. So we added RSA and AES-CBC encryption underneath the standard SSL-protocol to prevent identity leakage and MITM-attacks.

In short, we have four protection layers:
SSL encryption -> Session encryption -> OpenPGP encryption -> Server side disk-encryption. Every layer is based on standard algorithms only, indepedent of each other.

Our Session encryption scheme

1. User starts our Java-applet, either by visiting countermail.com, or even better, by double clicking on Login.html on your own USB-memory.

2. User enters Username and Password, the Password is transformed to an OpenPGP S2K-Hash (using SHA-1, random IV and 262k iterations). The random 128-bit AES-Key and CBC-IV is also generated, using the Java SecureRandom CS-PRNG.

3. The Username, S2K-Hash, AES-Key and CBC-IV is then encrypted with CounterMail's server public RSA-key (stored inside the signed applet). So far, all processing is done inside the User's Java applet. After the RSA encryption, the packet is sent to our web server. Keep in mind that the Password never leaves the Applet, only the hash sum of it.

4. Our web server decrypts the RSA-packet with CounterMail's server private RSA-key and verifies that Username and S2K-Hash combination is correct. If it's correct, our server generates a Session-id and stores the AES-Key and CBC-IV in a temporary Session-file. Since our web server don't have any hard drives the Session-file resides in RAM.

5. Our web server will then read the User-data (email, OpenPGP-keys and Contacts) from our database server, and together with the Session-id, send it back to the User, before the packet is sent it will be encrypted on the server, using the AES-Key and CBC-IV received from the User. If the User have our USB-memory, his/her private OpenPGP-key can be stored on the USB-memory instead.

6. User's Applet receives and decrypts the packet using AES-CBC. The Applet now have the Session-id, Session-AES-Key, and the OpenPGP encrypted User-data, the server and the user can now communicate securely even if someone breaks the SSL. The OpenPGP encrypted User-data will now be decrypted, using the password entered earlier.

As far as we know, we're the only provider that have protection against SSL-Man-In-The-Middle attacks.

Last update

Apr 10, 2014

News

2014-04-10

Info about the Heartbleed-bug. Read more

2014-02-17

Added FAQ: How do I create good passwords?

2014-02-14

Temporarily problem on database server. Fixed

2014-01-30

Changed spam flag to minimize false Spam classifications. Read more

2014-01-27

Updated CounterMailPortable. Read more

2013-12-27

Bugfixes and Updated Offline Login and more. Read more

2013-12-19

Updated our Tools page. Read more

2013-12-02

Added Quota warnings. Read more

2013-10-22

Changed new public keysize to 4096 bits.

2013-07-23

New USB routine. Read more

2013-05-01

Changed Trial account period to 7 days

2013-03-24

Opened up our XMPP chat server.

2013-03-17

Added new Support-system and a new FAQ

2013-02-01

Updated Java info page

2013-01-12

Added MacOS support for our USB-key

2012-12-20

Added Countermail Portable for Windows

2012-12-09

Added Safebox feature

2012-08-28

Scheduled Maintenance - August 30, 13:00 GMT. Servers will be down for approx. 2-3 hours.

2012-05-31

Added subfolder creation.

2012-03-22

Applet and Certificate update

2012-03-10

Added Wire transfer payment

2012-01-01

Third party IMAP-clients need to clean their cache. Read here.

2011-10-25

Added Domain Panel for all domain administrators

2011-08-24

Added quick search

2011-08-02

Added default Compose-alias

2011-07-17

Added new session option for TOR/VPN/Proxy-surfing. Settings/Personal info - Lock IP-address

2011-06-08

Added iPhone information

2011-05-10

Added message filters

2011-04-30

Updated alias function

2011-02-15

Added new white theme

2011-01-07

Added email notification

2010-12-06

Added more server-side SPAM protection

2010-12-01

New Compose window

2010-11-20

Added instructions for Android phones

2010-10-17

Added new feature:
Secure Forms

2010-05-24

Opened up for all !

2009-11-21

Open website for Beta-testers

2009-05-19

Installed our primary login and database servers

2009-05-16

Comodo Usertrust certified our company for Java applet code signing

2008-05-11

Domain name registration. Official start of the project.