From 331676863209d2b98d01ceb563cdf48eb4b908fb Mon Sep 17 00:00:00 2001 From: CapDog <34176400+capitalistdog@users.noreply.github.com> Date: Thu, 8 Jul 2021 12:15:21 -0400 Subject: [PATCH] Update README.md --- README.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/README.md b/README.md index eeccaff3..8d21a294 100644 --- a/README.md +++ b/README.md @@ -69,3 +69,19 @@ docker run shockwallet/api:latest -h 0.0.0.0 -c ### Docker for Raspberry Pi * [Instructions](https://gist.github.com/boufni95/3f4e1f19cf9525c3b7741b7a29f122bc) + + +### Node Security + +Shockwallet authenticates to the API with the keys of the `GUN` user. Where the API itself typically has full macaroon access to LND, we've implemented an extra security measure at user enrollment to whitelist these keys and prevent rogue authentication. + +If installing the ShockAPI onto a pre-existing LND node instance, the decryption passphrase must be proven at user enrollment. This requires LND to be in a locked state when creating the user, and the `GUN` password to be synchronized with the LND decryption phrase. + +The API will verify the defined `GUN` password unlocks LND before completing enrollment, and can thus be used in the future to directly unlock LND from Shockwallet. This will restrict authentication to the API to only this `GUN` key, to change or add alternative user will require repeating this **"lock and enroll"** process. + +There are advanced or testing scenarios where you may wish to bypass this sync and whitelist mechanism, to do so pass the env `TRUSTED_KEYS=false` + +_New LND nodes will automatically use the `GUN` user password as their decryption phrase upon creation._ + + +