throbber
USENIX Association
`
`Proceedings of the
`Summer 1994 USENIX Conference
`
`June 6 - 10, 1994
`Boston, Massachusetts, USA
`
`Petitioner Oracle-Apple - Exhibit 1014 - Page 1
`
`

`

`
`
`
`
`’
`
`For additional copies of these proceedings write:
`
`USENIX Association
`
`2560 Ninth Street, Suite 215
`
`Berkeley, CA 94710 USA
`
`The price is $25 for members and $33 for nonmembers.
`Outside the U.S.A. and Canada, please add
`$18 per copy for postage (via air printed matter).
`
`Past USENIX Technical Conferences
`
`1994 Winter San Francisco
`1993 Summer Cincinnati
`
`1993 Winter San Diego
`1992 Summer San Antonio
`1992 Winter San Francisco
`1991 Summer Nashville
`1991 Winter Dallas
`1990 Summer Anaheim
`
`1990 Winter Washington, DC
`1989 Summer Baltimore
`
`1989 Winter San Diego
`1988 Summer San Francisco
`
`1988 Winter Dallas
`1987 Summer Phoenix
`
`1987 Winter Washington, DC
`1986 Summer Atlanta
`1986 Winter Denver
`1985 Summer Portland
`1985 Winter Dallas
`
`1984 Summer Salt Lake City
`1984 Winter Washington, DC
`1983 Summer Toronto
`
`1983 Winter San Diego
`
`1994 © Copyright by The USENIX Association
`All Rights Reserved.
`
`ISBN 1-880446—62—6
`
`This volume is published as a collective work.
`Rights to individual papers remain with the author or the author’s employer.
`
`USENIX acknowledges all trademarks herein.
`
`Printed in the United States of America on 50% recycled paper, 10-15% post consumer waste. ®
`
`Petitioner Oracle-Apple - Exhibit 1014 - Page 2
`
`

`

`TABLE OF CONTENTS
`.
`USENIX Summer 1994 Technical Conference
`June 6 - 10, 1994
`Boston, Massachusetts, USA
`
`OFF THE BEATEN TRACK
`
`l {Q
`V
`» E
`
`F,“
`u 1,, ....a
`
`L) 8
`I C1‘ 9' <-ill.’
`Chair: Glen Dudek, VGI
`
`Wednesday 11:00 - 12:30
`
`A New Object-oriented Programming Language: sh ....................................................................................................... ..
`Jefirey S. Haemer, Canary Sofiware, Inc.
`
`1
`
`The Old Man and the C ................................................................................................................................................... .. 15
`
`Evan Adams, Sun Microsystems
`
`CLOSING THE SYSTEM
`
`Wednesday 2:00 - 3:30
`
`Chair: Greg Rose, RoseSecure
`
`Key Management in an Encrypting File System .......................................................................................................... .. 27
`Matt Blaze, AT&T Bell Laboratories
`
`A Toolkit and Methods for Internet Firewalls............................................................................................................... .. 37
`
`Marcus K. Ranum, Frederick M. Avolio, Trusted Information Systems, Inc.
`
`SNP: An Interface for Secure Network Programming .................................................................................................. .. 45
`Thomas Y.C. Woo, Raghuram Bindignavle, Shaowen Su, and Simon S. Lam, University of Texas, Austin
`
`UNDER THE COVERS
`
`Wednesday 4:00 - 5:30
`
`Chair: Adam Moskowitz, Menlo Consulting
`
`An Efficient Kemel-Based Implementation of POSIX Threads
`Robert A. Alfieri, Unix Kernel Development, Data General Corporation
`
`59
`
`Using OS Locking Services to Implement a DBMS: An Experience Report................................................................. 73
`Andrea H. Skarra, AT&TBell Laboratories
`
`The Slab Allocator‘. An Object-Caching Kernel Memory Allocator ..............................................................f. ........... .. 87
`Jefl’Bonwick, Sun Microsystems
`
`FILE SYSTEMS
`
`Thursday 9:00 - 10:30
`
`Chair: Kent Peacock
`
`A Better Update Policy ..........................................................................................................
`Jefirey C. Mogul, Digital Equipment Corporation, Western Research Laboratory
`
`..................................... .. 99
`
`The Desktop File System ......................................................................................... .3.................................................. .. 113
`Morgan Clark, Stephen Raga, Programmed Logic Corporation
`
`Sawmill: A High Bandwidth Logging File System ..................................................................................................... .. 125
`Ken Shirrijj‘; John Ousterhout, University of California, Berkeley
`
`Petitioner Oracle-Apple - Exhibit 1014 - Page 3
`
`

`

