12.07.2015 Views

Off-the-Record Communication, or, Why Not To Use PGP

Off-the-Record Communication, or, Why Not To Use PGP

Off-the-Record Communication, or, Why Not To Use PGP

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>Off</strong>-<strong>the</strong>-<strong>Rec<strong>or</strong>d</strong> <strong>Communication</strong>,<strong>or</strong>, <strong>Why</strong> <strong>Not</strong> <strong>To</strong> <strong>Use</strong> <strong>PGP</strong>Nikita B<strong>or</strong>isovUC Berkeleynikitab@cs.berkeley.eduIan GoldbergZero-Knowledge Systemsian@cypherpunks.caEric BrewerUC Berkeleybrewer@cs.berkeley.eduABSTRACTQuite often on <strong>the</strong> Internet, cryptography is used to protectprivate, personal communications. However, most commonly,systems such as <strong>PGP</strong> are used, which use long-livedencryption keys (subject to compromise) f<strong>or</strong> confidentiality,and digital signatures (which provide strong, and in somejurisdictions, legal, proof of auth<strong>or</strong>ship) f<strong>or</strong> au<strong>the</strong>nticity.In this paper, we argue that most social communicationsonline should have just <strong>the</strong> opposite of <strong>the</strong> above two properties;namely, <strong>the</strong>y should have perfect f<strong>or</strong>ward secrecy andrepudiability. We present a protocol f<strong>or</strong> secure online communication,called “off-<strong>the</strong>-rec<strong>or</strong>d messaging”, which hasproperties better-suited f<strong>or</strong> casual conversation than do systemslike <strong>PGP</strong> <strong>or</strong> S/MIME. We also present an implementationof off-<strong>the</strong>-rec<strong>or</strong>d messaging as a plugin to <strong>the</strong> LinuxGAIM instant messaging client. Finally, we discuss howto achieve similar privacy f<strong>or</strong> high-latency communicationssuch as email.Categ<strong>or</strong>ies and Subject Descript<strong>or</strong>sK.4.1 [Management of Computing and Inf<strong>or</strong>mationSystems]: Public Policy Issues—Privacy; E.3 [Data]: DataEncryption; K.6.5 [Management of Computing and Inf<strong>or</strong>mationSystems]: Security and Protection—Au<strong>the</strong>nticationGeneral TermsSecurityKeyw<strong>or</strong>dsPerfect F<strong>or</strong>ward Secrecy, Deniability, Private <strong>Communication</strong>1. INTRODUCTIONOriginally a medium f<strong>or</strong> <strong>the</strong> transfer of technical inf<strong>or</strong>mation,data, and research, <strong>the</strong> Internet has grown rapidlyPermission to make digital <strong>or</strong> hard copies of all <strong>or</strong> part of this w<strong>or</strong>k f<strong>or</strong>personal <strong>or</strong> classroom use is granted without fee provided that copies arenot made <strong>or</strong> distributed f<strong>or</strong> profit <strong>or</strong> commercial advantage and that copiesbear this notice and <strong>the</strong> full citation on <strong>the</strong> first page. <strong>To</strong> copy o<strong>the</strong>rwise, t<strong>or</strong>epublish, to post on servers <strong>or</strong> to redistribute to lists, requires pri<strong>or</strong> specificpermission and/<strong>or</strong> a fee.WPES’04, October 28, 2004Copyright 2004 ACM 1-58113-968-3/04/0010 ...$5.00.over <strong>the</strong> last decade to become <strong>the</strong> basis f<strong>or</strong> a wide variety off<strong>or</strong>ms of communication, ranging from electronic commerce,to <strong>the</strong> sharing of music and video, to social conversation.Along with <strong>the</strong> growing population of <strong>the</strong> Internet camegrowing concern over <strong>the</strong> security of <strong>the</strong> data flowing acrossit. Your online communications could be observed by anynumber of third parties on <strong>the</strong>ir way to <strong>the</strong>ir destinations.Even data residing on your own PC could be vulnerable ifyou were unlucky enough to open <strong>the</strong> wrong email attachment.The protections developed were twofold: use firewalls andhost security to lock down <strong>the</strong> endpoints, and use cryptographyto protect <strong>the</strong> inf<strong>or</strong>mation in transit. Popularcryptographic systems, such as SSL [9], <strong>PGP</strong> [6, 33], andS/MIME [4], were developed and used to protect diversef<strong>or</strong>ms of data.The maj<strong>or</strong>ity of electronic commerce is protected by SSL.What about social communication? Some of it takes placeover email, f<strong>or</strong> which <strong>PGP</strong> and S/MIME are common toolsof protection. And an increasing p<strong>or</strong>tion of it uses instantmessaging protocols, such as AIM [3], MSN [20], ICQ [16],and many o<strong>the</strong>rs. <strong>To</strong> protect instant messages <strong>the</strong>re are severalalternatives. Trillian [31] was <strong>the</strong> first to have a widelydeployed solution f<strong>or</strong> users of its client, called SecureIM,which provided basic secrecy but no au<strong>the</strong>ntication. AOLfollowed with its own protocol [2], functionally similar toS/MIME. One can also use <strong>PGP</strong> in an instant-messagingcode with <strong>the</strong> appropriate glue logic. [14] However, <strong>the</strong>seapproaches offer very different security and privacy properties.Which is right?In this paper, we examine what kind of privacy is necessaryf<strong>or</strong> social communications. We argue that not onlymust encryption be used to hide <strong>the</strong> contents of <strong>the</strong> conversation,but also, <strong>the</strong> encryption must provide perfect f<strong>or</strong>wardsecrecy to protect from future compromises. Additionally,au<strong>the</strong>ntication must be used to ensure that <strong>the</strong> person on<strong>the</strong> o<strong>the</strong>r end is who <strong>the</strong>y claim to be. However, <strong>the</strong> au<strong>the</strong>nticationmechanism must offer repudiation, so that <strong>the</strong>communications remain personal and unverifiable to thirdparties. Only with <strong>the</strong>se properties can privacy similar t<strong>or</strong>eal-w<strong>or</strong>ld social communications be achieved.However, none of <strong>the</strong> mechanisms currently used f<strong>or</strong> socialcommunications have all of <strong>the</strong>se properties. <strong>PGP</strong> andS/MIME provide encryption and digital signatures, but <strong>the</strong>encryption keys are typically long-lived, and <strong>the</strong> digital signaturesare non-repudiable. The Trillian SecureIM schemeprovides perfect f<strong>or</strong>ward secrecy, but perf<strong>or</strong>ms no au<strong>the</strong>nticationat all. We <strong>the</strong>ref<strong>or</strong>e propose a new protocol f<strong>or</strong>


