I'm new here, I want to make a USB dongle for security software using Arduino, but I don't know what to use, do you have any suggestions on what components are needed, or are there any examples/references about this?
First question, what code are you using in the PC that needs securing.
(Assuming this a PC security program)
Otherwise, if it’s an Arduino security issue, you need to implement ‘host mode’ on your Arduino (selected models or addon shield).
This is something from last millenium… The industry has been moving away from dongles as an effective way to protect software assets and grant a license.
It’s costly to produce and ship, most of the time they can be forged/hacked and also present a security risk by augmenting the attack surface. Many companies will not authorize weird unknown stuff to be plugged into a PC/Mac USB port.
Also new work habits (laptops, Virtual environment, work from home, use of external consultants,…) or change in USB ports format or availability (USB C) create friction points.
They tend to get lost or break easily because of all the manipulation which means you need to have a support department ready 24/7 to ship replacement units, not to mention accounting and billing and stock management and the staff to go with and your customer is stuck and can’t work until the dongle arrives…
The dongle solution ends up being a pain for IT and users. Unless you have a very unique solution they need, They will favor your competitors.
You should really try to think this over before trying to create one to protect something
so I'm going to make a dongle to secure a simple application in the form of patient input data, on a windows basis, but I don't know where to start, because I can't find examples/references about this project. I made this to fulfill my final project. Please help me if you have references or examples such as schematic and source code.
ok, decide on the security data you’re going to transact.
Writte a module into your desktop app - using the USB device, or virtual serial port is easier.
option 1, write the complementary handshake code and wait for the encrypted reply if you’re using USB host in an arduino, or
option 2 - just develop a simple rolling code in a small file stored on the USB stick, then each time the USB stick is plugged in, the desktop app reads, modifies and updates that file for next time.
expect questions on the robustness of your dongle and how you can guarantee the firmware you installed on the arduino cannot be just cloned on another similar arduino.
what is 'this' ? the windows patient input data software or the dongle part?
both of them
you can read stuff like Secure USB Dongle Application Example Using the MAX32520 | Analog Devices to get a feeling on how to approach this
A simple way is to send an encrypted string to the dongle, which will decrypt the string then make some processing on your string and return to you another encrypted string as an answer which your software will need to verify.
There are crypto libraries available for Arduino
read about anti-replay protocol as well to avoid a replay attack
Do you still need a dongle?
I have a version to be used in Java.
I use an Arduino Nano as a dongle.
yes i still need,
I would be happy if you could share it with me
Best way to get spam = share your email in an open forum… you should use Private messages for this…