|
|
1.1 root 1: % begin text
2:
3: \banner
4:
5: \section{Introduction}
6: Initially,
7: a brief model of a user community employing a trusted mail service is
8: introduced.
9: Following this introduction,
10: a prototype system is described which attempts to meet the needs of a user
11: community.
12: Finally,
13: open issues are discussed,
14: which are currently not satisfied by the prototype system or its model of
15: operation.
16:
17: Two or more entities,
18: called {\it users},
19: wish to communicate in a {\it secure} environment.
20: Depending on their available resources,
21: different levels of security are possible.
22: At the extreme,
23: two parties with substantial resources may wish to communicate in a fashion
24: which prevents any third parties,
25: known as {\it adversaries},
26: from observing their communication.
27: At this level,
28: not only is an adversary unable to capture the communication for analysis,
29: but in fact, the adversary is unaware that any communication is occurring at
30: all.
31: In most applications,
32: this level of security is prohibitively expensive.
33: A more economic method is to translate messages into a form which is useless
34: to an adversary and then to communicate those messages on an insecure medium.
35:
36: This latter method requires the two users to have some sort of {\it key}
37: with which to ``lock'' the plaintext into ciphertext when transmitting,
38: and then to ``unlock'' the ciphertext back into useful form when receiving.
39: Hence, there are two central issues to deal with:
40: \underbar{first},
41: keys must be generated, distributed, and maintained in a secure fashion;
42: and,
43: \underbar{second},
44: the keys must be ``intricate'' enough so that sense can't be made out of the
45: ciphertext without knowledge of the key.
46: The first part is handled by a {\it key distribution center} (\KDC/),
47: which maintains a list of users and a set of keys for each pair of users.
48: The second part relies on sophisticated encryption and decryption algorithms.
49: It is beyond the scope of this paper to describe cryptographic techniques in
50: detail.
51: For a detailed survey of this area, the reader should consult \cite{VVoyd83}.
52:
53: \tagfigure{1}{The \MTS/ Model}{mtsmodel}
54: In the context of our discussion (using the terminology of \cite{X.400}),
55: the medium used to transport is supplied
56: by a {\it message transport system} (\MTS/),
57: which is composed of one or more {\it message transport agents} (\MTA/s).
58: Usually,
59: the entire \MTS/ is distributed in nature,
60: and not under a single administrative entity;
61: in contrast, an \MTA/ is usually controlled by a single administration and
62: resides in a particular domain.
63: At every end-point in the medium,
64: a {\it user agent} (\UA/) acts on behalf of a user and interfaces
65: to a local \MTA/.
66: This model is briefly summarized in Figure~\mtsmodel.
67:
68: A message, in our context, consists of two parts:
69: the {\it headers} and the {\it body}.
70: The headers are rigorously structured;
71: they contain addressing information and other forms useful to a \UA/.
72: The body is freely formatted and is usually not meaningful to a \UA/.
73:
74: When a message is sent from one user to another,
75: the following activities occur:
76: The originating user indicates to the \UA/ the address of the recipient;
77: the \UA/ then posts the message through a {\it posting slot} to an \MTA/,
78: which involves a posting protocol in which the validity of the address
79: and the syntax of the message are considered.
80: Upon successful completion of the protocol,
81: the \MTA/ accepts responsibility for delivering the message,
82: or if delivery fails, to inform the originating user of the failure.
83: The \MTA/ then decides if it can deliver the message directly to the
84: recipient;
85: if so, it delivers the message through a {\it delivery slot} to the
86: recipient's \UA/,
87: using a delivery protocol.
88: If not, it contacts an adjacent \MTA/, closer to the recipient,
89: and negotiates its transfer (using a protocol similar to the posting protocol).
90: This process repeats until an \MTA/ is able to deliver the message,
91: or an \MTA/ determines that the message can't be delivered.
92: In this latter case,
93: a failure notice is sent to the originating user.
94:
95: \tagfigure{2}{Mappings in the \MTS/ model}{mappings}
96: It is important to note that there are two mappings which occur here.
97: The first, which is performed implicitly by the originating user,
98: maps the name of the recipient into the recipient's address;
99: the second, which is performed explicitly by the \MTS/,
100: maps the address of the recipient into a route to get from the originator's
101: \MTA/ to the recipient's \MTA/.
102: These mappings are depicted in Figure~\mappings.
103:
104: Obviously, there is no guarantee that the \MTS/ can be made secure,
105: in {\it any} sense of the word.
106: This is particularly true if it is under several administrations.
107: Regardless of the number of administrations in the \MTS/,
108: this problem quickly degenerates to a problem of
109: Byzantine generals\cite{LLamp82}.
110: Further, trying to secure each \MTA/ in the path that a message travels is
111: equally questionable.
112:
113: \tagfigure{3}{Modifications to the \MTS/ model}{tmodel}
114: To support secure communications in this environment,
115: a new entity,
116: the {\it trusted mail agent} (\TMA/) is introduced into our model.
117: A solution is to have the \UA/ interact with this entity
118: both when posting a message and when taking delivery of a message.
119: The \UA/ first contacts a \TMA/ to encrypt the body of the message for the
120: recipient,
121: prior to pushing it through the posting slot.
122: Upon receipt from the destination \MTA/,
123: the \UA/ examines the message and contacts
124: the \TMA/ to decipher the body of the message from the source.
125: An overview of the relationship between the standard \MTS/ model
126: and the augmentations made for the \trustedmail/ system is shown in
127: Figure~\tmodel.
128:
129: To achieve these tasks,
130: the \TMA/ interacts with a {\it key distribution service} (\KDS/),
131: which manages keys between pairwise users.
132: At this point, a third mapping takes place:
133: the \UA/ must be able to map addresses into the identifier(s)
134: by which the originator and recipient are known by the \TMA/ and \KDS/.
135: These identifiers are known as \KDS/ IDs, or simply IDs.
136: Usually, a fourth mapping also occurs,
137: which maps the ID of a user into the name of a user.
138: In our context,
139: there is an exact one-to-one mapping between the name of a user and the ID
140: of that user.
141: In contrast,
142: there may be a one-to-many mapping between the name of a user and
143: that user's address in the \MTS/.
144: Further, there are usually many different routes which a message may traverse
145: when going from an originating user to a recipient user.
146:
147: The \TMA/ is said to be {\it trusted} because it can be relied on to perform
148: only those actions specifically requested by the user.
149: In the context of this paper,
150: this means, given proper construction and maintenance of the \TMA/,
151: that the software will communicate with the \KDC/ in some secure fashion to
152: negotiate key relationships and that it will not disclose those key
153: relationships to other parties.
154: Furthermore,
155: the body of mail messages exchanged between users which employ
156: a trusted mail agent will be unintelligible to other parties.
157: Finally,
158: a recipient of a message receives authenticated information from the
159: trusted mail agent as to the identify of the sender.
160:
161: Hence,
162: when each user employs a \TMA/,
163: end-to-end encryption occurs at the \UA/ level
164: (to avoid any problems with malicious \MTA/s).%
165: \nfootnote{Note that in the scope of this system,
166: the end-points are the user agents, not the hosts they reside on.
167: In fact,
168: it may very well be the case that the user agent and the local message
169: transport agent do not reside on the same host.}
170: Any adversary listening in on the \MTS/,
171: may observe messages,
172: but make no sense out of them
173: (other than rudimentary traffic analysis).
174: Note, however,
175: that since the medium itself is not secure,
176: an adversary may still introduce new messages,
177: corrupt messages,
178: or remove messages,
179: as they traverse the \MTS/.
180: In the first two cases, however,
181: the recipient would be suspicious
182: because the adversary lacks the encrypting key employed by the source user.
183: In the third case,
184: the source user can retransmit the message after a suitable time.
185: Of course,
186: there is no built-in retransmission policy~---~this aspect depends on the
187: user's sending mail and is beyond the scope of the system.
188:
189: It is important to understand the target community for the \trustedmail/ system
190: described herein.
191: In particular,
192: the \TMA/ is intended for a commercial and not a military environment.
193: This distinction is important,
194: since it is the {\it fundamental} assumption of this paper that
195: the latter community has much stricter requirements than the former.
196: Because of this,
197: the prototype system is able to make certain simplifying assumptions which
198: permit it to operate in a mode which is less secure than military
199: applications would permit.
200: Although these issues are explored in greater detail at the end of the paper,
201: for the moment recall that, like most qualities, trustedness is not absolute:
202: there are varying degrees of trustedness,
203: and as a system becomes more trusted,
204: it becomes more expensive, in some sense, to operate and maintain.
205:
206: It is perhaps instructive at this point to consider why the introduction of a
207: key distribution center is appropriate in this environment,
208: and why the {\it fundamental} assumption that trusted mail agents do not
209: directly communicate with each other is necessary.
210: Although a user agent is able to converse with the local message transport
211: agent in real-time,
212: it is frequently not able to communicate with other user agents in real-time.
213: Furthermore,
214: considering the vast problems and overhead
215: of trying to establish secure communications from ``scratch''
216: (a problem far beyond the scope of this paper),
217: it is would not be a good idea to try and communicate key relationships with
218: other user agents,
219: even if it were always possible to do so.
220: In addition,
221: by separating the trusted aspects of the message transport system from the
222: system itself,
223: many other advantages can be seen.
224: These are presented in greater detail at the end of the paper.
225:
226: The discussion thus far has considered only a single recipient.
227: In practice, a user might wish to send to several others,
228: using a different key for each.
229: Hence each copy of the message is encrypted differently,
230: depending on the particular recipient in question.
231: Note that this has the effect of {\it un-bundling} message transfer in the
232: \MTS/,
233: as advanced \MTA/s tend to keep only a single copy of the message for any
234: number of recipients in order to save both cpu, disk, and I/O resources.
235:
236: For example,
237: in some existing mail systems,
238: if a message was sent to $n$ users on a remote system,
239: then the $n$ addresses would be sent from the source \MTA/ to the remote \MTA/
240: along with one copy of the message.
241: Upon delivery,
242: the remote \MTA/ would deliver a copy to each of the $n$ recipients,
243: but the virtual wire between the source \MTA/ and the recipient \MTA/ was
244: burdened with only one copy of the message.
245: But in a secure environment,
246: since a different key is used by the source user when communicating with each
247: of the $n$ recipients,
248: $n$ different messages will be posted with the local \MTA/,
249: and the advantages of recipient bundling are lost.
250:
251: Along these lines however,
252: private discussion groups may wish to avoid this problem by establishing
253: access to a single ID for their use.
254: In this case,
255: a subscriber to the \KDS/ may actually have more than one ID,
256: one for ``personal'' use and one for each discussion group.
257: The appropriate ID is used when posting messages to the discussion group.
258: Naturally the administrative policy for deciding who is allowed to use the
259: \KDS/ ID of a discussion group is left to the moderator of the group.
260: Observant readers will note that this vastly decreases the aspect of
261: secure communications for the discussion group.
262: This method is suggested as a compromise
263: which permits the bundling of messages for multiple recipients
264: to reduce \MTS/ traffic.
265: The price is high however,
266: as a compromise on behalf of {\it any} member of the discussion group
267: compromises the entire group.
268: For large discussion groups and a bandwidth limited \MTS/,
269: this price may be worth paying.
270: The prototype implementation of the \TMA/ supports multiple recipients but
271: not multiple \KDS/ IDs.
272:
273: Having described this environment for communication,
274: the designs of a \KDS/ and \TMA/ which form the heart of the \TTI/
275: \trustedmail/ system are discussed.
276: The prototype system was developed on a \vax/-11/780 running 4.2\bsd/ \unix/.
277: The system is based on the \ansi/ draft\cite{FIKM}
278: for financial key management,
279: but diverges somewhat in operation
280: owing to the differences between the electronic mail (CBMS)
281: and electronic funds (EFT) environments.
282: Note however that the \ansi/ data encryption algorithm\cite{DEA,FIPS46} is
283: used in the current implementation.
284: A public-key cipher system was not considered as the basis for the prototype
285: since, to the authors' knowledge,
286: an open standard for a public-key system has yet to be adopted by the
287: commercial community.
288: In contrast,
289: the \ansi/ draft for financial key management appears to be receiving
290: wide support from the commercial community.
291:
292: \tagtable{4}{Abbreviations used in this paper}{terms}
293: In the description that follows,
294: a large number of acronyms are employed to denote commonly used terms.
295: In order to aid the reader,
296: these are summarized in Table~\terms.
297:
298: \section{The Key Distribution Service}
299: The prototype version of the \KDS/
300: was designed to provide key distribution services for
301: user agents under both the same or different administrations.
302: As a result,
303: the means by which a trusted mail agent connects to a key distribution server
304: is quite flexible.
305: For example,
306: the prototype system supports connections via
307: standard terminal lines,
308: dial-ups (e.g., over a toll-free 800 number),
309: \unix/ pipes,
310: and over TCP sockets\cite{IP,TCP}.
311: In the interests of simplicity,
312: for the remainder of this paper,
313: a TCP/IP model of communication is used.
314: Initially,
315: a server on a well-known service host in the ARPA Internet community
316: listens for connections on a well-known port.%
317: \nfootnote{The term {\it well known} in this context means that the
318: location of the service is known {\it a priori} to the clients.}
319: As each connection is established,
320: it services one or more transactions over the lifetime of the session.
321: When all transactions for a session have been made,
322: the connection is closed.
323: If the necessary locking operations are performed by the server
324: to avoid the usual database problems,
325: then more than one connection may be in progress simultaneously.
326: Of course,
327: a time-out facility should also be employed to prevent a rogue agent from
328: monopolizing the key distribution server.
329:
330: Once a session has been started,
331: the client (a.k.a.~\TMA/) initiates transactions with the server
332: (a.k.a.~\KDS/).
333: Each transaction consists of the exchange of two or three
334: {\it cryptographic service messages} (\CSM/s):
335: the client sends a request,
336: the server attempts to honor the request and sends a response,
337: and,
338: if the server responded positively,
339: the client then acknowledges the transaction.
340: By exchanging these cryptographic service messages,
341: the \KDS/ and the \TMA/ are able to communicate key relationships.
342: Obviously, the relationships themselves must be transmitted in encrypted
343: form.%
344: \nfootnote{Otherwise an adversary could simply impersonate a \TMA/ and ask
345: for the desired key relationships.
346: Similarly, this also prevents an adversary from successfully impersonating a
347: key distribution server.}
348: Hence, not only are key relationships between two \TMA/s communicated,
349: but key relationships between the \KDS/ and the \TMA/ are communicated as well.
350:
351: This leads us to consider the key relationships that exist
352: between a \TMA/ and the \KDS/.
353: A client usually has three keys dedicated for use with the server.
354: The first is the {\it master key} (denoted MK),
355: which has an infinite cryptoperiod, and is rarely used.
356: This key is distributed manually.
357: The second is the {\it key-encrypting key} (denoted KK),
358: which has a shorter cryptoperiod.
359: Whenever a KK is transmitted to the \TMA/,
360: it is encrypted with the master key.
361: The third is the {\it authentication key} (denoted KA),
362: which is used to authenticate transactions that do not contain data keys
363: (a count field is also used to avoid play-back attacks).
364: Whenever a KA is transmitted to the \TMA/,
365: it is encrypted with the key-encrypting key.
366: When transactions contain keys,
367: an associated count field is included to indicate the number of
368: keys encrypted with the key-encrypting key used.
369: Although not used by the prototype implementation,
370: a production system would employ audit mechanisms to monitor usage histories.
371:
372: Currently four types of requests are honored by the \KDS/:
373: two key relationship primitives, and two name service primitives.
374: The type is indicated by the {\it message class} (MCL) of the first
375: cryptographic service message sent in the transaction.
376: As each message class is discussed,
377: the appropriate datastructures used by the \KDS/ are introduced.
378: Space considerations prevent a detailed description of the information
379: exchanged in each transaction.
380: Appendix~B of this paper presents a short example of an interaction between
381: the \KDS/ and a \TMA/.
382:
383: The first two requests are used to create (or retrieve) key relationships,
384: and to destroy key relationships:
385:
386: The {\it request service initialization} (RSI) message class
387: is used to establish a {\it key-encrypting key} (KK) relationship
388: between the \TMA/ and another \TMA/,
389: or between the \TMA/ and the \KDS/.
390: As implied by the name,
391: a key-encrypting key is used to cipher keys which are used to cipher data
392: exchanged between peers.
393: These other keys are called {\it data keys} (KDs).
394:
395: The {\it disconnect service message} (DSM) message class
396: is used to discontinue a KK-relationship
397: between the \TMA/ and another \TMA/,
398: or between the \TMA/ and the \KDS/.
399: This prevents keys which are felt to have been compromised,
400: or are vulnerable to compromise,
401: from receiving further use in the system.
402: It should be noted that,
403: owing to mail messages (not \CSM/s) in transit,
404: a discontinued key relationship
405: may be needed to decipher the key used to encipher a mail message.
406: The prototype \KDS/ supports this capability.
407:
408: In addition to maintaining an MK/KK/KA triple for each \TMA/,
409: the \KDS/ also remembers KK-relationships between \TMA/s.
410: The reason for this stems from a fundamental difference between the
411: electronic funds transfer and computer-based message system worlds.
412: The \KDS/ assumes that no two arbitrarily chosen \TMA/s can communicate in
413: real-time,
414: and as a result,
415: \TMA/s do not exchange cryptographic service messages.
416: (See Appendix~C for a more detailed discussion.)
417: This means that when a \TMA/ establishes a KK-relationship with another \TMA/,
418: the former \TMA/ may start using the KK before the latter \TMA/ knows of the
419: new KK-relationship.
420: In fact,
421: it is quite possible for a KK-relationship to be established,
422: used,
423: and then discontinued,
424: all unilaterally on the part of one \TMA/.
425: It is up to the \KDS/ to retain old cryptographic material
426: (possibly for an indefinite period of time),
427: and aid the latter \TMA/ in reconstructing KK-relationships as the need arises.
428: Naturally,
429: discontinued KKs are not used to encode any new information,
430: but rather to decode old information.
431: (Again, refer to Appendix~C for additional details.)
432:
433: The other two requests are used to query the directory service aspects of the
434: key distribution server:
435:
436: The {\it request user identification} (RUI) message class
437: is used to identify a subscriber to the \KDS/.
438: Both the \KDS/ and \TMA/ are independent of any underlying mail transport
439: system (\MTS/).
440: As a result,
441: a subscriber to the \KDS/ is known by two unique attributes:
442: a ``real-world'' name,
443: and a \KDS/ identifier (ID).
444: The user of a mail system,
445: or the \UA/,
446: is responsible for mapping an \MTS/-specific address
447: (e.g., {\tx [email protected]})
448: to the person associated with that maildrop
449: (e.g., \eg{Marshall\ T.\ Rose}).
450: When conversing with the \KDS/,
451: the \TMA/ uses the \KDS/ ID of another user to reference that person's \TMA/.
452: Since it is inconvenient to remember the IDs (as opposed to people's names),
453: the \KDS/ provides the RUI message class to permit a \TMA/ to query the
454: mapping between names and IDs.
455: If the \KDS/ cannot return an exact match,
456: it may respond with a list of possible matches
457: (if the identifying information given was ambiguous),
458: or it may respond with a response that there is no matching user.
459:
460: Finally,
461: the {\it request identified user} (RIU) message class
462: performs the inverse operation:
463: given a \KDS/ ID, a ``real-world'' name is returned.
464: This request is useful for disambiguating unsuccessful RUI requests
465: and in boot-strapping a \TMA/.
466:
467: The \KDS/ maintains two directories:
468: a private directory and a public directory.
469: The private directory contains all information on all clients to the \KDS/.
470: The public directory is a subset of this,
471: and is used by the \KDS/ when processing RUI and RIU requests.%
472: \nfootnote{In the prototype implementation,
473: the two directories are, for the moment, identical.}
474: As a result,
475: certain clients of the \KDS/ may have unlisted IDs and names.
476:
477: \section{The Trusted Mail Agent}
478: The prototype version of the \TMA/
479: was designed to interface directly to the user agent in order to maximize
480: transparency to the user.
481: In present form,
482: the \TMA/ is available as a load-time library under 4.2\bsd/ \unix/,
483: although efforts are currently underway to transport the \TMA/ to a PC-based
484: environment.
485:
486: The software modules which compose the \TMA/ contain a rich set of interfaces
487: to the \KDS/.
488: In addition,
489: the \TMA/ manages a local database,
490: so responses from the \KDS/ may be cached and used at a later time.
491: In all cases,
492: the \KDS/ is consulted only if the information is not present
493: in the \TMA/ database,
494: or if the information in question has expired (e.g., KK-relationships).
495: This caching activity minimizes connections to the \KDS/.
496: Although connections are relatively cheap in the ARPA Internet,
497: substantial savings are achieved for PCs which contact the \KDS/ over a
498: public phone network (dial-up) connection.
499:
500: The \TMA/ performs mappings between pairs of the following objects:
501: user names, \KDS/ IDs, and \MTS/ addresses.
502: The \TMA/ considers all trusted mail agents, including itself,
503: as a user name, \KDS/ ID, and one or more \MTS/ addresses.
504: Although the \TMA/ does not interpret addresses itself,
505: in order to simplify mail handling,
506: the \TMA/ remembers the relationship between these objects so the user enters
507: this information only once.
508:
509: Initially,
510: when a \TMA/ is booted,
511: the user supplies it with the master key and the user's \KDS/ ID.
512: Both of these quantities are assigned by the personnel at the key
513: distribution center,
514: and subsequently transmitted to the user via an alternate, bonded service.%
515: \nfootnote{In this fashion,
516: the problems of boot-strapping over an unsecure medium are avoided.}
517: The \TMA/ connects with the \KDS/ and verifies its identity.
518: From this point on,
519: the \TMA/ manages its KK-relationships between the \KDS/ and other \TMA/s
520: without user intervention.
521:
522: The current implementation of the \TMA/ assumes a ``general memo framework''
523: in the context of the Standards for ARPA Internet Text Messages\cite{DCroc82}:
524: \smallskip
525: {\advance\leftskip by\parindent
526: \item{1.} A message consists of two parts:
527: the {\it headers} and the {\it body}.
528: A blank line separates the headers from the body.
529:
530: \item{2.} Each (virtual) line in the headers consists of a keyword/value
531: pair, in which the keyword is separated from the value by a colon (:).
532: The headers are rigorously structured in the sense that they contain
533: addressing and other information useful to a user agent.
534:
535: \item{3.} The body is freely formatted and must not be meaningful to a
536: user agent.
537: However, as will be seen momentarily,
538: the body of encrypted messages must have an initial fixed format which the
539: \TMA/ enforces.
540: \smallskip}
541: \noindent
542: This format is widely called ``822'' after the number assigned to the
543: defining report\cite{DCroc82}.%
544: \nfootnote{Although an 822--style framework is employed by the \TMA/ prototype,
545: the 822 \eg{Encrypted:} header is not currently present in encrypted messages.
546: This is due to a design decision which assumes that nothing in the headers of
547: a message is sacred to the transport system,
548: and that ``helpful'' munging might occur at any time.
549: In the real world, such helpfulness is often a problem.}
550:
551: To support the cipher activities described below,
552: the \TMA/ contains internal routines to perform the following DES functions:
553: electronic code book (ECB) for key encryption,
554: cipher block chaining (CBC) for mail message encryption,
555: checksumming (CKS) for mail message and \CSM/ authentication.
556: Readers interested in these different modes of operation for the DES should
557: consult \cite{FIPS81}.
558:
559: \subsection{Encrypting Mail}
560: To encipher a message, the method used is a straightforward adaptation
561: of the standard encrypting/authentication techniques
562: (though the terminology is tedious).
563: Consider the following notation:
564: \smallskip
565: {\advance\leftskip by\parindent
566: \itemm $a_x(s)$ the checksum of the string $s$ using the key $x$
567: (DEA~{\it checksumming} authentication)
568:
569: \itemm $a_{x+y}(s)$ the checksum of the string $s$ using the exclusive-or
570: of the two keys $x$ and $y$
571:
572: \itemm $e_x(y)$ the encryption of the key $y$ using the key $x$
573: (DEA~{\it electronic code book} encryption)
574:
575: \itemm $e_{x,y}(s)$ the encryption of the string $s$ using the key $x$
576: and initialization vector $y$
577: (DEA~{\it cipher block chaining} encryption)
578:
579: \itemm $h$ the headers of the message
580:
581: \noindent and,
582:
583: \itemm $b$ the body of the message
584: \smallskip}
585: \noindent
586: For each message to be encrypted,
587: a data key, initialization vector, authentication key (KD/IV/KA)
588: triple is generated by a random process.
589: (It goes without saying that the integrity of the system depends on the
590: process being {\it random\/}).
591: Then, for each user to receive a copy of the encrypted message,
592: the following actions are taken:
593:
594: First, the headers of the message are output in the clear.
595: Then, a {\it banner} string, $i$, is constructed and placed at the beginning
596: of the body of the message:
597: \example ENCRYPTED MESSAGE: TTI TMA\endexample
598: which identifies the message as being encrypted by the \TTI/ \TMA/.
599: Following the banner string is a structure, $m$,
600: which takes on the syntax and most of the semantics of a cryptographic
601: service message:
602: $$\displayindent=\leftskip \advance\displayindent by1.5\parindent
603: \halign{\hfil#/& \enspace#\hfil\cr
604: MCL& MAIL\cr
605: RCV& rcvid\cr
606: ORG& orgid\cr
607: IDK& kkid\cr
608: KD& $e_{kk}(ka)$\cr
609: KD& $e_{kk}(kd)$\cr
610: IV& $e_{kd}(iv)$\cr
611: MIC& $a_{ka}(b)$\cr
612: MAC& $a_{kd+ka}(m)$\cr
613: }$$
614: After this, the encrypted body is output, $e_{kd,iv}(b)$.
615: In short, the entire output consists of
616: $$h+i+m+e_{kd,iv}(b).$$
617:
618: The purpose of the structure $m$ is many-fold.
619: The MCL field indicates the structure $m$'s type;
620: currently only the type MAIL is generated and understood.
621: The RCV and ORG fields identify the intended recipient of the message
622: and the originator.
623: The IDK field identifies the key-encrypting key, KK,
624: used to encrypt the next two fields.
625: The first KD field has the encrypted authentication key, KA,
626: used to calculate the MIC of the plaintext of the body of the message.
627: After the body of the message is deciphered, $a_{ka}(b)$ is calculated and
628: compared to the value of the MIC field.
629: Hence, the MIC field authenticates the message body.
630: The second KD field has the encrypted data encrypting key, KD,
631: which along with the encrypted initialization vector in the IV field
632: was used to generate the ciphertext of the body.
633: Finally, the MAC field authenticates the $m$ structure itself.
634: The use of a data key, initialization vector, authentication key (KD/IV/KA)
635: triple permits us to perform key distribution in a hierarchical fashion and
636: allows the system to use a KK-relationship over a longer cryptoperiod
637: without fear of compromise.
638:
639: The \TMA/ provides three primary interfaces to a \UA/ to send encrypted mail:
640: the first takes a file-descriptor to a message
641: and returns a structure $g$ (called a {\it group})
642: describing the ciphertext version of the body
643: (this structure contains a KD, IV, and KA generated at random,
644: along with a file-descriptor to the plaintext headers,
645: a file-descriptor to the ciphertext body,
646: and the checksum of the plaintext body);
647: the second takes a user entry (or \MTS/ address) and $g$,
648: and returns a file-descriptor to the encrypted message
649: for that user (or \MTS/ address);
650: the third takes $g$ and performs clean-up operations.
651: The chief advantage to this scheme of encryption
652: is that if the message is to be sent to more than one recipient,
653: then the MIC and the encrypted body need only be calculated once,
654: since the KD, IV, and KA remain constant
655: (only the KK's change with each recipient,
656: hence for each copy of the encrypted message,
657: only the structure $m$ need be re-calculated).
658:
659: There are, however, a few subtleties involved:
660: \underbar{first},
661: the \MTS/ usually accepts only 7--bit characters,
662: so the encrypted text is exploded to consist of only printable characters;%
663: \nfootnote{%
664: As a rule, in all \CSM/s,
665: when encrypted information is transmitted,
666: it is exploded after encryption by the sender,
667: and imploded prior to decryption by the receiver.}
668: \underbar{second},
669: since the \MTS/ may impose limits on the length of a line,
670: each line of output is limited to 64~characters;
671: and,
672: \underbar{third},
673: since the body may require trailing padding,
674: during encryption
675: one last unit of 8~bytes is written (and encrypted),
676: naming the number of characters (presently, nulls) padded in the
677: previous 8~bytes ($0\tdots7$).
678:
679: \subsection{Decrypting Mail}
680: To decipher a message, the method is also straightforward:
681: The headers are output in the clear.
682: The banner string is essentially ignored,
683: and the structure $m$ is consulted to identify the correct key-encrypting key.
684: The \TMA/ checks to see if it knows of that KK.
685: If not, it asks the \KDS/ to supply it.
686: From that point,
687: the KA, KD, and IV are deciphered.
688: The $m$ structure is then authenticated.
689: With the correct key,
690: the remainder of the body is deciphered,
691: and all except for the last 16~bytes are output.
692: The last 8~bytes indicate how many of the previous 8~bytes should be output.
693: So,
694: the appropriate number of bytes is output,
695: and the plaintext body is authenticated and compared to the MIC.
696: Needless to say,
697: as the body is deciphered,
698: it is imploded back to 8--bit characters and lines are restored to their
699: previous lengths.
700: To indicate that the message was correctly deciphered,
701: a new header of the form
702: \example X-KDS-ID: orgid (originator's name)\endexample
703: is appended to the headers of the message.
704: Note that this provides an authentication mechanism.
705: Note, further,
706: that the \UA/ did not have to know the identity of the sender of the message.
707:
708: \section{Modifications to MH}
709: \MH/ is a public domain \UA/ for \unix/,
710: which is widely used in dealing with both a large number of electronic mail
711: application and a large number of messages.
712: Although this document does not intend to describe \MH/,
713: parts of the system are described as they relate to the \TMA/.
714: Readers interested in \MH/ should consult either the user's
715: manual\cite{MRose85a} for a detailed description,
716: or \cite{MRose85d} for a higher-level description.
717:
718: To modify \MH/ in order to make use of a \TMA/,
719: three programs were changed (with a high degree of transparency to the user),
720: and two new programs were introduced.
721:
722: In \MH/,
723: when a user wishes to send a composed draft
724: (which may be an entirely new message,
725: a re-distribution of a message,
726: a forwarding of messages,
727: or a reply to a message),
728: the user invokes the \pgm{send} program.
729: This program performs some minor front-end work for a program called
730: \pgm{post} which actually interacts with the \MTS/.
731: A new option to the \pgm{send} and \pgm{post} programs,
732: the \switch{encrypt} switch,
733: is introduced.
734: If the user indicates
735: \example send\ -encrypt\endexample
736: then \pgm{post} encrypts the messages it sends.
737:
738: When sending an encrypted message,
739: \pgm{post} first checks that each addressee has a mapping to a \KDS/ ID
740: during address verification.
741: Then, instead of batching all addresses for a message in a single posting
742: transaction,
743: for each addressee,
744: \pgm{post} consults the \TMA/ for the appropriately encrypted text and
745: posts that instead.
746: (Appendix~A discusses the reasons for this more fully.)
747: Hence,
748: assuming the user has established mappings between \MTS/ addresses
749: and \KDS/ IDs,
750: the \TMA/ does all the work necessary to encrypt the message,
751: including contacting the \KDS/ as necessary.%
752: \nfootnote{Once the \TMA/ establishes a connection to the \KDS/,
753: it retains that connection until the \UA/ terminates.
754: This is done to minimize connections to the \KDS/.
755: In the context of \MH/,
756: since the trusted mail agent is active over the lifetime of an invocation of
757: a program such as \pgm{post},
758: this means that the connection is terminated just before the program
759: terminates.}
760:
761: In \MH/,
762: when a user is notified that new mail has arrived,
763: the \pgm{inc} program is run.
764: As each message is incorporated into the user's message handling area,
765: a scan (one-line) listing of the message is generated.
766:
767: By default,
768: the \pgm{inc} program upon detecting one or more encrypted messages,
769: after the scanning process,
770: asks the \TMA/ to decipher the message,
771: and if successful,
772: scans the deciphered messages.
773: This action can be inhibited with the \switch{nodecrypt} switch.
774: Hence, if the user wishes to retain messages in encrypted form,
775: \pgm{inc} can be told to note the presence of encrypted messages,
776: but otherwise not to process them.
777: By using the \MH/ user profile mechanism,
778: \pgm{inc} can be easily customized to reflect the user's tastes.
779: Again,
780: the actions of the \TMA/ are transparent to the user.
781: In fact,
782: if encrypted mail is received from users unknown to the \TMA/,
783: it queries the \KDS/ as to their identity prior to retrieving the
784: KK-relationship.
785:
786: If \pgm{inc} fails to decrypt a message for some reason,
787: or if \pgm{inc} was told not to decrypt a message,
788: the \pgm{decipher} program can be used.
789: This simple program merely deciphers each message given in its argument
790: list.
791: The \pgm{decipher} program can be given the \switch{insitu} switch,
792: which directs it to replace the ciphertext version of the message with the
793: plaintext version;
794: or,
795: the \switch{noinsitu} switch can be used indicating that the ciphertext
796: version of the message should be left untouched and the plaintext version
797: should be listed on the standard output.
798:
799: Finally,
800: the \pgm{tma} program is used to manipulate the \TMA/ database,
801: containing commands to boot the database,
802: add new users to the database,
803: and to establish mappings between addresses and users in the \TMA/ database.
804: This program can also be used to disconnect KKs between other \TMA/s,
805: and the KK/KA between itself and the \KDS/.
806:
807: Appendix~A of this paper contains a transcript of an \MH/ session.
808:
809: \section{Remarks}
810: We now consider the merit of the system described.
811: After presenting some of the basic strengths of the system
812: and a few unresolved questions,
813: the discussion centers on the simplifying assumptions made by the system,
814: and how these can be defended in a non-military environment.
815:
816: \subsection{Strengths}
817: It can be argued that the prototype system
818: (and the augmented model in which it finds its basis)
819: present many strengths.
820:
821: Perhaps the most important is the high-level of independence from the \MTS/
822: enjoyed by the system.
823: As a result,
824: since the \TMA/ does not interact directly with the \MTS/,
825: it can be made to be completely free from any \MTS/-specific attributes,
826: such as naming, addressing, and routing conventions.
827: Furthermore,
828: when interfacing a \trustedmail/ system,
829: no modifications need be made to the \MTS/ or local \MTA/.
830:
831: In addition to the systems-level advantage to this scheme,
832: users of the system profit as well,
833: since many disjoint \MTS/s can be employed by a user with a single \TMA/.
834: This reduces the number of weaknesses in the system and allows a user to keep
835: a single database of ``trusted'' correspondents.
836: It should also make analysis and verification of the \TMA/ easier.
837:
838: Of course from the user-viewpoint,
839: once the \TMA/ has been initially booted,
840: all key management is automatic.
841: Not only does this reduce the risk of compromise of cryptographic material
842: (given proper construction and maintenance of the \TMA/),
843: but it relieves the user of a tedious and error-prone task.
844:
845: Finally,
846: although the \KDS/ described herein is used to support \trustedmail/,
847: other applications which require key management,
848: could employ the services offered by the key distribution center.
849:
850: \subsection{Open Questions}
851: At present, there are many restrictions on the prototype implementation
852: described.
853: Some of these result from that fact that the implementation is a prototype
854: and not a production system.
855: Others deal with more fundamental issues.
856:
857: In terms of the \TMA/,
858: the expiration delay for keys is hard-wired in;
859: it should be user-settable.
860: In the prototype version,
861: the KK and KA with the \KDS/ are good for 2~days or 10~uses
862: (whichever comes first),
863: while a KK for use with another \TMA/ is good for 1~day or 5~uses.
864: In actual practice,
865: keys with long cryptoperiods might be good for 6~months or 100~uses,
866: while keys with short cryptoperiods might be good for 1~month or 25~uses.
867: The choice of actual values is an open question
868: beyond the scope of prototype system.%
869: \nfootnote{The current values were chosen by guess work.
870: Although not necessarily technically sound,
871: the small numbers were very good for debugging purposes.}
872: In many respects, this issue is a classic trade-off:
873: with relatively small cryptoperiods,
874: an adversary has less chance of breaking a key,
875: but with longer cryptoperiods less connections have to be made to the key
876: distribution server.
877:
878: A fundamental issue,
879: owing to differences between the EFT and CBMS environments,
880: is that the \KDS/ implements only a subset of the \ansi/ draft
881: and the semantics of certain operations have changed somewhat.
882: It would be nice to unify the CBMS and EFT views
883: of a {\it key distribution center}
884: (in the former environment, the center is called a \KDC/,
885: while in the latter environment, the center is known as a \CKD/).
886: Appendix~C of this paper discusses the differences between the two
887: perspectives in greater detail.
888:
889: At present,
890: the relationship between errors in the \TMA/ and the posting process is an
891: open question.
892: For example,
893: if an address doesn't have a mapping in the \TMA/ database,
894: \pgm{post} treats this as an address verification error.
895: This prevents the draft from being posted.
896: The philosophy of the \UA/ is unclear at this point,
897: with respect to how recovery should occur.
898: A second area, also in question, deals with the way in which plaintext and
899: ciphertext versions of a message are present in a system.
900: Clearly, it is a bad idea to make both versions available,
901: but since the \TMA/ doesn't try to concern itself with first party
902: observation,
903: there seems to be little possibility of preventing this behavior.
904: The best that can be done,
905: at this stage,
906: is simply to choose a consistent policy that user's should attempt to adhere
907: to.
908: The software can help somewhat in implementing this policy,
909: but it certainly can't circumvent the user.
910:
911: The prototype is built on the assumption that a single key
912: distribution server is present.
913: Since the \ansi/ draft\cite{FIKM} makes provisions for
914: {\it key translation centers},
915: the \trustedmail/ prototype should perhaps be made to operate in a more diverse
916: environment.
917: Until the issues become clearer,
918: this remains open.
919:
920: Finally,
921: for distribution lists,
922: a large number of people would need to share the same \KDS/ ID.
923: The current implementation doesn't support this.
924: Each \TMA/ database is for a particular ID.
925: A user with multiple IDs would need multiple databases,
926: or the database should be re-organized.
927:
928: \subsection{Weaknesses}
929: As pointed out earlier,
930: this prototype system situates itself in a commercial, not military,
931: environment.
932: With respect to this decision,
933: several aspects of the system are now discussed,
934: which we feel are acceptable in a commercial environment,
935: but which would be considered weaknesses in a military environment:
936:
937: \item{1.} Traffic Flow\hbreak
938: The prototype \TMA/ makes no attempt whatsoever to prevent or confuse traffic
939: analysis by augmenting traffic flow.
940:
941: \item{2.} The Database of \KDS/ Subscribers\hbreak
942: Since information returned by the request user identification (RUI)
943: and request identified user (RIU) MCLs are returned in the clear,
944: this allows an adversary to ascertain subscribers to the \KDS/,
945: and perhaps deduce some information about the system.
946: Without knowledge of the master key however,
947: an adversary could not impersonate a subscriber though.
948: Still, in the military sense, this is a weakness.
949: However,
950: all this assumes that the database maintained by the \KDS/ accurately
951: reflects the real-world.
952:
953: \item{3.} Multiple Recipients\hbreak
954: It is possible, though not proven to the authors' knowledge,
955: that the scheme used to avoid encrypting the body of a message more than once
956: for multiple recipients might permit one of the recipients who is also an
957: adversary to compromise the key relationship between the sender and another
958: recipient.
959:
960: \item{} The scenario goes like this:
961: When a message is being prepared for encryption,
962: a single KD/IV/KA triple is generated to encrypt the body.
963: Since the sender has a different key relationship with each recipient,
964: each message sent is different, since the structure $m$ depends not only on
965: the KD/IV/KA triple but also on the key relation between the sender and a
966: particular recipient.
967: Now suppose that one of the recipients, $r_1$,
968: in addition to receiving the copy of the message meant for him/her also
969: intercepts a copy of the message destined for another recipient, $r_2$.
970: At this point,
971: the recipient $r_1$ has both the plaintext and ciphertext version of the body,
972: the plaintext version of the KD/IV/KA triple,
973: and the ciphertext version of the KD/IV/KA triple that was generated using
974: the key relationship between the sender and the recipient $r_2$.
975: The question is:
976: can $r_1$ now deduce the key relationship between the sender and $r_2$?
977:
978: \item{} If so, then the way that the \TMA/ attempts to minimize the use of
979: encryption resources is a weakness.
980: But, even if this is possible,
981: given relatively short cryptoperiods for key relationships between \TMA/
982: peers,
983: this becomes a non-problem.
984:
985: \item{4.} Discussion Groups\hbreak
986: As discussed earlier,
987: the proposed method of associating a single \KDS/ ID with the membership of a
988: discussion group does introduce a significant weakness for the security of
989: messages sent to the discussion group.
990: Since the \TMA/ does not assume a general broadcast facility,
991: it appears that there are no good solutions to the problem of discussion
992: group traffic.
993: Of course,
994: it is easy enough to simply send to each member of the group.
995:
996: \item{} For the sake of argument,
997: let's assume that the discussion group has $n$ members.
998: Now,
999: since a different key relationship would exist between the sender and
1000: each of the $n$ recipients,
1001: the structure $m$ would be different for each recipient
1002: and so a different message would have to be sent to each recipient.
1003: To make matters worse,
1004: if one rejects the way the \TMA/ handles multiple recipients,
1005: not only does the \MTS/ get burdened with $n$ different messages,
1006: but the sender's \TMA/ gets burdened by having to encrypt
1007: the body of the message $n$ times.
1008: For meaningful values of $n$ (say on the order of~500, or even~25),
1009: the amount of resources required for any trusted discussion group are simply
1010: too costly.
1011:
1012: \subsection{Compromises, Compromises}
1013: Each of the possible weaknesses discussed above represent a compromise
1014: between the expense of the system and the level of security it can provide.
1015:
1016: The first two areas, if addressed by the \TMA/,
1017: could result in much less background information being available to an
1018: adversary.
1019: In an application where it is important that an adversary not know who is
1020: talking to whom,
1021: or who can talk at all,
1022: this is very important.
1023: It is the authors' position that in the commercial environment,
1024: this issue is not paramount.
1025: By ignoring the issue of traffic flow,
1026: the \TMA/ has a lot less work to do and the \MTS/ is kept clear of
1027: ``useless'' messages.
1028: By keeping the information returned by the RUI and RIU MCLs in the clear,
1029: the complexity of the \TMA/ is significantly reduced.
1030:
1031: The second two areas, if addressed by the \TMA/,
1032: could result in a lesser probability of traffic being deciphered by an
1033: adversary.
1034: Regardless of the application,
1035: this is always extremely important.
1036: However,
1037: the authors' feel that the compromise made by the \TMA/ in these two issues
1038: is not substantial,
1039: and does not result in an explicit weakness when a message is sent to
1040: multiple recipients
1041: (note that when there is only a single recipient of a message,
1042: these two policies can not introduce weaknesses).
1043: In return, efficient use can be made of both the \MTS/ and the \TMA/ when
1044: messages are being sent to multiple recipients.
1045: Given scarce resources or large numbers of recipients,
1046: this approach may prove to be quite winning.
1047:
1048: Of course, much work remains to be done to prove the success of the \TMA/ in
1049: all four of these areas.
1050:
1051: \section{Acknowledgements}
1052: The prototype implementation described herein utilizes a public domain
1053: implementation of the DES algorithm\cite{DEA}
1054: which was originally implemented by James J.~Gillogly in May, 1977
1055: (who at that time was with the Rand Corporation,
1056: and is now affiliated with Gillogly Software).
1057: Interfaces to Dr.~Gillogly's implementation were subsequently coded by
1058: Richard W.~Outerbridge in September, 1984
1059: (who at that time was with the Computer Systems Research Institute
1060: at the University of Toronto,
1061: and is now affiliated with Perle Systems, Incorporated).
1062:
1063: The authors would like to acknowledge Dennis Branstad,
1064: Elaine Barker, and David Balensen of the National Bureau of Standards
1065: for their comments on the prototype system
1066: and insights on the ANSI draft\cite{FIKM}.
1067: In particular, Dr.~Branstad originally suggested the method used for
1068: encrypting a single message for multiple recipients under different keys.
1069:
1070: The authors (and all those who have read this paper) would like to thank
1071: Willis H.~Ware of the Rand Corporation,
1072: and Jonathon B.~Postel of the USC/Information Sciences Institute.
1073: Their extensive comments resulted in a much more readable paper.
1074: In addition,
1075: the authors would like to thank
1076: Dr. Stephen P.~Smith and Major Douglas A.~Brothers
1077: for their insightful comments.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.