Can USB host controllers be used for device identification?
There is nothing in the USB spec that forces a host to identify itself, and there is no standard way a device can request such information.  Without a cooperating driver in the operating system, there is no way for a ordinary device to know details about the host, like what operating system it is running, what processor it is using, etc.

I have, however, noticed that different operating systems tend to have their own quirks about what they request in what order during enumeration.  You might be able to do some testing and find a way to distinguish a few of the major operating systems.  However, that would not be guaranteed, could easily change at minor revisions, and can certainly be deliberately spoofed.

If you want a device to know it is connected to a trusted host, you will have to previously load software on that host.  The device could, for example, send out a randomly generated string of bits when asked the right way by your software on the host.  The host must then respond with a reply that is hashed from the original bits in a particular way envolving a password.  Only a host with the right algorithm and password could reply correctly.

Of course that is just simple scheme.  It can get a lot more complicated depending on what level of attacker you want to protect youself from.  For example, the simple scheme I described above would be no good against a man in the middle attack.