An apparatus comprising: a storage storing a key associated with a vehicle device; a processor configured to: generate a random number; send the random number to the vehicle device via a vehicle communication network; receive an actual hash message authentication code (HMAC) from the vehicle device via the vehicle communication network, where the vehicle device determines the actual HMAC using a HMAC algorithm on an input and the key stored in a storage of the vehicle device, the input being determined by the vehicle device using a hash function on the random number; determine an expected hash message authentication code (HMAC) for the vehicle device using the HMAC algorithm on an input and the key stored in the storage, the input being determined by the apparatus using the hash function on the random number; compare the actual HMAC with the expected HMAC; determine that the vehicle device fails authentication when the actual HMAC does not match the expected HMAC; and cause at least one vehicle operation to be inhibited when the vehicle device fails authentication for a preset number of times while the vehicle device is connected to the vehicle communication network. a storage storing a key associated with a vehicle device; a processor configured to: generate a random number; send the random number to the vehicle device via a vehicle communication network; receive an actual hash message authentication code (HMAC) from the vehicle device via the vehicle communication network, where the vehicle device determines the actual HMAC using a HMAC algorithm on an input and the key stored in a storage of the vehicle device, the input being determined by the vehicle device using a hash function on the random number; determine an expected hash message authentication code (HMAC) for the vehicle device using the HMAC algorithm on an input and the key stored in the storage, the input being determined by the apparatus using the hash function on the random number; compare the actual HMAC with the expected HMAC; determine that the vehicle device fails authentication when the actual HMAC does not match the expected HMAC; and cause at least one vehicle operation to be inhibited when the vehicle device fails authentication for a preset number of times while the vehicle device is connected to the vehicle communication network. generate a random number; send the random number to the vehicle device via a vehicle communication network; receive an actual hash message authentication code (HMAC) from the vehicle device via the vehicle communication network, where the vehicle device determines the actual HMAC using a HMAC algorithm on an input and the key stored in a storage of the vehicle device, the input being determined by the vehicle device using a hash function on the random number; determine an expected hash message authentication code (HMAC) for the vehicle device using the HMAC algorithm on an input and the key stored in the storage, the input being determined by the apparatus using the hash function on the random number; compare the actual HMAC with the expected HMAC; determine that the vehicle device fails authentication when the actual HMAC does not match the expected HMAC; and cause at least one vehicle operation to be inhibited when the vehicle device fails authentication for a preset number of times while the vehicle device is connected to the vehicle communication network.