Sto lavorando all'analisi della sicurezza di un sistema e alcune delle sue misure di sicurezza si basano sulla proprietà Environment.TickCount
esposta da .NET Framework. Come affermato da Microsoft:
Because the value of the TickCount property value is a 32-bit signed integer, if the system runs continuously, TickCount will increment from zero to Int32.MaxValue for approximately 24.9 days, then jump to Int32.MinValue, which is a negative number, then increment back to zero during the next 24.9 days. You can work around this issue by calling the Windows GetTickCount function, which resets to zero after approximately 49.7 days, or by calling the GetTickCount64 function.
Quindi, quando si conosce l'uptime stimato del server, si potrebbe stimare approssimativamente il valore di Environment.TickCount
. Ciò indebolirebbe significativamente la sicurezza del sistema. Un attacco a forza bruta sulla gamma completa dei possibili valori di TickCount richiederebbe circa 2 giorni e mezzo con la mia implementazione corrente (che non è molto lunga neanche), un valore di ballpark per scegliere un punto di partenza nello spazio-valore renderebbe questa ricerca è molto più efficiente.
Il server sta eseguendo il patch completo Windows Server 2012 R2 e l'unico servizio esposto sarebbe IIS che serve alcune pagine ASP.NET (forse IIS perde alcune di queste informazioni).