Mechanism for multi-factor authentication based on data
A request is received from a client seeking to access files stored at a backup server. A first tree is received for the request. The first tree represents hashes of files stored at the client. A second tree is generated representing hashes of the files stored at the backup server. The first and second trees are compared to assess a degree of similarity between the files stored at the client and the files stored at the backup server. The user is denied access to the files stored at the backup server when the degree of similarity is below a threshold.
1. A method of authenticating a user at a client to a backup server comprising:
receiving, from the client, a request to access one or more files of a set of files stored at the backup server;
receiving, for the request, a first tree representing hashes of a set of files stored at the client;
generating a second tree representing hashes of the set of files stored at the backup server;
comparing the first tree against the second tree to assess a degree of similarity between the set of files stored at the client and the set of files stored at the backup server; and
denying the user access to the set of files stored at the backup server when the degree of similarity is below a threshold.
2. The method of claim 1 further comprising generating each of the first and second tree by:
assigning single-digit hexadecimal values to nodes in an upper level of each tree;
assigning two-digit hexadecimal values to leaves in a lower level of each tree;
obtaining hashes of files in each set of files;
allocating each respective set of files across a respective tree by matching first and second digits of the hashes to the nodes having the single-digit hexadecimal values and the leaves having the two-digit hexadecimal values, the leaves comprising pointers to hash lists in which the hashes are stored; and
applying, for each leaf of the respective tree, an XOR function to hashes stored in a hash list referenced by a leaf of the respective tree.
3. The method of claim 1 further comprising:
receiving access credentials from the user at the client seeking to access the one or more files of the set of files stored at the backup server;
determining that the access credentials are valid; and
after the determination, issuing a request to the client for the first tree.
4. The method of claim 1 wherein the degree of similarity indicates a percentage of files between the set of files stored at the client and the set of files stored at the backup server that are the same.
5. The method of claim 1 further comprising:
allowing the user access to the set of files stored at the backup server when the degree of similarity is above the threshold and a determination is made that access credentials input by the user at the client are valid.
6. The method of claim 1 wherein the authenticating comprises not transmitting the set of files stored at the client to the backup server.
7. A system for authenticating a user at a client to a backup server comprising: a processor; and memory configured to store one or more sequences of instructions which, when executed by the processor, cause the processor to carry out the steps of:
receiving, from the client, a request to access one or more files of a set of files stored at the backup server;
receiving, for the request, a first tree representing hashes of a set of files stored at the client;
generating a second tree representing hashes of the set of files stored at the backup server;
comparing the first tree against the second tree to assess a degree of similarity between the set of files stored at the client and the set of files stored at the backup server; and
denying the user access to the set of files stored at the backup server when the degree of similarity is below a threshold.
8. The system of claim 7 wherein the processor further carries out the steps of generating each of the first and second tree by:
assigning single-digit hexadecimal values to nodes in an upper level of each tree;
assigning two-digit hexadecimal values to leaves in a lower level of each tree;
obtaining hashes of files in each set of files;
allocating each respective set of files across a respective tree by matching first and second digits of the hashes to the nodes having the single-digit hexadecimal values and the leaves having the two-digit hexadecimal values, the leaves comprising pointers to hash lists in which the hashes are stored; and
applying, for each leaf of the respective tree, an XOR function to hashes stored in a hash list referenced by a leaf of the respective tree.
9. The system of claim 7 wherein the processor further carries out the steps of:
receiving access credentials from the user at the client seeking to access the one or more files of the set of files stored at the backup server;
determining that the access credentials are valid; and
after the determination, issuing a request to the client for the first tree.
10. The system of claim 7 wherein the degree of similarity indicates a percentage of files between the set of files stored at the client and the set of files stored at the backup server that are the same.
11. The system of claim 7 wherein the processor further carries out the steps of:
allowing the user access to the set of files stored at the backup server when the degree of similarity is above the threshold and a determination is made that access credentials input by the user at the client are valid.
12. The system of claim 7 wherein the authenticating comprises not transmitting the set of files stored at the client to the backup server.
13. A computer program product, comprising a non-transitory computer-readable medium having a computer-readable program code embodied therein, the computer-readable program code adapted to be executed by one or more processors to implement a method of authenticating a user at a client to a backup server, the method comprising:
receiving, from the client, a request to access one or more files of a set of files stored at the backup server;
receiving, for the request, a first tree representing hashes of a set of files stored at the client;
generating a second tree representing hashes of the set of files stored at the backup server;
comparing the first tree against the second tree to assess a degree of similarity between the set of files stored at the client and the set of files stored at the backup server; and
denying the user access to the set of files stored at the backup server when the degree of similarity is below a threshold.
14. The computer program product of claim 13 wherein the method further comprises generating each of the first and second tree by:
assigning single-digit hexadecimal values to nodes in an upper level of each tree;
assigning two-digit hexadecimal values to leaves in a lower level of each tree;
obtaining hashes of files in each set of files;
allocating each respective set of files across a respective tree by matching first and second digits of the hashes to the nodes having the single-digit hexadecimal values and the leaves having the two-digit hexadecimal values, the leaves comprising pointers to hash lists in which the hashes are stored; and
applying, for each leaf of the respective tree, an XOR function to hashes stored in a hash list referenced by a leaf of the respective tree.
15. The computer program product of claim 13 wherein the method further comprises:
receiving access credentials from the user at the client seeking to access the one or more files of the set of files stored at the backup server;
determining that the access credentials are valid; and
after the determination, issuing a request to the client for the first tree.
16. The computer program product of claim 13 wherein the degree of similarity indicates a percentage of files between the set of files stored at the client and the set of files stored at the backup server that are the same.
17. The computer program product of claim 13 wherein the method further comprises:
allowing the user access to the set of files stored at the backup server when the degree of similarity is above the threshold and a determination is made that access credentials input by the user at the client are valid.
18. The computer program product of claim 13 wherein the authenticating comprises not transmitting the set of files stored at the client to the backup server.