IP Library Granted Patent US 10,862,757
Granted Patent B2
US 10,862,757 · App. 16/057,634 · Granted Dec 8, 2020

Isolating a redirected biometric device to a remote session

Inventors: Gokul Thiruchengode Vajravel (Rayasandra Bengaluru, IN); Ramanujam Kaniyar Venkatesh (Bangalore, IN)
Assignee: Dell Products L.P.
H04L41/12G06F9/452H04L67/42
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,862,757
App. No.
16/057,634
Granted
Dec 8, 2020
Kind
B2
Abstract

A redirected biometric device can be isolated to a remote session. Such session level restrictions can be implemented using a filter driver that is layered on top of the device driver stack for the redirected biometric device. When a biometric device is redirected by a user to a remote session, the filter driver can obtain an identifier of the biometric device and maintain a mapping between the identifier and the session ID of the redirecting user's remote session. Then, when an application executing on the server attempts to enumerate biometric devices, a hooking component can inspect and modify the corresponding response to remove any biometric devices that are not redirected to the same user session in which the application is executing. In this way, the application will not be able to discover any biometric devices that are redirected to other user sessions.

Claims (44)

1. A method, implemented on a server in a virtual desktop infrastructure environment, for isolating a biometric device to a user session, the method comprising:

in response to an application that is executing in a user session requesting enumeration of biometric devices that are connected to the server, intercepting, by a hooking component, an enumeration response that includes an identifier of a biometric device;

extracting the identifier of the biometric device from the enumeration response and sending the identifier to a filter driver;

employing, by the filter driver, the identifier of the biometric device to obtain a session ID of a user session to which the biometric device is redirected and returning the session ID to the hooking component; and

comparing, by the hooking component, the session ID received from the filter driver to a session ID of the user session in which the application is executing such that:

when the hooking component determines that the session ID received from the filter driver does not match the session ID of the user session in which the application is executing, the hooking component removes the identifier of the biometric device from the enumeration response prior to allowing the enumeration response to be provided to the application,

whereas when the hooking component determines that the session ID received from the filter driver matches the session ID of the user session in which the application is executing, the hooking component allows the enumeration response to be provided to the application without removing the identifier of the biometric device.

2. The method of claim 1 , wherein the hooking component is executing in the same user session as the application.

3. The method of claim 1 , wherein the filter driver is loaded on a device driver stack for biometric devices.

4. The method of claim 1 , wherein the filter driver maintains mappings between identifiers of connected biometric devices and session IDs.

5. The method of claim 4 , wherein the filter driver creates a mapping between an identifier of a biometric device and a session ID as part of a device initialization process that causes the biometric device to be redirected from a client terminal to the server.

6. The method of claim 1 , wherein the identifier of the biometric device is one of a device instance ID or a serial number.

7. The method of claim 1 , wherein the hooking component intercepts the enumeration response by hooking an API of a biometric library.

8. The method of claim 1 , wherein the enumeration response includes multiple identifiers of biometric devices, and for each identifier in the enumeration response and prior to allowing the enumeration response to be provided to the application, the hooking component uses the identifier to obtain the corresponding session ID from the filter driver and removes the identifier from the enumeration response when the corresponding session ID does not match the session ID of the user session.

9. The method of claim 1 , wherein sending the identifier to the filter driver comprises sending an input/output control (IOCTL) to the filter driver that includes the identifier.

10. One or more computer storage media storing computer-executable instructions which when executed by one or more processors implement a method for isolating a biometric device that is redirected to a user session so that the biometric device is not accessible to applications that are executing in other user sessions, the method comprising:

in response to a biometric device being connected to a client terminal that has remotely established a user session on a server, creating a mapping between an identifier of the biometric device and a session ID of the user session;

in response to a request to enumerate biometric devices that is made by a first application executing in a different user session, intercepting an enumeration response that includes the identifier of the biometric device;

prior to allowing the enumeration response to proceed to the first application, extracting the identifier of the biometric device from the enumeration response and using the identifier to retrieve the session ID to which the identifier was mapped;

comparing the retrieved session ID to a session ID of the first application that requested enumeration of the biometric devices; and

upon determining that the retrieved session ID does not match the session ID of the first application, removing the identifier from the enumeration response prior to allowing the enumeration response to proceed to the first application.

11. The computer storage media of claim 10 , wherein the identifier is one of a device instance ID or a serial number.

12. The computer storage media of claim 10 , wherein the enumeration response is intercepted by an instance of a hooking component that executes in the different user session.

13. The computer storage media of claim 10 , wherein removing the identifier from the enumeration response comprises removing a data structure that is referenced in the enumeration response, the data structure including the identifier.

14. The computer storage media of claim 10 , wherein using the identifier to retrieve the session ID to which the identifier was mapped comprises:

sending, by a hooking component, the identifier to a filter driver;

employing, by the filter driver, the identifier to retrieve the session ID; and

sending, by the filter driver, the session ID to the hooking component.

15. The computer storage media of claim 10 , wherein the method further comprises:

in response to a request to enumerate biometric devices that is made by a second application executing in the user session, intercepting an enumeration response that includes the identifier of the biometric device;

prior to allowing the enumeration response to proceed to the second application, extracting the identifier of the biometric device from the enumeration response and using the identifier to retrieve the session ID to which the identifier was mapped;

comparing the retrieved session ID to a session ID of the second application that requested enumeration of the biometric devices; and

upon determining that the retrieved session ID matches the session ID of the second application, allowing the enumeration response to proceed to the second application without removing the identifier of the biometric device.

16. A method, implemented by a hooking component and a filter driver, for isolating a biometric device to a user session, the method comprising:

intercepting, by the hooking component, an enumeration response that includes at least one identifier of a biometric device and that is intended for an application executing in a first user session;

for each identifier in the enumeration response:

extracting the identifier of the biometric device from the enumeration response and sending the identifier to a filter driver;

employing, by the filter driver, the identifier of the biometric device to obtain a session ID with which the identifier is associated and returning the session ID to the hooking component; and

when the hooking component determines that the session ID received from the filter driver does not match the session ID of the first user session, removing, by the hooking component, the identifier of the biometric device from the enumeration response; and

allowing the enumeration response to be provided to the application only after removing each identifier that is associated with a session ID that does not match the session ID of the first user session.

17. The method of claim 16 , wherein the filter driver associates an identifier of a biometric device with a session ID of a user session to which the biometric device is redirected.

18. The method of claim 16 , wherein the enumeration response includes multiple identifiers each of which is a device instance ID.

19. The method of claim 16 , wherein the enumeration response includes a single identifier that is a serial number.

20. The method of claim 16 , wherein the hooking component executes in the first user session.

Assignments (5)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
SECURITY AGREEMENT Recorded Oct 1, 2021
From: DELL PRODUCTS, L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 057682/0830 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 8, 2018
From: VAJRAVEL, GOKUL THIRUCHENGODE; VENKATESH, RAMANUJAM KANIYAR
To: DELL PRODUCTS L.P.
Reel/Frame 046584/0234 →