protecting social interactions in <strong>the</strong> context of instant messaging.In section 2 we motivate our privacy objectives. Section 3gives an overview of relevant cryptographic primitives, andsection 4 contains an exposition of our off-<strong>the</strong>-rec<strong>or</strong>d instantmessagingprotocol. In section 5 we describe our implementationof this protocol in a common instant messaging system.In section 6, we consider how to achieve similar privacyin <strong>the</strong> high-latency context of email. Finally, we review somerelated w<strong>or</strong>k in section 7 and in section 8 we conclude.2. MOTIVATIONWhen Alice and Bob are talking in person, it is easy tokeep <strong>the</strong>ir conversation private. Alice can make sure no oneis around, and, with <strong>the</strong> exception of a hidden tape rec<strong>or</strong>der,she can be reasonably sure that no one else will hear <strong>the</strong> conversation.Fur<strong>the</strong>r, <strong>the</strong> only evidence anyone can obtain of<strong>the</strong> conversation is Bob’s w<strong>or</strong>d about what happened. Suchprivate, off-<strong>the</strong>-rec<strong>or</strong>d conversations are common and usefulin both social and business contexts. There is even a recognizedneed to have similar private conversations by telephone— it is illegal to tap <strong>or</strong> rec<strong>or</strong>d a phone conversation without<strong>the</strong> parties’ consent <strong>or</strong> a court <strong>or</strong>der.What happens when Alice and Bob want to have such aprivate conversation online? <strong>To</strong>day, being somewhat cryptosavvy,<strong>the</strong>y would use <strong>PGP</strong>. Alice encrypts her messages toBob’s public encryption key, and signs <strong>the</strong>m with her ownprivate signature key. That way, only Bob can read <strong>the</strong>messages, and Bob is assured that Alice is <strong>the</strong> one who sent<strong>the</strong>m.Unbeknownst to Alice and Bob, however, <strong>the</strong> eavesdropperEve is listening (good thing <strong>the</strong>y used crypto!) andst<strong>or</strong>ing all of <strong>the</strong> encrypted messages, which she can’t read.Some time later, Eve manages to obtain Bob’s private key,f<strong>or</strong> example though a black bag job [12], Magic Lantern [28],<strong>or</strong> a subpoena. Eve now can read all of Bob’s past email thatshe’s collected over <strong>the</strong> years. In addition, Eve has evidencein <strong>the</strong> f<strong>or</strong>m of a cryptographic digital signature that Alicewas <strong>the</strong> one who sent <strong>the</strong> messages.This doesn’t sound like a private conversation at all! After<strong>the</strong> fact, a cryptographically verifiable transcript of Aliceand Bob’s conversation has been recovered.2.1 What went wrong?You could say that Bob losing control of his private keywas <strong>the</strong> problem. But with today’s easily-compromised personalcomputers, this is an all-too-likely occurence. Wewould really prefer to be able to handle such failures gracefully,and not simply give away <strong>the</strong> farm.There were two main problems:• The compromise of Bob’s secrets allowed Eve to readnot only future messages protected with that key, butpast messages as well.• When Alice wanted to prove to Bob that she was <strong>the</strong>auth<strong>or</strong> of <strong>the</strong> message, she used a digital signature,which also proves it to Eve, and any o<strong>the</strong>r third party. 1When we think about private messages in <strong>the</strong> context ofsocial conversation, we really want a system with different1 <strong>Not</strong>e that if Alice had not signed <strong>the</strong> message, <strong>the</strong>n thirdparties would not have proof of Alice’s auth<strong>or</strong>ship of <strong>the</strong>message, but <strong>the</strong>n nei<strong>the</strong>r would Bob.properties: we want only Bob to be able to read <strong>the</strong> message,and Bob should be assured that Alice was <strong>the</strong> auth<strong>or</strong>;however, no one else should be able to do ei<strong>the</strong>r. Fur<strong>the</strong>r,after Alice and Bob have exchanged <strong>the</strong>ir message, it shouldbe impossible f<strong>or</strong> anyone (including Alice and Bob <strong>the</strong>mselves)to subsequently read <strong>or</strong> verify <strong>the</strong> au<strong>the</strong>nticity of <strong>the</strong>encrypted message, even if <strong>the</strong>y kept a copy of it. It is clearthat <strong>PGP</strong> does not provide <strong>the</strong>se desirable properties.This paper introduces a protocol f<strong>or</strong> private social communicationwhich we call “off-<strong>the</strong>-rec<strong>or</strong>d messaging”. Thenotion of an off-<strong>the</strong>-rec<strong>or</strong>d conversation well-captures <strong>the</strong> semanticsone intuitively wants from private communication:only <strong>the</strong> two parties involved are privy to <strong>the</strong> contents of <strong>the</strong>conversation; after <strong>the</strong> conversation is over, no one (not even<strong>the</strong> parties involved) can produce a transcript; and although<strong>the</strong> participants are assured of each o<strong>the</strong>r’s identities, nei<strong>the</strong>r<strong>the</strong>y n<strong>or</strong> anyone else can prove this inf<strong>or</strong>mation to athird party. Using this protocol, Alice and Bob can enjoy<strong>the</strong> same privacy in <strong>the</strong>ir online conversations that <strong>the</strong>y dowhen <strong>the</strong>y speak in person.3. CRYPTOGRAPHIC PRIMITIVESIn this section, we outline <strong>the</strong> cryptographic primitives wewill use to achieve our goal of off-<strong>the</strong>-rec<strong>or</strong>d communication.• Perfect f<strong>or</strong>ward secrecy will be used to ensure ourpast messages cannot be recovered retroactively.• Digital signatures will be used so that Bob knowswith whom he’s communicating.• Message au<strong>the</strong>ntication codes will be used to proveAlice’s auth<strong>or</strong>ship of a message to Bob, while at <strong>the</strong>same time preventing such a proof to third parties.• Malleable encryption will be used to provide f<strong>or</strong>f<strong>or</strong>geability of transcripts, repudiation of contents, andplausible deniability.3.1 Perfect f<strong>or</strong>ward secrecyThe most obvious feature we need from our off-<strong>the</strong>-rec<strong>or</strong>dmessaging system is confidentiality: only Alice and Bobshould be able to read <strong>the</strong> messages that make up <strong>the</strong>ironline conversation. Since we assume everything transmittedover <strong>the</strong> Internet is public inf<strong>or</strong>mation, we need to useencryption. Now our problem is reduced to ensuring that<strong>the</strong> decryption keys f<strong>or</strong> <strong>the</strong> messages never fall into handso<strong>the</strong>r than Alice’s and Bob’s.Alice’s and Bob’s abilities to safeguard <strong>the</strong>ir decryptionkeys becomes paramount. If at any later time, some decryptionkey is revealed, perhaps by breaking into one of<strong>the</strong>ir computers, <strong>or</strong> through legal <strong>or</strong> coercive means, anymessages — past, present, <strong>or</strong> future — encrypted f<strong>or</strong> thatkey would no longer be secure.We circumvent this problem by using sh<strong>or</strong>t-lived encryption/decryptionkeys that are generated as needed and discardedafter use. These keys also have <strong>the</strong> property thatit is impossible to rederive <strong>the</strong>m from any long-term keymaterial.A setup such as this provides a property known as perfectf<strong>or</strong>ward secrecy [15]: once Alice and Bob both discardany given sh<strong>or</strong>t-lived key, <strong>the</strong>re is no longer any amountof inf<strong>or</strong>mation that can be collected through any means to


