Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

So, what's an embedded system supposed to do when it can't reach its NTP server and needs to validate a cert?


As usual: it depends.

Why does it need to validate a cert? How acceptable is it if you get it wrong? Depending on the answer, perhaps "have a more reliable clock" is the right answer (plenty of embedded devices certainly have a decent idea of what time it is, and if it's already big enough to validate TLS). It seems reasonably probable that the NTP server stops being available for a reasonable amount of time before you have no idea what time it is anymore and can no longer validate certificates; so depending on the device, telemetry might be a good idea too.

It doesn't sound like a reason to give up, though :)


What I meant is:

- Device is rebooted

- Can't reach NTP, no RTC or dead RTC battery, happy that time is January 1st, 1970

- HTTPS breaks


You can reach a web host but not NTP? That seems like an edge case.


Presume the cert is wrong.

If your system can't handle that, a few options: - put a clock in your embedded element - Pin certs - Use a frontend, embedded only connects to authenticated embedded system (say, with ssh Port forwarding). Frontend does connection correctly.


Ask the user for the time.


  > What time is it?
  Jan 2nd, 2017
  > Sorry, your certificate is expired. Access Denied.
  Wait, I wrote the wrong date, it's Jan 2nd, 2016
  > Ok. Authorized


I mean, it kinda sounds and looks silly, but if you want to bootstrap security, it should do.

Atleast I can't think of a better way to get time from a server with a cert.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: