A partner to Thoughtcrime Labs’ secure voice application, RedPhone Beta, the free TextSecure :: Private SMS/MMSfor Android brings seamless encryption to your text messages. An attractive solution for the paranoid, or elected officials who wouldn’t otherwise be able to resist sabotaging their careers.
Like RedPhone Beta, TextSecure is designed to be as accessible as possible. Upon startup, the app prompts you to create a passphrase and then copies your existing SMS and MMS messages into a new encrypted database. That way, even old messages on your phone will be unreadable to anyone attempting to access them. Your original messages will remain in their existing location, though TextSecure gives you the option to delete them. TextSecure aims for truly end-to-end protection, encrypting your messages at rest on your phone, and when they’re flying through the air.
When reviewing apps, I like to take screenshots of the setup process so I can refer to them later; I was pleased to note on the Samsung Galaxy Note II that the app prevented me from grabbing screens, both during the set up process and once the app was running. However, users should note that this behavior is not consistent across all Android models. On my Samsung Galaxy S III I was able to capture a screenshot of the set up procedure, but the app only allowed all-black screenshots later.
Sending Messages with TextSecure
Writing a message from within TextSecure is similar to the way standard messaging app works. You type out a phone number, enter name of a contact, or search contacts and favorites in the address field. Below, you type your message and can attach media to your texts. The app can also handle group text messages, and will automatically send known TextSecure users encrypted messages and plain text messages to non-TextSecure users.
Like RedPhone, TextSecure is seamlessly integrated into Android. Once installed, you can send secure texts from the built-in messenger app and TextSecure will handle it from there. Unlike RedPhone, TextSecure does require a wireless data connection and cannot send messages over Wi-Fi.
Users should note that messages sent from the built-in messenger will be automatically encrypted, if the recipient also has TextSecure, and the message will be copied into the app’s encrypted database. However, a plaintext version will be visible in the sender’s built-in messenger app, which strikes me as problematic.
More importantly: when you receive an encrypted message from another TextSecure user, if you’ve recently entered your passphrase to the app, the message will appear in the notification center in plain text. While this does make using TextSecure much easier, it does mean that your messages are completely visible on your screen—potentially without warning. This is why it’s important to a time limit for how long the app can keep your passphrase cached (more on this later).
Users should note that they can quickly un-cache their passphrase from the notification center. An open padlock in the upper right-hand corner of the screen indicates that the passphrase is cached, and the phone is potentially insecure. Simply open the notification center, tap on the “Passphrase Cached” entry in the notification center. The text of incoming messages will not be displayed in the notification center, and you’ll have to enter your passphrase the next time you try to open TextSecure. From the TextSecure settings menu, you can also select to not have messages displayed in the status bar but they will still appear in the notification center.
As a text messenger, TextSecure works great. Messages arrive promptly and the process of decrypting a message is almost entirely hidden from the user; all you see is a plaintext message. To begin an encrypted conversation, users can simply send a message and the app will detect whether or not the recipient is a TextSecure user. If he or she is, the app will prompt you to exchange cryptographic keys and begin a secure session. That first text you sent, however, will not be encrypted.
Alternatively, you can enter the recipient’s phone number into the address field, tap the lock icon on the upper right hand corner of the screen, and select “start secure session.” This initiates the key exchange between the two phones, and future conversations will be encrypted in transit by default. If your recipient is not a TextSecure user, they’ll receive garbage text.
Sending MMS messages with TextSecure is a bit more complicated. During my initial testing, I noticed it took several minutes for my recipient phone to download a 27KB picture message. Worse yet, some picture messages were never received and others failed entirely to send. However, TextSecure version 0.9.2 seems to address these issues, and the app handles MMS much better. In the current version, picture messages take about 6.3 seconds to arrive on the recipient phone after they’re sent.
TextSecure can also send video and audio messages, but this can be tricky because of size limitations for media attachments on messages—which seem to be imposed by the carriers and not TextSecure. For instance, when attaching a video I shot on the phone, I got a size-limit error message. I was able to get around this by choosing to shoot a video from within the default messaging app, which changed the camera preset to a lower quality and provided a handy progress bar showing how much space was remaining in my video message (the maximum size for an attachment seems to be around 595KB). For ease of use, TextSecure should consider allowing users to take pictures, shoot video, and record audio from within the app in a similar fashion to the default messenger. Once I had a properly sized video, however, it took only slightly longer than a picture message to arrive via TextSecure.
Audio messages also sent and arrived easily, but I ran into a few issues here as well. When I tapped to add an attachment from within TextSecure and then selected an audio clip with my third party file browser, it would fail to send from TextSecure. Selecting the same file using the built-in audio manager worked just fine. This is likely an issue between TextSecure and the file navigator app, but demonstrates a potential hiccup for users.
A cache of encrypted messages is difficult to move around should you get a new phone or simply want to share a message with someone else. Fortunately, with TextSecure you can tap and hold on a message to copy, delete, or forward it. You can also import or export all of your TextSecure data to an SD card, keeping it intact and encrypted.
Unfortunately, when I tested the import/export features of TextSecure, I found I was unable to load the encrypted messages onto a new phone. However, I was able to restore messages from an SD card after having wiped the data from TextSecure on the phone from which they originated. While useful for a restore, it seems limited if you jump to another phone or wireless provider.
Not everything in TextSecure is always encrypted. Users should note that if they tap on an image or media file sent via MMS, it has to be decrypted before it can be sent to another app for interpretation (e.g., tapping on an image decrypts it so the image viewer can show it to you, full size). Thankfully, the app does a good job of informing you when your information is being made insecure.
Because it aims to have a low threshold for entry, TextSecure walks a balance between being usable and being secure. However, I felt that Thoughtcrime Labs should have made it a little more obvious whether or not the first message in a conversation is secure. Currently, only two small padlock icons at the top and bottom of the screen indicate whether or not the texts are encrypted. Once a secure connection has been made between two phones, padlocks appear for each message making it clear that each is encrypted.
TextSecure has a robust settings menu allowing the user to control everything from the automatic deletion of texts to the color and pattern of the LED which alerts you to a new message. You can also control how the app handles key exchanges, and turn off TextSecure as the default messaging app. There’s also the option to share a public key, allowing others to send you encrypted messages.
Most users won’t have any cause to adjust their settings, as the default options are adequate. Unfortunately, TextSecure by default only prompts users to enter their passphrase when the phone reboots. If you’re security minded, be sure to check the “Passphrase timeout” box and set an interval.
Entering passphrases is tedious, but I’m grateful TextSecure has options for how and when to enter them. RedPhone Beta did not require a passphrase, and while this made it extremely easy to use it also meant that someone with access to your phone could place a trusted, encrypted call and impersonate you.
Like RedPhone, TextSecure now allows you to verify a secure conversation already in progress with keyphrases or scannable barcodes.
A Strong Offering
TextSecure feels like a more mature product than RedPhone Beta, as demonstrated by the options and flexibility of the app, and is free compared to $120 for KoolSpan TrustCall’s encrypted voice and message service. However, it can be a little too transparent, especially when using the built-in messenger to send texts. And while its settings option is robust, I’d like to see more fine-grain control such as opting to have alerts but not plaintext messages appear in the notification center. That said, I was very pleased by the speed with which Thoughtcrime Labs issued a new update fixing major issues in the app.
With a little more polish and development—hopefully coming soon from the open source community handling the app—TextSecure :: Private SMS/MMS could be a complete replacement for the built-in messenger app on any Android device. As it stands, TextSecure gets 3.5 stars and a hearty recommendation from me for anyone who can overlook the app’s quirks.
More Android App Reviews:
Copyright © 2012 Ziff Davis, Inc