Pondering construction of a secure telephone. (Or at least a cellphone in 
general. The user interfaces and features available on virtually all the 
mass-market phones suck, to put it very very mildly, not even mentioning 
that there's no access to their firmware (so no chance of audit), poor or 
no support for SSL (while running HTTP through the operator's proxy), and 
typically no possibility to run more than one Java applet (or other 
program) at the same time. A combination of a GSM/GPRS module with a 
suitable embedded Linux-running computer could be the right solution.)


The easiest way is probably a hybrid of telephone/modem, doing normal 
calls in "analog" voice mode and secure calls in digital modem-to-modem 
connection. The digital layer may be done best over IP protocol, assigning 
IP addresses to the phones and making them talk over TCP and UDP over the 
direct dialup. (We cannot reliably use GPRS, as the quality of service is 
not assured, so we have to use direct dialup. But we can implement "real" 
IP later, when the available technology reaches that stage.)

Once we have the phones talking over IP with each other, we can proceed 
with the handshake. I'd suggest using OpenSSL for this purpose, as it 
offers all we need for certificates and secure transfer of the key. Then 
use UDP for the voice itself, using eg. stripped-down SpeakFreely as the 
engine. So during the call, two connections will be open over the IP 
channel: the command one (SSL-wrapped TCP, for key and protocol handshake, 
ensuring the identity of the caller, etc.), and the data one (a 
bidirectional UDP stream). As the command connection should be silent for 
most of the time, a 14k4 modem should offer us enough bandwidth for 9k6 
GSM codec, even with the UDP/IP overhead.

The problem is with the calls themselves, determining if they have to be 
connected as secure or as insecure.

For landlines, it's easy; we can hold the line open while switching the 
modem between voice and data modes, even if we'd have to do it the 
"hardcore" way with a relay and a 600-ohm resistor connected to the phone 
line during modem hangup. We then can freely alternate between voice and 
data, starting in voice and getting the telephones negotiate over "analog 
sound" using some sequences of beeps, like during the time of acoustically 
coupled modems. We need just few 100s bps to tell each other that we both 
support secure call, and that we want to switch to it.

However, the cellphones pose a much worse problem. The voice/data call 
type is determined at the connection time, and as far as I know, can't be 
changed on-fly. So we would have to have the desired call mode specified 
in the phone's addressbook (with eventual secure mode advertising through 
the mentioned beep sequence when in insecure mode, and eventual automatic 
or manual redial in secure mode). Does anybody here know if there is a 
workaround available for this? How does the Siemens crypto-phone 
<http://www.vnunet.com/news/1125124> solve this?

It is possible to place data calls from a GSM phone. But it is possible to 
RECEIVE the data calls on it? Can I connect a cellphone to a laptop and 
have a dial-in server?


A workaround here could be exploiting the always-on properties of GPRS (if 
the Enfora modules offer GPRS simultaneously with GSM calls, it could 
provide a lot fo advantages), and use eg. Jabber as a messaging platform 
(overcoming the difficulties with secure SMS messaging), and optionally 
also for secure call negotiation, serving here as a control connection.


A nice feature could be a phone-located voicemail (won't cover the 
situations when the phone is outside of the network reach, but could be 
handy for the situations where the phone is just told to not ring). The 
advantages would be the possibility of the voice being transported in 
secure mode, and the possibility of encrypting the messages in storage. 

Another feature, that could make the device rather attractive in some 
demographics, is the possibility of having the phonebook stored encrypted 
on the handset, inaccessible without a PIN, or not located there at all, 
stored remotely. Yet another advantage, useful for closed groups, is the 
possibility of using Jabber UIDs dynamically mapped to phone numbers, 
allowing the users to swap the handsets, bringing a bit of deniability 
into the location tracking.


The modularity of the design should allow low degree of lock-in to the 
vendors and networks; other modules than Enfora can be used for different 
standards, Enfora produces tri-band (and even quad-band, adding 850 MHz to 
the mix) ones for both US and EU/AU/NZ markets, the control computer 
should be exchangeable for any other kind, with just minor tweaks in the 
software itself. Openness of the design should allow the implementation of 
other emerging secure comm standards, including but not limited to Skype.
Various message-anonymizing tricks could be also done, using 
mixmaster-style forwarding within the network, and/or using secure 
messaging clients instead, like eg. Silc <http://www.silcnet.org/>.

Any comments from the Collective?


-- 
....Enfora Enabler tri-band GSM module, 
<http://www.enfora.com/shop/detail.aspx?ID=32>, $120. Full-featured 
embedded Gumstix computer, <http://www.gumstix.com/>, $185. Big fat 
lithium battery, $50. Display, keypad, other circuits, case: $100-200. 
Writing the firmware, 2-3 weeks. Warm fyzzu feeling from pissing into the 
wiretap operators' beer - priceless!

Reply via email to