Server-side security for untrusted clients using directory hiding
AssigneeRed Hat Israel, Ltd.
InventorShahar Frank
Life of this patent
Estimating the term…
Abstract
A security mechanism provided by a server protects files in data storage from untrusted clients. In one embodiment, the server generates a filename in response to a request from a client for creating a filename. The filename is associated with a file to be stored in the data storage managed by the server. The server manages a directory that contains the filename, and hides the directory contents from the client. The client is granted access to the file when the client provides the filename associated with the file.
Claims16
A computer-implemented method comprising:
- generating, by a server computer in response to a request from a client of a plurality of clients, a filename for a file to be stored in data storage managed by the server computer;
- storing the filename in a directory containing filenames of a plurality of files stored in the data storage, the directory being accessible to the plurality of clients;
- upon receiving, by the server computer, a first request of the client for a list of the filenames contained in the directory from refraining from providing the list of the file names contained in the directory to the client, wherein refraining from providing the list of the file names comprises removing a list permission from a root directory to prevent the client from viewing the file names of the plurality of files stored in the data storage;
- and
- upon receiving a second request of the client for the file, granting to the client, by the server computer, access to the file when a filename included in the second request matches the filename generated by the server computer for the file and stored in the directory.
A non-transitory computer readable storage medium including instructions that, when executed by a server computer, cause the server computer to perform a method comprising:
- generating, in response to a request from a client of a plurality of clients, a filename for a file to be stored in data storage managed by the server computer;
- storing the filename in a directory containing filenames of a plurality of files stored in the data storage, the directory being accessible to the plurality of clients;
- upon receiving, by the server computer, a first request of the client for a list of the filenames contained in the directory from refraining from providing the list of the file names contained in the directory to the client, wherein refraining from providing the list of the file names comprises removing a list permission from a root directory to prevent the client from viewing the file names of the plurality of files stored in the data storage;
- and
- upon receiving a second request of the client for the file, granting to the client, by the server computer, access to the file when a filename included in the second request matches the filename generated by the server computer for the file and stored in the directory.
A system comprising:
- a server computer coupled to the data storage to manage the files, the server computer to generate, in response to a request from a client of a plurality of clients, a filename for a file to be stored in the data storage, to store the filename in a directory containing filenames of the files stored in the data storage, the directory being accessible to the plurality of clients, to refrain from providing a list of the file names contained in the directory to the client upon receiving a first request of the client for the list of the filenames contained in the directory, wherein refraining from providing the list of the file names comprises removing a list permission from a root directory to prevent the client from viewing the file names of the plurality of files stored in the data storage and to grant, upon receiving a second request of the client for the file, access to the file to the client when a filename included in the second request matches the filename generated by the server computer for the file and stored in the directory.
Dependencies are inferred from the claim text.