Re:Tanker: End-to-End Encryption SDK for JavaScript
by dieblur on Wednesday May 22, 2019 @11:27AM
(#19982232)
What algorithms? Pretty bare README for a cryptography project.
Re:Tanker: End-to-End Encryption SDK for JavaScript
by blastrock on Wednesday May 22, 2019 @11:38AM
(#19982335)
Tanker developer here. We use libsodium as our underlying cryptographic library. It uses XChacha20/Poly1305 for symmetric encryption, Curve25519 for asymmetric encryption and signature, and Blake2 for hashing.
Re:Tanker: End-to-End Encryption SDK for JavaScript
by dieblur on Wednesday May 22, 2019 @02:22PM
(#19983945)
Why would I use your library over the tried and true https://github.com/dchest/tweetnacl-js
?
Re:Tanker: End-to-End Encryption SDK for JavaScript
by blastrock on Wednesday May 22, 2019 @03:10PM
(#19984442)
TweetNaCl is roughly equivalent to libsodium, on which Tanker builds. Tanker is easier to integrate into your app because it takes care of key sharing, multi-devices, user group managment, etc. These are all things you would have to handle by yourself using just a cryptographic library like TweetNaCl.
Re:Tanker: End-to-End Encryption SDK for JavaScript
by mekane8 on Wednesday May 22, 2019 @12:14PM
(#19982719)
Can you describe (briefly, in plain english) how it is able to securely encrypt on the client side? i.e. how does it hide its secret key from prying eyes?
Re:Tanker: End-to-End Encryption SDK for JavaScript
by TankerHQ on Wednesday May 22, 2019 @12:58PM
(#19983101)
The keys are generated client-side, and encryption is done client-side, the encrypted data is then sent to the app. On sharing, the key is encrypted for the recipient and sent to them through the Tanker server.
Neither Tanker nor the app can see the clear data or keys.
Re:Tanker: End-to-End Encryption SDK for JavaScript
by ricardobeat on Wednesday May 22, 2019 @01:09PM
(#19983195)
This doesn’t answer the question. How come the app cannot see the keys? What about the key used to encrypt the client side key?
Re:Tanker: End-to-End Encryption SDK for JavaScript
by t2riRXawYxLGGYb on Wednesday May 22, 2019 @03:09PM
(#19984433)
This really does answer the question, spot on. The client side app does see the key(s) but it does not send them to the server. This is how E2E encryption works, browser or otherwise.
I'm not sure specifically how Tanker is storing the client-side keys. Generally the client-side keys would be encrypted using an OS-level keychain.
Re:Tanker: End-to-End Encryption SDK for JavaScript
by dmerej on Thursday May 23, 2019 @08:32AM
(#19991052)
Hi, other Tanker dev here. In the browser, we use IndexedDB (via dexie). Keys are encrypted using a secret that has to be provided when starting a Tanker session.
On mobile we use an SQLCipher DB encrypted with the same secret.
The SDK handles key exchanges, cryptographic operations, and identity verification for you.
Also available for iOS and Android!