ecover <strong>the</strong> key, and thus decrypt messages encrypted withthat key. 2<strong>Not</strong> only will Eve be unable to reconstruct <strong>the</strong> key, butAlice <strong>or</strong> Bob <strong>the</strong>mselves will be unable to read those pastmessages. This strong property ensures <strong>the</strong> confidentialitybehaviour desired in off-<strong>the</strong>-rec<strong>or</strong>d communication.<strong>To</strong> provide perfect f<strong>or</strong>ward secrecy, we use <strong>the</strong> well-knownDiffie-Hellman key agreement protocol [10]. 3 Diffie-Hellmanallows two parties communicating over a public channel toagree on a shared secret, without revealing it to an eavesdropper.Briefly, <strong>the</strong> key agreement starts with some publicparameters — a prime p and a generat<strong>or</strong> g of a subgroup ofZp ∗ of large prime <strong>or</strong>der. Alice and Bob pick two numbers(<strong>the</strong> private keys), x A and x B respectively, and <strong>the</strong>y transmitg x Aand g x B(<strong>the</strong> public keys) over a public channel.Alice can <strong>the</strong>n compute <strong>the</strong> shared secret g x Ax B= (g x B) x A;Bob can compute <strong>the</strong> same secret as (g x A) x B. This nowsharedsecret is used to create <strong>the</strong> sh<strong>or</strong>t-lived encryptionkey. However, it is presumed to be intractable f<strong>or</strong> Eve tocompute <strong>the</strong> secret, since x A and x B are unknown to her.3.2 Digital signatures and non-repudiationDigital signatures are a popular means of au<strong>the</strong>nticating<strong>the</strong> auth<strong>or</strong> of a message; <strong>the</strong>y have a number of imp<strong>or</strong>tantproperties. Since digital signatures use public key cryptography,it is not necessary f<strong>or</strong> every pair of communicatingparties to maintain a long-term shared secret; instead, everyparty needs to have a single public key that is known toeveryone else and used to verify <strong>the</strong>ir signatures. Theref<strong>or</strong>e,n parties only need O(n) instead of O(n 2 ) keys, and <strong>the</strong>public keys need not be kept secret. Some popular digitalsignature alg<strong>or</strong>ithms include RSA [29] and DSS [24].In addition, <strong>the</strong>se signature keys can be long-lived keys,unlike <strong>the</strong> sh<strong>or</strong>t-lived encryption keys, above. The reason isthat if Bob verifies Alice’s signature on a piece of data, and<strong>the</strong>n <strong>the</strong> next week, Alice’s signature key is compromised,it doesn’t affect <strong>the</strong> fact that that old signature was valid.On <strong>the</strong> o<strong>the</strong>r hand, if an encryption key is used to protecta piece of data, and <strong>the</strong>n <strong>the</strong> next week, <strong>the</strong> encryption keyis compromised, that old data is no longer protected.Since compromises of signature keys can’t affect old data<strong>the</strong> way compromises of encryption keys can, it is acceptableto keep <strong>the</strong> same signature key around f<strong>or</strong> a long time; younever protect any additional data by changing your signaturekey <strong>the</strong> way you do by changing your encryption key. Inaddition, it is desirable to keep your signature keys aroundf<strong>or</strong> a long time, since that simplifies key distribution: makingsure all of your friends have a c<strong>or</strong>rect copy of your signaturekey.Ano<strong>the</strong>r imp<strong>or</strong>tant consequence of digital signatures isthat a digital signature may be verified by anyone, and assuch can be used to prove to a third party that Alice signeda message, without Alice’s cooperation.This last property is known as non-repudiation — Aliceis unable at a later time to disclaim auth<strong>or</strong>ship of a messagethat she signed. As we motivated in <strong>the</strong> previous section,this is not a desirable property of private communications.Alice may not want to empower Bob with <strong>the</strong> ability to2 We are of course assuming that <strong>the</strong> cipher itself is strongenough so as to resist being broken without <strong>the</strong> key.3 F<strong>or</strong> clarity, we describe only <strong>the</strong> simplest f<strong>or</strong>m of Diffie-Hellman key agreement here; f<strong>or</strong> m<strong>or</strong>e detailed versions of<strong>the</strong> protocol, see [7].prove to third parties about what she told him in private;this concern is amplified by moves of many governments toassociate legal power with digital signatures. Even if Alicetrusts Bob, such trust may be compromised by someonebreaking into Bob’s computer, <strong>or</strong> legal proceedings f<strong>or</strong>cingBob to give up past messages from Alice. The burden of nonrepudiationwill limit what Alice may be comf<strong>or</strong>table withsaying, a restriction undesirable f<strong>or</strong> simple private communicationbetween two parties.We want repudiability: no one should be able to proveAlice sent any particular message, whe<strong>the</strong>r she actually did,<strong>or</strong> not. F<strong>or</strong> this reason, we never use a digital signatureto prove Alice’s auth<strong>or</strong>ship of any message. The only datawe ever sign are Alice’s values of g x Ain <strong>the</strong> Diffie-Hellmanprotocol. Everyone, including Bob and Eve, can <strong>the</strong>n beassured that Alice was really <strong>the</strong> one who chose <strong>the</strong> value ofx A that produced g x A, but that is all <strong>the</strong>y know.Bob, on <strong>the</strong> o<strong>the</strong>r hand, has extra inf<strong>or</strong>mation: x B, andwith it <strong>the</strong> shared secret g x Ax B. We will use this sharedsecret next to prove Alice’s auth<strong>or</strong>ship of <strong>the</strong> message toBob, and only to Bob.3.3 MACs and repudiabilityAlthough we want repudiability f<strong>or</strong> our private, off-<strong>the</strong>rec<strong>or</strong>dcommunication, we still need au<strong>the</strong>ntication in <strong>or</strong>derto get security; Bob needs to be assured that Alice is in fact<strong>the</strong> one sending him <strong>the</strong> messages, even if we insist that hebe unable to prove that fact to anyone else.F<strong>or</strong> this purpose, we turn to message au<strong>the</strong>ntication codes,<strong>or</strong> MACs. A MAC is a function computed on a message usinga secret “MAC key”, which is shared by Alice and Bob.(A MAC can be thought of as a keyed hash function.) Aliceuses her copy of <strong>the</strong> MAC key to compute a MAC of hermessage, and sends this MAC along with her message in asecure transmission; Bob verifies <strong>the</strong> integrity and au<strong>the</strong>nticityof <strong>the</strong> message by computing <strong>the</strong> MAC on <strong>the</strong> receivedmessage using his copy of <strong>the</strong> shared MAC key, and comparingit to <strong>the</strong> MAC that was transmitted. A popular MACconstruction is HMAC [17], based on a one-way hash function.Since it is necessary to know <strong>the</strong> secret key to generate aproper MAC, if <strong>the</strong> results match, Bob knows that someonewith knowledge of <strong>the</strong> shared MAC key must have sent thismessage. Since he presumably knows that he didn’t send ithimself, and only he and Alice know <strong>the</strong> MAC key, it musthave been Alice who sent <strong>the</strong> message. Also, Bob knows that<strong>the</strong> message has not been modified since Alice generated it,since o<strong>the</strong>rwise <strong>the</strong> MACs would not match.However, a MAC can’t provide non-repudiation: Eve can’tlook at <strong>the</strong> MAC’d message and determine that Alice sent it,because Eve doesn’t know <strong>the</strong> MAC key. Fur<strong>the</strong>r, Bob can’teven prove to a third party that Alice sent <strong>the</strong> message; allhe can prove is that someone with <strong>the</strong> MAC key generatedit, but f<strong>or</strong> all anyone knows, Bob could have made up <strong>the</strong>message himself!These properties of a MAC make it perfect f<strong>or</strong> off-<strong>the</strong>rec<strong>or</strong>dcommunication. Only Bob can be assured that Alicesent <strong>the</strong> message, and that <strong>the</strong> message has not been modified,yet no one (not even Bob) can prove this fact to anythird party.3.4 Malleable encryption and f<strong>or</strong>geabilityIn off-<strong>the</strong>-rec<strong>or</strong>d messaging, we would like to have an even


