I'm attempting to build a mechanism to prevent frauds and provide traceability of physical resources in a distributed system. The idea is straightforward: the resource travels hop-by-hop on a network and each hop is held by a different actor which must log the receiving and sending of resources in a distributed database. Each log entry is signed by its corresponding actor. The resources have two mutually exclusive states, in_transit and stopped, which are checked and set each time the resource arrives at or leaves a hop. I assume an adversary in the network may be an actor and will attempt to:

  1. Clone an ID, as to seamlessly steal a resource;
  2. Change IDs, i.e. replace the ID with the ID from another resource, as to generate errors in state checks;
  3. Remove an ID, as to prevent the traceability of a resource;
  4. Create a fake ID, as to insert fake resources in the network.

A key challenge to this problem is to provide a tamperproof manner to uniquely identify resources in a network. In my (little) experience, I see three manners for accomplishing this:

  1. Forcing the resources to log each hop actively. This could be achieved by implementing sensors on each resource capable of public-key cryptography. Secure but expensive. The sensors may be compromised as well.

  2. QR Codes. Cheap and widespread but easily clonable. I don't know if QR Codes can really be used for this purpose. I just thought of them because every phone today can read a QR Code.

  3. RFIDs. This seems a limited but fairly secure solution. Each actor must have a reader machine and metal-made resources such as kegs or metal sheets can be a problem for the readers.

Of course, there is never a perfect solution and each of these solutions has its vulnerabilities and its costs. So my questions are: what could be a secure manner of uniquely identifying physical resources in this system? Do any my suggestions provide a real way to mitigate attacks? Are there best practices or standards for this purpose?

Thanks in advance.

  • While you provide ideas on how to tackle your problem your question is missing a risk analysis first: what are the values you need to protect, what efforts might an attacker make (which is usually related to what he can gain from the attacks, i.e. depends on the values you want to protect), how capable to you consider the attacker (i.e. state vs. script kiddie vs. bord employee etc) etc. Based on this you can then compare possible ideas, i.e. how much they cost (money, usability, time...) and how much risk is left and if this acceptable or not. – Steffen Ullrich Jun 5 '18 at 19:19

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.