I'm wary of relying on the response from unknown hosts on a messy, adversarial network like the internet, even if I'm hoping to catalog some as malicious. There really is no reason why I should expect well- and consistently-ordered responses against which I can fingerprint. Adjusting the underlying libraries to generate a randomized list of acceptable ciphers, or to randomize any other data that program is using to build this fingerprint is trivial.<p>Putting aside the adversarial case, I can imagine even well intentioned networks with, say, anycasted addresses munging this up as well. I can give you one IP address but six, 11, 91 or however many different responses if I so choose. Which response is the 'correct' one? Are you going to ban entire blocks of addresses because one happened to match a known C&C host?