Patent ID: 8984296
Filing Date: 2015-03-17
Classification: G06F

Abstract:
1. A computer system comprising a processor and a memory, said processor for executing a method of authenticating a device driver, said method comprising: accessing, from the device driver and responsive to a peripheral device being coupled to the computer system, predetermined authentication information stored in the device driver, wherein the predetermined authentication information comprises an authentication policy defined by a driver developer source and a signature provided by the driver developer source, said device driver validated and signed by each of the driver developer source and an operating system validator; decrypting the signature to obtain a first message digest value, the first message digest value generated by the driver developer source using a first vendor identifier and a first product identifier provided by a vendor and a first device driver parameter provided by the driver developer source, the first device driver parameter including at least one of a first driver code image, a first driver path name, and a first driver filename; generating, by the device driver, a second message digest value according to said authentication policy using a second vendor identifier, a second product identifier received from the peripheral device coupled to the computer system, and a second device driver parameter including at least one of a second driver code image, a second driver path name, and a second driver filename; comparing said first and second message digest values; and loading said device driver in response to a match of said first and second message digest values, and otherwise terminating execution of said device driver, wherein the match ensures that the first vendor identifier and first product identifier provided by the vendor and the first device driver parameter provided by the driver developer source are the same as the second vendor identifier, the second product identifier, and the second device driver parameter received from the peripheral device.