We're building a Wifi enabled device. The device will be installed locally on each client's office and people in the the small office will connect to this Wifi enabled device, They will send/receive sensitive data. As we cannot use signed/trusted certificate per client, how can we guarantee that two users who are connected to same WAN cannot sniff on each other?

What type of encryption should our mobile app and our server app should implement? Challenge-response? RSA? What algorithm and how? What do you think? We need high grade encryption and impossible to sniff connection between each individual and central server.

  • 3
    why do you need a certificate per client? Could you not install a cert on the device? Define "high grade" encryption. – schroeder Apr 28 '15 at 2:50
  • 2
    Can you "use signed/trusted" public key "per client"? – user49075 Apr 28 '15 at 4:04
  • @schroeder, If I do that and if I generate SSL per device, that's not a trusted certificate and already will trigger "false" cert warning. So MITM will be same and user will not notice if this is a legit warning for unsigned SSL or it's the MITM. – JustACPPFan Apr 28 '15 at 22:09
  • @RickyDemer, How do you mean? This will be a product, running on client(s), people in the client's network will connect to my machine. I don't want anyone sniff this network. People will have Wifi password, even sometimes strangers, so I want people who are using my "hardware" and my "software" never be sniffed over network. No MITM, no sniffing. This is what I want to achieve. – JustACPPFan Apr 28 '15 at 22:10
  • For example, a hash of the relevant client's public key could be manually entered into the mobile apps. – user49075 Apr 28 '15 at 22:25

Won't WPA+802.1X solve this?

AFAIK, this means that no client can sniff the others' packets. I'd recommend that you double-check this before moving forward, but that's what I've understood from some brief re-reading (I haven't used 802.1X in years).

  • In this case, each client WILL need certificates and the OP says that this is not possible (I'm assuming they are a 3rd party vendor and do not have control over the wifi environment) – schroeder Apr 28 '15 at 17:16
  • Hugo, thanks for the idea, but as @schroeder said, that's not possible, we don't have control over wifi environment. We can ask them to have certificates for each client, their clients and people over their network will be changing every day. – JustACPPFan Apr 28 '15 at 22:08
  • Can you install a CA onto your device, and maybe have an external service that emits certificates for the clients? Can you use user+password per client, and TLS to verify that nobody's spoofing the device? – WhyNotHugo Apr 28 '15 at 22:56
  • I can install CA on my device, but user's mobile phone will show SSL untrusted certificate warning, same will be shown to fake SSL MITM cert. So user can't tell if being MITM'ed. User/pass per client is not going to work. It will be used by a lot of people and we nor our clients can't manage who's going to do what, people will connect to wifi anyway, we just have to prevent MITM – JustACPPFan Apr 28 '15 at 23:30

For you custom app, you can bundle the public keys into the app, and keep the private key on your custom device.

You're already distributing an application, so including the key with it is no big deal.


You could also look into NFC only communication to transmit. That way you can corral the user into an area and have a good look. This would prevent the MITM part. Trunk out the lines into multiple stations and you can have drop points for the data.

  • 3
    If the clients are not using cellphones, NFC will not be an option. – ThoriumBR Apr 28 '15 at 13:30
  • Thank you munchkin, but As ThoriumBR said, that's not the case – JustACPPFan Apr 28 '15 at 22:07

Your Answer

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

Not the answer you're looking for? Browse other questions tagged or ask your own question.