stronger property than repudiability: f<strong>or</strong>geability. <strong>Not</strong>only do we want Bob and Eve to be unable to prove thatAlice sent any given message, we want it to be very obviousthat anyone at all could have modified, <strong>or</strong> even sent it. <strong>To</strong> doso, we use a malleable encryption scheme, which makesit easy to alter <strong>the</strong> ciphertext in such a way as to makemeaningful changes in <strong>the</strong> plaintext, even when you don’tknow <strong>the</strong> key.In some encryption schemes, such as certain modes of ablock cipher, it is difficult to produce ciphertexts that decryptto meaningful plaintexts without knowing <strong>the</strong> key.Even if Eve intercepts Alice’s ciphertext, any changes shemight make will likely result in <strong>the</strong> plaintext becoming randombits, ra<strong>the</strong>r than, say, English text. In general, it ispo<strong>or</strong> practice to rely on this difficulty to au<strong>the</strong>nticate a message,as <strong>the</strong>re are truncation and o<strong>the</strong>r attacks which Evemight be able to use. However, such attacks may be difficultto apply in some cases, and we want to make it absolutelyclear that anyone could have changed a message.We <strong>the</strong>ref<strong>or</strong>e use a stream cipher. A stream cipher encrypts<strong>the</strong> plaintext by masking it with a keystream using<strong>the</strong> exclusive-OR operation; to decrypt, <strong>the</strong> same exclusive-OR is used to remove <strong>the</strong> keystream and reveal <strong>the</strong> plaintext.This encryption is malleable, as a change to any bit in <strong>the</strong>ciphertext will c<strong>or</strong>respond to a change in <strong>the</strong> c<strong>or</strong>respondingbit in <strong>the</strong> plaintext. In particular, if Eve can guess <strong>the</strong>plaintext of a message, she can <strong>the</strong>n change <strong>the</strong> ciphertextto decrypt to any o<strong>the</strong>r message of <strong>the</strong> same length, withoutknowing <strong>the</strong> key. Theref<strong>or</strong>e, a message encrypted with astream cipher does not prove integrity <strong>or</strong> au<strong>the</strong>nticity in anyway. Of course, Alice can still use a MAC to prove to Bobthat her messages are indeed hers; in <strong>the</strong> next section we willdescribe some extra safeguards our protocol takes to ensurethat no one else can use <strong>the</strong> MAC to verify au<strong>the</strong>nticity.4. THE OFF-THE-RECORD MESSAGINGPROTOCOLIn this section we shall proceed to build up a messagingprotocol that achieves <strong>the</strong> desirable properties that we describedin <strong>the</strong> previous sections through <strong>the</strong> use of <strong>the</strong> cryptographicprimitives outlined above. We designed <strong>the</strong> protocolf<strong>or</strong> low-latency communication protocols, such as instantmessaging. Section 6 discusses how it might be changed toaccommodate higher-latency communication, such as email.4.1 EncryptionFirst, we want to ensure that a message is kept private;<strong>the</strong>ref<strong>or</strong>e, we must encrypt it. As discussed in <strong>the</strong> previoussection, we want to use malleable encryption to provideplausible deniability. A stream cipher is best suited f<strong>or</strong> thispurpose. In keeping with current standards, we use AES [23]in counter mode [11]. The encryption key is chosen using aDiffie-Hellman key agreement to establish a shared secret.<strong>To</strong> ensure that <strong>the</strong> keys are sh<strong>or</strong>t-lived, Alice and Bobcan choose to perf<strong>or</strong>m a new Diffie-Hellman key agreement,discarding <strong>the</strong> old key and x A, x B values. At this point, itwill be impossible f<strong>or</strong> Alice <strong>or</strong> Bob to decrypt old messages,even with help from an attacker who might remember <strong>the</strong>transmitted values of g x Aand g x B, without violating <strong>the</strong>Diffie-Hellman security assumption. Thus perfect f<strong>or</strong>wardsecrecy is achieved, as all messages encrypted with <strong>the</strong> previouskey are now unreadable.<strong>To</strong> reduce <strong>the</strong> window of vulnerability, when it is possibleto decrypt old messages, Alice and Bob should re-key as frequentlyas possible. F<strong>or</strong>tunately, a Diffie-Hellman computationis fairly cheap — it involves only two modular exponentiations.Theref<strong>or</strong>e, most computers will be able to re-keywith each message; even devices with limited computationalpower, such as PDAs, should be able to re-key at least oncea minute. <strong>To</strong> avoid extra messages during such re-keying,we combine Diffie-Hellman exchanges with n<strong>or</strong>mal messagetransmission. Each message includes a Diffie-Hellman publickey (g x ) that will be used to derive <strong>the</strong> key f<strong>or</strong> subsequentmessages. So, a message exchange might look as follows:A → B : g x 1B → A : g y 1A → B : g x 2, E(M 1, k 11)B → A : g y 2, E(M 2, k 21)A → B : g x 3, E(M 3, k 22)where k ij = H(g x iy j), <strong>the</strong> result of a 128-bit hash functionH, such as truncated SHA-1 [22], on an element of Z ∗ p, andE(M, k) denotes encryption in AES counter mode using <strong>the</strong>key k. 4 Each message is encrypted using <strong>the</strong> shared secretderived from <strong>the</strong> last key received from <strong>the</strong> o<strong>the</strong>r party and<strong>the</strong> last key that has been previously sent to <strong>the</strong> o<strong>the</strong>r party.We do not use <strong>the</strong> key disclosed in one message until <strong>the</strong>following message, f<strong>or</strong> reasons of au<strong>the</strong>ntication, discussedbelow. F<strong>or</strong> example, in <strong>the</strong> last message above, Alice has receivedg y 2from Bob, and <strong>the</strong> last key she has sent previouslyis g x 2, so <strong>the</strong> key used to encrypt a message is H(g x 2y 2). Inpractice, a key ID should also be used in <strong>the</strong> message to ensurethat both <strong>the</strong> sender and <strong>the</strong> receiver know which k ijis being used, since <strong>the</strong> protocol does not require that Aliceand Bob take turns sending messages to each o<strong>the</strong>r.4.2 F<strong>or</strong>getting Keys<strong>To</strong> achieve perfect f<strong>or</strong>ward secrecy, Alice and Bob mustf<strong>or</strong>get old keys once a new key exchange is complete. 5 Ideally,after Alice sends Bob <strong>the</strong> key g xn , she would like tobe able to f<strong>or</strong>get x n−1. However, since messaging protocolsare typically asynchronous, it is possible that <strong>the</strong>re is still amessage in transit from Bob that was encrypted using <strong>the</strong>previous g x n−1key; if Alice had thrown away <strong>the</strong> key, shewould no longer be able to read <strong>the</strong> message. Theref<strong>or</strong>e,Alice must remember <strong>the</strong> old g x n−1key until she receivesa message from Bob that uses <strong>the</strong> new g xn key. Assumingthat messages are delivered in <strong>or</strong>der, all subsequent messagesfrom Bob will be encrypted using <strong>the</strong> new key. 6If Alice sends several messages to Bob in a row withoutreceiving a response, announcing keys g xn . . . g xm , she willneed to remember <strong>the</strong> entire sequence of keys x n−1 . . . x muntil she receives a message from Bob, since she cannot besure which key <strong>the</strong> next message from Bob will be encryptedunder. Since using different keys does not help reduce <strong>the</strong>4 The bit representation of E(M,k) will of course also include<strong>the</strong> initial counter value, which will be chosen to be uniquef<strong>or</strong> each message sent.5 F<strong>or</strong> a secure method of f<strong>or</strong>getting keys, see [8].6 If out-of-<strong>or</strong>der delivery is a concern, Alice can remember<strong>the</strong> g x n−1f<strong>or</strong> a sh<strong>or</strong>t time window after receiving Bob’s messageto allow o<strong>the</strong>r possibly delayed packets to arrive.


