CERTIFICATE-BASED MUTUAL AUTHENTICATION FOR DATA SECURITY
Systems and methods for maintaining data security using client roles, API keys, and certificate-based mutual authentication are presented. A method of protecting sensitive data includes both client authorization techniques and the mutual exchange and verification of certificates between client and server. In one embodiment, access by a client to a server is further limited by temporal constraints, volume constraints, and an end user identity filter.
1 . A method of protecting sensitive data from unauthorized access, said method comprising the computer-implemented steps of:
establishing a plurality of client roles for authorizing access to a set of API functions;
establishing a plurality of API keys for authorizing access to a subset of said set of API functions;
providing a first client role and a first API key to a first client;
receiving from said first client, at a first server, a request for access to a protected API function;
requiring the mutual exchange and verification of certificates between said first client and said first server; and
allowing said request if both said first client role and said first API key authorize access to said protected API function.
2 . The method of claim 1 , further comprising the step of limiting access to said set of API functions by imposing one or more temporal constraints, one or more volume constraints, and/or an end user identity filter.
3 . The method of claim 2 , wherein said one or more temporal constraints is a time-related limit selected from the group consisting of UTC clock time, client's local time of day, server's local time of day, client's local day of the week, and server's local day of the week.
4 . The method of claim 2 , wherein said one or more volume constraints comprises a limit on the quantity of requests by said first client within a predetermined time window.
5 . The method of claim 2 , wherein said end user identity filter comprises a rule permitting the display of masked values only unless an identified end user making said request matches a name on an approved user list.
6 . A method of protecting sensitive data from unauthorized access, said method comprising the computer-implemented steps of:
establishing a plurality of client roles for authorizing access to a set of API functions;
establishing a plurality of API keys for authorizing access to a subset of said set of API functions;
establishing one or more constraints for limiting access to said subset of said set of API functions, said constraints comprising one or more temporal constraints, one or more volume constraints, and an end user identity filter;
assigning a first client role and a first API key to a first client;
receiving from said first client, at a first server, a request for access to a protected API function;
requiring the mutual exchange and verification of certificates between said first client and said first server; and
allowing said request if both said first client role and said first API key authorize access to said protected API function, while also limiting said access by imposing one or more of said one or more constraints.
7 . The method of claim 6 , wherein said one or more temporal constraints is a time-related limit selected from the group consisting of UTC clock time, client's local time of day, server's local time of day, client's local day of the week, and server's local day of the week.
8 . The method of claim 6 , wherein said one or more volume constraints comprises a limit on the quantity of requests by said first client within a predetermined time window.
9 . The method of claim 6 , wherein said end user identity filter comprises a rule permitting the display of masked values only unless an identified end user making said request matches a name on an approved user list.