US7603553B1 - System and method to make file handles opaque to clients - Google Patents
System and method to make file handles opaque to clients Download PDFInfo
- Publication number
- US7603553B1 US7603553B1 US10/423,591 US42359103A US7603553B1 US 7603553 B1 US7603553 B1 US 7603553B1 US 42359103 A US42359103 A US 42359103A US 7603553 B1 US7603553 B1 US 7603553B1
- Authority
- US
- United States
- Prior art keywords
- file handle
- file
- entry
- handle
- encrypted
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime, expires
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/1824—Distributed file systems implemented using Network-attached Storage [NAS] architecture
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/56—Financial cryptography, e.g. electronic payment or e-cash
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10—TECHNICAL SUBJECTS COVERED BY FORMER USPC
- Y10S—TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y10S707/00—Data processing: database and file management or data structures
- Y10S707/99931—Database or file accessing
Definitions
- the present invention relates to network security and, more particularly to making file handles opaque to clients in a network.
- a file server is a computer that provides file service relating to the organization of information on storage devices, such as disks.
- the file server or filer includes a storage operating system that implements a file system to logically organize the information as a hierarchical structure of directories and files on the disks.
- Each “on-disk” file may be implemented as a set of disk blocks configured to store information, such as text, whereas the directory may be implemented as a specially-formatted file in which information about other files and directories are stored.
- a filer may be configured to operate according to a client/server model of information delivery to thereby allow many clients to access files stored on a server, e.g., the filer.
- the client may comprise an application, such as a file system protocol, executing on a computer that “connects” to the filer over a computer network, such as a point-to-point link, shared local area network (LAN), wide area network (WAN), or virtual private network (VPN) implemented over a public network such as the Internet.
- a file system protocol such as a file system protocol
- Each client may request the services of the filer by issuing file system protocol messages (in the form of packets) to the filer over the network.
- a common type of file system is a “write in-place” file system, an example of which is the conventional Berkeley fast file system.
- a write in-place file system the locations of the data structures, such as inodes and data blocks, on disk are typically fixed.
- An inode is a data structure used to store information, such as metadata, about a file, whereas the data blocks are structures used to store the actual data for the file.
- the information contained in an inode may include, e.g., ownership of the file, access permission for the file, size of the file, file type and references to locations on disk of the data blocks for the file.
- the references to the locations of the file data are provided by pointers, which may further reference indirect blocks that, in turn, reference the data blocks, depending upon the quantity of data in the file.
- Changes to the inodes and data blocks are made “in-place” in accordance with the write in-place file system. If an update to a file extends the quantity of data for the file, an additional data block is allocated and the appropriate inode is updated to reference that data block.
- a write-anywhere file system may initially assume an optimal layout such that the data is substantially contiguously arranged on disks. The optimal disk layout results in efficient access operations, particularly for sequential read operations, directed to the disks.
- a particular example of a write-anywhere file system that is configured to operate on a filer is the Write Anywhere File Layout (WAFLTM) file system available from Network Appliance, Inc. of Sunnyvale, Calif.
- the WAFL file system is implemented within a microkernel as part of the overall protocol stack of the filer and associated disk storage.
- This microkernel is supplied as part of Network Appliance's Data ONTAPTM storage operating system, residing on the filer, that processes file-service requests from network-attached clients.
- the term “storage operating system” generally refers to the computer-executable code operable on a storage system that manages data access and may, in case of a filer, implement file system semantics, such as the Data ONTAPTM storage operating system, which is implemented as a microkernel.
- the Data ONTAP storage operating system is available from Network Appliance, Inc., of Sunnyvale, Calif., and implements a Write Anywhere File Layout (WAFLTM) file system.
- the storage operating system can also be implemented as an application program operating over a general-purpose operating system, such as UNIX® or Windows NT®, or as a general-purpose operating system with configurable functionality, which is configured for storage applications as described herein.
- Disk storage is typically implemented as one or more storage “volumes” that comprise physical storage disks, defining an overall logical arrangement of storage space.
- volume typically comprises physical storage disks, defining an overall logical arrangement of storage space.
- filer implementations can serve a large number of discrete volumes (150 or more, for example). Each volume is associated with its own file system and, for purposes hereof, volume and file system shall generally be used synonymously.
- the disks within a volume are typically organized as one or more groups of Redundant Array of Independent (or Inexpensive) Disks (RAID).
- RAID implementations enhance the reliability/integrity of data storage through the writing of data “stripes” across a given number of physical disks in the RAID group, and the appropriate storing of parity information with respect to the striped data.
- a RAID 4 level implementation is advantageously employed.
- This implementation specifically entails the striping of data across a group of disks, and separate parity storing within a selected disk of the RAID group.
- a volume typically comprises at least one data disk and one associated parity disk (or possibly data/parity) partitions in a single disk arranged according to a RAID 4, or equivalent high-reliability, implementation.
- a client of the file server may request that a file stored on the file server is opened through the use of conventional file-based protocols.
- the file server will return a file handle.
- the file handle is, in the example of the Network File System (NFS), a 32-byte value that uniquely identifies the opened file.
- NFS Network File System
- the file handle contains, in binary form, the export point and an inode number of the file associated with the file handle. This information may be easily decoded by a client or network eavesdropper and used to forge a file handle.
- a client or network eavesdropper could utilize this information to forge a file handle that, could, for example, bypass the security controls on the file's actual export point by co-opting a different and less secure export point into the file handle.
- an “export point” is a file protocol accessible path forming a base or root for lower directory levels.
- a file may be accessible and have an export point of, /usr/dir/file.
- an attacker may, by analyzing a large number of file handles, be able to reverse engineer the file handle construction method, thereby enabling it to forge or otherwise compromise the security of the file server.
- the disadvantages of the prior art are overcome by providing the system and method making file handles opaque to clients in a network environment.
- “opaque” it is meant that network devices are incapable of retrieving any file system or other file-related information from the file handle.
- the system and method encrypts file handles issued by a file server before transmitting them to the client. Clients may still utilize the encrypted file handle as a unique identifier of a given file in a file system. However, clients are unable to obtain any information stored within the encrypted file handle itself.
- the file server maintains a hash table using a selected set of bits of the encrypted file handle as a hash key.
- the hash table includes the hash key, the encrypted file handle for use as a check and the unencrypted file handle.
- the file server will hash the selected bits into the hash table to identify an appropriate entry.
- the received encrypted file handle is then compared against the encrypted file handle stored in the hash table to verify that the hash function has correctly identified the appropriate file handle.
- the file server may then access the non-encrypted version of the file handle from the hash table, thereby eliminating the need to run a decrypting algorithm on the encrypted file handle. This process improves the speed at which file handles may be processed, while ensuring that the appropriate level of security is maintained.
- each incoming encrypted file handle is individually decrypted and no hash table, or other form of caching encrypted/decrypted pairs, is utilized.
- an alternative data structure such as a B-tree, may be utilized to cache known encrypted file handles and their decrypted counterparts.
- the storage operating system maintains a complete set of outstanding encrypted file handles and their associated decrypted counterparts. It should be noted that many descriptions of NFS file handles, including the NFS specifications describe them as “opaque,” indicating thereby merely that the specification defines no information which may legitimately and reliably be determined from an examination of the file handle.
- the desired opacity which is needed goes beyond that in making it impossible to obtain such information, by denying the client (or any eavesdroppers) the capacity to obtain such information or formulate a file handle, even though the file handle contains the necessary information when it is examined by the server.
- FIG. 1 is a schematic block diagram of an exemplary network environment having clients and file servers;
- FIG. 2 is a schematic block diagram of an exemplary file server in accordance with an embodiment of the present invention.
- FIG. 3 is a schematic block diagram of an exemplary storage operating system executing on a file server in accordance with an embodiment of the present invention
- FIG. 4 is a schematic block diagram of an exemplary hash table in accordance with an embodiment of the present invention.
- FIG. 5 is a flow chart detailing the steps of a procedure for encrypting a file handle in accordance with an embodiment of the present invention.
- FIG. 6 is a flow chart detailing the steps of a procedure for processing a request from a client using an encrypted file handle in accordance with an embodiment of the present invention.
- the FIG. 1 is a schematic block diagram of an exemplary network environment 100 in which the principles of the present invention may be practiced.
- the network environment 100 centers around a network 105 .
- the network 105 may be a local area network (LAN), a wide area network (WAN) or a virtual private network (VPN) or a combination thereof.
- Connected to the network are a plurality of clients 110 , that may include personal computers (PCs), application servers or other network devices.
- a file server 200 Also connected to the network 105 is , described further below.
- the network 105 may also be connected with a switch end/or router 115 that provides a gateway to the well-known Internet 120 .
- FIG. 2 is a more-detailed schematic block diagram of an exemplary file server 200 implemented as a network storage appliance, such as the NetApp® filer available from Network Appliance, that is advantageously used with the present invention.
- a network storage appliance is a special-purpose computer that provides file service relating to the organization of information on storage devices, such as disks.
- inventive concepts described herein may apply to any type of filer whether implemented as a special-purpose or general-purpose computer, including a standalone computer.
- the filer 200 comprises a processor 205 , a memory 210 , a network adapter 215 and a storage adapter 220 interconnected by a system bus 230 .
- the filer 200 also includes a storage operating system 300 that implements a file system to logically organize the information as a hierarchical structure of directories and files on the disks.
- the memory 210 may have storage locations that are addressable by the processor and adapters for storing software program code and data structures associated with the present invention.
- the processor and adapters may, in turn, comprise processing elements and/or logic circuitry configured to execute the software code and manipulate the data structures.
- the storage operating system (SOS) 300 portions of which are typically resident in memory and executed by the processing elements, functionally organizes the filer 200 by, inter alia, invoking storage operations in support of a file service implemented by the filer. It will be apparent to those skilled in the art that other processing and memory means, including various computer readable media, may be used for storing and executing program instructions pertaining to the inventive technique described herein.
- the storage adapter 220 cooperates with the storage operating system 230 executing on the filer to access information requested by the client.
- the storage adapter 220 includes input/output (I/O) interface circuitry that couples to the disks over an I/O interconnect arrangement, such as a conventional high-performance, Fibre Channel serial link topology.
- I/O input/output
- the information is retrieved by the storage adapter 220 and, if necessary, processed by the processor 205 (or the adapter itself) prior to being forwarded over the system bus 230 to the network adapter 215 , where the information is formatted into a packet and returned to the client.
- the filer 200 may also include a nonvolatile random access memory (NVRAM) 225 that provides fault-tolerant backup of data, enabling the integrity of filer transactions to survive a service interruption based upon a power failure, or other fault.
- NVRAM nonvolatile random access memory
- the NVRAM 225 is typically made sufficiently large to log a certain time-based chunk of transactions (for example, several seconds worth).
- the NVRAM entry may be constructed in parallel with execution of the corresponding request, once it is determined that a request will be successfully performed but it must be completed (as must any copying to mirror NVRAM of the partner in a cluster configuration) before the result of the request is returned to the requesting client.
- the storage operating system 300 implements a file system that logically organizes information as a hierarchical structure of directories and files on the disks.
- Each “on-disk” file may be implemented as set of disk blocks configured to store information, such as text, whereas the directory may be implemented as a specially formatted file in which other files and directories are stored.
- the storage operating system 300 associated with each volume is, for example, the NetApp® Data ONTAPTM operating system available from Network Appliance, Inc. of Sunnyvale, Calif. that implements a Write Anywhere File Layout (WAFL) file system.
- WAFL Write Anywhere File Layout
- the storage operating system 300 comprises a series of software layers, including a media access layer 305 of network drivers (e.g., an Ethernet driver).
- the storage operating system 300 further includes network protocol layers, such as the IP layer 310 and its TCP layer 315 , and UDP layer 320 .
- a file system protocol layer provides multi-protocol data access and, to that end, includes support for the CIFS protocol 330 , the Network File System (NFS) protocol 335 and the HTTP protocol 325 .
- NFS Network File System
- the storage operating system 300 includes a disk storage layer 345 that implements a disk storage protocol, such as a RAID protocol, and a disk driver layer 350 that implements a disk access protocol such as, e.g., a Small Computer Systems Interface (SCSI) protocol.
- a disk storage protocol such as a RAID protocol
- a disk driver layer 350 that implements a disk access protocol such as, e.g., a Small Computer Systems Interface (SCSI) protocol.
- SCSI Small Computer Systems Interface
- an encryption/decryption function 337 and an associated hash table 339 , described further below.
- the novel encryption/decryption function may be implemented in any file-based protocol layer of a storage operation system.
- the layer implements a file system having an on-disk format representation that is block-based using, e.g., 4-kilobyte (KB) data blocks and using inodes to describe the files.
- the file system In response to transaction requests, the file system generates operations to load (retrieve) the requested data from volumes if it is not resident “in-core”, i.e., in the filer's memory 210 . If the information is not in memory, the file system layer 355 indexes into the inode file using the inode number to access an appropriate entry and retrieve a logical volume block number.
- the layer 355 then passes the logical volume block number to the disk storage (RAID) layer 345 , which maps that logical number to a disk block number and sends the latter to an appropriate driver (for example, an encapsulation of SCSI implemented on a fibre channel disk interconnection) of the disk driver layer 350 .
- the disk driver accesses the disk block number from volumes and loads the requested data in memory 210 for processing by the filer 200 .
- the filer (and storage operating system) returns a reply, e.g., a conventional acknowledgement packet defined by the CIFS specification, to the client 110 .
- the software “path” 360 through the storage operating system layers described above needed to perform data storage access for the client request received at the filer may alternatively be implemented in hardware or a combination of hardware and software.
- FIG. 4 A schematic block diagram of an exemplary hash table 400 for use in an illustrative embodiment is shown in FIG. 4 .
- the hash table 400 which is stored in the file protocol layer of the storage operating system in an illustrative embodiment, includes entries for a hash key 405 , an encrypted file handle 410 and a decrypted file handle 415 .
- the hash key 405 in the illustrative embodiment, is a subset of the bits of the encrypted file handle. As the encryption process should produce a uniform distribution of bits within the encrypted file handle, utilizing a subset as a hash key will provide for performance enhancements.
- the encrypted file handle entry 410 contains a complete encrypted file handle for use as a second-level verification that the proper entry in the hash table 400 has been selected. It is possible for differing file handles to be encrypted and to have identical hash keys. Thus, in accordance with the illustrative embodiment, the novel system and method will compare the encrypted file handle received by a client with the stored encrypted file handle and entry 410 .
- the decrypted file handle entry 415 contains the original file handle associated with the given file.
- the decrypted file handle 415 is utilized by the storage operating system internally for referencing the designated file.
- the storage operating system By storing the decrypted file handle in the hash table 400 , the storage operating system eliminates the need to run a decryption algorithm on a received encrypted file handle for those file handles that are found in the hash table, thereby improving system performance by reducing the number of cryptographic computations that must be performed.
- hash table is for illustrative purposes only.
- a B-tree or other form of data structure may be utilized to store encrypted file handles and their decrypted counterparts.
- the storage operating system may individually decrypt each received encrypted file handle.
- a hash table should be taken as an exemplary embodiment only.
- the hash table may be complete, i.e., contain all outstanding file handles, or partial.
- a data structure is partial if it contains a subset of all outstanding file handles. If the hash table or other data structure is partial, and the storage operating system receives an encrypted file handle directed to a file handle that is not in the data structure, then the storage operating system may run a decryption algorithm on the received encrypted file handle to obtain a decrypted copy for servicing the requested operation.
- the encryption process 337 within the NFS layer 335 of the storage operating system 300 works to ensure that file handles that are returned to a client over a network are opaque to interceptors or other network devices.
- “opaque” it is meant that network devices are incapable of retrieving any file system or other file-related information from the file handle.
- the steps of a procedure 500 for initially creating an encrypted file handle in accordance with an illustrative embodiment of the present invention is shown in FIG. 5 .
- the procedure begins in step 505 which can be initiated by receipt of a file-based protocol Open command by the storage operating system.
- the procedure 500 then proceeds to step 510 where a client sends a file open request to the file server.
- This open request is directed to a specific file being managed by the file server and may be sent using any acceptable file-based protocol. This description is written in terms of the NFS protocol, however it is understood that any protocol may be utilized with the teachings of the present invention.
- the file server in step 515 , opens the requested file and generates a file handle using conventional file system routines and procedures.
- the file server encrypts the file handle in step 520 .
- This encryption may occur using any encryption method, including, for example, a known private key or public key encryption system.
- only the file server will decrypt the file handle.
- the file server may select as a key any acceptable key.
- the file server may hash using a conventional hash function the date and/or time to generate an encryption key.
- the server may utilize any of several well-known private key or public key encryption algorithms, such as DES, to encrypt the file handle. Since the file handle is both encrypted and decrypted by the server, and never decrypted by the client, a private key algorithm will be simplest to implement.
- the file server optionally adds a new entry to the hash table.
- This new entry identifies the file handle, the encrypted file handle and a hash key.
- the hash key may be a subset of bits of the encrypted file handle or may be computed from the encrypted file handle using a variety of methods.
- a hash table is optional and for exemplary purposes only.
- the storage system does not maintain copies of the encrypted file handles. In such an embodiment, all incoming encrypted file handles will need to be decrypted.
- other data structures such as a B-tree, may be utilized to store the encrypted file handle. In those alternative embodiments, the data structure, for example a B-tree, is populated in place of the hash tree in this step of the procedure.
- the file server After the hash table has been updated, the file server then returns an encrypted file handle to the client in step 530 .
- the file server returns the encrypted file handle using conventional file system procedures. Once the encrypted file handle has been returned to the client, the procedure is complete (step 535 ).
- the file protocol layer removes the appropriate file handle entry from the hash table.
- a client desires to access a file, it returns the encrypted file handle to the file server as if it was a conventional unencrypted file handle.
- the steps of a procedure 600 performed by the file server in response to such a procedure is shown in FIG. 6 .
- the procedure begins in step 605 and proceeds to step 610 where the client sends the encrypted file handle to the file server. This may be in the context of a read or write operation or may be for any file system operation that requires a file handle to identify the file to be operated upon.
- step 612 the procedure determines if a hash table is being used and if no hash table is being used, the procedure then branches to step 613 where the file server decrypts the received encrypted file handle.
- the file server uses the selected subset of the encrypted file handle as a hash key to locate an entry in the hash table (step 615 ) if one exists.
- step 617 the file server determines if an entry was found in the hash table. If no entry was found, then the hash table or other data structure is not complete and the procedure branches to step 613 to decrypt the received file handle.
- the file server compares the received encrypted file handle with the encrypted file handle that is stored in the hash table associated with the entry affiliated with the hash key in step 620 . This comparison is utilized to verify that the proper entry has been selected in the event that a plurality of entries has identical hash keys.
- steps 612 , 615 , 617 and 620 are exemplary only.
- the fileserver may decrypt the encrypted file handle.
- the file server may maintain a look up table that includes a complete set of pairs of encrypted file handles and their clear text counterparts. In such an embodiment, no received encrypted file handles are actually decrypted as the file server utilizes the look up table.
- the file server then utilizes, in step 625 , the decrypted file handle to identify the requested file.
- This decrypted file handle is passed to other layers or procedures within the file protocol layer to perform the requested operation.
- the procedure is then complete in step 630 .
- clients of the file server utilizing the teachings of the present invention only have access to the encrypted file handle. As such, clients will be unable to obtain file system or file protocol information from the file handle. This reduces the capability of a network attacker from being able to masquerade as an authorized user of a given file.
- the encryption key does not need to be distributed, thereby eliminating the need for a key distribution and management system.
- the file server's cluster partner must have access to the encryption key.
- the file server's cluster partner requires the key to be able to successfully accomplish a failover operation should one of the file servers in a cluster encounter an error condition.
- the cluster partner file server may receive the encryption key via any form of secure communication including, for example, an encrypted message from the cluster partner's file server.
- the administrator may set the file server encryption key to be common among all members of a cluster of servers, where the servers are cooperating in such a way that the encrypted file handle may, under certain circumstances, be presented to any of the servers. More generally, the encryption key must be available to any network device that could legitimately see the file handle. Such devices must be able to properly associate the encryption key to the file handle.
- the present invention is directed to a system and method for making file handles opaque to clients and other devices in a network.
- a file handle is initially generated at the request of a client of a file server opening a specified file
- the file handle is encrypted.
- this encrypted file handle, along with a hash key and a decrypted file handle are stored in a hash table in the file server.
- the client transmits the encrypted file handle to the file server in conjunction with a file protocol operation.
- the file server utilizes the hash key, which in the illustrative embodiment is a subset of bits of the encrypted file handle, to identity an entry in its hash table.
- the received encrypted file handle is then compared against a stored copy of the encrypted file handle in the hash table to verify that the correct entry has been identified. Once the correct entry has been identified, the file server utilizes the unencrypted version of the file handle stored in the hash table for use in processing the file service or file operation request from the client.
- no hash table or other lookup table or data structure is utilized. Instead, each received encrypted file handle is individually decrypted before being utilized by the file server to identify a given file.
- data structures other than a hash table including, for example, a B-tree, may be utilized to store pairs of encrypted file handles and their decrypted counterparts.
- the file server may maintain a complete lookup table of each encrypted file handle and its associated unencrypted counterpart. In such an alternate embodiment, whenever an encrypted file handle is received, the file server utilizes the lookup table to identify the decrypted file handle for use in performing the requested file system operation.
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
Description
Claims (29)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/423,591 US7603553B1 (en) | 2003-04-25 | 2003-04-25 | System and method to make file handles opaque to clients |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US10/423,591 US7603553B1 (en) | 2003-04-25 | 2003-04-25 | System and method to make file handles opaque to clients |
Publications (1)
Publication Number | Publication Date |
---|---|
US7603553B1 true US7603553B1 (en) | 2009-10-13 |
Family
ID=41138110
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US10/423,591 Expired - Lifetime US7603553B1 (en) | 2003-04-25 | 2003-04-25 | System and method to make file handles opaque to clients |
Country Status (1)
Country | Link |
---|---|
US (1) | US7603553B1 (en) |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070300081A1 (en) * | 2006-06-27 | 2007-12-27 | Osmond Roger F | Achieving strong cryptographic correlation between higher level semantic units and lower level components in a secure data storage system |
US20080016341A1 (en) * | 2006-07-12 | 2008-01-17 | Palo Alto Research Center Incorporated. | Method, apparatus, and program product for enabling access to flexibly redacted content |
US20080016372A1 (en) * | 2006-07-12 | 2008-01-17 | Palo Alto Research Center Incorporated | Method, apparatus, and program product for revealing redacted information |
US20080046757A1 (en) * | 2006-07-12 | 2008-02-21 | Palo Alto Research Center Incorporated | Method, Apparatus, and Program Product for Flexible Redaction of Content |
US20090172786A1 (en) * | 2007-12-28 | 2009-07-02 | Bruce Backa | Encryption Sentinel System and Method |
US8281143B1 (en) * | 2008-09-29 | 2012-10-02 | Symantec Operating Corporation | Protecting against chosen plaintext attacks in untrusted storage environments that support data deduplication |
US8479304B1 (en) | 2009-03-31 | 2013-07-02 | Symantec Corporation | Selectively protecting against chosen plaintext attacks in untrusted storage environments that support data deduplication |
US20130232507A1 (en) * | 2012-03-02 | 2013-09-05 | Augustin J. Farrugia | Data protection for opaque data structures |
US8566952B1 (en) * | 2009-12-24 | 2013-10-22 | Intuit Inc. | System and method for encrypting data and providing controlled access to encrypted data with limited additional access |
US20240007470A1 (en) * | 2017-10-19 | 2024-01-04 | International Business Machines Corporation | Secure access management for tools within a secure environment |
Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5163131A (en) | 1989-09-08 | 1992-11-10 | Auspex Systems, Inc. | Parallel i/o network file server architecture |
US5485579A (en) | 1989-09-08 | 1996-01-16 | Auspex Systems, Inc. | Multiple facility operating system architecture |
US5742817A (en) * | 1995-12-08 | 1998-04-21 | Emc Corporation | Method and apparatus for file server addressing |
US5819292A (en) | 1993-06-03 | 1998-10-06 | Network Appliance, Inc. | Method for maintaining consistent states of a file system and for creating user-accessible read-only copies of a file system |
US5897637A (en) * | 1997-03-07 | 1999-04-27 | Apple Computer, Inc. | System and method for rapidly identifying the existence and location of an item in a file |
US5941972A (en) | 1997-12-31 | 1999-08-24 | Crossroads Systems, Inc. | Storage router and method for providing virtual local storage |
US5948110A (en) | 1993-06-04 | 1999-09-07 | Network Appliance, Inc. | Method for providing parity in a raid sub-system using non-volatile memory |
US5950225A (en) | 1997-02-28 | 1999-09-07 | Network Appliance, Inc. | Fly-by XOR for generating parity for data gleaned from a bus |
US5963962A (en) | 1995-05-31 | 1999-10-05 | Network Appliance, Inc. | Write anywhere file-system layout |
US6038570A (en) | 1993-06-03 | 2000-03-14 | Network Appliance, Inc. | Method for allocating files in a file system integrated with a RAID disk sub-system |
US6138126A (en) | 1995-05-31 | 2000-10-24 | Network Appliance, Inc. | Method for allocating files in a file system integrated with a raid disk sub-system |
US20020019851A1 (en) * | 2000-07-26 | 2002-02-14 | Jordan Pollack | System and method for the electronic mail based management and manipulation of stored files |
US6505236B1 (en) * | 1999-04-30 | 2003-01-07 | Thinmail, Inc. | Network-based mail attachment storage system and method |
US20030061278A1 (en) * | 2001-09-27 | 2003-03-27 | International Business Machines Corporation | Addressing the name space mismatch between content servers and content caching systems |
US20030088783A1 (en) * | 2001-11-06 | 2003-05-08 | Dipierro Massimo | Systems, methods and devices for secure computing |
US20040117600A1 (en) * | 2002-12-12 | 2004-06-17 | Nexsil Communications, Inc. | Native Lookup Instruction for File-Access Processor Searching a Three-Level Lookup Cache for Variable-Length Keys |
-
2003
- 2003-04-25 US US10/423,591 patent/US7603553B1/en not_active Expired - Lifetime
Patent Citations (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5931918A (en) | 1989-09-08 | 1999-08-03 | Auspex Systems, Inc. | Parallel I/O network file server architecture |
US5355453A (en) | 1989-09-08 | 1994-10-11 | Auspex Systems, Inc. | Parallel I/O network file server architecture |
US5485579A (en) | 1989-09-08 | 1996-01-16 | Auspex Systems, Inc. | Multiple facility operating system architecture |
US5163131A (en) | 1989-09-08 | 1992-11-10 | Auspex Systems, Inc. | Parallel i/o network file server architecture |
US5802366A (en) | 1989-09-08 | 1998-09-01 | Auspex Systems, Inc. | Parallel I/O network file server architecture |
US6065037A (en) | 1989-09-08 | 2000-05-16 | Auspex Systems, Inc. | Multiple software-facility component operating system for co-operative processor control within a multiprocessor computer system |
US6289356B1 (en) | 1993-06-03 | 2001-09-11 | Network Appliance, Inc. | Write anywhere file-system layout |
US5819292A (en) | 1993-06-03 | 1998-10-06 | Network Appliance, Inc. | Method for maintaining consistent states of a file system and for creating user-accessible read-only copies of a file system |
US6038570A (en) | 1993-06-03 | 2000-03-14 | Network Appliance, Inc. | Method for allocating files in a file system integrated with a RAID disk sub-system |
US5948110A (en) | 1993-06-04 | 1999-09-07 | Network Appliance, Inc. | Method for providing parity in a raid sub-system using non-volatile memory |
US6138126A (en) | 1995-05-31 | 2000-10-24 | Network Appliance, Inc. | Method for allocating files in a file system integrated with a raid disk sub-system |
US5963962A (en) | 1995-05-31 | 1999-10-05 | Network Appliance, Inc. | Write anywhere file-system layout |
US5742817A (en) * | 1995-12-08 | 1998-04-21 | Emc Corporation | Method and apparatus for file server addressing |
US5950225A (en) | 1997-02-28 | 1999-09-07 | Network Appliance, Inc. | Fly-by XOR for generating parity for data gleaned from a bus |
US5897637A (en) * | 1997-03-07 | 1999-04-27 | Apple Computer, Inc. | System and method for rapidly identifying the existence and location of an item in a file |
US5941972A (en) | 1997-12-31 | 1999-08-24 | Crossroads Systems, Inc. | Storage router and method for providing virtual local storage |
US6425035B2 (en) | 1997-12-31 | 2002-07-23 | Crossroads Systems, Inc. | Storage router and method for providing virtual local storage |
US6505236B1 (en) * | 1999-04-30 | 2003-01-07 | Thinmail, Inc. | Network-based mail attachment storage system and method |
US20020019851A1 (en) * | 2000-07-26 | 2002-02-14 | Jordan Pollack | System and method for the electronic mail based management and manipulation of stored files |
US20030061278A1 (en) * | 2001-09-27 | 2003-03-27 | International Business Machines Corporation | Addressing the name space mismatch between content servers and content caching systems |
US20030088783A1 (en) * | 2001-11-06 | 2003-05-08 | Dipierro Massimo | Systems, methods and devices for secure computing |
US20040117600A1 (en) * | 2002-12-12 | 2004-06-17 | Nexsil Communications, Inc. | Native Lookup Instruction for File-Access Processor Searching a Three-Level Lookup Cache for Variable-Length Keys |
Non-Patent Citations (3)
Title |
---|
Common Internet File System (CIFS) Version: CIFS-Spec 0.9, Storage Networking Industry Association (SNIA), Draft SNIA CIFS Documentation Work Group Work-in-Progress, Revision Date: Mar. 26, 2001. |
David Hitz et al. TR3002 File System Design for a NFS File Server Appliance published by Network Appliance, Inc. |
Fielding et al. (1999) Request for Comments (RPC) 2616, HTTP/1.1. |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8185751B2 (en) * | 2006-06-27 | 2012-05-22 | Emc Corporation | Achieving strong cryptographic correlation between higher level semantic units and lower level components in a secure data storage system |
US20070300081A1 (en) * | 2006-06-27 | 2007-12-27 | Osmond Roger F | Achieving strong cryptographic correlation between higher level semantic units and lower level components in a secure data storage system |
US20080016341A1 (en) * | 2006-07-12 | 2008-01-17 | Palo Alto Research Center Incorporated. | Method, apparatus, and program product for enabling access to flexibly redacted content |
US20080016372A1 (en) * | 2006-07-12 | 2008-01-17 | Palo Alto Research Center Incorporated | Method, apparatus, and program product for revealing redacted information |
US20080046757A1 (en) * | 2006-07-12 | 2008-02-21 | Palo Alto Research Center Incorporated | Method, Apparatus, and Program Product for Flexible Redaction of Content |
US7861096B2 (en) * | 2006-07-12 | 2010-12-28 | Palo Alto Research Center Incorporated | Method, apparatus, and program product for revealing redacted information |
US7865742B2 (en) | 2006-07-12 | 2011-01-04 | Palo Alto Research Center Incorporated | Method, apparatus, and program product for enabling access to flexibly redacted content |
US7873838B2 (en) * | 2006-07-12 | 2011-01-18 | Palo Alto Research Center Incorporated | Method, apparatus, and program product for flexible redaction of content |
US20090172786A1 (en) * | 2007-12-28 | 2009-07-02 | Bruce Backa | Encryption Sentinel System and Method |
US8347359B2 (en) * | 2007-12-28 | 2013-01-01 | Bruce Backa | Encryption sentinel system and method |
US8997185B2 (en) | 2007-12-28 | 2015-03-31 | Bruce R. Backa | Encryption sentinel system and method |
US8281143B1 (en) * | 2008-09-29 | 2012-10-02 | Symantec Operating Corporation | Protecting against chosen plaintext attacks in untrusted storage environments that support data deduplication |
US8479304B1 (en) | 2009-03-31 | 2013-07-02 | Symantec Corporation | Selectively protecting against chosen plaintext attacks in untrusted storage environments that support data deduplication |
US8566952B1 (en) * | 2009-12-24 | 2013-10-22 | Intuit Inc. | System and method for encrypting data and providing controlled access to encrypted data with limited additional access |
US20130232507A1 (en) * | 2012-03-02 | 2013-09-05 | Augustin J. Farrugia | Data protection for opaque data structures |
US9424049B2 (en) * | 2012-03-02 | 2016-08-23 | Apple Inc. | Data protection for opaque data structures |
US20240007470A1 (en) * | 2017-10-19 | 2024-01-04 | International Business Machines Corporation | Secure access management for tools within a secure environment |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9578097B2 (en) | Block based access to a dispersed data storage network | |
US9547774B2 (en) | System and method for distributed deduplication of encrypted chunks | |
US9104541B2 (en) | Obtaining a signed certificate for a dispersed storage network | |
US8185614B2 (en) | Systems, methods, and apparatus for identifying accessible dispersed digital storage vaults utilizing a centralized registry | |
US8861727B2 (en) | Storage of sensitive data in a dispersed storage network | |
Storer et al. | Secure data deduplication | |
US10270855B2 (en) | Integrated client for use with a dispersed data storage network | |
US7539867B2 (en) | On-disk file format for a serverless distributed file system | |
US7953771B2 (en) | Virtualized data storage vaults on a dispersed data storage network | |
US8621240B1 (en) | User-specific hash authentication | |
US7478243B2 (en) | On-disk file format for serverless distributed file system with signed manifest of file modifications | |
US8209363B2 (en) | File system adapted for use with a dispersed data storage network | |
US8719923B1 (en) | Method and system for managing security operations of a storage server using an authenticated storage module | |
US20100169500A1 (en) | Systems, methods, and apparatus for matching a connection request with a network interface adapted for use with a with a dispersed data storage network | |
US20140310492A1 (en) | Dispersed storage network with metadata generation and methods for use therewith | |
WO2007084758A2 (en) | System and methods for secure digital data archiving and access auditing | |
US20200052901A1 (en) | Secure audit scheme in a distributed data storage system | |
US7603553B1 (en) | System and method to make file handles opaque to clients | |
Lin et al. | A novel secure distributed disk system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
STCF | Information on status: patent grant |
Free format text: PATENTED CASE |
|
CC | Certificate of correction | ||
FEPP | Fee payment procedure |
Free format text: PAYOR NUMBER ASSIGNED (ORIGINAL EVENT CODE: ASPN); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY |
|
FPAY | Fee payment |
Year of fee payment: 4 |
|
AS | Assignment |
Owner name: NETAPP, INC., CALIFORNIA Free format text: CHANGE OF NAME;ASSIGNOR:NETWORK APPLIANCE, INC.;REEL/FRAME:036591/0058 Effective date: 20080310 |
|
FPAY | Fee payment |
Year of fee payment: 8 |
|
MAFP | Maintenance fee payment |
Free format text: PAYMENT OF MAINTENANCE FEE, 12TH YEAR, LARGE ENTITY (ORIGINAL EVENT CODE: M1553); ENTITY STATUS OF PATENT OWNER: LARGE ENTITY Year of fee payment: 12 |
|
AS | Assignment |
Owner name: NETAPP, INC., CALIFORNIA Free format text: CHANGE OF NAME;ASSIGNOR:NETWORK APPLIANCE, INC.;REEL/FRAME:067983/0111 Effective date: 20080317 |