Systems and methods for improving security in network environments
Systems and methods are described herein for improving security in network environments by dynamically generating access credentials off-line that are resilient to impersonation attempts. For example, the system may receive, at a local token service, a first external request from a remote token service for a first dynamically generated token. The system may retrieve, at the local token service, a first token template for the remote token service. The system may, based on the first token template, select a first object-based storage device and a second object-based storage device. The system may transmit, by the local token service, a first internal request to the first object-based storage device and a second internal request to the second object-based storage device. The system may populate the first token template with the first token portion and the second token portion to generate the first dynamically generated token.
1 . A system for improving security in network environments by dynamically generating access credentials off-line that are resilient to impersonation attempts, the system comprising:
one or more processors; and
one or more non-transitory, computer-readable mediums comprising instructions recorded thereon that when executed by the one or more processors cause operations comprising:
receiving, at a local token service, a first external request from a remote token service for a first dynamically generated token, wherein the local token service comprises a Kubernetes cluster;
retrieving, using a dynamic access token application programming interface at the local token service, a first token template for the remote token service;
based on the first token template, selecting, using the dynamic access token application programming interface, a first object-based storage device and a second object-based storage device, wherein the first object-based storage device and the second object-based storage device share a common object store;
transmitting, by the local token service, a first internal request to the first object-based storage device and a second internal request to the second object-based storage device;
receiving, from the first object-based storage device, a first internal response, wherein the first internal response comprises a first token portion;
receiving, from the second object-based storage device, a second internal response, wherein the second internal response comprises a second token portion;
populating, using the dynamic access token application programming interface, the first token template with the first token portion and the second token portion to generate the first dynamically generated token; and
transmitting a first external response to the remote token service comprising the first dynamically generated token.
2 . A method for improving security in network environments by dynamically generating access credentials off-line that are resilient to impersonation attempts, the method comprising:
receiving, at a local token service, a first external request from a remote token service for a first dynamically generated token;
retrieving, at the local token service, a first token template for the remote token service;
based on the first token template, selecting a first object-based storage device and a second object-based storage device;
transmitting, by the local token service, a first internal request to the first object-based storage device and a second internal request to the second object-based storage device;
receiving, from the first object-based storage device, a first internal response, wherein the first internal response comprises a first token portion;
receiving, from the second object-based storage device, a second internal response, wherein the second internal response comprises a second token portion; and
populating the first token template with the first token portion and the second token portion to generate the first dynamically generated token.
3 . The method of claim 2 , further comprising:
receiving a second external request from the remote token service for a second dynamically generated token;
retrieving, at the local token service, a second token template for the remote token service;
based on the second token template, selecting a third object-based storage device and a fourth object-based storage device;
transmitting a second internal request to the third object-based storage device and a fourth internal request to the fourth object-based storage device;
receiving, from the third object-based storage device, a third internal response, wherein the third internal response comprises a third token portion;
receiving, from the fourth object-based storage device, a fourth internal response, wherein the fourth internal response comprises a fourth token portion; and
populating the second token template with the third token portion and the fourth token portion to generate the second dynamically generated token.
4 . The method of claim 2 , wherein selecting the first object-based storage device based on the first token template further comprises:
retrieving a first object-based storage device identifier for the first object-based storage device; and
inserting the first object-based storage device identifier into the first internal request.
5 . The method of claim 2 , wherein selecting the first object-based storage device based on the first token template further comprises:
retrieving a first job identifier for the first external request; and
inserting the first job identifier into the first internal request.
6 . The method of claim 2 , wherein selecting the first object-based storage device based on the first token template further comprises:
retrieving a first user identifier for the first external request; and
inserting the first user identifier into the first internal request.
7 . The method of claim 2 , wherein selecting the first object-based storage device based on the first token template further comprises:
retrieving a first time window for the first external request; and
inserting the first time window into the first internal request.
8 . The method of claim 2 , wherein selecting the first object-based storage device based on the first token template further comprises:
retrieving a first role based on the first external request; and
inserting the first role into the first internal request.
9 . The method of claim 2 , wherein populating the first token template with the first token portion and the second token portion to generate the first dynamically generated token further comprises:
receiving a first hash value in the first internal response, wherein the first hash value is based on hashing a first portion of the first internal request and first data located at the first object-based storage device; and
determining the first dynamically generated token based on the first hash value.
10 . The method of claim 9 , wherein populating the first token template with the first token portion and the second token portion to generate the first dynamically generated token further comprises:
receiving a second hash value in the second internal response, wherein the second hash value is based on hashing a second portion of the second internal request and second data located at the second object-based storage device; and
determining the first dynamically generated token based on hashing the first hash value and the second hash value.
11 . The method of claim 2 , wherein populating the first token template with the first token portion and the second token portion to generate the first dynamically generated token further comprises:
retrieving a token protocol from the first token template; and
combining the first token portion and the second token portion based on the token protocol.
12 . The method of claim 2 , wherein receiving the first internal response further comprises receiving a first contribution to a multi-party computation, and wherein receiving the second internal response further comprises receiving a second contribution to the multi-party computation.
13 . The method of claim 2 , wherein transmitting the first internal request to the first object-based storage device further comprises:
determining a first bucket name for the first object-based storage device; and
determining a first object key for a location within the first object-based storage device.
14 . The method of claim 2 , wherein retrieving the first token template for the remote token service further comprises:
receiving a first token requirement in the first external request; and
selecting the first token template from a plurality of token templates based on the first token requirement.
15 . One or more non-transitory, computer-readable mediums comprising instructions recorded thereon that when executed by one or more processors cause operations comprising:
receiving, at a local token service, a first external request from a remote token service for a first dynamically generated token;
retrieving, at the local token service, a first token template for the remote token service;
based on the first token template, selecting a first object-based storage device and a second object-based storage device;
transmitting, by the local token service, a first internal request to the first object-based storage device and a second internal request to the second object-based storage device;
receiving, from the first object-based storage device, a first internal response, wherein the first internal response comprises a first token portion;
receiving, from the second object-based storage device, a second internal response, wherein the second internal response comprises a second token portion; and
populating the first token template with the first token portion and the second token portion to generate the first dynamically generated token.
16 . The one or more non-transitory, computer-readable mediums of claim 15 , wherein selecting the first object-based storage device based on the first token template further comprises:
retrieving a first object-based storage device identifier for the first object-based storage device; and
inserting the first object-based storage device identifier into the first internal request.
17 . The one or more non-transitory, computer-readable mediums of claim 15 , wherein selecting the first object-based storage device based on the first token template further comprises:
retrieving a first job identifier for the first external request; and
inserting the first job identifier into the first internal request.
18 . The one or more non-transitory, computer-readable mediums of claim 15 , wherein selecting the first object-based storage device based on the first token template further comprises:
retrieving a first user identifier for the first external request; and
inserting the first user identifier into the first internal request.
19 . The one or more non-transitory, computer-readable mediums of claim 15 , wherein selecting the first object-based storage device based on the first token template further comprises:
retrieving a first time window for the first external request; and
inserting the first time window into the first internal request.
20 . The one or more non-transitory, computer-readable mediums of claim 15 , wherein selecting the first object-based storage device based on the first token template further comprises:
retrieving a first role based on the first external request; and
inserting the first role into the first internal request.