I am working on a project where two devices will be communicating with AES with CBC over TCP. We already have a secure mechanism for sharing the encryption/decryption key. I am not sure if we need to have a random IV or not, or how often to begin a new "message".
Here is how I think it will work:
Both sides send hello messages to each other to signal the start of the channel. Each side's message will start with a random IV. After that point each side will occasionally send a small message to the other which will be chained off of the previous messages. This will likely continue for a few minutes but could go on indefinitely.
Does that work? Does each message need a new IV? Each potential session will have a new encryption key, so are random IVs required?