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:
- "curve" security mechanism, give me strong encryption on data, , (as far know) unbreakable authentication.
- client public key authentication.
- i appriciate library binding many programming languages because client application going run on many different platforms.
nice have:
- 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
Post a Comment