(19)
(11)EP 2 916 255 A1

(12)EUROPEAN PATENT APPLICATION

(43)Date of publication:
09.09.2015 Bulletin 2015/37

(21)Application number: 15153254.6

(22)Date of filing:  30.01.2015
(51)Int. Cl.: 
G06F 21/44  (2013.01)
G06F 21/82  (2013.01)
(84)Designated Contracting States:
AL AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HR HU IE IS IT LI LT LU LV MC MK MT NL NO PL PT RO RS SE SI SK SM TR
Designated Extension States:
BA ME

(30)Priority: 28.02.2014 US 201414193493

(71)Applicant: NCR Corporation
Duluth, GA 30096 (US)

(72)Inventors:
  • Han, Richard
    Lundie, Tayside DD2 5NW (GB)
  • Wurfel, Andrew
    Smyrna, GA 30080 (US)

(74)Representative: MacLeod, Roderick William 
NCR Limited Intellectual Property Section Discovery Centre 3 Fulton Road
Dundee Tayside, DD2 4SW
Dundee Tayside, DD2 4SW (GB)

  


(54)Unattended secure device authorization


(57) Unattended secure device authorization techniques are provided. An operating system module (121 or 401), which is responsible for device validation when that device (130) is interfaced to a host device (110), is enhanced. The enhanced operating system module (121 or 401) silently checks the peripheral device's identifier against a white list (122) and if a match occurs, the enhanced operating system module (121 or 401) grants permission to the host device applications (123). If no match occurs, the enhanced operating system module (121 or 401) silently rejects application access to the device (130). In an embodiment, the enhanced operating system module (121 or 401) interacts with the device (130) to determine whether the device (130) is to be authorized or rejected.




Description


[0001] Most operating systems (OSs) default behavior for authorization of peripheral devices (interfaced to a host device having the OSs) are to present popup windows for the users to accept or decline permission for access to the peripherals upon host device connection.

[0002] This can be unacceptable for an unattended operation (an operation executing when no user is present (or no adequate input mechanism is available) to accept or decline the OS-presented accept or deny request (permission) of the popup window). Such a situation could prevent the host device from automatically starting an application, which may be needed for the host device before starting that application.

[0003] Moreover, in many cases the user permission needs to be renewed after application installation. So, even if permission was granted (during a user-attended situation to provide peripheral permission) and the application is executing normally on the host device, if the application is subsequently upgraded/updated (which could occur automatically by the OS when the user is not present) then the issue resurfaces on the upgrade/update of the application when the user is not present to provide the needed OS permission.

[0004] There are also general concerns around the connection of unauthorized peripheral devices being connected to a host device/host system, such as:
  1. (i) security because connecting unauthorized hardware may be an attempt to get the OS to automatically perform some unauthorized action on the host device (such installation of spyware, malware, etc.); and
  2. (ii) parts protection because some secure host devices/systems may only authorize peripherals from known vendors, such that the secure device/system: may operate improperly with other vendor products, may expose security holes, and may be detrimental to the products and reputation of the known vendors.


[0005] In various embodiments, methods and system unattended secure device authorization for host devices are presented.

[0006] According to an embodiment, a method for unattended secure device authorization for a host device is provided. A coupled device is detected as being connected to a host device. A device identifier, which is acquired from the device, is checked against authorized device identifiers. Application access to the device is silently granted when the device identifier is one of the authorized device identifiers. Application access is silently denied when the device identifier is unmatched in the authorized device identifier.

[0007] According to a first aspect of the present invention there is provided a method of operating an authenticator executing on a host, the method comprising: identifying a device interfaced to the host; comparing a device identifier obtained from the device with authorized device identifiers; automatically granting an application access to the device when the device identifier matches one of the authorized device identifiers; and automatically denying the application access to the device when the device identifier does not match one of the authorized device identifiers.

[0008] The step of identifying a device optionally further includes obtaining an event from an operating system executing on the host, wherein the event is associated with the device being newly interfaced to the host.

[0009] The method optionally further comprises acting as a proxy interface for an OS application that typically handles the event for the OS.