window of vulnerability, we only generate a new key uponreceiving a reply from Bob. This way, Alice need only rememberat most two of her own keys at a time. Upon receivinga response that uses g xn , she can f<strong>or</strong>get x n−1 andgenerate a new g x n+1to be announced in <strong>the</strong> next messageshe sends.Of course, if Bob does not reply f<strong>or</strong> a long time, Alice willbe able to decrypt a number of her old messages, leaving alarge window of vulnerability. <strong>To</strong> address this problem, Bobshould periodically send an empty message acknowledgingreceipt of a new key from Alice. Alice can also f<strong>or</strong>get <strong>the</strong>old keys after sufficient time has elapsed that it is highlyunlikely that a message from Bob using <strong>the</strong> old key is stillin transit.4.3 Au<strong>the</strong>nticationAs discussed in <strong>the</strong> previous section, we use a MAC f<strong>or</strong>au<strong>the</strong>nticating each message. <strong>To</strong> generate a MAC key, weapply a one-way hash function to <strong>the</strong> decryption key. Thisensures that anyone who is able to read a message can alsomodify it and update <strong>the</strong> MAC. F<strong>or</strong> example, even if Eve cansomehow recover <strong>the</strong> encryption key (f<strong>or</strong> example, due to apo<strong>or</strong> random number generat<strong>or</strong>) and decrypt <strong>the</strong> messages,she will not be able to convince anyone else that it was Alice<strong>or</strong> Bob and not her who wrote <strong>the</strong> message.The encryption key is itself <strong>the</strong> result of a hash of <strong>the</strong>Diffie-Hellman shared secret, which also needs to be au<strong>the</strong>nticatedin some way. We accomplish this by digitally signing<strong>the</strong> initial Diffie-Hellman exchange:A → B : Sign(g x 1, k A), K AB → A : Sign(g y 1, k B), K BWhere k a, K A are Alice’s private and public long-livedsignature keys, and k b , K B are Bob’s. If Bob already knowsAlice’s public key, he will be assured that g x 1indeed camefrom Alice, and <strong>the</strong>ref<strong>or</strong>e <strong>the</strong> secret g x 1y 1will only be knownto <strong>the</strong> two of <strong>the</strong>m. He can <strong>the</strong>n treat messages au<strong>the</strong>nticatedwith <strong>the</strong> key H(g x 1y 1) as truly coming from Alice.<strong>Not</strong>e that this is a hybrid approach to au<strong>the</strong>ntication,using both digital signatures and MACs. Digital signaturesallow us to avoid <strong>the</strong> requirement of maintaining O(n 2 ) preestablishedshared secrets — a shared secret is establishedon <strong>the</strong> fly whenever communication is needed. However,<strong>the</strong> use of MACs to au<strong>the</strong>nticate <strong>the</strong> actual messages allowsrepudiation.We only need to use a digital signature on <strong>the</strong> initial keyexchange. In fur<strong>the</strong>r key exchanges, we use MACs to au<strong>the</strong>nticatea new key using an old, known-au<strong>the</strong>ntic sharedsecret. That is, a protocol message looks like:g x i+1, E(M r, k ij),MAC({g x i+1, E(M k , k ij)}, H(k ij))So, if <strong>the</strong> initial au<strong>the</strong>ntication key is known to be secure,<strong>the</strong>n fur<strong>the</strong>r ones will be secure as well. <strong>Not</strong>e that we cannotuse k i+1,j to encrypt and au<strong>the</strong>nticate this message, since<strong>the</strong> recipient will not be able to verify its au<strong>the</strong>nticity.4.4 Revealing MAC keys<strong>To</strong> add an extra measure of privacy, we do somethingthat at first seems surprising: after Alice knows all of <strong>the</strong>messages she’s sent to Bob which were MAC’d with a givenMAC key have been received, Alice publishes that MAC keyas part of her next message.<strong>Not</strong>e what this has accomplished: Bob doesn’t need t<strong>or</strong>ely on this key any m<strong>or</strong>e, since he’s already checked all of<strong>the</strong> messages au<strong>the</strong>nticated by that key. However, now anyonecan create arbitrary messages that have this MAC key,and no one can rule out any particular person as a potentialauth<strong>or</strong> of <strong>the</strong> message. This can be seen as <strong>the</strong> analogueof perfect f<strong>or</strong>ward secrecy f<strong>or</strong> au<strong>the</strong>ntication: anyone wh<strong>or</strong>ecovers <strong>the</strong> MAC key in <strong>the</strong> future is unable to use it toverify <strong>the</strong> au<strong>the</strong>nticity of past messages.When can Alice be sure that Bob has successfully receivedall <strong>the</strong> messages signed with a certain MAC key? If she receivesa message from Bob encrypted with k i+1,j, she canbe sure he received a message encrypted with k ij ′. However,Alice might have sent several messages encrypted with k ij ′,some of which may not have been yet received. None<strong>the</strong>less,she can be sure that all messages au<strong>the</strong>nticated withk i−1,j ′′ have been received, so she may reveal all keys of <strong>the</strong>f<strong>or</strong>m H(k i−1,j ′′) that have been used. With m<strong>or</strong>e carefulbookkeeping, Alice may be able to reveal MAC keys sooner.5. AN IMPLEMENTATION OF OFF-THE-RECORD MESSAGINGA natural application of <strong>the</strong> off-<strong>the</strong>-rec<strong>or</strong>d messaging protocolis instant messaging (IM). IM is a popular way to havelight-weight, inf<strong>or</strong>mal conversations; several protocols [3, 16,20] boast millions of users. However, <strong>the</strong>se protocols do notinc<strong>or</strong>p<strong>or</strong>ate end-to-end security, which limits <strong>the</strong>ir use. Peopleare reluctant to use IM to discuss confidential businessissues <strong>or</strong> sensitive personal inf<strong>or</strong>mation.It is imp<strong>or</strong>tant that a secure instant messaging protocolachieve <strong>the</strong> “off-<strong>the</strong>-rec<strong>or</strong>d” properties that we have describedin this paper. Much of <strong>the</strong> popularity of IM is drivenby <strong>the</strong> ability to have inf<strong>or</strong>mal, social conversations [21]; asecurity protocol must reflect this pattern of usage and avoidproperties such as non-repudiation that would destroy <strong>the</strong>inf<strong>or</strong>mal atmosphere.5.1 DesignWe have chosen to build our off-<strong>the</strong>-rec<strong>or</strong>d messaging protocolon top of an existing IM protocol, using it as an underlyingtransp<strong>or</strong>t. A message is first encrypted and au<strong>the</strong>nticatedusing our protocol, and <strong>the</strong>n <strong>the</strong> result is encodedas a text message and sent as a regular instant message.In this way, our solution is easy to integrate with existingprotocols and clients, in <strong>the</strong> manner of a plugin, and wecan avoid duplicating features of existing protocols, such asbuddy lists.Ano<strong>the</strong>r advantage of running over an existing protocolis <strong>the</strong> potential f<strong>or</strong> incremental deployment: a user can use<strong>the</strong>ir IM client to communicate with both people who have<strong>the</strong> secure messaging plugin and those who don’t. <strong>To</strong> supp<strong>or</strong>t<strong>the</strong>se two modes, <strong>the</strong> plugin must keep a list of whichbuddies supp<strong>or</strong>t secure communication and which don’t.This list is populated automatically: <strong>the</strong> first time Alicesends a message to ano<strong>the</strong>r user, Bob, it is sent unencrypted.However, we append an identifier to <strong>the</strong> end of <strong>the</strong> messageto indicate that Alice supp<strong>or</strong>ts <strong>the</strong> secure plugin. Upon receivinga message with such an identifier, <strong>the</strong> plugin initiates<strong>the</strong> Diffie-Hellman exchange and uses secure communicationfrom <strong>the</strong>n on. If, however, we receive an unencrypted mes-


