You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
While trying to make encryption optional I noticed one thing. What I'm going to write here is just a suggestion, and I might be totally wrong in my judgements, since I'm not that familiar with the code. This func here:
. This func is called on each client->client packet if I get it right. What looks wrong to me in this func:
We decrypt incoming package, perform all sorts of checks, encrypt and resend to the responding client. Would it hurt if we removed decryption/encryption part from here? This way during handshake server must transfer pub keys of clients to them each other. So client A encrypts, sends to the server, server sends to client B and client B decrypts. No ecnryption/decryption on the server side
This func also verifies request, which includes verifiying the object signature. Do we really need the signature?
We also calculate and compare request hash there. Is this needed too? If it's intended to check for data loss during transfer, I guess we shouldn't care about it as long as we use TCP
Probably we could also use something like SSL handshake. During handshake clients via server exchange their pub keys, generate 2 halves of a common symetric key, exchange it with PK-encrypted messages. After that point all the messaging may be encrypted with a single symmetric key which should be more performant. But not sure about this part, just a suggestion
The text was updated successfully, but these errors were encountered:
This func is called on each client->client packet if I get it right.
I agree with everything you are saying except this statement. This function is only called to setup a stream. After the stream is set up, client->client communication (via the stream) is handled elsewhere.
While trying to make encryption optional I noticed one thing. What I'm going to write here is just a suggestion, and I might be totally wrong in my judgements, since I'm not that familiar with the code. This func here:
dmsg/server_session.go
Line 68 in f50a251
Probably we could also use something like SSL handshake. During handshake clients via server exchange their pub keys, generate 2 halves of a common symetric key, exchange it with PK-encrypted messages. After that point all the messaging may be encrypted with a single symmetric key which should be more performant. But not sure about this part, just a suggestion
The text was updated successfully, but these errors were encountered: