Annotation of 43BSDReno/contrib/mh/papers/trusted/text.tex, revision 1.1

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.

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.