sage without such an identifier, we assume that <strong>the</strong> sendercan only handle unencrypted messages and make a note ofthat in <strong>the</strong> list.During <strong>the</strong> initial Diffie-Hellman key exchange, we notify<strong>the</strong> user that we are about to start secure communicationand display <strong>the</strong> fingerprint of <strong>the</strong> o<strong>the</strong>r party’s public key. Am<strong>or</strong>e cautious user will verify <strong>the</strong> fingerprint out-of-band; f<strong>or</strong>o<strong>the</strong>rs, a man-in-<strong>the</strong>-middle attack is possible at this point.We rec<strong>or</strong>d <strong>the</strong> public key value and make sure <strong>the</strong> samekey is used in future sessions. Thus, a successful impost<strong>or</strong>must be able to carry out an active attack during <strong>the</strong> firstand every subsequent session; failure to do so will result indetection. This model of handling public keys is analogousto that used in SSH [32, 25], and has proven an effective wayto distribute public keys in <strong>the</strong> absence of a widely-deployedpublic key infrastructure. Of course, if a public key can besecurely obtained by o<strong>the</strong>r means, it can be imp<strong>or</strong>ted into<strong>the</strong> key st<strong>or</strong>e and used in <strong>the</strong> future.A potential problem is that, while <strong>the</strong> protocol we describeis session-<strong>or</strong>iented, most of <strong>the</strong> instant messaging protocolsare connectionless. The off-<strong>the</strong>-rec<strong>or</strong>d messaging protocolmaintains a virtual session that lasts until <strong>the</strong> IM client isterminated, <strong>or</strong> until some period of inactivity. (The lattercondition is necessary since IM clients are often left runningf<strong>or</strong> many days, on unattended computers.) However, it mayoccur that Alice terminates her end of a session while Bob’sis still active (e.g. Alice logged out and <strong>the</strong>n logged backin). If Bob now sends Alice a message, she will not be ableto read it, since she has f<strong>or</strong>gotten <strong>the</strong> encryption key.We address this by maintaining a cache of <strong>the</strong> last outgoingmessage, and creating a NAK (negative acknowledgment)message. When Alice receives <strong>the</strong> unreadable message,she sends a NAK, along with <strong>the</strong> initial message of anew session. Once <strong>the</strong> session is established, Bob re-sends<strong>the</strong> cached message, which will now be readable by Alice.The message need only be cached f<strong>or</strong> a sh<strong>or</strong>t time (severalseconds), to account f<strong>or</strong> <strong>the</strong> expected latency of <strong>the</strong> underlyingIM protocol in delivering <strong>the</strong> NAK. In pathologicalcases, Bob’s message will be lost, but we hope that <strong>the</strong>sewill occur rarely enough that dropping <strong>the</strong> message will notimpose a great burden on <strong>the</strong> participants; typically, Alicewould simply ask Bob to send <strong>the</strong> message again.5.2 ImplementationWe implemented <strong>the</strong> off-<strong>the</strong>-rec<strong>or</strong>d messaging protocol asa plugin f<strong>or</strong> <strong>the</strong> popular Linux IM client GAIM. The implementationconsists of two parts: a generic library thatimplements <strong>the</strong> messaging protocol, and a GAIM-specificp<strong>or</strong>tion that implements <strong>the</strong> plugin interface and uses <strong>the</strong>library. The library will simplify <strong>the</strong> task of creating pluginsf<strong>or</strong> o<strong>the</strong>r IM clients, and maintaining compatibility. (GAIMimplements multiple protocols, so it can be used with AIM,ICQ, and many o<strong>the</strong>rs.)The plugin communnicates with <strong>the</strong> library using a simpleAPI, shown in Figure 1. The function send message andreceive message are used to process outgoing and incomingmessages. Depending on <strong>the</strong> state saved in <strong>the</strong> context,<strong>the</strong> messages are ei<strong>the</strong>r encrypted <strong>or</strong> sent in <strong>the</strong> clear. Thefunctions return <strong>the</strong> new (encrypted/decrypted) message,its length, and a result code to indicate whe<strong>the</strong>r <strong>the</strong> messagewas encrypted, sent in <strong>the</strong> clear, should be ign<strong>or</strong>ed (aprotocol message that does not carry user data), <strong>or</strong> if <strong>the</strong>rewas a protocol err<strong>or</strong>. The API also includes a method (notshown) to set a UI-callback that is invoked when <strong>the</strong> libraryneeds to communicate with <strong>the</strong> user; f<strong>or</strong> example, when anunknown user’s key is seen f<strong>or</strong> <strong>the</strong> first time. The contextsare used to manage several simultaneous conversations witha number of different users.We use libgcrypt [13] library f<strong>or</strong> <strong>the</strong> cryptographic functions,using AES [23] f<strong>or</strong> encryption, RSA [29] f<strong>or</strong> digitalsignatures, and SHA1-HMAC [22, 17] f<strong>or</strong> MAC au<strong>the</strong>ntication.Our tool uses /dev/random f<strong>or</strong> generating randomkeys. M<strong>or</strong>e details on <strong>the</strong> current status of our implementationare available at http://www.cypherpunks.ca/otr/.5.3 MeasurementsWe have perf<strong>or</strong>med a simple micro-benchmark of <strong>the</strong> protocollibrary to determine how much overhead it imposeson a user. Our test consisted of simulating two participantswho take turns sending each o<strong>the</strong>r messages. On our testcomputer — a 450MHz Pentium III running Linux — weobserved <strong>the</strong> benchmark running at about 9 round-trips persecond, with varying message sizes not having significantimpact. Each round-trip includes two message encryptions,two decryptions, and two key generations. Theref<strong>or</strong>e, oneparticipant could send and receive up to 18 messages persecond (36 messages total). This is significantly faster thanmost people can type, so we believe that <strong>the</strong> off-<strong>the</strong>-rec<strong>or</strong>dprotocol will not have a noticeable perf<strong>or</strong>mance impact. Oursubjective observations while using <strong>the</strong> off-<strong>the</strong>-rec<strong>or</strong>d pluginagree; we noticed no perf<strong>or</strong>mance difference between secureand insecure communication.6. EMAILAlthough a large p<strong>or</strong>tion of personal communication hasshifted to instant messaging, much of it is still done overemail; <strong>the</strong> asynchronous nature of <strong>the</strong> medium makes itsuitable in contexts where instant messages are not. Privacyexpectations of email conversations are lower, as it iscommon f<strong>or</strong> <strong>the</strong> o<strong>the</strong>r party to keep a rec<strong>or</strong>d of all incomingmessages. However, <strong>the</strong> tools commonly used to protectemail — <strong>PGP</strong> and S/MIME — still provide <strong>the</strong> wrong kindof privacy properties. When Alice sends a personal email toBob, it is usually not her intent that Bob be able to proveto anyone else what she said; and yet her only option toprove her identity with <strong>the</strong> current tools is to use a digitalsignature.The high latency of email communication makes using our“off-<strong>the</strong>-rec<strong>or</strong>d” protocol impractical in <strong>the</strong> setting of email.Bef<strong>or</strong>e Alice can send her first message, our protocol requiresa key exchange to be completed. This means waiting f<strong>or</strong> Bobto send his share of <strong>the</strong> Diffie-Hellman key, which requireshim to be online. But <strong>the</strong> possibility that Bob is offlinecould very well be <strong>the</strong> reason Alice is using email in <strong>the</strong> firstplace!However, <strong>the</strong>re is a solution Alice can use in this case,called ring signatures [30]. A digital signature can provesthat Alice sent a message. A ring signature extends thisconcept and can be used to prove that, given a set of people,some member of <strong>the</strong> set sent <strong>the</strong> message, but it isimpossible to determine which one. So Alice can send hermessage signed with a ring signature f<strong>or</strong> <strong>the</strong> set {Alice,Bob}(and encrypted to Bob.) In this case, Bob will be able toverify that it indeed came from Alice (since he knows hedid not send it himself), but will not be able to prove thisto anyone else, since he can just as easily generate <strong>the</strong> ring


