I am planning to get rid of the SHA1 certificate signing algorithm in our certificates and switch over to SHA-256. Problem is, that Windows XP (before SP3) is not supporting this. Therefore I need to know how many people are still using these versions. Is there a way to seperate Windows XP SP1 and SP2 from SP3? I know that SP2 brought the "SV1" (Security Version 1) token to it's version string, but what about SP1 and SP3? Is there a way to distinguish these versions?
This MSDN article documents the nomenclature used for user agents. Appears the feature token can be used in conjunction with the platform token to make some determinations.
The table specifically notes SV1 as a signal for a specific service pack.
However, the document explicitly states that a comprehensive list is not available.
UserAgentString.com collects User-Agent strings but I do not see any correlation to SP versions.
I have not been able to find an official Microsoft reference for what feature tokens were added to the various service packs. But I do know this appears on their blog from time to time:
Perhaps with some digging you can find the others.
If this is possible, I think your only option is to dig into .NET CLR version history. I believe the different Service Packs could have been served different .NET CLR versions. Unfortunately the user agents doesn't show the last digits (1.1.4322.????).
If one can install any .NET CLR version on any Windows XP version. Then the answer is no. You can not tell Service Pack version from the User Agent string.