[0010] The method optionally further comprises replacing a reference to an OS application that typically handles the event for the OS with a reference to the authenticator.

[0011] The step of automatically granting an application access to the device optionally further includes interacting with a device interface of the device to authenticate the device for application access before automatically granting access.

[0012] The step of interacting with a device interface optionally further includes encrypting a message with a key that is sent to the device interface and receiving a decrypted version back from the device interface indicating access is to be granted and authentication passed for the application to access the device.

[0013] The step of automatically granting an application access to the device optionally further includes performing the access without any action being required from the application and without any awareness by the application.

[0014] The step of automatically denying an application access to the device optionally further includes logging to a log file one or more of: a host identifier for the host, the device identifier, a calendar date for the denial, a time of day for the denial, and a processing state of the application.

[0015] The log file may be stored on the host or be otherwise accessible by the host.

[0016] The step of automatically denying an application access to the device optionally further includes automatically sending a notification to a predefined resource using a predefined communication channel based on the denial.

[0017] The step of automatically denying an application access to the device optionally further includes performing the denial of access without any action being required from the application and without any awareness by the application.

[0018] According to a second aspect of the present invention there is provided a self-service terminal comprising: an operating system validation module operable to: (i) execute on one or more processors of the self-service terminal, (ii) identify a device when it is connected to the self-service terminal, and (iii) authenticate the connected device for access by an application executing on the self-service terminal without any action by the application.

[0019] The operating system validation module may be further operable in (iii) to: compare a connected device identifier for the connected device with a white list of authorized device identifiers for authorized devices (that is, a list of authorized devices) for a potential match to resolve the authentication.

[0020] The operating system validation module may be further operable in (iii) to: query the connected device with an encrypted message and receive back from the connected device a decrypted message that the OS validation module validates to resolve the authentication.

[0021] The self-service terminal may comprise an ATM. The operating system validation module may be part of the operating system. The operating system may comprise an open source operating system, and the operating system validation module may be an enhancement to or a replacement for an existing validation module of the operating system.

[0022] According to a third aspect of the present invention there is provided a method of using an operating system device validator executing on a self-service terminal, the method comprising: identifying a notification that a peripheral device is interfaced to a device port of the self-service terminal; and attempting to authenticate the peripheral device for access by an application executing on the self-service terminal without any action on the part of the application.

[0023] The method may further comprise providing the application with access to the peripheral device when authentication is successful and without any action on the part of the application.

[0024] The method may further comprise preventing the application from having access to the peripheral device when authentication is unsuccessful and without any action on the part of the application. This may be referred to as a silent denial.

[0025] The method optionally further comprises logging actions taken by the operating system device validator when attempting to authenticate the peripheral device.

[0026] The step of attempting to authenticate the peripheral device for access by an application optionally further includes comparing a peripheral device identifier received from the peripheral device with stored authorized peripheral device identifiers for known authorized peripheral devices to resolve a first portion of the authentication step.

[0027] The step of attempting to authenticate the peripheral device for access by an application optionally further includes interacting with the peripheral device using cryptographic message passing to resolve a remaining portion of the authentication step.

[0028] These and other aspects of the present invention will become apparent from the following specific description, given by way of example, in which:

FIG. 1 is a diagram of a Self-Service Terminal (SST) for practicing unattended secure device authorization according to an example embodiment;

FIG. 2 is a diagram of a method for unattended secure device authorization on a host device, according to an example embodiment;

FIG. 3 is a diagram of a method for unattended secure device authorization on a SST, according to an example embodiment; and

FIG. 4 is a diagram of an SST, according to an example embodiment.



[0029] Reference is first made to FIG. 1, which is a diagram of an SST 100 that practices unattended secure device authorization on a Self-Service Terminal (SST), according to an example embodiment. The SST 100 is shown schematically in greatly simplified form, with only those components relevant to understanding of this embodiment being illustrated. The same is true for the other components depicted for the SST 100. The various components are illustrated and the arrangement of the components is presented for purposes of illustration only. It is to be noted that other arrangements with more or less components are possible without departing from the unattended secure device authorization techniques presented herein and below.

[0030] The techniques, methods, system, and SST 100, presented herein and below, for unattended secure device authorization can be implemented in whole or in part in one, all, or some combination of the components shown with the FIG. 1. The techniques and methods are programmed as executable instructions in memory and/or non-transitory computer-readable storage media and processed on one or more processors associated with the components (may also be referred to as "modules").

[0031] The SST 100 includes a SST core 110 and a device 130. The SST core 110 also includes an operating system (OS) 120, a device validator 121 having device valid identifiers 122, and one or more applications 123 processing on the SST core 110 using the OS platform. The device 130, optionally, includes a secure storage 131 having a security key 132 and a device identifier 133 (for the device 130). It is noted that although the device validator 121 is depicted in the SST core 110 as being outside the OS 120, in many embodiments explained herein it is part of OS 120; such that the device validator 121 is considered to be part of the OS 120.

[0032] When the device 130 is coupled to the SST core 110 through the device port 124, the OS 120 is notified of or detects this event in a conventional manner using functionality provided by the operating system 120. This detection functionality is commonly provided by operating systems such as operating system 120. However, once the device 130 is detected by the operating system 120, the operating system 120 passes the detection event to the device validator 121. The mechanism for the OS 120 to discover or receive the event remains unchanged herein. The OS 120 is an enhanced operating system because the typical device recognition process is replaced, and greatly augmented by, the device validator 121.

[0033] In an embodiment, the event detected by the OS 120 includes the device identifier 133 with the event, such that the OS 120 does not have to query the device 130 for its device identifier 133.

[0034] In an embodiment, the device validator 121 queries the device 131 over the device port 124 to obtain the device identifier 133.

[0035] In an embodiment, the device validator 121 sends a query to the device 130, which the device 130 supplied back to the device validator 121 in an encrypted format. That is, the device validator 121 may issue a "hello" message and the device 130 receives the message and uses its security key 132, from secure storage 131, to encrypt the "hello" message, which is then sent back to the device validator 121 for validation. Alternatively, the encrypted response may be the device identifier 133. It may also be that the device validator 121 initially sends the "hello" message in an encrypted format and the device 130 uses the security key 132 to decrypt that message and send the decrypted version back to the device validator 121. This processing ensures that the device 130 is capable of passing a security check of the SST core 110 and as enforced by both the device validator 121 and the device 130. It is also noted that other cryptology-based mechanism can be used between the device validator 121 and the device 130, without departing from the teachings of this embodiment. Security is of particular concern when the SST 100 is an Automated Teller Machine (ATM).

[0036] Moreover, it may be that no cryptology is used at all between the device validator 121 and the device 130. In this scenario, the device 130 responds to a request with a serial number or part number, which can also be checked against another list of serial numbers or part numbers maintained by the device validator 121.

[0037] Once the device validator 121 has the device identifier 133 and, optionally, has assured itself that the device 130 is authentic (such as through the cryptology embodiment discussed above or a non-cryptographic approach (also discussed above)), then the device validator 121 is in a configured position to determine whether an application 123, processing on the SST core 110 and in the processing environment of the OS 120, can be provided access to the device 130.

[0038] The device validator 121 checks the device identifier 133 against the device valid identifiers 122, which are controlled by the device validator 121. In an embodiment, the device valid identifiers 122 represent a "white" list of known device identifiers for devices that are permitted to be interfaced and coupled to the SST core 110 through the device port 124.

[0039] When the device validator 121 matches the device identifier 133 with one of the device valid identifiers 122, then the device validator 121 silently and transparently grants permission to the application 123 to use the device 130. That is, there is no affirmative action request made to the application 123, which requires the application 123 to positively take some action to grant the device 130 or deny the device 130 access to the SST core 110. This may be implemented by the operating system 120 adding / configuring the device 130 so that it is visible to, and can be accessed by, the application 123. The application 123 need not perform any action to assure access to the device 130, the device validator 121 performs the necessary validation of and automatic access to the device 130 on behalf of the application 122. Thus, if the application 123 is unattended (no user interacting with the application 123 on the SST core 110 or no actual running instance up and running on the SST core 110), the device 130 validation and permissions are set by the device validator 121. Moreover, should the application 123 need to be updated or upgraded for any reason, the update or upgraded application 123 will not be subsequently required to provide permission to access the device 130, since this is managed on behalf of the application 123 by the device validator 121.

