IP Library Granted Patent US 10,341,338
Granted Patent B1
US 10,341,338 · App. 16/053,732 · Granted Jul 2, 2019

Smart card redirection

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,341,338
App. No.
16/053,732
Granted
Jul 2, 2019
Kind
B1
Abstract

A processing device of a server executing an application establishes a network connection to a client device having a smart card, detects a program call associated with an authentication of a user of the client device for accessing the application, and determines, based on the program call, whether the smart card is a remote smart card for the server. Responsive to determining that the smart card is the remote smart card, the processing device redirects the program call to the client device via a communication channel of the network connection and authenticates, by the server, the user of the client device in view of data returned by the program call, as if the remote smart card were local to the server.

Claims (61)

1. A method comprising:

establishing, by a processing device of a server executing an application, a network connection to a client device having a smart card;

detecting a program call associated with an authentication of a user of the client device for accessing the application;

determining, based on the program call, whether the smart card is a remote smart card for the server;

responsive to determining that the smart card is the remote smart card, redirecting the program call to the client device via a communication channel of the network connection; and

authenticating, by the server using a local component, the user of the client device in view of data returned by the client device in response to the program call, the local component handling the remote smart card as local to the server.

2. The method of claim 1 , wherein the program call is directed to a smart card application programming interface (API).

3. The method of claim 2 , further comprising:

responsive to determining that the smart card is a local smart card for the server and not a remote smart card for the server, allowing, by the processing device, the program call to be received by the smart card API.

4. The method of claim 1 , further comprising:

prior to detecting the program call, receiving a personal identification number (PIN) of the user from the client device to initiate authentication of the user for accessing the application, the PIN being associated with the smart card; and

inserting the PIN as a parameter in the program call.

5. The method of claim 4 , wherein the data is at least one of one or more user credentials stored on the smart card or a value confirming that the PIN is valid.

6. The method of claim 1 , wherein determining whether the smart card is a remote smart card for the server comprises:

identifying a session parameter in the program call;

determining whether the session parameter is valid; and

determining the smart card is a remote smart card for the server in response to determining that the session parameter is not valid.

7. The method of claim 1 , wherein detecting the program call comprises:

changing an association of a network socket corresponding to the communication channel of the network connection from an authentication server to a local security authority subsystem service (LSASS), wherein the program call is issued by the LSASS, and

wherein redirecting the program call comprises sending a remote procedure call corresponding to the program call to the client device via the network socket.

8. The method of claim 7 , further comprising:

determining that authentication of the user is complete; and

modifying the changed association of the network socket from the LSASS to the authentication server to allow the authentication server to communicate with the client device.

9. The method of claim 1 , wherein the server is a remote desktop session host (RDSH) server and the application is at least one of an email application, a word processing application, a spreadsheet application, a presentation application.

10. The method of claim 1 , wherein the network connection is established prior to initiating a remote desktop protocol (RDP) session with the client device.

11. A system comprising:

a memory; and

a processing device of a server executing an application, coupled to the memory, to:

establish a network connection to a client device having a smart card;

detect a program call associated with an authentication of a user of the client device for accessing the application;

determine, based on the program call, whether the smart card is a remote smart card for the server;

responsive to determining that the smart card is the remote smart card, redirect the program call to the client device via a communication channel of the network connection; and

authenticate, by the server using a local component, the user of the client device in view of data returned by the client device in response to the program call, the local component handling the remote smart card as local to the server.

12. The system of claim 11 , wherein to determine whether the smart card is a remote smart card for the server, the processing device is to:

identify a session parameter in the program call;

determine whether the session parameter is valid; and

determine the smart card is a remote smart card for the server in response to determining that the session parameter is not valid.

13. The system of claim 11 , wherein to detect the program call, the processing device is to:

change an association of a network socket corresponding to the communication channel of the network connection from an authentication server to a local security authority subsystem service (LSASS), wherein the program call is issued by the LSASS, and

wherein to redirect the program call, the processing device is to send a remote procedure call corresponding to the program call to the client device via the network socket.

14. The system of claim 13 , wherein the processing device is further to:

determine that authentication of the user is complete; and

modify the changed association of the network socket from the LSASS to the authentication server to allow the authentication server to communicate with the client device.

15. The system of claim 11 , wherein the network connection is established prior to initiating a remote desktop protocol (RDP) session with the client device.

16. A non-transitory computer readable medium having instructions stored thereon that, when executed by a processing device, cause the processing device to perform operations comprising:

establishing, by the processing device, a network connection to a client device having a smart card, the processing device being of a server executing an application;

detecting a program call associated with an authentication of a user of the client device for accessing the application;

determining, based on the program call, whether the smart card is a remote smart card for the server;

responsive to determining that the smart card is the remote smart card, redirecting the program call to the client device via a communication channel of the network connection; and

authenticating, by the server using a local component, the user of the client device in view of data returned by the client device in response to the program call, the local component handling the remote smart card as local to the server.

17. The non-transitory computer readable medium of claim 16 , wherein determining whether the smart card is a remote smart card for the server comprises:

identifying a session parameter in the program call;

determining whether the session parameter is valid; and

determining the smart card is a remote smart card for the server in response to determining that the session parameter is not valid.

18. The non-transitory computer readable medium of claim 16 , wherein detecting the program call comprises:

changing an association of a network socket corresponding to the communication channel of the network connection from an authentication server to a local security authority subsystem service (LSASS), wherein the program call is issued by the LSASS, and

wherein redirecting the program call comprises sending a remote procedure call corresponding to the program call to the client device via the network socket.

19. The non-transitory computer readable medium of claim 18 , the operations further comprising:

determining that authentication of the user is complete; and

modifying the changed association of the network socket from the LSASS to the authentication server to allow the authentication server to communicate with the client device.

20. The non-transitory computer readable medium of claim 16 , wherein the server is a remote desktop session host (RDSH) server and the application is at least one of an email application, a word processing application, a spreadsheet application, a presentation application.

Assignments (5)
RELEASE OF SECURITY INTEREST Recorded Jul 18, 2019
From: UBS AG, STAMFORD BRANCH, AS ADMINISTRATIVE AND COLLATERAL AGENT
To: COREL CORPORATION; CLEARSLIDE, INC.; PARALLELS INTERNATIONAL GMBH
Reel/Frame 049787/0073 →
RELEASE OF SECURITY INTEREST RECORDED AT : REEL 047973 FRAME 0797 Recorded Jul 17, 2019
From: UBS AG, STAMFORD BRANCH
To: PARALLELS INTERNATIONAL GMBH
Reel/Frame 049773/0590 →
SECURITY INTEREST Recorded Dec 21, 2018
From: PARALLELS INTERNATIONAL GMBH
To: UBS AG, STAMFORD BRANCH
Reel/Frame 047973/0797 →
MERGER Recorded Sep 6, 2018
From: PARALLELS IP HOLDINGS GMBH; PARALLELS INTERNATIONAL GMBH
To: PARALLELS INTERNATIONAL GMBH
Reel/Frame 046808/0255 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 7, 2018
From: FARRUGIA, DANIEL; GAFA, PAUL; DOBROVOLSKIY, NIKOLAY; BELOUSSOV, SERGUEI
To: PARALLELS IP HOLDINGS GMBH
Reel/Frame 046737/0673 →