security - public key cryptography and authentication for cross-platform network application -


i'm developing network based application control , telemetry on linux based embedded system. i'm using zmq network library , google protocol buffers serialization library communication purposes.

i took @ curvezmq there no official binding c++ , not want mess implementation czmq binding. therefore decided not want use curvezmq extension , i want use external library authentication , encryption.

i want apply following security measurements application/system:

  1. "curve" security mechanism, give me strong encryption on data, , (as far know) unbreakable authentication.
  2. client public key authentication.
  3. i appriciate library binding many programming languages because client application going run on many different platforms.

nice have:

  1. curve25519 elliptic curve cryptography (ecc) algorithm.

i believe can encapsulate handshake messages in protocol buffers messages.. so idea establish secure tunnel between server , client , somehow enforce client , server authentication. below can find how unsecure system working , imagine put encryption layer. not have idea how solve authentication issue @ moment.

here big picture of not secure system.

 ______________________                       ______________________ |                      |                     |                      |  application |        client        |                     |        server        |  layer |      application     |                     |      application     | |______________________|                     |______________________|        /\      ||                                   /\      ||        ||      ||                                   ||      ||  ______||______\/______                       ______||______\/______ |                      |                     |                      |  serialization |       protobuf       |                     |       protobuf       |  deserialization |______________________|                     |______________________|  layer        /\      ||                                   /\      ||        ||      ||                                   ||      ||  ______||______\/______                       ______||______\/______ |                      |                     |                      |  transport | zmq_socket.send(...) |-------------------->| zmq_socket.recv(...) |  layer |                      |      (tcp/ip)       |                      | | zmq_socket.recv(...) |<--------------------| zmq_socket.send(...) | |______________________|                     |______________________|      python client                                  c++ server 

here how imagine secure system.

 ______________________                       ______________________ |                      |                     |                      |  application |        client        |                     |        server        |  layer |      application     |                     |      application     | |______________________|                     |______________________|        /\      ||                                   /\      ||        ||      ||                                   ||      ||  ______||______\/______                       ______||______\/______ |                      |                     |                      |  serialization |       protobuf       |                     |       protobuf       |  deserialization |______________________|                     |______________________|  layer        /\      ||                                   /\      ||        ||      ||                                   ||      ||  ______||______\/______                       ______||______\/______ |                      |                     |                      |  encryption |      encryption      |                     |      encryption      |  layer |______________________|                     |______________________|        /\      ||                                   /\      ||        ||      ||                                   ||      ||  ______||______\/______                       ______||______\/______ |                      |                     |                      |  transport | zmq_socket.send(...) |-------------------->| zmq_socket.recv(...) |  layer |                      |      (tcp/ip)       |                      | | zmq_socket.recv(...) |<--------------------| zmq_socket.send(...) | |______________________|                     |______________________|      python client                                  c++ server 

basically need making system secure. me that?


Comments

Popular posts from this blog

dns - How To Use Custom Nameserver On Free Cloudflare? -

python - Pygame screen.blit not working -

c# - Web API response xml language -