`Key Management in an Encrypting File System
`
`Matt Blaze
`AT&T Bell Laboratories
`
`Abstract
`
`As distributed computing systems grow in size,
`complexity and variety of application, the problem of
`protecting sensitive data from unauthorized disclo-
`sure and tampering becomes increasingly important.
`Cryptographic techniques can play an important role
`in protecting communication links and file data, since
`access to data can be litnited to those who hold the
`
`proper key. In the case of file data, however, the rou-
`tine use of encryption facilities often places the orga-
`nizational requirements of information security in
`opposition to those of information management.
`Since strong encryption implies that only the holders
`of the cryptographic key have access to the cleartext
`data, an organization may be denied the use of its
`own critical business records if the key used to
`encrypt
`these records becomes unavailable (e.g..
`through the accidental death of the key holder).
`
`This paper describes a system, based on cryp-
`tographic "smartcards," for the temporary "escrow"
`of file encryption keys for critical files in a crypto-
`graphic file system. Unlike conventional escrow
`schemes, this system is bilaterally auditable, in that
`the holder of an escrowed key can verify that, in fact,
`he or she holds the key to a particular directory and
`the owner of the key can verify, when the escrow
`period is ended,
`that
`the escrow agent has neither
`used the key not can use it in the future. We describe
`a new algorithm, based on the DES cipher, for the on-
`line encryption of file data in a secure and efficient
`manner that is suitable for use in a smartcard.
`
`1. Introduction
`
`Modern distributed computing systems, for all their
`virtues, make it difficult to limit reliably access to
`sensitive data. Networks often unselectively broad-
`cast data to far-reaching and unpredictable places,
`
`remote login facilities create new opportunities for
`trespassers and distributed file systems often assume
`that all machines to which they provide service are
`trustworthy and reliable. To reduce these risks, cryp-
`tographic techniques make it possible to limit data.
`access while still taking advantage of untrustworthy
`networks and services. Modern workstations can
`
`encrypt in software at close to network speeds [4] [5].
`Data encryption attempts to ensure that only those
`who possess the correct decryption key can obtain the
`cleartext data.
`
`Most commercial applications of encryption
`techniques protect communication links (and related
`services such as electronic mail). When communica-
`
`tion endpoints are under the cont:rol of a single entity,
`or trust a common authority,
`the management of
`cryptographic keys is a conceptually straightforward
`matter. Keys can be assigned and changed as often as
`desired, the main problem being to ensure that both
`sender and receiver agree as to the current keys and
`that keys are discarded when no longer in use.
`Should sender and receiver get "out of sync" with the
`keys,
`the problem becomes immediately apparent
`because communication fails. Ensuring access by
`third parties in the event that keys are lost or unavail-
`able is rarely an issue.* Public key techniques
`[3][10] make communication key management easier,
`allowing two parties to establish a secure channel
`without prior arrangement.
`
`“The law enforcement community argues that it may be an
`exception; widespread use of encryption techniques may impede
`police wiretap investigations [2]. The ethical,
`legal, social and
`technical implications of law enforcement access to cryptographic
`communication are presently the subjects of intense public debate
`in the United States and are (fortunately) outside the scope of this
`paper.
`\
`
`1994 Summer USENIX - June 6 - 10, 1994 - Boston, MA
`
`Petitioner Oracle-Apple - Exhibit 1014 -
`
`Page 4
`
`27
`
`

`

`Cryptography can also be used to protect file
`data, although there are relatively few tools for this
`purpose in widespread use. Most
`file encryption
`takes place at the application level, with tools such as
`the Unix crypt command or with special encrypting
`applications (e.g., "vi -x"). File encryption can also
`take place at a lower level, as a basic service of the
`file system [1][9][13].
`
`Regardless of where encryption takes place,
`key management for encrypted files is a fundamen-
`tally different problem from that
`in cryptographic
`communication.
`In a secure communication system,
`keys must be distributed and synchronized geograph-
`ically. Keys often serve the dual purpose of authenti-
`cating identity as well as protecting against eaves-
`droppers. The architecture for distributing communi-
`cation keys is closely tied to the trust relationships
`within the system, and practical key distribution pro-
`tocols (such as those employed by the Kerberos sys-
`tem[12]) must be carefiilly engineered to balance reli-
`ability, security and performance.
`
`In a file system, on the other hand, there is usu-
`ally little need to distribute keys geographically; most
`protected files are encrypted and decrypted at the
`same locations (and by the same users). Authentica-
`tion of identity is a less serious issue, with access
`implicitly controlled through knowledge of the key
`itself, although cryptographic techniques can also be
`used to detect unauthorized tampering with file data.
`File systems still present a significant, if differently
`formulated, key management problem, however,
`in
`that keys can be said to be distributed temporally.
`The corresponding keys must be available at both
`encryption and decryption time. File encryption keys
`have much longer lifetimes than their communication
`counterparts. If a key is lost or unavailable, the files
`encrypted with it are rendered useless. This condi-
`tion may not be detected until it is too late. The key
`distribution center and public key cryptographic pro-
`tocols developed for geographically distributed com-
`munication systems do not have direct analogues that
`can be readily applied to temporal file key manage-
`ment.
`
`Arguably, it is because of difficulties associated
`with key management that sensitive files are rarely
`encrypted in practice even when encryption tools are
`available. This is especially true in critical business
`environments where ensuring the availability of data
`to authorized users is at least as important as ensuring
`its unavailability to everyone else. Sometimes, files
`are protected with weak ciphers,
`such that
`the
`encrypted data can be recovered with the application
`of sufficient computing resources. A toolkit ("Crypt
`
`Breaker’s Workbench")
`
`is available in Internet
`
`archives for the purpose of decrypting files enci-
`phered with the Unix crypt program. Needless to
`say, since these tools are also available to the adver-
`sary, encryption with weak ciphers is of questionable
`value in the first place.
`
`information
`In the context of organizational
`systems, cryptographic file protection presents sev-
`eral problems not addressed by traditional (communi-
`cation-oriented) key management schemes. These
`problems are not only technical
`(e.g., providing
`mechanisms for ensuring that keys are available
`when and where authorized) but also managerial and
`social (balancing secrecy and privacy against emer-
`gency access requirements). Carefully controlled key
`management services with explicit, auditable trust
`relationships that are integrated into the underlying
`file system security architecture can help reconcile
`these often conflicting goals.
`
`2. Key Escrow
`
`Hence the problem: strong file encryption is often
`necessary
`to protect privacy while
`availability
`requirements sometimes dictate the need for a "back
`door" for emergency access. We use as our model
`the common problem of ensuring continued access to
`critical business files even after the only employees
`who know the keys to those files leave the organiza-
`tion. One approach adapts the procedures used for
`controlling physical locks and keys to file encryption
`keys and provides a central key distribution ("lock-
`smith") service. Any time a user requires an encryp-
`tion key, it is generated by a central service, which
`also keeps a copy for emergency access.
`
`locksmith
`the central
`In practice, however,
`model adapts poorly to large-scale file encryption key
`management. The central service must be uncondi-
`tionally trusted by all who obtain keys from it. No
`further controls preclude or audit access by those
`with access to the key database. (Note that this is not
`the case with locksmiths who manage physical keys
`— use of a key requires access to the lock, which
`may itself be controlled by independent security
`mechanisms and which can be changed if the lock-
`smith’s office is compromised.
`In the case of file
`keys, on the other hand, once a copy of the key
`database has leaked, all
`files with keys in the
`database must be considered compromised forever.)
`Furthermore, a central service can quickly become a
`service bottleneck or worse, a single point of failure
`or attack. The key service is an "online" part of the
`key creation process and users cannot create new
`
`28
`
`imsemanaaameneahlwl llfiicfl-'li°<)'§$l‘§‘i1,'~:’MA
`
`

`

`keys if the service is unavailable. Finally, the prob-
`lem of securing communication between the user and
`the key center introduces all the problems of commu-
`nication key management in addition to the existing
`problem of file key management.
`
`An alternative approach reverses the relation-
`ship and provides a controlled mechanism for users
`to deposit copies of their keys for emergency use as
`needed. The keys for crucial files could thereby be
`"escrowed" with a trusted caretaker who would
`
`reveal them only when certain conditions are met,
`such as when encrypted business data are required
`after the death of the legitimate key holder. Concep-
`tually, keys might be delivered within sealed
`"envelopes." When a set of files is no longer critical,
`the envelope containing its keys could be returned to
`its originator, who could verify the integrity of the
`seal and destroy the keys, preventing future access to
`outdated, but still private, data. The "escrow-deposit"
`approach has the benefit of allowing the key holder to
`generate keys in the usual manner, without direct
`"online" interaction with a third party. There is no
`central service bottleneck, since the escrow agent is
`not directly involved in the creation of new keys.
`Envelopes containing escrowed keys can be delivered
`to the escrow agent at any time and any inability to
`deliver the keys to the agent need not preclude their
`use by the key holder.
`
`Unfortunately, this is difficult to do in practice.
`The simplest procedure has the key holder write
`down the key, place it in a sealed envelope, and leave
`it with a trusted caretaker. This is vulnerable to mis-
`
`takes, however, since there is no inherent mechanism
`
`to ensure that the escrowed key is the same as the real
`one. The security of
`the scheme also depends
`entirely on the honesty of the caretaker and the
`tamper-resistance of the envelope. An electronic ana-
`logue to the sealed envelope can be implemented by
`encrypting the key with a "caretaker" key, perhaps
`using public key techniques. If this is done automati-
`cally as part of key generation, the problems associ-
`ated with transcription mistakes are avoided, but the
`scheme still depends entirely on the caretaker’s hon-
`esty (and even more so without the sealed envelope).
`If no single caretaker can be trusted, the key could be
`multiply encrypted with more than one caretaker’s
`key, split among several escrow agents (in the man-
`ner of the US Escrowed Encryption Standard) or
`encrypted using a group—oriented public key protocol.
`
`Both the manual and encrypted key escrow
`schemes suffer from a fundamental problem, how-
`ever. After an escrow agent “opens" the key and
`learns its value, no further controls on its use are
`
`possible. Anyone who learns the keys can use them
`at any time in the future without detection. Elec-
`Ironic escrow is particularly hard to revoke or audit,
`since it is difficult to ensure that all copies of the keys
`have been destroyed when the escrow period ends
`even if the keys have never actually been used (con-
`sider backups or illicit copies of the escrow data).
`
`Under these schemes, key escrow is an "all or
`nothing" proposition, with no mechanism to guaran-
`tee, in any formal sense, that the caretaker is doing
`his or her job honestly.
`It is not obvious how to
`implement key escrow schemes that offer stronger
`protection against abuse without relying on elaborate
`physical access controls or special purpose hardware.
`
`Cryptographic smartcards can be used to
`implement more carefully controlled and fully revo-
`cable file system key escrow. Smartcards have sev-
`eral properties that lend themselves to use as a con-
`trolled store for escrowed keys. These cards are
`designed to be sufficiently tamper-resistant to allow
`their use in financial applications, have a controlled-
`access non-volatile memory, can run general purpose
`software and include built-in cryptographic and ran-
`dom number generation capabilities.
`
`3. Smartcard-Based Key Escrow in a Crypto-
`graphic File System
`
`The shortcomings of entirely software-based key
`escrow schemes arise out of the inability to control
`the use of the key once it has been revealed to the
`escrow agent. Thus the problem is to guarantee the
`escrow agent use of the key without actually reveal-
`ing what it
`is. While this may appear to involve
`impossibly contradictory requirements, most com-
`mercial smartcards can be adapted to serve exactly
`this purpose.
`
`We propose a system in which an "escrow
`smartcard" can be created along with each file
`encryption key. This card is provided to a designated
`third party (the "escrow agent") who is authorized to
`use the key under some well-defined set of circum-
`stances. If emergency access is required the card can
`decrypt files without revealing what the key is, acting
`as a self-contained decryption engine for ciphertext
`sent to it by the escrow agent. Any time the card
`decrypts data it also records that fact" in its secure
`storage. Later, when the escrow period is terminated
`or when an audit is to be performed, the user can
`query the card to determine whether the escrow agent
`has used it. This section describes the design and
`implementation of a smartcard-based key escrow
`scheme for CFS, a file encryption system for Unix.
`
`
`
`1994 Summer USENIX - June 6 - 10, 1994 - Boston, MA
`
`29
`Petitioner Oracle-Apple - Exhibit 1014 - Page 6
`
`

`

`CFS is a cryptographic file system interface for
`Unix-like systems;
`it allows the user to associate
`cryptographic keys with directories.
`It runs entirely
`on the client workstation. No modification to the
`
`underlying file system (or file server) is required, and
`file contents as well as some meta-data (file names)
`are cryptographically protected. Backups and other
`such routine administrative services can take place in
`the normal manner and without the encryption keys.
`Details on CFS can be found in [1].
`
`Basically, CFS provides a mechanism to asso-
`ciate "real" directories (on other file systems) that
`contain encrypted data with temporary "virtual"
`names through which users can read and write cleart-
`ext. These virtual names appear in a separate names-
`pace under the CFS mount point, which is usually
`called /crypt. Users create encrypted directories
`on regular file systems (e.g., in their home directo-
`ries) using the cmkdir command, which creates the
`directory
`and
`assigns
`to
`it
`a
`cryptographic
`"passphrase" that will be used to encrypt its contents.
`To use an encrypted directory, it must be "attached"
`to CFS using the cattach command, which asks for
`the passphrase and installs an association between the
`"real" directory and a name under /crypt. Cleart—
`ext is read and written under the virtual directory in
`/crypt, but the files are stored in encrypted fonn
`(with encrypted names) in the real directory. When
`the directory is not in use, the association is removed
`with the cdetach command, which deletes the cleart-
`ext virtual directory under /crypt. When CFS is
`run on a client workstation, the cleartext data (and the
`cryptographic key passphrase) are never stored on a
`disk or sent over a network, even when the real direc-
`
`tory is located on a remote file server. The system is
`implemented as a user-level NFS[11] server. The
`basic flow of data in CFS is shown in Figure 1.
`
`Key escrow is implemented for CFS as an
`option to escrow the key when the encrypted direc-
`tory is created with cmkdir. When keys are initially
`assigned and whenever escrowed access is required,
`the machine running CFS must have a smartcard
`reader—writer attached.
`(In day—to—day user operation
`on encrypted files, no smartcard reader is required.)
`The smartcard has a small store of secure memory,
`the ability to run simple programs securely and a
`secret-key cryptographic engine compatible with that
`of the host file system. Ideally, the card could have a
`real-time calendar and the ability to schedule execu-
`tion at some future date, although the cards we use
`(the AT&T smartcard) do not have these capabilities.
`We call the user who created the files the "owner"
`
`and the caretakers of the escrowed keys the "escrow
`
`
`
`:
`; (local)
`L _________________ - _J
`
`File System Interface
`
`Encrypted
`
`(local or remote)
`I’ ‘ ’ ' ’ ' ‘ ' "' ‘ ' ' ' "
`
`" ‘ ‘ " " '1
`
`II I
`
`File
`I System
`: (local or remote)
`
`Figure 1 — Data Flow in Standard CFS System
`
` 1994 s‘illllilll?'
`
`£i!filS’:‘}BllJ:e6—'§’tl)‘Pll91:°.‘1§‘o‘sl%il9§4Zx
`
`F """"""""" ' '1
`: User-Level
`:
`I Application
`r
`I
`I
`I
`I
`l
`I
`L _ _ . _ _ _ _ _ _ _ _ _ _ _
`_ . _ _ .. .l
`
`System Calls
`r - - - - ~ - - - - - - - - -
`I
`I
`
`- - - ' ‘ 1
`I
`I
`
`: Unix
`I Kernel
`I
`
`:
`I
`I
`
`; (local)
`I
`L _ . _ . _ _ _ _ _ _ _ . _ _
`
`;
`I
`. _ _ _ _ _l
`
`File System Interface
`Cleartext
`. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
`(internal - localhost)
`
`. . . . . . . . . . . . . . . . ..
`
`li
`IEIt
`IS
`
`CFS
`Daemon
`
`Encryptionl
`Decryption Engine
`; L _________________ _ _ J
`
`System Calls
`I‘ " ' ‘ ' ’ ' ‘ ' " ' ’ ' ‘ '
`I
`I
`, Unix
`i Kernel
`I
`
`' "" " ‘ 1
`I
`I
`,I
`n
`I
`
`Sys. Call Interface
`
`
`
`
`
`

`

`agents." The techniques described here could be
`applied to any file encryption system and are not lim-
`ited to CFS.
`
`At the time keys are assigned (e.g., with the
`CFS cmkdir command), the smartcard is initialized
`
`with three sets of cryptographic keys. The first key
`set, the "file system key," is used for actual file data
`encryption, and consists,
`in CFS, of two 56 bit
`DES[6] keys derived from a user-selected secret
`"passphrase." The file key is also used to hash a
`known plaintext string that is stored in the host file
`system in the "check file." The second key, the "audit
`key," is used to post-audit the card at escrow revoca-
`tion time and will be explained in more detail below.
`The audit key is also stored in a file on the host com-
`puter (encrypted under the file keys). The last key,
`the "escrow key," is used to encrypt the file system
`keys stored on the card.
`It must also be provided to
`the escrow agent (perhaps via public key techniques,
`and perhaps split among several agents, but this key
`is not essential to the security of the protocol). Ordi-
`narily,
`the escrow key is derived from a second
`passphrase entered by the owner. The encrypted file
`keys and audit key are maintained in secure storage
`on the card and cannot be easily "reverse engineered"
`from the card. All smartcard initialization takes place
`in CFS through a modified version of the cmkdir
`command.
`
`Once keys are assigned, the smartcard is turned
`over to an escrow agent for safekeeping and the
`escrow key passphrase revealed to the escrow agent.
`(The escrow agent who holds the card need not be the
`same agent who knows the escrow key). If the smart-
`card has a calendar and the ability to schedule future
`execution, the escrow data on the cards could be con-
`
`figured to automatically self-destruct after a set
`period. If needed, duplicate cards, with new escrow
`and audit keys, can be created by the owner (using
`the file passphrase) at any time.
`
`In normal CFS operation, the file system keys
`are derived from the user passphrase on the trusted
`host computer when the owner issues the "cattach"
`command for an encrypted directory; the smartcard is
`not involved. Regular user operation requires only
`the standard version of CFS (without any escrow
`software). The check file assures that the entered
`
`phrase is valid and that wildly incorrect decrypted file
`names and contents are not returned to the file sys-
`tem .
`
`The smartcard itself is used to perform three
`operations. The first operation, "pre-audit," simply
`verifies to the escrow agent that the keys on the card
`correspond to those used to encrypt the actual file
`
`In this mode of operation, the escrow agent
`system.
`sends the contents of the check file (in the escrowed
`file system) and the escrow key to the smartcard,
`which provides a "yes" or "no" answer based on the
`decrypted file keys.
`(The owner could "cheat" and
`provide a "dummy" check file; we discuss this
`below.) The escrowed keys do not leave the card.
`
`the smartcard
`In "escrow access" operation,
`decrypts files for the escrow agents. The agents sup-
`ply the escrow key; if it is supplied correctly, the card
`decrypts the file system keys and increments a
`counter in its secure store. Thereafter, for the remain-
`
`der of the session, the card will use the decrypted file
`keys to decrypt file data sent to it. If the card has a
`real
`time clock,
`it could also maintain two time
`stamps for the first and most recent times the escrow
`key was used. Again, the keys never leave the card;
`the card acts as a wholely self—contained decryption
`engine. Once the card is removed, its state is reset
`and the escrow key must be supplied again to enable‘
`further decryption. Escrow access in CFS takes place
`through a modified CFS file system daemon in which
`the crypto engine is replaced with calls to the smart-
`card interface. Additional support tools supply the
`escrow key to the smartcard. Note that the card inter-
`face is part of the data path for all decrypted data.
`The data flow is shown in Figure 2.
`
`The last mode of operation, "post-audit," is
`used when the escrow period is ended and the card is
`returned to the owner. The card reports the number
`of times the escrow keys were used. If the card has
`the capability to store this data it could also report the
`first and last access times and number of bytes
`decrypted under escrow (again, our cards do not). To
`help protect against card forgery and to safeguard
`against the return of a fake card by the escrow agent,
`the owner can challenge the card to perform encryp-
`tions under the audit key. The audit key is decrypted
`on the host computer with the owner passphrase; by
`comparing the results of a random challenge with the
`result of a decryption perfonned locally, the owner
`can verify that the card that was returned is the same
`one that was originally escrowed. Post audit is per-
`formed in CFS with an additional user tool.
`
`3.1. File Encryption Scheme
`
`One of the lessons learned from the design of CFS is
`that the problem of encrypting files on-line in a file
`system is somewhat different from other kinds of
`encryption problems. No single standard encryption
`mode[7] has all the properties required for file system
`use; further compounding the problem are concerns
`
`1994 Summer USENIX - June 6 - 10, 1994 - Boston, MA
`
`Petitioner Oracle-Apple - Exhibit 1014
`
`31
`- Page 8
`
`

`

`that the 56 bits of key used by the DES cipher are
`vulnerable to exhaustive search attack[14].
`
`CFS uses a combination of DES "codebook"
`
`to
`cipher modes
`"stream"
`and pre-computable
`approximate the strength of multiple iterations of
`DES with the runtime latency of only a single itera-
`tion of DES. This scheme has the resistance to struc-
`
`tural analysis of a chaining cipher but allows random
`read and write access in constant time.
`
`The encryption scheme relies on the ability to
`trade off space (in the precomputation of the streams)
`for time, To accommodate the key escrow system,
`we modified the CFS encryption scheme to allow
`"lazy evaluation" on the smartcard without the large
`memory requirements of the precomputed stream.
`We believe this scheme to be equivalent to 3-DES
`under currently known practical attacks. The new
`CFS cipher is as follows:
`
`Recall that keys in CFS consist of two DES
`keys, KI and K2, derived from the user passphrase.
`Conceptually, CFS file block encryption consists of
`encryption against a positionally defined stream
`cipher derived from K1, which is then encrypted with
`a codebook block cipher under K2, which is further
`encrypted with a second multi-use stream cipher
`derived from K,. Specifically,
`
`E, = DES'(K2, 1),, ea DES‘(K,, f(p mod m)) e i)
`
`<9 DES'(K,, g(p mod m))
`
`(1)
`
`The cipher is reversed in the obvious manner:
`
`DP = DES“(K2, 12,, e DES‘(K,, g(p mod m)))
`
`ea DES’(K,, f(p mod m)) ei
`
`(2)
`
`where:
`
`EP
`
`Dp
`
`65
`
`is the ciphertext block of a file at byte offset p.
`
`is the cleartext block of a file at byte offset p.
`
`is the bitwise exclusive-or operation.
`
`DES‘(k, b)
`is the Data Encryption Standard block encryp-
`tion function on cleartext b with key k.
`
`DES—](/C, b)
`is the Data Encryption Standard block decryp-
`tion function on ciphertext b with key k.
`
`i
`
`is a bit representation of a unique file identifier
`derived from the Unix inode number and cre-
`
`ation time of the encrypted file.
`
`I‘ ‘ ' ' ‘ ‘ ‘ " ’ ‘ ’ " ' ‘ ' ” ' “ ' ‘ ‘ ‘I
`I
`I
`
`I
`:
`I
`I
`_ _ _ .. _ J
`
`: User-Level
`I Application
`I
`L _ _ _ _ _ _ _ . _ _ _ _ _ _
`
`II
`
`System Calls
`I‘ ‘ ' ‘ ‘ ' ’ ‘ ‘ ‘ ‘ ‘ ' ‘ ‘
`I
`I
`
`' ' ‘ ’ ” "I
`I
`I
`
`: Unix
`I Kernel
`I
`
`:
`I
`I
`
`:
`: (local)
`L _________________ _ _J
`File System Interface
`Cleartext
`
`
`
`
`
`Escrow
`smartcard
`
`Decrypt
`Engine
`
`II Unix
`I Kernel
`I
`
`(internal - Iocalhost)
`- - - - - -I
`i I- - - - - - - -
`Daemonig
`pFS Escrow
`
`:
`NFS Svr. I erface
`
`
`
`|
`
`2
`
`Ig
`
`=2
`
`. . . .
`
`.
`
`. .
`
`.
`
`— — — — - J :
`
`
`
`
`
`' " ’ ' ‘ ‘I
`
`II
`
`I
`I
`I
`
`
`
`: (local)
`I
`L _ _ _ _ _ _ _ _ _ _ _ _ _ _
`
`:
`I
`_ _ _ _ _ _|
`
`File System Interface
`
`Encrypted
`
`(local or remote)
`I'' " ' ” ‘ ” ' ’ ' ‘ ' ” ‘ ' ‘
`I
`I
`
`‘ ‘ ' ' ‘ ‘I
`I
`I
`
`I
`1 File
`:
`: System
`:
`: (local or remote)
`I
`I
`I
`I
`L _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _. _I
`
`Figure 2 — Data Flow in CFS Escrow Agent System
`
`
`
`
`
` 199 § ‘IR?! §§I9§'—RP86—l‘ I '§ 9- 6I8l9,eNi’A
`
`

`

`f(rt), 30:)
`are publically known functions that map an
`integer representation n into unique bit strings
`of the DES codebook size (64 bits).
`
`m
`
`is the length of the precomputed stored stream
`(presently 256K bytes).
`
`the stream ciphers defined by
`Observe that
`DES‘(K1, f(p mod m)) and DES‘(K,, g(p mod m))
`can be precomputed for each K1 given 2m bytes of
`storage.
`The CFS daemon precomputes
`these
`streams when the cattach command is issued for a
`
`particular key. Vifith the streams precomputed, each
`block encryption requires only one online DES oper-
`ation (the codebook cipher based on K2).
`
`When decryption is performed on the card, the
`streams cannot be wholely precomputed in the card’s
`small
`local memory.
`Instead,
`the card calculates
`DES‘(K1, f(p mod m)) and DES1(K,,g(p mod m))
`for each cipherblock sent to it.
`(f(p mod m) and
`g( p mod m) are sent to the card from the host com-
`puter as parameters with the cipher block.) Although
`this is computationally slower than the precomputed
`cipher, requiring three DES encryptions per block
`instead of one, bandwidth to the card interface (a
`serial link) remains the primary limitation on encryp-
`tion speed.
`
`4. Practical Applications
`
`File system key escrow can support a variety of
`application domains. Ensuring organizational access
`to proprietary data was discussed and motivated
`above. Here, an employee has primary operational
`responsibility for data that belongs to an organization.
`Key escrow allows the organization to provide other
`individuals with emergency access capability in the
`primary employee’s
`absence. Access
`by these
`"backup"
`individuals can be granted, controlled,
`audited and revoked easily, without compromising
`the organization’s ability to maintain and control its
`own information.
`
`Smartcard-based escrow also facilitates other
`
`In the organizational
`backup access relationships.
`scenario above, the primary key holder is "subordi-
`nate" to the escrow holder. Alternatively, a manager
`may be the primary key holder for sensitive-but-
`critical business data for which the keys are escrowed
`with an employee. The escrow key holder may not
`be authorized for routine access, but in the manager’s
`absence may be required to perform "proxy" func-
`ti

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket