|
2 年之前 | |
---|---|---|
.github/workflows | 2 年之前 | |
common-api | 2 年之前 | |
example | 2 年之前 | |
web-client | 2 年之前 | |
.dockerignore | 2 年之前 | |
.gitignore | 2 年之前 | |
Cargo.toml | 2 年之前 | |
Dockerfile | 2 年之前 | |
README.md | 2 年之前 | |
docker-compose.yml | 2 年之前 |
Commonly used API among different dependencies. For example key-exchange-server
It’s a client that exchange keys between meeting moderator and participants.
To achieve solid security used blockchain as a trust point for establishing secure channels between moderator
and participant
. Each user in a blockchain has an ED25519
PublicKey. For creating a secure channel Diffie–Hellman algorithm is used, provided by Dalek cryptography. Unfortunately, it’s not possible to exchange keys with ED25519
keys, because it is using a Edwards
point, and for algorithm needs a Montgomery
point. For this purpose, conversion happened here.
NOTE! Used the maximum key length for each algorithm
Then we have proper keys for the Diffie–Hellman exchange. Let’s create out secret with dhx. After we need to provide a uniformly distributed secret key. For this purpose used a KDF algorithm blake3
. Here is an implementation.
The next stage is to pass a randomly generated key in a secure way for each participant. To do this let’s encrypt generated key with a just generated after KDF secure key, that is unique for each participant = moderator
pair. Encrypt randomly generated key by ChaCha20 with a AES-GCM. That’s all.
Please follow the official instructions to use the latest package.
wasm-pack build web-client --target bundler --out-dir ../pkg
Pre requirements:
Clone a key-exchange-server
and near-smartcontracts
.
Deploy their docker instances:
⚠️ Please keep the order(near-smartcontracts
depends on the key-exchange-server
network)
key-exchange-server
: bash docker-compose up -d
near-smartcontracts
: bash docker-compose -f docker-compose.yml -f docker-compose.tests.yml up -d
Then:
docker-compose up