[0040] When the device validator 121 determines either that: the device identifier 133 is unmatched in the device valid identifiers 122 or the device 130 was unable to pass an authentication procedure (discussed above), the device validator 121 silently and transparently (the processing being unknown to and requiring no action from the application 123) denies or rejects access to the device 130 on the SST core 110. So, the application 123 is unaware that the device 130 is even present on the SST core 110.

[0041] Many applications that run on SSTs may be automated or semi-automated, such that the convention approach to peripheral device verification and access are problematic because the applications may need to affirmatively take some action before the OS 120 permits the applications to continue processing or to be updated or upgraded. These problems are eliminated by the techniques discussed herein. That is, secure authentication of a device 130 can take place and access to the SST core 110 determined without any input being required from the application 123 (this is achieved through the device validator 121).

[0042] In an embodiment, the SST 100 is an ATM.

[0043] In an embodiment, the SST 100 is a kiosk.

[0044] In an embodiment, the OS 120 is an enhancement to an open source OS, such as, but not limited to: Android (trade mark), Tizen (trade mark), Unix (trade mark), Suse (trade mark), Linux (trade mark), etc.

[0045] In an embodiment, the OS 120 is an enhancement to a proprietary OS, such as, but not limited to: Windows (trade mark), iOS (trade mark), Blackberry (trade mark), etc.

[0046] In an embodiment, the device validator 121 replaces an OS's device validation module.

[0047] In an embodiment, the device validator 121 acts as a proxy to an OS's device validation module to intercept and perform the processing discussed above with the device validator 121. In this embodiment, the device validator 121 may or may not be part of the actual OS 120.

[0048] In an embodiment, the device port 124 is one of: an Ethernet port connection, a Universal Serial Bus (USB) port connection, a coaxial cable port connection, a secure digital (SD) card slot connection, and a wireless transmitter and receiver enabled port connection.

[0049] In an embodiment, the device 130 is one of: a USB device, a SD card, and any processing and/or memory enabled device having a port connector to interface with the device port 124.

[0050] In an embodiment, the device is one of: a dispenser to dispense currency or other valuable media, a printer for printing receipts, a card reader for reading consumer cards, a monitor for presenting information on screens of a display associated with the SST 100, an encrypted PINpad for encrypting consumer passwords or Personal Identification Numbers (PINs) entered on an input device of the SST 100, and a keypad as an input device to the SST 100.

[0051] In an embodiment, the device valid identifiers 122 include a variety of information organized in a table as records. Each record including a vendor identifier and a device identifier. In some embodiments, each record can include a variety of additional information, such as but not limited to: a device serial number, descriptive information for a device, a reference to an authentication procedure and/or key(s) to use for that authentication procedure, a reference to logging or auditing procedures, and the like.

[0052] In some embodiments, the operating system may be pre-configured to accept some devices 130 depending on the operating system build. For example, there may be a different operating system build for development than for production. A development operating system build may be pre-configured to accept a keyboard as a hardware device 130 and a mouse as a hardware device 130.

[0053] Some of the above-discussed embodiments and other embodiments of the invention are now presented with the discussions of the FIGS. 2-4.

[0054] FIG. 2 is a diagram of a method 200 for unattended secure device authorization on a host device, according to an example embodiment. The software module(s) that implements the method 200 is referred to as an "authenticator." The authenticator is implemented as executable instructions programmed and residing within memory and/or a non-transitory computer-readable (processor-readable) storage medium and executed by one or more processors of a device. The processors of the device that executes authenticator are specifically configured and programmed to process the authenticator. The authenticator has access to one or more networks during its processing. The networks can be wired, wireless, or a combination of wired and wireless.

[0055] In an embodiment, the device that executes the authenticator is the SST 100 of FIG. 1.

[0056] In an embodiment, the device that executes the authenticator is an ATM.

[0057] In an embodiment, the device that executes the authenticator is any processor-enabled device.

