2013-09-05 3 views
1

Мне интересно, как получить временную метку, которая не доверчива.
(Первоначально я сделал это с функциями в time.h, но они могут манипулировать закреплять.)Как получить временную метку, которая не доверчива


Есть ли какое-либо решение о получении точной метки времени?

+2

Можете ли вы расширить функции «time.h»? – cnicutar

+3

Все функции в стандартной библиотеке и все системные вызовы могут быть «подключены» так или иначе. Хек, кто говорит, что вы даже можете [доверять своему компилятору] (http://cm.bell-labs.com/who/ken/trust.html)? –

+1

Единственный способ быть в безопасности и оставаться в безопасности - это выглядеть самостоятельно внутри комнаты, настраивать новую машину с нуля и не подключать машину к сети. – alk

ответ

2

получение Точная метка времени - это наука сама по себе. Вы можете получить точную метку времени вашего компьютера, или вы можете позвонить в веб-сервис, который отправит вам временную метку атомных часов (на которые вы должны вычислить и настроить время работы IP-пакетов), или вы можете сделать аппаратное решение, прикрепите GPS-модуль, который является точным.

2

Если у вас есть программа C, работающая в ненадежной среде, тогда нет способа убедиться, что кто-то не предоставляет мошеннические часы. Чтобы гарантировать, что часы «разумны», вам придется обратиться к внешнему источнику, который вы можете аутентифицировать (например, через SSL/TLS), и прочитать время оттуда и посмотреть, отличается ли он от того, что сообщается системными вызовами. И, как отметил @caf, даже это обеспечивает нулевые гарантии.

+1

Если это ненадежная среда, вы не можете доверять, что никакая информация, которую вы имеете для аутентификации внешнего источника (например, открытого ключа), не была заменена. – caf

+0

Да, это тоже .. – caskey

Смежные вопросы