Cryptography on network communications

Hello to everybody, I have to create a network between some Arduino boards and a Linux based server. I want to use the Web Socket protocol for real-time communications. The connection must be secure, so is necessary that the data sended and received on this network are encrypted. With normal web client I use the SSL protocol with WSS, that is like HTTPS, but on Arduino I can't do that. So I'm looking for an alternative encryption system for the devices that don't support SSL. Anyone know a way for do that? I premise that I can't save keys permanently on the Arduino then the key must be send from server to client avoiding attacks like "man in the middle". :~ :cold_sweat:

The connection must be secure

Define the level of security you want to achieve. If you just need any encryption on the line (because the teacher told you that there must be some encryption), use ROT13 or a similar technique.

If you need an SSL level of security, throw away your Arduinos and get embedded Linux devices (CubieBoard, PCduino, etc.) they have the power for doing SSL and appropriate libraries are available.

Something that can be a valid alternative to SSL, so I think that I need an SSL level of security.

Something that can be a valid alternative to SSL, so I think that I need an SSL level of security.

In this case forget the standard Arduino types, they're underpowered in terms of processor speed and RAM.

You might use a Yun as this type includes an embedded linux system for the communication purposes. Doing SSL on that processor is possible and not that difficult.

The subject of security is vast.

Are you really talking justs end to end?
Or are you looking at Process to Process.
If the formaer then the TCP stack includes a securure end to end option .. Using a sockets library this can be activated and helps but does not solve line snooping attacks.

When we start to talk https then this is Process to process with Public / Private key techniques, the nature of the encryption algorithms although important are irrelivant the choice of algorithm is a function of the available processing and your specific need. Obviosly in a real world say ecommerce solution the encryption i govered by service providers such as PayPal or the banks, they have vast teams looking at the subject but if its your own end to end link then I wouls suggest something simple, google simple security and most if notoption are highlighted. Aagain in my option PGP (Preety good Privacy) fits most needs ticking usually 90 % of a system spec.. Easy to use not tooo processor hungry.

Happy Coding
8) 8)

Lately I'm informed about the Arduino Yun, if it's a Linux based board, so I can install the Linux packages like ssl, right? Because if is true I can use this board, also because it mount the WiFi module and the ethernet port, things that for use with an other Arduino board I have to buy apart, the all with a cost low enough.