[0058] For purposes of discussion of FIG. 2, the device that executes the authenticator is referred to as a "host device" or "host." It is a host because a peripheral device is attempting to connect to the host for access on the host by one or more applications that execute on the host. It is to be noted, that the host can be any device discussed in the aforementioned embodiments.

[0059] In an embodiment, the authenticator is an enhanced version of the device validator 121 of the FIG. 1.

[0060] At 210, the authenticator identifies a device interfaced to the host. The interface can be a wired connection through a hardware port (such as a USB port) of the host that the device is coupled to. Alternatively, the interface can be a wireless connection through a wireless transceiver port that receives and transmits wireless communications from the host device (the device having a transceiver as well).

[0061] According to an embodiment, at 211, the authenticator obtains an event from an OS executing on the host. The event is associated with the device being newly interfaced to the host. That is, when the device interfaces to the host, the OS detects the connected device and raises an event, which is monitored by the authenticator.

[0062] In an embodiment of 211 and at 212, the authenticator acts as a proxy interface for an operating system. Here, the authenticator intercepts communications from or is configured to know where the operating system communicates the event, and the authenticator handles the event. This may be a useful scenario when the operating system is not available for modification or replacement, such that the operating system can remain unchanged for achieving the teachings presented herein. This may only be practical for some operating systems.

[0063] In another embodiment of 211 and at 213, the authenticator replaces a reference to an operating system module that typically handles the event with a reference to the authenticator. Here, the device present module of the operating system (that is, the operating system module that detects when a device is connected) is modified to call the authenticator instead of the operating system that typically handles the event. Alternatively, the OS's device present module can be modified to change an event type produced by the operating system module that typically handles the event, such that the operating system module never receives an event type that it looks to process; rather, the event type is captured by the authenticator.

[0064] In a preferred embodiment, the operating system is an open source operating system, such as Android (trade mark). This enables the operating system module that typically handles the event to be replaced (or augmented) by the authenticator.

[0065] At 220, the authenticator checks a device identifier obtained from the device against a list of authorized device identifiers for previously authorized devices. The device identifier may be obtained by querying an interface of the device or the device identifier may be attached or associated with the event.

[0066] At 230, the authenticator automatically grants an application, which is executing on the host, access to the device when the device identifier of the device is one of the authorized device identifiers securely maintained by or securely accessible to the authenticator from the host.

[0067] According to an embodiment, at 231, the authenticator interacts with a device interface of the device to authenticate the device for application access before automatically granting access. So, even if the device identifier is matched to one of the authorized device identifiers, the authenticator can take additional authentication procedures to ensure the device is authorized to be accessed by the application on the host.

[0068] In an embodiment of 231 and at 232, the authenticator encrypts a message with a key, and the encrypted message is sent to the device interface. The authenticator then receives, from the device interface, a decrypted version of the encrypted message, which was sent from the authenticator. When the decrypted received message matches the message that the authenticator had originally encrypted, then access is granted and the authenticator considers authentication to have passed; the application is provided access to the device.

[0069] In an embodiment, at 233, the authenticator performs the access on behalf of the application, without any action being required from the application and without any awareness by the application of the processing performed by the authenticator.

[0070] At 240, the authenticator automatically denies the application access to the device when the device identifier is unable to be matched or unmatched in the authorized device identifiers.

[0071] In an embodiment, at 241, the authenticator logs to a log file on the host or on a secure server accessible to the host one or more of: a host identifier for the host, the device identifier, a calendar date for the denial, a time of day for the denial, and a processing state of the application. Such information may prove useful for subsequent analysis to identify if there are patterns for the application state and types of hosts when unauthorized devices are trying to connect to the host device.

[0072] In an embodiment, at 242, the authenticator automatically sends a notification to a predefined resource using a predefined communication channel based on the denial. In other words, policy conditions evaluated by the authenticator can dictate that a person receives an email notice or that a reporting application receives the notice via an Application Programming Interface (API). The policy conditions can be configured in the authenticator or acquired from a file by the authenticator, such that they can dynamically change as needed.

[0073] In an embodiment, at 243, the authenticator performs the denial of access without any action being required from the application and without any awareness by the application.

