2011-10-12 1 views
1

Mon application devra périodiquement accéder à une source de temps de confiance, donc ne peut pas compter sur le temps du système puisque celui-ci peut être facilement modifié par l'utilisateur ou par une panne de batery. Ma première idée est de lier statiquement à libntp (de ntp.org) et utiliser ses fonctions, est-ce une bonne idée? Libntp semble un framework un peu complexe, y a-t-il une implémentation client plus simple (de préférence ANSI C puisque l'application doit être pour différentes plateformes ... mais peut aussi être Cpp si compilable avec gcc/MS VS)?comment obtenir l'heure de confiance dans une application, NTTP peut-être?

Existe-t-il une autre alternative à ntp?

Merci! Edit: Juste pour ajouter plus d'informations ... il est important que les valeurs du serveur temps-confiance ne puissent pas être modifiées (disons, l'attaquant modifie la réponse du serveur temps-confiance et l'application accepte le faux temps). J'ai commencé à regarder ntp et à voir qu'il s'occupe de ce problème. La question est maintenant de savoir si je dois utiliser les sources ntp de ntp.org comme point de départ ou s'il existe des implémentations simples pour les clients uniquement. Idéalement, un pointeur vers quels fichiers source/source de sources ntp.org dois-je utiliser pour l'implémentation uniquement client et quel fichier en-tête montre l'API que j'ai besoin d'utiliser, comme par exemple un appel getTrustedTime() ...

+3

Si vous ne pouvez pas faire confiance à l'OS ... Tous les paris sont éteints. OS peut être configuré pour protéger l'heure du système. En outre, la connectivité réseau peut ne pas toujours exister. Êtes-vous en train d'essayer de mettre en place une protection de licence? Si oui, veuillez clarifier dans votre message – sehe

+0

À quel point doit-il être précis? 1 ou 2 secondes d'arrêt est OK? Ou a-t-il une précision de milliseconde? –

+0

Mon application ne fait pas confiance à l'heure du système d'exploitation mais nécessite une connectivité réseau (périodique) (en effet liée à la protection de la licence). En ce qui concerne la précision, quelques minutes suffisent. –

Répondre

0

Si vous pouvez compter sur une connexion réseau, votre application peut demander un serveur distant pour l'heure, peut-être également via une connexion chiffrée ou signée.

0

Si vous utilisez Boost, vous pouvez utiliser this

Questions connexes