ENC_CTX new_context(unsigned char * message, int len);unsigned char * send_message(ENC_CTX context,unsigned char * message, int len, int *rlen, int *result);unsigned char * receive_message(ENC_CTX context, unsigned char *message, int len, int *rlen, int *result);Figure 1: The generic off-<strong>the</strong>-rec<strong>or</strong>d protocol API.signature himself. Ring signatures have been implementedas an extension to <strong>PGP</strong> [19].Ring signatures are similar to MACs in that <strong>the</strong>y confine<strong>the</strong> auth<strong>or</strong>ship to a set of participants who have a certainsecret key (<strong>or</strong> keys). Unlike MACs, however, <strong>the</strong>y can beverified by people outside <strong>the</strong> set. If Eve were able to obtaina copy of <strong>the</strong> message, she could prove to anyone that one ofAlice <strong>or</strong> Bob, and not her, had sent it. It is not clear what<strong>the</strong> implications are of such a proof, yet Alice certainly hasless privacy than in <strong>the</strong> off-<strong>the</strong>-rec<strong>or</strong>d case. With a noninteractiveprotocol and a risk of compromise of Bob’s keys,<strong>the</strong>re is no way to avoid <strong>the</strong> possibility of such a proof. Atbest, it can be mitigated with sh<strong>or</strong>t-lived signature keys:Alice can publish signature keys after she is sure all messagessigned with <strong>the</strong>m have been received and verified by Bob.This would invalidate all signatures with those keys.If Alice and Bob maintain a regular c<strong>or</strong>respondence, <strong>the</strong>ycan use <strong>the</strong> off-<strong>the</strong>-rec<strong>or</strong>d protocol f<strong>or</strong> every message after<strong>the</strong> first one. Alice can include g x with her <strong>or</strong>iginal message.When Bob responds, he should send g y signed with his privatekey, and his response encrypted and au<strong>the</strong>nticated by<strong>the</strong> keys derived from g xy . Alice and Bob can continue communicatingthis way without using digital signatures f<strong>or</strong> aslong as <strong>the</strong>y are able to st<strong>or</strong>e copies of <strong>the</strong> current Diffie-Hellman keys. Due to <strong>the</strong> high latency of email, <strong>the</strong> windowof vulnerability f<strong>or</strong> compromising a message will certainlybe longer; however, <strong>the</strong>ir communications will still be m<strong>or</strong>eprivate than if <strong>the</strong>y had used <strong>PGP</strong> <strong>or</strong> S/MIME.7. RELATED WORKPerfect f<strong>or</strong>ward secrecy has been long recognized as a desirablefeature, and several protocols use it f<strong>or</strong> secure communications[5, 25, 26, 32]; some modes of TLS [9] also providePFS. Interestingly enough, <strong>the</strong> idea of providing repudiabilityas a feature seems less expl<strong>or</strong>ed. Certainly, manyprotocols use MACs f<strong>or</strong> au<strong>the</strong>ntication; however, <strong>the</strong>y areused f<strong>or</strong> perf<strong>or</strong>mance reasons and not to guarantee repudiation.The SKEME [18] protocol shares many design goalswith our protocol; it also provides repudiable au<strong>the</strong>nticationand perfect f<strong>or</strong>ward secrecy. It avoids using digital signaturesentirely, since it is concerned not only with protecting<strong>the</strong> privacy of <strong>the</strong> contents of <strong>the</strong> conversation, but also withconcealing <strong>the</strong> fact that Alice and Bob ever talked. Abadi’sproposed a similar protocol [1], with <strong>the</strong> extension that itis possible to hide even Alice’s willingness to talk to Bob.Our protocol has focused on privacy ra<strong>the</strong>r than anonymitysince <strong>the</strong> instant messaging context makes it difficult to conceal<strong>the</strong> identity of <strong>the</strong> participants. If anonymity is desired,one can use ei<strong>the</strong>r SKEME <strong>or</strong> Abadi’s private au<strong>the</strong>nticationinstead of <strong>the</strong> signed Diffie-Hellman key exchange inour protocol.The TESLA broadcast au<strong>the</strong>ntication protocol [27] is similarto ours in that it reveals <strong>the</strong> MAC key after a time; however,it does this f<strong>or</strong> <strong>the</strong> purpose of efficient key distributionra<strong>the</strong>r than to allow after-<strong>the</strong>-fact f<strong>or</strong>geries.8. CONCLUSIONSWhile <strong>the</strong> strong proofs provided by digital signatures incryptographic packages like <strong>PGP</strong> and S/MIME are usefulf<strong>or</strong> signing contracts, most casual conversations online donot require, and in fact, should not have, that level of permanenceassociated with <strong>the</strong>m.In this paper, we have developed <strong>the</strong> “off-<strong>the</strong>-rec<strong>or</strong>d messaging”protocol, which allows users to communicate onlinein a repudiable, and perfect f<strong>or</strong>ward secret manner, while at<strong>the</strong> same time, maintaining confidentiality and au<strong>the</strong>nticityassurances.We have implemented <strong>the</strong> protocol as a plugin f<strong>or</strong> a popularLinux IM client, and we plan to extend supp<strong>or</strong>t to o<strong>the</strong>rIM systems, including Windows-based ones, and possiblyemail systems as well. Our hope is to create many opp<strong>or</strong>tunitiesf<strong>or</strong> people to have private, off-<strong>the</strong>-rec<strong>or</strong>d conversationson <strong>the</strong> Internet.9. ACKNOWLEDGMENTSWe would like to thank Russell O’Conn<strong>or</strong> f<strong>or</strong> discussionsabout social implications of digital signatures that motivatedour w<strong>or</strong>k, Adam Back and David Wagner f<strong>or</strong> commentson earlier versions of this paper, Len Sassaman f<strong>or</strong>continued encouragement to publish our results and release<strong>the</strong> source code, and <strong>the</strong> anonymous reviewers f<strong>or</strong> <strong>the</strong>ir manyinsightful suggestions.10. REFERENCES[1] Martín Abadi. Private au<strong>the</strong>ntication. In PrivacyEnhancing Technologies W<strong>or</strong>kshop, 2002.[2] Inc. America Online. Aim personal certificates.http://enterprise.aim.com/products/aim/personalcerts.[3] America Online, Inc. AOL Instant Messenger.http://www.aim.com/.[4] Edit<strong>or</strong> B. Ramsdell. S/MIME version 3 messagespecification. RFC2633, June 1999.[5] I. Brown, A. Back, and B. Laurie. F<strong>or</strong>ward secrecyextensions f<strong>or</strong> Open<strong>PGP</strong>. Internet Draft, October2001.[6] J. Callas, L. Donnerhacke, H. Finney, and R. Thayer.Open<strong>PGP</strong> message f<strong>or</strong>mat. RFC2440, November 1998.[7] Ran Canetti and Hugo Krawczyk. Analysis ofKey-Exchange Protocols and Their <strong>Use</strong> f<strong>or</strong> BuildingSecure Channels. In The<strong>or</strong>y and Application ofCryptographic Techniques, pages 453–474, 2001.[8] Giovanni Di Crescenzo, Niels Ferguson, RussellImpagliazzo, and Markus Jakobsson. How to F<strong>or</strong>get aSecret. In STACS 99, Lecture <strong>Not</strong>es in ComputerScience 1563, pages 500–509. Springer-Verlag, 1999.


[9] T. Dierks and C. Allen. The TLS protocol version 1.0.RFC2246, January 1999.[10] W. Diffie and M. Hellman. New Directions inCryptography. In IEEE Transactions on Inf<strong>or</strong>mationThe<strong>or</strong>y, pages 74–84, June 1977.[11] M. Dw<strong>or</strong>kin. Recommendation f<strong>or</strong> block cipher modesof operation: Methods and techniques. NIST SpecialPublication 800-38A, December 2001.[12] Electronic Privacy Inf<strong>or</strong>mation Center. United Statesv. Scarfo (Key-Logger Case).http://www.epic.<strong>or</strong>g/crypto/scarfo.html.[13] Free Software Foundation. libgcrypt.http://direct<strong>or</strong>y.fsf.<strong>or</strong>g/security/libgcrypt.html.[14] gaim-e project. gaim-e encryption plugin.http://gaim-e.sourcef<strong>or</strong>ge.net/.[15] C.C. Gün<strong>the</strong>r. An identity-based key-exchangeprotocol. In Advances in Cryptology —EUROCRYPT, pages 29–37, 1989.[16] ICQ, Inc. ICQ.com. http://www.icq.com/.[17] H. Krawczyk, M. Bellare, and R. Canetti. HMAC:Keyed-hashing f<strong>or</strong> message au<strong>the</strong>ntication. RFC2104,February 1997.[18] Hugo Krawczyk. SKEME: A versatile secure keyexchange mechanism f<strong>or</strong> internet. In Symposium onNetw<strong>or</strong>k and Distributed Systems Security (NDSS),1996.[19] Lance Cottrell, Pr0duct Cypher, Hal Finney, IanGoldberg, Ben Laurie, Colin Plumb, <strong>or</strong> Eric Young 7Signing as one member of a set of keys.http://www.abditum.com/ringsig/.[20] Microsoft C<strong>or</strong>p<strong>or</strong>ation. .NET Messenger Service.http://messenger.msn.com/.[21] B. A. Nardi, S. Whittaker, and E. Bradner. Interactionand outeraction: Instant messaging in action. In ACM2000 Conference on Computer Supp<strong>or</strong>ted CooperativeW<strong>or</strong>k, pages 79–88, Philadelphia, PA, 2000.[22] National Institute of Standards and Technology.Secure hash standard (SHS). Federal Inf<strong>or</strong>mationProcessing Standards Publication 180-1, April 1995.[23] National Institute of Standards and Technology.Announcing <strong>the</strong> advanced encryption standard (AES).Federal Inf<strong>or</strong>mation Processing Standards Publication197, November 2001.[24] National Institute of Standards and Technology.Digital signature standard (DSS). Federal Inf<strong>or</strong>mationProcessing Standards Publication 186-2, October2001.[25] OpenBSD Project. OpenSSH. http://openssh.com/.[26] H. Orman. The OAKLEY key determination protocol.RFC2412, November 1998.[27] A. Perrig, Ran Canetti, J.D.Tygar, and D. Song.Efficient au<strong>the</strong>ntication and signing of multicaststreams over lossy channels. In IEEE Security andPrivacy Symposium, 2000 May.[28] Reuters. FBI confirms “Magic Lantern” exists.http://news.com.com/2102-1001-276976.html, 12December 2001.[29] Ronald L. Rivest, Adi Shamir, and Lenoard M.Adleman. A method f<strong>or</strong> obtaining digital signaturesand public-key cryptosystems. <strong>Communication</strong>s of tehACM, 21(2):120–126, 1978.[30] Ronald L. Rivest, Adi Shamir, and Yael Tauman. Howto leak a secret. In ASIACRYPT, pages 552–565, 2001.[31] Cerulean Studios. Trillian.http://www.trillian.cc/products/.[32] T. Ylonen. SSH – secure login connections over <strong>the</strong>Internet. In 6th USENIX Security Symposium, pages37–42, San Jose, CA, July 1996.[33] P. Zimmermann. The <strong>Off</strong>icial <strong>PGP</strong> <strong>Use</strong>r’s Guide. MITPress, 1995.7 This implementation was published anonymously andsigned by a ring signature with <strong>the</strong> keys of <strong>the</strong> auth<strong>or</strong>s listed.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!