[0074] One now fully appreciates how OS messages that require application attention to accept or deny can be achieved in a secure manner without such attention (unattended).

[0075] FIG. 3 is a diagram of a method 300 for unattended secure device authorization on a SST, according to an example embodiment. The software module(s) that implements the method 300 is referred to as an "OS device validator." The OS device validator is implemented as executable instructions programmed and residing within memory and/or a non-transitory computer-readable (processor-readable) storage medium and executed by one or more processors of a SST. The processors of the SST that executes the OS device validator are specifically configured and programmed to process the OS device validator. The OS device validator has access to one or more networks during its processing. The networks can be wired, wireless, or a combination of wired and wireless.

[0076] In an embodiment, the SST that executes the OS device validator is an ATM.

[0077] In an embodiment, the SST that executes the OS device validator is the SST 100 of the FIG. 1.

[0078] In an embodiment, the SST that executes the OS device validator is a kiosk.

[0079] In embodiment, the OS device validator is an enhanced version of the device validator 121 of the FIG. 1.

[0080] At 310, OS device validator identifies a notification that a peripheral device is interfaced to a device port of the SST. Mechanisms for identifying the notification were discussed above with reference to FIGS. 1-2.

[0081] At 320, the OS device validator attempts to authenticate the peripheral device for access by an application executing on the SST, this is done without any action being required on the part of the application (unattended validation).

[0082] In an embodiment, at 321, the OS device validator compares a peripheral device identifier for the peripheral device and received from the peripheral device against known authorized peripheral device identifiers for known authorized peripheral devices in order to resolve a first portion of the authentication.

[0083] In an embodiment of 321 and at 322, the OS device validator interacts with the peripheral device (such as through a peripheral device interface) using cryptographic message passing to resolve a remaining portion of the authentication.

[0084] According to an embodiment, at 330, the OS device validator provides the application access when authentication was successful. Again, this is done without any action being required on the part of the application (unattended access).

[0085] In an embodiment, at 340, the OS device validator prevents the application from having access to the peripheral device when the authentication failed; the denial achieved without any action being required on the part of the application.

[0086] In an embodiment, at 350, the OS device validator logs the actions that the OS device validator took when attempting to authenticate the peripheral device.

[0087] FIG. 4 is a diagram of an SST 400, according to an example embodiment. The components of the SST 400 are programmed and reside within memory and/or a non-transitory computer-readable medium and execute on one or more processors of the SST 400. The SST 400 has access and can communicate over one or more networks; and the networks can be wired, wireless, or a combination of wired and wireless.

[0088] The SST 400 includes an OS validation module 401.

[0089] In an embodiment, the SST 400 is an ATM.

[0090] In an embodiment, the SST 400 is a kiosk.

[0091] In an embodiment, the SST 400 is the SST 100 of the FIG. 1.

[0092] The SST 400 includes one or more processors, memory, non-transitory computer-readable storage media, an OS executing on the hardware components of the SST 400, a communication port for interfacing to peripheral devices, and the OS validation module 401.

[0093] The OS validation module 401 is configured or operable to execute on one or more processors of the SST 400 and identify a connected device (such as a peripheral device) to a communication port of the SST 401. The OS validation module 401 is also configured or operable to authenticate the connected device for access by an application executing on the SST 400; the authentication achieved without any action by the application (unattended authentication).

[0094] According to an embodiment, the OS validation module 401 is further configured or operable to compare a connected device identifier for the connected device against a white list of authorized device identifiers for authorized devices for a potential match in order to resolve authentication.

[0095] In an embodiment, the OS validation module 401 is further operable to query the connected device with an encrypted message and receive back from the connected device a decrypted message that the OS validation module 401 validates to resolve the authentication.

[0096] In an embodiment, the OS validation module 401 is part of an open source OS (such as Android (trade mark)) and the OS validation module 401 is an enhancement to or a replacement of an existing device validation module of that OS.

[0097] It should be appreciated that where software is described in a particular form (such as a component or module) this is merely to aid understanding and is not intended to limit how software that implements those functions may be architected or structured. For example, modules are illustrated as separate modules, but may be implemented as homogenous code, as individual components, some, but not all of these modules may be combined, or the functions may be implemented in software structured in any other convenient manner.

