Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • Home
  • SEARCH
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 7928073
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 3, 20262026-06-03T19:38:30+00:00 2026-06-03T19:38:30+00:00

I’m developing a protocol for wireless communication between two microcontrollers, using a 433Mhz modem

  • 0

I’m developing a protocol for wireless communication between two microcontrollers, using a 433Mhz modem which can send serial data in a raw format (plain text if you want). I know that this sounds more like an electronic question but my problem is in the coding part, let me explain myself.

Let say that unit one send this command “0x001/0x010/LIGHT1/ON” (this is plain text) to unit 2, the first is unit 1 name, the second the unit 2 name, the third a actuator and the last one the action. All ok and working, BUT I want to give the system a little level of security, because if somebody is listening to that frequency using a technique like “men-in-the-middle” can easily copy the command and resend it any time he wants.

I was thinking about crypting the messages transmitted over air, but then again this will not protect the system against the same type of attack, let’s say I encrypt the message using something like MD5, I will transmit something like “767b79ebb8061054d3ad1eaef428b469”, the attacker just need to copy that string and resend it to achieve the same result.

So how can I solve this? Take in consideration that I’m not controlling a nuclear reactor so I don’t need a very high level of security.

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-03T19:38:31+00:00Added an answer on June 3, 2026 at 7:38 pm

    I assume, that each node “knows” the nodes it is supposed to take commands from – in this case have the receiving node store a (simple) key for each node it will take commands from, then add three fields to the protocol:

    • a salt (random number created by the sender)
    • a sequence number
    • an authentication field

    Both sender and receiver store the last used sequence number for a tx->rx relation, the sender increases it with every command.

    Both sender and receiver create a hash (SHA1?) of the concatenation SequenceNumber+Command+SequenceNumber+salt+nodekey

    Edit: nodekey ist the sending node’s key

    The sender sends this as the authentication field, the receiver checks it against the authentication field and accepts the command only, if the sequence number is higher than the LRU sequence number and the authentication field checks out OK.

    This is secure against a replay attack, as it would involve a sequence number reuse.

    Edit:

    There is concern in the comments about loss of synchronity in the sequence numbers, but the proposed solution is resiliant against that: Only the sender will ever increase the SN, and the receiver will accept all SNs higher than the last used. Loss of a message will make the SN jump, but it will still be accepted as higher than LRU.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I'm developing a class which can be meaningfully pickled only using protocol 2 (and
I am developing a solution which will include data transfer between mobile phone and
I am developing a network protocol In which I have following requirement each node
I'm developing a web application which is required to call a custom registered protocol
I am developing an open protocol for dynamic ridesharing services using mobile phones. It
I'm developing a web-service using WCF, which I want to access using a client
I'm developing an iPhone application which uses a TableView to display XML data. The
I am developing authentication system using Oauth protocol and as per the Oauth standard,
I am developing an application which utilizes a custom network protocol over TCP. Several
I'm developing a Python module in C that parses a very efficient protocol which

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.