IP Library Granted Patent US 10,462,228
Granted Patent B2
US 10,462,228 · App. 15/298,882 · Granted Oct 29, 2019

Providing access to a smartcard within a remote session

Inventors: Gokul Thiruchengode Vajravel (Bangalore, IN); Ramanujam Kaniyar Venkatesh (Bangalore, IN)
Assignee: Wyse Technology L.L.C.
H04L67/141
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,462,228
App. No.
15/298,882
Granted
Oct 29, 2019
Kind
B2
Abstract

Access to a redirected smart card can be provided to applications executing within a remote session. To enable this access, a smart card stub can be executed within the remote session and can function to intercept an application's API calls to access a smart card. A corresponding smart card proxy can also be executed within session 0 and can function to receive the intercepted API calls from the smart card stub. The smart card proxy can then execute the API calls. Because the smart card proxy is executing in session 0, the smart card resource manager service will not block access.

Claims (41)

1. A method, implemented on a server in a virtual desktop infrastructure environment, for enabling smart card access from within a remote session, the method comprising:

establishing a remote session between a client and the server, including redirecting a smart card that is connected to the client to the server so that the smart card is accessible on the server;

intercepting, by a smart card stub that executes within the remote session on the server, an application programming interface (API) for accessing the redirected smart card that was made by an application executing within the remote session;

passing, by the smart card stub that executes within the remote session, the intercepted API call to a smart card proxy that is executing on the server within session 0; and

executing, by the smart card proxy that executes within session 0, the API call to access the redirected smart card.

2. The method of claim 1 , wherein the smart card stub passes the intercepted API call to the smart card proxy using a remote procedure call.

3. The method of claim 1 , wherein the API call is executed via a smart card resource manager service that is executing on the server.

4. The method of claim 3 , wherein the API call is executed via a smart card driver stack that is loaded on the server.

5. The method of claim 1 , wherein the smart card stub employs a remote procedure call to pass the intercepted API call to the smart card proxy.

6. The method of claim 1 , wherein the smart card stub hooks API calls of the WinSCard API.

7. The method of claim 1 , further comprising:

receiving, by the smart card proxy, a response from the execution of the API call; and

passing the response to the smart card stub.

8. The method of claim 7 , wherein the smart card proxy passes the response to the smart card stub as a response to a remote procedure call that the smart call stub invoked to pass the intercepted API call to the smart card proxy.

9. The method of claim 8 , further comprising:

returning, by the smart card stub, the response to the application.

10. The method of claim 1 , wherein the intercepted API call includes an Answer-To-Reset (ATR) string, and the smart card stub passes the ATR string to the smart card proxy in a buffer having a size that is equal to the maximum size of an ATR string even when the ATR string has a size that is less than the maximum size.

11. The method of claim 10 , wherein the smart card stub copies the ATR string into the buffer using the memcpy function that specifies the maximum size as the number of bytes to copy.

12. The method of claim 10 , wherein the smart card stub passes the ATR string as part of a remote procedure call, including specifying the maximum size as the length of the ATR string.

13. The method of claim 1 , further comprising:

establishing a nested session with another server from within the remote session, including loading an instance of the smart card stub in the nested session;

intercepting, by the smart card stub in the nested session, a second API call to access the smart card that is made by an application executing on the other server within the nested session;

passing, by the smart card stub in the nested session, the second intercepted API call to the smart card proxy executing on the server; and

executing, by the smart card proxy, the second API call.

14. The method of claim 13 , wherein the smart card stub in the nested session passes the second intercepted API call to the smart card proxy via a remote procedure call.

15. The method of claim 14 , further comprising:

receiving, by the smart card proxy, a response to the second API call; and

passing the response to the second API call to the smart card stub in the nested session.

16. The method of claim 13 , wherein establishing the nested sessions comprises specifying, to the smart card stub in the nested session, information for communicating with the smart card proxy.

17. One or more computer storage media having computer executable instructions which when executed by one or more processors of a server in a virtual desktop infrastructure environment implement a method for enabling smart card access from within a remote session, the method comprising:

as part of establishing a remote session for a client that has remotely connected to the server, loading a smart card stub in the remote session and a smart card proxy in session 0, loading the smart card stub including hooking operating-system-provided application programming interface (API) calls for accessing smart cards;

intercepting, by the smart card stub, an API call for accessing the redirected smart card that was made by an application executing with the remote session;

passing, by the smart card stub, the API call to the smart card proxy using a remote procedure call; and

executing, by the smart card proxy, the API call to access the redirected smart card.

18. The computer storage media of claim 17 , wherein the API call includes an Answer to Reset (ATR) string, and wherein the smart card stub passes the ATR string in a buffer having a size equal to a maximum allowable size for an ATR string.

19. One or more computer storage media having computer executable instructions which when executed by one or more processors of a server implement a virtual desktop infrastructure environment comprising:

an agent that executes on the server and is configured to establish remote sessions with clients;

a virtual USB bus driver that interfaces with the agent to redirect smart cards from the clients to the server;

a smart card stub that is loaded in each remote session and is configured to intercept application programming interface (API) calls to access the redirected smart cards; and

a smart card proxy that is loaded in session 0 and is configured to receive the intercepted API calls from the smart card stub and to invoke the API calls.

20. The computer storage media of claim 19 , wherein the smart card proxy receives the API calls via remote procedure calls.

Assignments (13)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (051302/0528) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.); SECUREWORKS CORP.
Reel/Frame 060438/0593 →
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 →
MERGER Recorded May 9, 2022
From: WYSE TECHNOLOGY L.L.C.
To: DELL MARKETING CORPORATION
Reel/Frame 059912/0109 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040679/0386) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.)
Reel/Frame 059803/0666 →
RELEASE OF SECURITY INTEREST AT REEL 040633 FRAME 0799 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL INTERNATIONAL, L.L.C.; DELL PRODUCTS L.P.; WYSE TECHNOLOGY L.L.C.; EMC CORPORATION
Reel/Frame 058297/0427 →
RELEASE OF SECURITY INTEREST AT REEL 051449 FRAME 0728 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.; SECUREWORKS CORP.; EMC CORPORATION
Reel/Frame 058002/0010 →
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 Dec 31, 2019
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.; SECUREWORKS CORP.; EMC CORPORATION
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 051449/0728 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Dec 16, 2019
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.; SECUREWORKS CORP.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 051302/0528 →
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 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Nov 23, 2016
From: DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; WYSE TECHNOLOGY L.L.C.; EMC CORPORATION
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 040679/0386 →
SECURITY INTEREST Recorded Nov 16, 2016
From: DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; WYSE TECHNOLOGY L.L.C.; EMC CORPORATION
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040633/0799 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 20, 2016
From: VAJRAVEL, GOKUL T; VENKATESH, RAMANUJAM K
To: WYSE TECHNOLOGY L.L.C.
Reel/Frame 040078/0539 →
Continuity (1)
Related Publication 20180115613A1 · Apr 26, 2018