Communicating credentials between two operating systems
Systems, methods, and software can be used to provide credentials for a provisioning operation. In some aspects, a method includes: generating, by a first operating system (OS), a first transfer key; sending, from the first OS to a second OS, a random salt by using the first transfer key; generating, by the first OS, a second transfer key by using the random salt; and sending, from the first OS to the second OS, provisioning credentials by using the second transfer key.
1 . A method, comprising:
generating, by a first operating system (OS), a first transfer key;
sending, from the first OS to a second OS, a random salt by using the first transfer key;
generating, by the first OS, a second transfer key by using the random salt;
receiving, by the first OS, a first response from the second OS, wherein the first response comprises data, wherein the data comprises a bitmask, each bit of the bitmask indicates whether a corresponding byte comprises data or filler;
determining, by the first OS, that the data in the first response matches the random salt; and
sending, from the first OS to the second OS, provisioning credentials by using the second transfer key.
2 . The method of claim 1 , wherein the provisioning credentials comprise at least one of a private key of a certificate authority (CA), or a certificate of the CA.
3 . The method of claim 1 , wherein the data comprises an indicator indicating one of a sequential order or a reverse sequential order.
4 . The method of claim 1 , wherein whether the data matches the random salt is determined by performing a hashing function on the random salt to generate a hash result, and determining whether the hash result matches the data.
5 . The method of claim 1 , wherein the first OS and the second OS run on a same device, and the first OS and the second OS perform a multiple Transport Layer Security (mTLS) process.
6 . The method of claim 1 , wherein the provisioning credentials comprise at least one of an entity private key or an entity public key.
7 . The method of claim 1 , wherein the provisioning credentials comprise at least one of an entity certificate or an key encryption key.
8 . A non-transitory computer-readable medium containing instructions which, when executed, cause an electronic device to perform operations comprising:
generating, by a first operating system (OS), a first transfer key;
sending, from the first OS to a second OS, a random salt by using the first transfer key;
generating, by the first OS, a second transfer key by using the random salt;
receiving, by the first OS, a first response from the second OS, wherein the first response comprises data, wherein the data comprises a bitmask, each bit of the bitmask indicates whether a corresponding byte comprises data or filler;
determining, by the first OS, that the data in the first response matches the random salt; and
sending, from the first OS to the second OS, provisioning credentials by using the second transfer key.
9 . The computer-readable medium of claim 8 , wherein the provisioning credentials comprise at least one of a private key of a certificate authority (CA), or a certificate of the CA.
10 . The computer-readable medium of claim 8 , wherein the data comprises an indicator indicating one of a sequential order or a reverse sequential order.
11 . The computer-readable medium of claim 8 , wherein whether the data matches the random salt is determined by performing a hashing function on the random salt to generate a hash result, and determining whether the hash result matches the data.
12 . The computer-readable medium of claim 8 , wherein the first OS and the second OS run on a same device, and the first OS and the second OS perform a multiple Transport Layer Security (mTLS) process.
13 . The computer-readable medium of claim 8 , wherein the provisioning credentials comprise at least one of an entity private key or an entity public key.
14 . A computer-implemented system, comprising:
one or more computers; and
one or more computer memory devices interoperably coupled with the one or more computers and having tangible, non-transitory, machine-readable media storing one or more instructions that, when executed by the one or more computers, perform one or more operations comprising:
generating, by a first operating system (OS), a first transfer key;
sending, from the first OS to a second OS, a random salt by using the first transfer key;
generating, by the first OS, a second transfer key by using the random salt;
receiving, by the first OS, a first response from the second OS, wherein the first response comprises data, wherein the data comprises an indicator indicating one of a sequential order or a reverse sequential order;
determining, by the first OS, that the data in the first response matches the random salt; and
sending, from the first OS to the second OS, provisioning credentials by using the second transfer key.
15 . The computer-implemented system of claim 14 , wherein the provisioning credentials comprise at least one of a private key of a certificate authority (CA), or a certificate of the CA.
16 . The computer-implemented system of claim 14 , wherein the data comprises a bitmask, each bit of the bitmask indicates whether a corresponding byte comprises data or filler.
17 . The computer-implemented system of claim 15 , wherein whether the data matches the random salt is determined by performing a hashing function on the random salt to generate a hash result, and determining whether the hash result matches the data.
18 . The computer-implemented system of claim 14 , wherein the first OS and the second OS run on a same device, and the first OS and the second OS perform a multiple Transport Layer Security (mTLS) process.
19 . The computer-implemented system of claim 14 , wherein the provisioning credentials comprise at least one of an entity private key or an entity public key.
20 . The computer-implemented system of claim 14 , wherein the provisioning credentials comprise at least one of an entity certificate or an key encryption key.