From 97ecc71daaf42d0ea4aa1c9932f861f99b71cd0e Mon Sep 17 00:00:00 2001 From: Krish1979 <39480483+Krish1979@users.noreply.github.com> Date: Wed, 8 May 2019 16:32:01 +0100 Subject: [PATCH] Update Old Permissioning.md --- docs/Permissioning/Old Permissioning.md | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/docs/Permissioning/Old Permissioning.md b/docs/Permissioning/Old Permissioning.md index 53241593e..589bf2990 100644 --- a/docs/Permissioning/Old Permissioning.md +++ b/docs/Permissioning/Old Permissioning.md @@ -22,21 +22,3 @@ Sample file: (node id truncated for clarity) !!! Note In the current implementation, every node has its own copy of the `permissioned-nodes.json` file. In this case, if different nodes have a different list of remote keys then each node may have a different list of permissioned nodes - which may have an adverse effect. In a future release, the permissioned nodes list will be moved from the `permissioned-nodes.json` file to a Smart Contract, thereby ensuring that all nodes will use one global on-chain list to verify network connections. - -## Enclave Encryption Technique -The Enclave encrypts payloads sent to it by the Transaction Manager using xsalsa20poly1305 (payload container) and curve25519xsalsa20poly1305 (recipient box). Each payload encryption produces a payload container, as well as N recipient boxes, where N is the number of recipients specified in the `privateFor` param of the Transaction. - - * A payload container contains the payload encrypted with a symmetric key and a random nonce - * A recipient box is the Master Key for the payload container encrypted for the public key of a recipient using a random nonce. (Note that this is basically how PGP works, but using the [NaCl](https://nacl.cr.yp.to/) cryptographic primitives.) - -We currently manually define all public key whitelists, and don’t do automatic rotation of keys, however the system was built to support rotation trivially, by allowing counterparties to advertise multiple keys at once. The tooling to make it seamless and automatic is on the our Roadmap. -We also do not currently have a PKI system, but simply randomly generate keys that are manually added to whitelists (e.g. a registry of authorized counterparties on the blockchain.) The process is currently for operators to generate a keypair and then add the public keys to the whitelists manually. - -## Private Key Storage Algorithm -The following steps detail the technique used to manage the private keys: - - 1. Given a password P - 2. Generate random Argon2i nonce - 3. Generate random NaCl secretbox nonce - 4. Stretch P using Argon2i (and the Argon2i nonce) into a 32-byte master key (MK) - 5. Encrypt Private key in secretbox using secretbox nonce and Argon2i-stretched MK