New answers tagged key-exchange
Certificate Pinning is another commonly used control against Data-in-transit attacks. The TLS handshake never starts if the client doesn't receive a Public Key that is within the client's (the mobile app) known Pin List. I used Cert Pinning as a compliment to payload encryption. Perhaps the following are becoming the base standard for sensitive mobile app ...
You can solve this by using deployment tools such as Chef or Ansible. Particularly about Chef, you have the Chef Push to push whatever cookbook (i.e. the key files) to all the nodes (i.e. the servers).
You should not deploy your own encryption scheme for this, neither share symetric keys with multiple parties. To protect data on transit between each client and the server, you should use TLS to protect those connections. TLS will take care of symetric key agreement and encryption decryption to each client the right way, avoiding many many things you are ...
This thing should be simple. First you need a crypto library like openssl. If there is a registration phase, you could have the clients generate a pair of private/public keys, (DH or RSA, using openssl) then announce the public part on the server, also called client certificate. And that's it. On every new client-server connection, a symmetric key ...
Top 50 recent answers are included