[0098] Furthermore, although the software modules are illustrated as executing on one piece of hardware, the software may be distributed over multiple processors or in any other convenient manner.

[0099] The above description is illustrative, and not restrictive. Many other embodiments will be apparent to those of skill in the art upon reviewing the above description. The scope of embodiments should therefore be determined with reference to the appended claims.

[0100] In the foregoing description of the embodiments, various features are grouped together in a single embodiment for the purpose of streamlining the disclosure. This method of disclosure is not to be interpreted as reflecting that the claimed embodiments have more features than are expressly recited in each claim. Rather, as the following claims reflect, inventive subject matter lies in less than all features of a single disclosed embodiment.


Claims

1. A method of operating an authenticator (121) executing on a host (110), the method comprising:

identifying a device (130) interfaced to the host (110);

checking a device (130) identifier obtained from the device (130) against authorized device identifiers (122);

automatically granting an application (123) access to the device (130) when the device identifier matches one of the authorized device identifiers (122); and

automatically denying the application (123) access to the device (130) when the device identifier does not match one of the authorized device identifiers (122).


 
2. The method of claim 1, wherein the step of identifying a device (130) further includes obtaining an event from an operating system (120), wherein the event is associated with the device (130) being newly connected to the host (110).
 
3. The method of claim 2 further comprising acting as a proxy interface for an operating system module that typically handles the event for the operating system (120).
 
4. The method of claim 2 further comprising replacing a reference to an operating system module that typically handles the event for the operating system (120) with a reference to the authenticator (121).
 
5. The method of any preceding claim, wherein the step of automatically granting an application (123) access to the device (130) further includes interacting with a device interface of the device (130) to authenticate the device (130) for application access before automatically granting access.
 
6. The method of claim 5, wherein the step of interacting further includes encrypting with a key a message that is sent to the device interface and receiving a decrypted version back from the device interface indicating that access is to be granted and authentication passed for the application (123) to access the device (130).
 
7. The method of any preceding claim, wherein the step of automatically granting an application (123) access to the device (130) further includes performing the access without any action being required from the application (123), without any awareness by the application (123), and without any input from a user.
 
8. The method of any preceding claim, wherein the step of automatically denying an application (123) access to the device (130) further includes logging to a log file on the host (110) one or more of: a host identifier for the host (110), the device identifier, a calendar date for the denial, a time of day for the denial, and a processing state of the application (123).
 
9. The method of any preceding claim, wherein the step of automatically denying an application (123) access to the device (130) further includes automatically sending a notification to a predefined resource using a predefined communication channel based on the denial.
 
10. The method of any preceding claim, wherein the step of automatically denying an application (123) access to the device (130) further includes performing the denial of access without any action being required from the application, without any awareness by the application, and without any input from a user.
 
11. A self-service terminal (100 or 400) comprising:

an operating system validation module (121 or 401) operable to: (i) execute on one or more processors of the terminal (100 or 400), (ii) identify a device (130) when it is connected to the terminal (100 or 400), and (iii) authenticate the connected device (130) for access by an application (123) executing on the terminal (100 or 400) without any action by the application (123) or a user.


 
12. The self-service terminal (100 or 400) of claim 11, wherein the operating system validation module (121 or 401) is further operable in (iii) to: compare a connected device identifier for the connected device (130) with a white list of authorized device identifiers (122) for authorized devices for a potential match to resolve the authentication.
 
13. The self-service terminal (100 or 400) of claim 11 or 12, wherein the operating system validation module (121 or 401) is further operable in (iii) to: query the connected device (130) with an encrypted message and receive back from the connected device (130) a decrypted message that the operating system validation module (121 or 401) validates to resolve the authentication.
 
14. The self-service terminal (100 or 400) of any of claims 11 to 13, wherein the self-service terminal (100 or 400) comprises an automated teller machine.
 
15. The self-service terminal (100 or 400) of any of claims 11 to 14, wherein the operating system validation module (121 or 401) is incorporated into an operating system (120).
 




Drawing