Native remote access to target resources using secretless connections

Information

  • Patent Grant
  • 12289308
  • Patent Number
    12,289,308
  • Date Filed
    Wednesday, December 21, 2022
    2 years ago
  • Date Issued
    Tuesday, April 29, 2025
    4 days ago
Abstract
Disclosed embodiments relate to systems and methods for securely establishing secretless and remote native access sessions. Techniques include identifying a client configured to participate in remote native access sessions, wherein the client has a remote access protocol file that has been modified to include an identifier associated with the client; sending a prompt to the client to establish a secure tunnel connection with a connection agent using the identifier associated with the client; and authentication the client. The techniques may further include accessing target identity information associated with one or more target resources; receiving from the client a token that identifies a target resource from among the one or more target resources; obtaining, based on the token, a credential required for secure access to the target resource; and initiating, using the credential, a remote native access session between the client and the target resource.
Description
BACKGROUND

Organizations and individuals increasingly use remote network connections for accessing secure files and other network resources. For example, many organizations allow individuals to work collaboratively from different offices, from home office locations, or while travelling. As another example, individuals may use cloud-based servers for storing electronic files and may access these files through a remote connection. Thus, these remote connections provide improved flexibility, allowing users to access a network remotely as if their device was connected to the network directly. Although advantageous, these remote connections may present security vulnerabilities and are common targets for malicious actors to gain access to the secure network or user data.


Some existing techniques, such as virtual private networks (VPNs), require the installation of VPN clients, which can be cumbersome for users and often lead to increased operating expenditures for organizations. Further, VPNs often do not discriminate among target resources, and instead provide users with full access to the network. For this reason, VPN clients are common attack points for malicious users, who may target security vulnerabilities to gain access to secure networks and harvest user credentials or other sensitive data. Further, such VPN clients often require users to enter passwords specific to the VPN service, which increases the risk of credentials theft and deteriorates the user's experience. Other techniques, such as HTML5 gateway solutions, do not require the installation of VPN clients, but equally provide a poor user experience by requiring a browser-based session, rather than a native desktop client.


Some remote desktop gateway techniques allow for passwordless or multi-factor authentication, however, additional passwords may be required to access a particular target resource. Further, these remote desktop gateways often require a user to identify details of a target server (such as IP addresses, or port configurations), a domain username, or other sensitive information, which may create an attack vector for malicious actors.


Accordingly, in view of these and other deficiencies in existing techniques, technological solutions are needed for securely establishing passwordless and native remote access sessions. In particular, solutions should advantageously allow for the sessions to be established without requiring separate credentials. Further, technological solutions should allow native access without requiring a dedicated remote access client or other non-native software, such as a web-based interface. Solutions should also be dynamic, allowing secure connections to be established during a connection phase, without potentially exposing sensitive client information, such as usernames or other credentials, or sensitive target details, such as IP addresses or other information for the target host.


SUMMARY

The disclosed embodiments describe non-transitory computer readable media, systems, and methods for securely establishing secretless and remote native access sessions. For example, in an embodiment, a non-transitory computer readable medium may include instructions that, when executed by at least one processor, cause the at least one processor to perform operations for securely establishing secretless and remote native access sessions. The operations may comprise identifying a client configured to participate in remote native access sessions, wherein the client has a remote access protocol file that has been modified to include an identifier associated with the client; sending a prompt to the client to establish a secure tunnel connection with a connection agent using the identifier associated with the client; authenticating the client; accessing target identity information associated with one or more target resources; receiving from the client a token that identifies a target resource from among the one or more target resources; obtaining, based on the token, a credential required for secure access to the target resource; and initiating, using the credential, a remote native access session between the client and the target resource.


According to a disclosed embodiment, the remote access protocol file may be modified by the client.


According to a disclosed embodiment, the connection agent may replace a username in a request for the remote native access session with data from the token.


According to a disclosed embodiment, the credential may be obtained in a secretless manner from the perspective of the client.


According to a disclosed embodiment, the target identity information may be associated with a plurality of target resources.


According to a disclosed embodiment, the operations may further comprise receiving a selection by the client of the target resource from among the plurality of target resources.


According to a disclosed embodiment, the plurality of target resources may be identified based on access rights of the client.


According to a disclosed embodiment, the plurality of target resources may be identified based on the authentication of the client.


According to a disclosed embodiment, the remote access protocol file may be a remote desktop protocol.


According to a disclosed embodiment, the identifier associated with the client may be at least one of: a mobile telephone number, and email address, a user name, an account name, or a custom identifier created by the client.


According to another disclosed embodiment, there may be a computer-implemented method for securely establishing secretless and remote native access sessions. The method may comprise identifying a client configured to participate in remote native access sessions, wherein the client has a remote access protocol file that has been modified to include an identifier associated with the client; sending a prompt to the client to establish a secure tunnel connection with a connection agent using the identifier associated with the client; authenticating the client; accessing target identity information associated with one or more target resources; receiving from the client a token that identifies a target resource from among the one or more target resources; obtaining, based on the token, a credential required for secure access to the target resource; and initiating, using the credential, a remote native access session between the client and the target resource.


According to a disclosed embodiment, the credential may be obtained from a secure credentials vault.


According to a disclosed embodiment, the credential may be obtained without making the credential available to the client.


According to a disclosed embodiment, the credential may be obtained locally at the client, and deleted at the client upon termination of the remote native access session.


According to a disclosed embodiment, the target identity information may be associated a plurality of target resources.


According to a disclosed embodiment, the method may further comprise sending to the client data for generating a selectable menu of the plurality of target resources.


According to a disclosed embodiment, the selectable menu of the plurality of target resources may comprise icons and identifying data associated with the plurality of target resources.


According to a disclosed embodiment, the authentication of the client may be performed according to at least one of: OpenID or Security Assertion Markup Language.


According to a disclosed embodiment, the connection agent may be located in a local network in which the target resource is also located.


According to a disclosed embodiment, the connection agent may be located in a virtualized network in which the target resource is also located.


Aspects of the disclosed embodiments may include tangible computer-readable media that store software instructions that, when executed by one or more processors, are configured for and capable of performing and executing one or more of the methods, operations, and the like consistent with the disclosed embodiments. Also, aspects of the disclosed embodiments may be performed by one or more processors that are configured as special-purpose processor(s) based on software instructions that are programmed with logic and instructions that perform, when executed, one or more operations consistent with the disclosed embodiments.


It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory only, and are not restrictive of the disclosed embodiments, as claimed.





BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate disclosed embodiments and, together with the description, serve to explain the disclosed embodiments. In the drawings:



FIG. 1 illustrates an example system environment for providing native remote access to target resources, consistent with the disclosed embodiments.



FIG. 2 is a block diagram showing an example computing system, consistent with the disclosed embodiments.



FIG. 3 is a block diagram illustrating an example process for providing native remote access to target resources, consistent with the disclosed embodiments.



FIG. 4 illustrates an example user interface for selecting an account, consistent with the disclosed embodiments.



FIG. 5 is a flowchart depicting an example process for securely establishing secretless and remote native access sessions, consistent with the disclosed embodiments.





DETAILED DESCRIPTION

In the following detailed description, numerous specific details are set forth in order to provide a thorough understanding of the disclosed example embodiments. However, it will be understood by those skilled in the art that the principles of the example embodiments may be practiced without every specific detail. Well-known methods, procedures, and components have not been described in detail so as not to obscure the principles of the example embodiments. Unless explicitly stated, the example methods and processes described herein are not constrained to a particular order or sequence, or constrained to a particular system configuration. Additionally, some of the described embodiments or elements thereof can occur or be performed simultaneously, at the same point in time, or concurrently.


The techniques for securely establishing secretless and remote native access sessions described herein overcome several technological problems relating to security, efficiency, and functionality in the fields of cybersecurity and remote network access. In particular, the disclosed embodiments provide techniques for establishing secure remote access sessions in a passwordless manner using native desktop clients. As discussed above, many current remote access techniques present security vulnerabilities and inefficiencies both for users and for organizations. For example, virtual private networks (VPNs) and other connections often create attack vectors for malicious actors. In particular, VPN and other clients often use credentials, such as passwords, when establishing the connection, which may unnecessarily expose these credentials to attackers. Similarly, some techniques include sensitive information about the client or the host network in communications establishing the connection, which may also create vulnerabilities. Further, VPN clients and other techniques often allow broad access to a network, which may increase the ability of attackers to access sensitive information or escalate privileges in the network.


The disclosed embodiments provide technical solutions to these and other problems with current techniques. In particular, the disclosed techniques do not require passwords or other credentials to be stored on the client device, or to be transmitted by the client to the target network system, thereby improving security in the network. Further, the disclosed techniques allow a remote access session to be established without identifying a particular target resource and without transmitting usernames or other sensitive information associated with the client during the connection phase. Rather, this information may be provided after the connection has been established and once a user has been authenticated. Moreover, the scope of access that a user may be granted can be narrowly tailored based on permissions associated with the user or the current access requirements of the user. For these, and other reasons that will be apparent to those skilled in the art, the disclosed techniques provide improved security over existing techniques.


Further, the disclosed techniques do not require a dedicated agent or client to be installed on a client device for establishing the secure connection other than software components that are native to the device and/or the operating system. For example, the remote access may be established using a standard remote desktop protocol, without the need for a VPN client, a web-based portal, or other non-native software. This not only improves the experience for the user, but can provide increased flexibility in the types of devices that can access the network, and can also reduce overhead costs associated with maintenance and troubleshooting of a dedicated client.


Reference will now be made in detail to the disclosed embodiments, examples of which are illustrated in the accompanying drawings.



FIG. 1 illustrates an example system environment 100 for providing native remote access to target resources, consistent with the disclosed embodiments. System environment 100 may include one or more client identities 110, one or more mobile devices 116, a client system 120, and one or more cloud services 130, as shown in FIG. 1. Client system 120 may comprise, among other things, a connector 122, a credentials vault 124, a connection agent 126, and one or more target resources 128. System environment 100 may represent a system or network environment in which client identity 110 requests access to target resource 128 remotely. System environment 100 may be configured to provide client identity 110 access to target resource 128 using native web applications (i.e., without requiring a dedicated application, webpage, etc.) and without requiring separate credentials. Further details regarding this system are provided below.


The various components of system 100 may communicate over a network 140. Such communications may take place across various types of networks, such as the Internet, a wired Wide Area Network (WAN), a wired Local Area Network (LAN), a wireless WAN (e.g., WiMAX), a wireless LAN (e.g., IEEE 802.11, etc.), a mesh network, a mobile/cellular network, an enterprise or private data network, a storage area network, a virtual private network using a public network, a nearfield communications technique (e.g., Bluetooth, infrared, etc.), or various other types of network communications. In some embodiments, the communications may take place across two or more of these forms of networks and protocols. While system environment 100 is shown as a network-based environment, it is understood that in some embodiments, one or more aspects of the disclosed systems and methods may also be used in a localized system, with one or more of the components communicating directly with each other.


Client identity 110 may refer to any identity that may access files associated with target resource 128. In some embodiments, client identity 110 may refer to a particular user or account (e.g., data and/or instructions representing an individual or service account). For example, client identity 110 may include a user 112 associated with one or more credentials for accessing target resource 128. In some embodiments, client identity 110 may include a client device 114 through which user 112 may access target resource 128. For example, client device 114 may be a personal computer (e.g., a desktop or laptop computer), a mobile device (e.g., a mobile phone or tablet), a wearable device (e.g., a smart watch, smart jewelry, implantable device, fitness tracker, smart clothing, head-mounted display, etc.), an IoT device (e.g., smart home devices, industrial devices, etc.), or any other device that may engage in remote access to target resource 128. In some embodiments, client identity 110 may be a virtual machine (e.g., based on AWS™, Azure™, IBM Cloud™, etc.), container instance (e.g., Docker™ container, Java™ container, Windows Server™ container, etc.), or other virtualized instance. In some embodiments, client identity 110 may be a software instance or application executing on client device 114. Using the disclosed methods, client identity 110 may access target resource 128 remotely without the need for specific credentials, a VPN, a dedicated agent, etc. As used herein, a “client” may refer collectively to client identity 110, to user 112, an account associated with user 112, or to client device 114.


In some embodiments, client identity 110 may be authorized through system environment 100 using a multi-factor authentication process. This may include authenticating client identity 110, at least in part, through verifying an object in the possession of user 112. Accordingly, system environment 100 may further include a device, such as mobile device 116, for authenticating client identity 110. Mobile device 116 may include any computing device associated with user 112 that is separate from client device 114. For example, mobile device 116 may include a mobile phone, a tablet, a wearable device (e.g., a smart watch, smart jewelry, implantable device, fitness tracker, smart clothing, head-mounted display, etc.). In some embodiments, mobile device 116 may be configured to receive push notifications or other electronic communications requesting authentication of client identity 110. Further, mobile device 116 may include a display configured to display graphical user interfaces for selecting accounts and/or target resources, or performing other functions associated with the disclosed techniques.


Client identity 110 and/or mobile device 116 may communicate with client system 120 through network 140. Client identity 110 may be configured to participate in remote native access sessions with client system 120 for accessing target resource 128. As used herein, a remote native access session may refer to any network-based remote connection that is accessed through native software and components of the client device 114. In some embodiments, the remote native access session may be a remote desktop connection. Accordingly, the native software may include a remote desktop client that is not specific to client system 120 or cloud service 130. For example, the remote desktop client may include a client integral to an operating system of client device 114, such as a Microsoft™ remote desktop protocol (RDP) client, or similar RDP clients. Accordingly, the remote native access session may be accessed without the need for a dedicated client (e.g., a VPN client), a webpage browser (e.g., through a web portal, an HTML5 gateway, etc.), or the like.


Further, the remote native access session may be dynamic. As used herein, a dynamic connection may be one that is established without initially identifying one or more aspects of the remote access connection. For example, during the connection phase, the account accessing the connection, the target resource (e.g., the target IP address, etc.), the connecting tool (e.g., which application is used), or various other aspects may not be defined. Rather, these or other aspects may be defined after the connection has been established, and potentially after the client identity has been authenticated. In some embodiments, user 112 may specify these aspects over the native connection using client device 114, mobile device 116, or through other methods. Additional details regarding the remote native access session are described below with respect to FIG. 3.


As shown in FIG. 1, client system 120 may include a connector 122. Connector 122 may be a component of client system 120 responsible for receiving requests for remote access sessions. Connector 122 may process these requests and perform additional interfacing steps between client device 114, mobile device 116, cloud service 130, and/or components of client system 120. Connector 122 may be a dedicated server, service, or software component of client system 120, or may be integrated with one or more other components of client system 120.


In some embodiments, client system 120 may further include, or have external access to, a credentials vault 124. Credentials vault 124 may be any form of storage location containing credentials (such as usernames, tokens, passwords, etc.) associated with client system 120 (e.g., CyberArk Enterprise Password Vault™). In particular, credentials vault 124 may store credentials required to access target resource 128. For example, as discussed further below, in situations where client identity 110 has been successfully authenticated, connector 122 and/or connection agent 126 may fetch a secret (e.g., authentication key, credential, token, password, etc.) from credentials vault 124 for authentication of client identity 110 (or a corresponding identity or account) to the appropriate target resource 128. In some embodiments the secrets stored within credentials vault 124 may not be provided to client identity 110. Accordingly, user 112 may be authenticated in a passwordless manner to access target resource 128. In some embodiments, credentials vault 124 may be omitted and the credentials may be stored locally in client system 120, on client device 114 or mobile device 116.


Client system 120 may further include a connection agent 126, as shown in FIG. 1. Connection agent 126 may be a separate component (e.g., a separate software component, a separate server, etc.) or may be integrated with one or more other components of client system 120, such as connector 122. Connection agent 126 may perform tasks associated with establishing a remote access session as described above. Connection agent 126 may further obtain credentials for client identity 110, for example through credentials vault 124. Additional details regarding these and other actions that may be performed by connection agent 126 are provided below with respect to FIG. 3.


Client system 120 may further include, or have external access to, a target resource 128. As used herein, a target resource may refer to any resource within a network that may accessed by client system 120 remotely. Examples of network resources may include SQL servers, databases or data structures holding confidential information, restricted-use applications, operating system directory services, access-restricted cloud-computing resources (e.g., an AWS™ or Azure™ server), sensitive IoT equipment (e.g., physical access control devices, video surveillance equipment, etc.), and/or any other computer-based equipment or software that may be accessible over a network.


In some embodiments, target resource 128 may be a privileged resource, such that access may be limited or restricted. For example, access to the requested resource may require a privileged credential (e.g., a password, a username, an SSH key, an asymmetric key, a security or access token, etc.), membership in a privileged access group (e.g., Microsoft Active Directory™ group, AWS Identity and Access Management™ group, etc.), or other form of privileged access rights. In some embodiments, credentials vault 124 may store privileged credentials required for accessing target resource 128, as described above.


In some embodiments, system environment 100 may include a cloud service 130, as shown in FIG. 1. Cloud service 130 may be a cloud-based service configured to perform tasks associated with facilitating the connection between client device 114 (and/or mobile device 116) and client system 120. For example, cloud service 130 may be configured to receive or intercept access requests from client device 114 and may route them to connector 122. Additional details regarding these and other actions that may be performed by service 130 are described below with respect to FIG. 3.



FIG. 2 is a block diagram showing an example connector 122, consistent with the disclosed embodiments. As described above, connector 122 may be a computing device (e.g., a server, etc.) and may include one or more dedicated processors and/or memories. For example, connector 122 may include a processor (or multiple processors) 210, a memory (or multiple memories) 220, and/or one or more input/output (I/O) devices 230, as shown in FIG. 2. In some embodiments, connector 122 may be integrated with one or more other components of client system 120. For example, processor 210 and/or memory 220 may also be associated with credentials vault 124, connection agent 126, and/or target resource 128.


Processor 210 may take the form of, but is not limited to, a microprocessor, embedded processor, or the like, or may be integrated in a system on a chip (SoC). Furthermore, according to some embodiments, processor 210 may be from the family of processors manufactured by Intel®, AMD®, Qualcomm®, Apple®, NVIDIA®, or the like. The processor 210 may also be based on the ARM architecture, a mobile processor, or a graphics processing unit, etc. The disclosed embodiments are not limited to any type of processor configured in client system 120.


Memory 220 may include one or more storage devices configured to store instructions used by the processor 210 to perform functions related to client system 120. The disclosed embodiments are not limited to particular software programs or devices configured to perform dedicated tasks. For example, the memory 220 may store a single program, such as a user-level application, that performs the functions associated with the disclosed embodiments, or may comprise multiple software programs. Additionally, the processor 210 may, in some embodiments, execute one or more programs (or portions thereof) remotely located from connector 122. Furthermore, memory 220 may include one or more storage devices configured to store data for use by the programs. Memory 220 may include, but is not limited to a hard drive, a solid state drive, a CD-ROM drive, a peripheral storage device (e.g., an external hard drive, a USB drive, etc.), a database, a network drive, a cloud storage device, or any other storage device.


I/O devices 230 may include one or more network adaptors or communication devices and/or interfaces (e.g., WIFI, BLUETOOTH, RFID, NFC, RF, infrared, Ethernet, etc.) to communicate with other machines and devices, such as with other components of system environment 100 through network 140. For example, client system 120 may use a network adaptor to receive and transmit communications pertaining to access requests within system environment 100. In some embodiments, I/O devices 230 may also include interface devices for interfacing with a user of client system 120. For example, I/O devices 230 may comprise a display, touchscreen, keyboard, mouse, trackball, touch pad, stylus, printer, or the like, configured to allow a user to interact with client system 120.



FIG. 3 is a block diagram illustrating an example process 300 for providing native remote access to target resources, consistent with the disclosed embodiments. Process 300 may allow a client, such as client identity 110, to establish a secure connection 304 with client system 120 for accessing target resource 128. As used herein, accessing the target resource 128 may include any operations by a client device involving data or information stored on target resource 128. For example, this may include reading information stored on target resource 128, storing information on target resource 128, deleting or modifying information on target resource 128, or any other forms of operations requiring access to the target resource. In some embodiments, access may be restricted to privileged client identities, as discussed above.


As part of process 300, client device 114 may transmit a request in step 310 for accessing target resource 128 of client system 120. In some embodiments, client device 114 may access a remote access protocol file 302. This remote access protocol file 302 may include information for establishing secure connection 304. In particular, remote access protocol file 302 may include information identifying client identity 110 (e.g., an account associated with user 112, etc.) and information identifying a target host for the connection (e.g., connector 122, credentials vault 124, and/or connection agent 126). For example, this information may be represented as an address for a target host, which may include a server name indication (SNI) as part of a transport layer security (TLS) protocol, or any other suitable form of address. In some embodiments, remote access protocol file 302 may be a proprietary protocol file, such as a remote desktop protocol (RDP) file associated with Windows Remote Desktop™, or the like. Of course, remote access protocol file 302 may correspond to other protocols as well. Accordingly, client device 114 may send the request in step 310 using native remote access software, without the need for a VPN client, a browser-based interface, or other non-native software.


In the example of an SNI address, the remote access protocol file 302 may be presented in the form userID.address, where userID is a prefix added to the target host address. In some embodiments, the user ID may be a personal telephone number (e.g., mobile number), or other identifier associated with user 112. In some embodiments, process 300 may include a step of modifying the address within remote access protocol file 302 to include the user ID. For example, user 112 may manually modify the address to include a phone number or other identifier associated with user 112 through a text-based file editor, a graphical user interface, a mobile application, or any other suitable interface. In other embodiments, the user ID may be automatically added, for example, by client device 114, by cloud service 130, or other components of system environment 100. While the userID.address format is provided by way of example, any other suitable formats may be used for representing the user information and the address within remote access protocol file 302. For example, the user ID may be included in a designated field, appended as a suffix to the address, or otherwise included in the file.


Notably, in some embodiments, remote access protocol file 302 and the request of step 310 may not include credentials required to access target resource 128 and may not specifically identify target resource 128. In such embodiments, secure connection 304 may be dynamic in that the connection may be established initially and the details regarding the specific target resource and the user's credentials may be determined subsequently, as described further below. For example, remote access protocol file 302 may include fields or designated spaces for a username and password or other credentials of client identity 110. These fields or spaces may be empty, may include a default text (e.g., “BLANK”), or may include an identifier for identifying the credential fields in later stages. Omitting the user's credentials in this way may improve security by eliminating a potential for the user's credentials to be stolen or otherwise obtained by an attacker. Further, process 300 would not require user 112 to enter separate credentials for accessing client system 120. Thus process 300 allows for a passwordless remote connection to target resource 128. Additional details regarding the authentication of client identity 110 are provided below.


Remote access protocol file 302 may be accessed by client identity 110 in various ways. For example, remote access protocol file 302 may be stored in a memory of client device 114, such as on a local hard drive, a solid state drive, a removable drive, or the like. In some embodiments, remote access protocol file 302 may be stored externally. For example, remote access protocol file 302 may be stored on a cloud-based platform (e.g., in cloud service 130, or other cloud locations), on a remote server, on a separate computing device, or the like. In some embodiments, cloud service 130 may generate remote access protocol file 302 and provide it to client identity 110 for accessing client system 120 and/or other systems.


In some embodiments, the request in step 310 may not be transmitted directly to connector 122. For example, user device 114 may transmit the request to cloud service 130, which may route the request to the correct target host based on the address included in remote access protocol file 302. This may include, for example, extracting the SNI address described above and mapping it to the appropriate connector. Accordingly, cloud service 130 may include or may have access to a database of connector network addresses, connector identifiers, and/or other information to facilitate routing requests in step 310.


In step 312, connector 122 may send a prompt to client device 114 to establish a secure connection 304 with connection agent 126. For example, secure connection 304 may be a tunnel connection, such as a connection using the TLS protocol, or a similar connection protocol. While TLS is used by way of example, it is to be understood that various other forms of secure connections may be used, and the present disclosure is not limited to any particular connection protocol or configuration. Further, while secure connection 304 is shown between client device 116 and connection agent 116, the connection may be with any component or subcomponent of client system 120, including connector 122.


Once the connection has been successfully tunneled, connector 122 may generate and send a push notification in step 314. The push notification may be received through a mobile application on mobile device 116. Through the push notification, user 112 may be prompted for authentication and target account selection. Authentication step 316 may occur in a variety of ways. In some embodiments, authentication may occur by virtue of user 112 having mobile device 116 in his or her possession. Accordingly, the push notification transmitted in step 314, along with the identification of the user in the request in step 310, may provide multi-factor authentication for client identity 110. In some embodiments, additional authentication may be performed, such as biometric authentication (e.g., a retinal scan, facial recognition, a fingerprint scan, a voiceprint identification, etc.), a user pin, a password, scanning a QR code, or the like. According to some embodiments of the present disclosure, an authentication protocol, such as OpenID or Security Assertion Markup Language (SAML), may be used in step 316.


Through mobile device 116, user 112 may also select an account for accessing target resource 128. In some embodiments, the account may be selected automatically. For example, user 112 may be associated with only one account, or may have a preferred or default account that is selected. In other embodiments, user 112 may select from a plurality of accounts through a user interface.



FIG. 4 illustrates an example user interface 400 for selecting an account, consistent with the disclosed embodiments. User interface 400 may be displayed, for example, on mobile device 116 and may be associated with a mobile application. As shown in FIG. 4, user interface 400 may present a plurality of accounts, such as account 410, that the user may select through the display of mobile device 116. User interface 400 may further include filters or other options for configuring the display of the available accounts. For example, user interface 400 may include filters 412 for filtering or sorting by accounts designated as favorites, recent accounts selected by user 112, or various other attributes. User interface 400 is shown by way of example, and various other configurations or formats may be used. In some embodiments, the user interface 400 may be presented through a separate device, such as client device 114, or another device accessible by user 114 (e.g., a laptop computer, a tablet, a smartwatch, etc.).


Returning to FIG. 3, process 300 may include a step 318 for transmitting a request to connector 112 for accessing target resource 128. This request may include a token 306, that is provided to connector 122. In some embodiments, token 306 may be a temporary token generated by mobile device 116 for one-time access to client system 120. In some embodiments, token 306 may be generated by another device or service, such as cloud service 130. In some aspects of the present disclosure, token 306 may further be valid only for a limited period of time.


Token 306 may include an identifier of target resource 128. For example, client system 120 may include a plurality of target resources associated with target identity information, and token 306 may identify target resource 128 from among the plurality of target resources. The target identity information may be stored locally within client system 120 (e.g., in memory 220) or in an external storage location (e.g., a remote server, a cloud-based platform, etc.).


In step 320, connector 122 may then modify the request to include a username based on token 306. In some embodiments, this may include intervening in the remote desktop protocol to replace the remote desktop username in the request of step 310 with token 306. For example, as described above, remote access protocol file 302 may include a username field that is blank, or that has a placeholder or default value. Accordingly, step 320 may include inserting the blank username or replacing the placeholder with token 306, which will serve as the username for accessing target resource 128. Therefore, the connection may be established initially without requiring the username to be included in the request of step 310.


In step 322, connection agent 126 may receive credentials associated with token 306. In some embodiments, the credentials may be received from credentials vault 124. For example, connection agent 126 may receive token 306 and may use token 306 to retrieve credentials corresponding to account 410 selected by user 112. Connection agent 126 may then assert the retrieved credentials at target resource 128 on behalf of client identity 110, as shown in step 324. Accordingly, client identity 110 may access target resource 128 without receiving the credentials from credentials vault 130, which may reduce security vulnerabilities in system environment 110 by preventing them from being exposed to attackers. Further, a separate password is not required for accessing target resource 128 through the remote access protocol used by client device 114. Access can also be granted without the need for a dedicated client, such as a VPN client, a browser-based interface, or other non-native system components.


In some embodiments, steps 322 and 324 may be performed without connection agent 126. For example, connector 122 may access the credentials of step 322 directly from credentials vault 124, without connection agent 126, and may further assert the credentials on behalf of client identity 110. In some embodiments, the credentials may not be retrieved by connector 122 or connection agent 126, but may be provided by client device 114. For example, the credentials may be stored locally (e.g., in a cache, etc.) on client device 114. In some embodiments, client identity 110 may receive the credentials after they are obtained in step 322. For example, after step 322, connection agent 126 and/or connector 122 may transmit the obtained credentials to client device 114 and/or mobile device 116.



FIG. 5 is a flowchart depicting an example process 500 for securely establishing secretless and remote native access sessions, consistent with the disclosed embodiments. Process 500 may be performed by at least one processing device, such as processor 210 of connector 122, as described above. It is to be understood that throughout the present disclosure, the term “processor” is used as a shorthand for “at least one processor.” In other words, a processor may include one or more structures that perform logic operations whether such structures are collocated, connected, or disbursed. In some embodiments, a non-transitory computer readable medium may contain instructions that when executed by a processor cause the processor to perform process 500. Further, process 500 is not necessarily limited to the steps shown in FIG. 5, and any steps or processes of the various embodiments described throughout the present disclosure may also be included in process 500, including those described above with respect to FIG. 3.


In step 510, process 500 may include identifying a client configured to participate in remote native access sessions. For example, step 510 may identify client identity 110 and thus the client may include user 112, an account associated with user 112, and/or client device 114. The client may be identified in various ways. In some embodiments, the client may be identified based on a request received from client device 114, as shown in step 310 of FIG. 3. In some embodiments, the client may have a remote access protocol file that has been modified to include an identifier associated with the client. For example, the client may access remote access protocol file 302, as discussed above, which may have been modified to include at least one of a mobile telephone number, an email address, a user name, an account name, a custom identifier created by the client, a random or semi-random identifier, a customer number, an IP address, or various other identifiers that may be associated with the client. The remote access protocol file 302 may be modified by the client or may be modified by other components of system environment 100, including cloud service 130. In some embodiments, the client may be identified by cloud service 130 as described above. For example, cloud service 130 may extract an address (e.g., an SNI indicating a hostname) from a request from client identity 110 and may route the request based on the address. In some embodiments, the remote access protocol file 302 may comply with a remote desktop protocol, as described above.


In step 520, process 500 may include sending a prompt to the client to establish a secure tunnel connection with a connection agent using the identifier associated with the client. For example, step 520 may correspond to step 312 for establishing secure connection 304 with connection agent 126, as described above with respect to FIG. 3. The secure tunnel connection may include any form of secure connection according to a tunneling protocol, including, but not limited to TLS, IP in IPv4/IPv6, Generic Routing Encapsulation (GRE), Secure Socket Tunneling Protocol (STTP), Internet Protocl Security (IPSec), Layer 2 Tunneling Protocol (L2TP), Virtual Extensible Local Area Network (VXLAN), or the like. As shown in FIG. 1, connection agent 126 and target resource 128 may be included in the same client system 120. Accordingly, the connection agent may be located in a local network, a virtual network, or other form of network in which the target resource 128 is also located.


In step 530, process 500 may include authenticating the client, which may be performed in various ways. For example, authentication of the client may be performed according to at least one of OpenID, SAML, or similar authentication protocols. In some embodiments, step 530 may include sending a push notification to a mobile device associated with the client. For example, mobile device 116 may receive a push notification as shown in step 314 and described above. Accordingly, the mobile device 116 may be configured to authenticate the client through an application on mobile device 116.


In step 540, process 500 may include accessing target identity information associated with one or more target resources. For example, client system 120 may include a plurality of target resources, including target resource 128, each which may be associated with target identity information. This target identity information may be stored, for example, in a database, a memory device (e.g., memory device 220), on a remote server or cloud-storage platform, or various other storage locations. In some embodiments, the plurality of target resources may be identified based on the identified client. For example, the plurality of target resources are identified based on access rights of the client, or based on the authentication of the client.


In step 550, process 500 may include receiving from the client a token that identifies a target resource from among the one or more target resources. For example, step 550 may include receiving token 306, as described above with respect to FIG. 3. In some embodiments, the target resource 128 may be selected by a user. Accordingly, process 500 may further include receiving a selection by the client of the target resource 128 from among the plurality of target resources. In some embodiments, the selection may be made through a graphical user interface, similar to user interface 400 shown in FIG. 4. For example, process 500 may further comprise sending to the client data for generating a selectable menu of the plurality of target resources. The selectable menu of the plurality of target resources comprises icons and identifying data associated with the plurality of target resources.


In step 560, process 500 may include obtaining, based on the token, a credential required for secure access to the target resource. For example, step 560 may comprise obtaining credentials associated with the target resource 128 identified in the token. As described above with respect to FIG. 3, the credential may be obtained from a secure credentials vault, such as credentials vault 124. Accordingly, the credential may be obtained without making the credential available to the client. In other embodiments, the credential may be obtained locally at the client, and deleted at the client upon termination of the remote native access session. As described above with respect to step 322, in some embodiments, the credential may be obtained in a secretless manner from the perspective of the client. Accordingly, the client may not be required to submit the credential or other credentials for accessing the target resource 128. In some embodiments, process 500 may further include replacing a username in a request for the remote native access session with data from the token. For example, process 500 may include inserting the token or data from the token into the remote access protocol file associated with the client. Alternatively, this may be performed by connection agent 126, or other components of client system 120.


At step 570, process 500 may include initiating, using the credential, a remote native access session between the client and the target resource. Accordingly, process 500 may allow the client to access the target resource in a passwordless manner (and without requiring transmission of other forms of secure credentials) and may be done through native remote protocol software (e.g., without requiring a separate agent or non-native software). As discussed above, the remote native access session may comply with various different remote access protocols and techniques.


It is to be understood that the disclosed embodiments are not necessarily limited in their application to the details of construction and the arrangement of the components and/or methods set forth in the following description and/or illustrated in the drawings and/or the examples. The disclosed embodiments are capable of variations, or of being practiced or carried out in various ways.


The disclosed embodiments may be implemented in a system, a method, and/or a computer program product. The computer program product may include a computer readable storage medium (or media) having computer readable program instructions thereon for causing a processor to carry out aspects of the present invention.


The computer readable storage medium can be a tangible device that can retain and store instructions for use by an instruction execution device. The computer readable storage medium may be, for example, but is not limited to, an electronic storage device, a magnetic storage device, an optical storage device, an electromagnetic storage device, a semiconductor storage device, or any suitable combination of the foregoing. A non-exhaustive list of more specific examples of the computer readable storage medium includes the following: a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), a static random access memory (SRAM), a portable compact disc read-only memory (CD-ROM), a digital versatile disk (DVD), a memory stick, a floppy disk, a mechanically encoded device such as punch-cards or raised structures in a groove having instructions recorded thereon, and any suitable combination of the foregoing. A computer readable storage medium, as used herein, is not to be construed as being transitory signals per se, such as radio waves or other freely propagating electromagnetic waves, electromagnetic waves propagating through a waveguide or other transmission media (e.g., light pulses passing through a fiber-optic cable), or electrical signals transmitted through a wire.


Computer readable program instructions described herein can be downloaded to respective computing/processing devices from a computer readable storage medium or to an external computer or external storage device via a network, for example, the Internet, a local area network, a wide area network and/or a wireless network. The network may comprise copper transmission cables, optical transmission fibers, wireless transmission, routers, firewalls, switches, gateway computers and/or edge servers. A network adapter card or network interface in each computing/processing device receives computer readable program instructions from the network and forwards the computer readable program instructions for storage in a computer readable storage medium within the respective computing/processing device.


Computer readable program instructions for carrying out operations of the present invention may be assembler instructions, instruction-set-architecture (ISA) instructions, machine instructions, machine dependent instructions, microcode, firmware instructions, state-setting data, or either source code or object code written in any combination of one or more programming languages, including an object oriented programming language such as Smalltalk, C++ or the like, and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The computer readable program instructions may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider). In some embodiments, electronic circuitry including, for example, programmable logic circuitry, field-programmable gate arrays (FPGA), or programmable logic arrays (PLA) may execute the computer readable program instructions by utilizing state information of the computer readable program instructions to personalize the electronic circuitry, in order to perform aspects of the present invention.


Aspects of the present invention are described herein with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems), and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer readable program instructions.


These computer readable program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks. These computer readable program instructions may also be stored in a computer readable storage medium that can direct a computer, a programmable data processing apparatus, and/or other devices to function in a particular manner, such that the computer readable storage medium having instructions stored therein comprises an article of manufacture including instructions which implement aspects of the function/act specified in the flowchart and/or block diagram block or blocks.


The computer readable program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other device to cause a series of operational steps to be performed on the computer, other programmable apparatus or other device to produce a computer implemented process, such that the instructions which execute on the computer, other programmable apparatus, or other device implement the functions/acts specified in the flowchart and/or block diagram block or blocks.


The flowcharts and block diagrams in the Figures illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present invention. In this regard, each block in the flowcharts or block diagrams may represent a software program, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.


The descriptions of the various embodiments of the present invention have been presented for purposes of illustration, but are not intended to be exhaustive or limited to the embodiments disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the described embodiments. The terminology used herein was chosen to best explain the principles of the embodiments, the practical application or technical improvement over technologies found in the marketplace, or to enable others of ordinary skill in the art to understand the embodiments disclosed herein.


It is expected that during the life of a patent maturing from this application many relevant virtualization platforms, virtualization platform environments, trusted cloud platform resources, cloud-based assets, protocols, communication networks, security tokens and authentication credentials, and code types will be developed, and the scope of these terms is intended to include all such new technologies a priori.


It is appreciated that certain features of the invention, which are, for clarity, described in the context of separate embodiments, may also be provided in combination in a single embodiment. Conversely, various features of the invention, which are, for brevity, described in the context of a single embodiment, may also be provided separately or in any suitable subcombination or as suitable in any other described embodiment of the invention. Certain features described in the context of various embodiments are not to be considered essential features of those embodiments, unless the embodiment is inoperative without those elements.


Although the invention has been described in conjunction with specific embodiments thereof, it is evident that many alternatives, modifications and variations will be apparent to those skilled in the art. Accordingly, it is intended to embrace all such alternatives, modifications and variations that fall within the spirit and broad scope of the appended claims.

Claims
  • 1. A non-transitory computer readable medium including instructions that, when executed by at least one processor, cause the at least one processor to perform operations for securely establishing secretless and remote native access sessions, the operations comprising: identifying a request by a client to participate in a remote native access session with a target resource, the target resource requiring a credential for secure access by the client, wherein the client has a remote access protocol file including information for establishing a secure tunnel connection using a native remote access client without using the credential, wherein the remote access protocol file includes: an identifier associated with the client, the identifier being distinct from the credential; andat least one of a field or a designated space for the credential, the field or the designated space being blank or including default text other than the credential;intercepting the request prior to the request reaching the target resource;sending a prompt to the client to establish the secure tunnel connection with a connection agent using the identifier associated with the client, the identifier being accessed from the remote access protocol file, wherein the secure tunnel connection is established without using the credential;authenticating the client, wherein authenticating the client includes transmitting a notification to a mobile device associated with the user;receiving from the client, via the secure tunnel connection, an additional request to access the target resource, wherein the additional request includes a token identifying the target resource from among one or more target resources;obtaining the credential based on the token and an account selected by a user; andinitiating the remote native access session between the client and the target resource, wherein initiating the remote native access session includes: modifying the intercepted request to include the credential; andsubmitting the modified request on behalf of the client.
  • 2. The non-transitory computer readable medium of claim 1, wherein the remote access protocol file is modified to include the identifier.
  • 3. The non-transitory computer readable medium of claim 2, wherein the remote access protocol file is modified by the client.
  • 4. The non-transitory computer readable medium of claim 1, wherein the identifier is a custom identifier created by the client.
  • 5. The non-transitory computer readable medium of claim 1, wherein the credential is obtained in a secretless manner from the perspective of the client.
  • 6. The non-transitory computer readable medium of claim 1, wherein the remote access protocol file is a remote desktop protocol.
  • 7. The non-transitory computer readable medium of claim 1, wherein the credential includes at least one of a username, an SSH key, an access token, a security token, or a password and the identifier associated with the client is at least one of: a mobile telephone number, an email address, or a custom identifier created by the client.
  • 8. The non-transitory computer readable medium of claim 1, wherein the token is generated using the mobile device associated with the user.
  • 9. The non-transitory computer readable medium of claim 1, wherein the account is selected using the mobile device associated with the user.
  • 10. The non-transitory computer readable medium of claim 1, wherein the operations further comprise identifying the one or more target resources based on access rights of the client.
  • 11. A computer-implemented method for securely establishing secretless and remote native access sessions, the method comprising: identifying a request by a client to participate in a remote native access session with a target resource, the target resource requiring a credential for secure access by the client, wherein the client has a remote access protocol file including information for establishing a secure tunnel connection using a native remote access client without using the credential, wherein the remote access protocol file includes: an identifier associated with the client, the identifier being distinct from the credential, the identifier being accessed from the remote access protocol file, wherein the secure tunnel connection is established without using the credential; andat least one of a field or a designated space for the credential, the field or the designated space being blank or including default text other than the credential;intercepting the request prior to the request reaching the target resource;sending a prompt to the client to establish the secure tunnel connection with a connection agent using the identifier associated with the client;authenticating the client, wherein authenticating the client includes transmitting a notification to a mobile device associated with the user;receiving from the client, via the secure tunnel connection, an additional request to access the target resource, wherein the additional request includes a token identifying the target resource from among one or more target resources;obtaining the credential based on the token and an account selected by a user; andinitiating the remote native access session between the client and the target resource, wherein initiating the remote native access session includes: modifying the intercepted request to include the credential; andsubmitting the modified request on behalf of the client.
  • 12. The computer-implemented method of claim 11, wherein the credential is obtained without making the credential available to the client.
  • 13. The computer-implemented method of claim 11, further comprising sending to the client data for generating a selectable menu of the one or more target resources, the target resource being selected through the selectable menu.
  • 14. The computer-implemented method of claim 13, wherein the selectable menu of the one or more target resources comprises icons and identifying data associated with the one or more target resources.
  • 15. The computer-implemented method of claim 13, further comprising causing the selectable menu to be displayed on the mobile device associated with the user.
  • 16. The computer-implemented method of claim 13, wherein the authentication of the client is performed according to at least one of: OpenID or Security Assertion Markup Language.
  • 17. The computer-implemented method of claim 11, wherein the connection agent is located in a local network in which the target resource is also located.
  • 18. The computer-implemented method of claim 11, wherein the connection agent is located in a virtualized network in which the target resource is also located.
CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No. 17/097,809, filed on Nov. 13, 2020. The aforementioned application is incorporated herein by reference in its entirety.

US Referenced Citations (713)
Number Name Date Kind
4412285 Neches Oct 1983 A
4638356 Frezza Jan 1987 A
4812843 Champion, III Mar 1989 A
5594809 Kopec Jan 1997 A
5745610 Johnson Apr 1998 A
5966705 Koneru Oct 1999 A
6173295 Goertz Jan 2001 B1
6321333 Murray Nov 2001 B1
6574730 Bissell Jun 2003 B1
6738772 Regelski May 2004 B2
6775422 Altman Aug 2004 B1
6920519 Beukema Jul 2005 B1
6999477 Oz Feb 2006 B1
7120254 Glick Oct 2006 B2
7360237 Engle et al. Apr 2008 B2
7493126 Ishii Feb 2009 B2
7610491 Tsao Oct 2009 B1
7619977 Khan Nov 2009 B2
7676675 Billharz et al. Mar 2010 B2
7697438 Ji Apr 2010 B2
7873370 Shim Jan 2011 B2
7912822 Bethlehem et al. Mar 2011 B2
7917751 Keohane Mar 2011 B2
7934005 Fascenda Apr 2011 B2
7940929 Sengupta May 2011 B1
7962937 Cho Jun 2011 B2
7966328 Germeraad Jun 2011 B2
8027937 Bartholomay Sep 2011 B1
8171545 Cooley May 2012 B1
8200206 Parmar Jun 2012 B2
8209744 Zhu Jun 2012 B2
8220041 Boyce Jul 2012 B2
8270948 Oba Sep 2012 B2
8346265 Strub Jan 2013 B2
8458780 Takkallapally Jun 2013 B1
8462677 Gailloux et al. Jun 2013 B1
8510818 Garg et al. Aug 2013 B2
8528059 Labana Sep 2013 B1
8533253 McCoy Sep 2013 B2
8572677 Bartholomay Oct 2013 B2
8595790 Chang Nov 2013 B2
8606807 Drieschner Dec 2013 B2
8611859 Nguyen Dec 2013 B2
8613055 Tomilson et al. Dec 2013 B1
8613070 Borzycki Dec 2013 B1
8650303 Lang Feb 2014 B1
8701138 Stern Apr 2014 B2
8793776 Jackson Jul 2014 B1
8826384 Winslow Sep 2014 B2
8849978 Batson Sep 2014 B1
8850049 Qureshi Sep 2014 B1
8850050 Qureshi Sep 2014 B1
8880827 Weich Nov 2014 B2
8914870 Huang Dec 2014 B2
9009334 Jenkins et al. Apr 2015 B1
9076013 Bailey, Jr. Jul 2015 B1
9124596 Yook Sep 2015 B2
9143427 Van Bogaert Sep 2015 B2
9166963 Ramesh Oct 2015 B2
9226145 Loman Dec 2015 B1
9235838 Gerardi Jan 2016 B2
9306949 Richard Apr 2016 B1
9380040 Aplemakh Jun 2016 B1
9386021 Pratt Jul 2016 B1
9391996 Chin Jul 2016 B1
9430547 Lightner Aug 2016 B2
9443227 Evans Sep 2016 B2
9558288 Boswell Jan 2017 B1
9582230 Sankaran Feb 2017 B1
9628448 Hayton Apr 2017 B2
9692770 Ike Jun 2017 B2
9906457 Kompella Feb 2018 B2
9948612 Jawahar Apr 2018 B1
9992185 Basha P.R. Jun 2018 B1
10003973 Bolton Jun 2018 B2
10027658 Schwarz Jul 2018 B1
10050957 Farrugia Aug 2018 B1
10069838 Sanso et al. Sep 2018 B2
10085253 Murphy Sep 2018 B2
10200377 Vasquez et al. Feb 2019 B1
10218679 Jawahar Feb 2019 B1
10257202 Jiang Apr 2019 B1
10277586 Yau et al. Apr 2019 B1
10362057 Wu Jul 2019 B1
10375095 Turcotte et al. Aug 2019 B1
10402804 Wittern, III Sep 2019 B1
10404699 Duggana et al. Sep 2019 B2
10454906 Sharfman Oct 2019 B1
10599486 Borkar Mar 2020 B1
10680835 Lee Jun 2020 B2
10776489 Rajcan et al. Sep 2020 B2
10805210 Kondapavuluru Oct 2020 B1
10826861 Borg et al. Nov 2020 B1
10834084 Ouellette et al. Nov 2020 B2
10846108 Chung et al. Nov 2020 B1
10853786 Mancini Dec 2020 B2
10887337 Kim et al. Jan 2021 B1
10911546 Goswami et al. Feb 2021 B1
10917384 Pham Feb 2021 B2
10922401 Wang et al. Feb 2021 B2
10924468 Suresh et al. Feb 2021 B2
10952106 Li Mar 2021 B2
10984128 Hoffer Apr 2021 B1
10999065 Yang May 2021 B2
11003470 Galea et al. May 2021 B1
11038902 Zaw Jun 2021 B2
11095636 Sokolov Aug 2021 B1
11100237 Gu Aug 2021 B2
11108868 San et al. Aug 2021 B2
11159627 Pachkov et al. Oct 2021 B1
11182604 Methaniya Nov 2021 B1
11189021 Shah Nov 2021 B2
11190501 Balakrishnan et al. Nov 2021 B2
11218307 Griffin Jan 2022 B1
11277415 Rinehart Mar 2022 B1
11303633 Williams Apr 2022 B1
11348685 Fish May 2022 B2
RE49242 Asai Oct 2022 E
11463426 Wheeler Oct 2022 B1
11483323 Lord Oct 2022 B2
11495067 Mirkar Nov 2022 B2
11588650 Poltorak Feb 2023 B2
11824858 McKinless Nov 2023 B1
11836727 Parekh Dec 2023 B1
12045471 Chatterjee Jul 2024 B2
12069187 May Aug 2024 B2
20010014912 Segal Aug 2001 A1
20010034841 Shambroom Oct 2001 A1
20010042043 Shear Nov 2001 A1
20020007453 Nemovicher Jan 2002 A1
20020010798 Ben-Shaul Jan 2002 A1
20020016926 Nguyen Feb 2002 A1
20020029280 Holden Mar 2002 A1
20020031107 Li Mar 2002 A1
20020051201 Winter May 2002 A1
20020065874 Chien May 2002 A1
20020111845 Chong Aug 2002 A1
20020116508 Khan Aug 2002 A1
20020131365 Barker Sep 2002 A1
20020133718 Turbow Sep 2002 A1
20020145042 Knowles Oct 2002 A1
20020152373 Sun Oct 2002 A1
20020161903 Besaw Oct 2002 A1
20020187775 Corrigan Dec 2002 A1
20020191548 Ylonen Dec 2002 A1
20030004919 Campbell Jan 2003 A1
20030014646 Buddhikot Jan 2003 A1
20030019933 Tsikos Jan 2003 A1
20030028650 Chen Feb 2003 A1
20030042303 Tsikos Mar 2003 A1
20030043762 Pang et al. Mar 2003 A1
20030051140 Buddhikot Mar 2003 A1
20030078965 Cocotis et al. Apr 2003 A1
20030079028 Kortum Apr 2003 A1
20030079030 Cocotis et al. Apr 2003 A1
20030110137 Armingaud Jun 2003 A1
20030110264 Whidby Jun 2003 A1
20030163692 Kleinsteiber Aug 2003 A1
20030163727 Hammons Aug 2003 A1
20030200321 Chen Oct 2003 A1
20030204748 Chiu Oct 2003 A1
20040003280 Narayanan Jan 2004 A1
20040006699 von Mueller Jan 2004 A1
20040010686 Goh Jan 2004 A1
20040015705 Guerin Jan 2004 A1
20040026496 Zuili Feb 2004 A1
20040029584 Le Feb 2004 A1
20040037260 Kakemizu Feb 2004 A1
20040077347 Lauber Apr 2004 A1
20040083286 Holden Apr 2004 A1
20040090950 Lauber May 2004 A1
20040093516 Hornbeek May 2004 A1
20040098619 Shay May 2004 A1
20040105298 Symes Jun 2004 A1
20040107089 Gross Jun 2004 A1
20040139328 Grinberg Jul 2004 A1
20040221154 Aggarwal Nov 2004 A1
20040236745 Keohane Nov 2004 A1
20040249892 Barriga Dec 2004 A1
20050035193 Gustin Feb 2005 A1
20050044415 Yook Feb 2005 A1
20050071283 Randle Mar 2005 A1
20050087606 McCumber Apr 2005 A1
20050108571 Lu May 2005 A1
20050114711 Hesselink et al. May 2005 A1
20050120082 Hesselink et al. Jun 2005 A1
20050138186 Hesselink et al. Jun 2005 A1
20050138424 Challener Jun 2005 A1
20050144186 Hesselink et al. Jun 2005 A1
20050144195 Hesselink et al. Jun 2005 A1
20050144200 Hesselink et al. Jun 2005 A1
20050149481 Hesselink et al. Jul 2005 A1
20050160264 Kuhn Jul 2005 A1
20050195780 Haverinen Sep 2005 A1
20050204166 McKeon Sep 2005 A1
20050232228 Dharanikota Oct 2005 A1
20050246349 Wielgosz Nov 2005 A1
20050273450 McMillen Dec 2005 A1
20060005017 Black Jan 2006 A1
20060029064 Rao Feb 2006 A1
20060031383 Gautier Feb 2006 A1
20060031407 Dispensa Feb 2006 A1
20060041581 Aghvami Feb 2006 A1
20060059359 Reasor Mar 2006 A1
20060059551 Borella Mar 2006 A1
20060061460 Kamen et al. Mar 2006 A1
20060074618 Miller et al. Apr 2006 A1
20060075228 Black Apr 2006 A1
20060089152 Mahonen Apr 2006 A1
20060098649 Shay May 2006 A1
20060123056 Darbha Jun 2006 A1
20060129627 Phillips Jun 2006 A1
20060129815 Baldwin Jun 2006 A1
20060136986 Doolittle Jun 2006 A1
20060139346 Jang Jun 2006 A1
20060161970 Hopen Jul 2006 A1
20060230279 Morris Oct 2006 A1
20060233376 Forsberg Oct 2006 A1
20060236093 Brok Oct 2006 A1
20060274086 Forstall Dec 2006 A1
20070025241 Nadeau Feb 2007 A1
20070036353 Reznik Feb 2007 A1
20070061460 Khan et al. Mar 2007 A1
20070061887 Hoover Mar 2007 A1
20070089049 Gormish Apr 2007 A1
20070121579 Matthews May 2007 A1
20070153739 Zheng Jul 2007 A1
20070156659 Lim Jul 2007 A1
20070157022 Blom Jul 2007 A1
20070157288 Lim Jul 2007 A1
20070174429 Mazzaferri Jul 2007 A1
20070174454 Mitchell Jul 2007 A1
20070186000 Nikander Aug 2007 A1
20070186099 Beck Aug 2007 A1
20070191001 Tariq Aug 2007 A1
20070192500 Lum Aug 2007 A1
20070192858 Lum Aug 2007 A1
20070209061 Dekeyzer Sep 2007 A1
20070226780 Ronneke Sep 2007 A1
20070229350 Scalisi Oct 2007 A1
20070239989 Barnett Oct 2007 A1
20070248232 Driscoll Oct 2007 A1
20070250641 Flannery et al. Oct 2007 A1
20080032668 Alvarado Feb 2008 A1
20080052769 Leone Feb 2008 A1
20080060051 Lim Mar 2008 A1
20080069011 Sekaran Mar 2008 A1
20080072043 Lee Mar 2008 A1
20080178273 Weber Jul 2008 A1
20080189764 Gronholm Aug 2008 A1
20080259934 Matthews Oct 2008 A1
20080282081 Patiejunas Nov 2008 A1
20080295159 Sentinelli Nov 2008 A1
20080313716 Park Dec 2008 A1
20090010158 Filsfils Jan 2009 A1
20090013055 Hall, Jr. et al. Jan 2009 A1
20090019281 Winslow Jan 2009 A1
20090024948 Anka Jan 2009 A1
20090031414 Winter Jan 2009 A1
20090046728 Matthews Feb 2009 A1
20090049163 Love Feb 2009 A1
20090049196 Smith Feb 2009 A1
20090064308 Komatsu Mar 2009 A1
20090083422 McKay Mar 2009 A1
20090083846 Ding Mar 2009 A1
20090097416 Gruber Apr 2009 A1
20090133101 Saint-Etienne May 2009 A1
20090133115 Heninger May 2009 A1
20090135833 Lee May 2009 A1
20090164975 Natanov Jun 2009 A1
20090177789 Choudhury Jul 2009 A1
20090205046 Radosavac Aug 2009 A1
20090241170 Kumar Sep 2009 A1
20090276204 Kumar Nov 2009 A1
20090320116 Guo Dec 2009 A1
20090327905 Mascarenhas Dec 2009 A1
20100002066 Nelson Jan 2010 A1
20100081417 Hickie Apr 2010 A1
20100107230 Tyagi Apr 2010 A1
20100125902 Killian May 2010 A1
20100153704 Winslow Jun 2010 A1
20100182983 Herscovici Jul 2010 A1
20100242082 Keene Sep 2010 A1
20100275031 Ferry Oct 2010 A1
20110002341 Damola Jan 2011 A1
20110030029 Woo Feb 2011 A1
20110055566 Norrman Mar 2011 A1
20110107409 Wilkinson May 2011 A1
20110131403 Ibrahim Jun 2011 A1
20110145150 Onischuk Jun 2011 A1
20110145916 McKenzie et al. Jun 2011 A1
20110167101 Hopen Jul 2011 A1
20110167475 Hoover et al. Jul 2011 A1
20110179277 Haddad Jul 2011 A1
20110191842 Lindholm Aug 2011 A1
20110209053 Stronger Aug 2011 A1
20110213965 Fu Sep 2011 A1
20110215921 Ben Ayed Sep 2011 A1
20110217952 Nordstrand Sep 2011 A1
20110231654 Somadder Sep 2011 A1
20110238541 Challener Sep 2011 A1
20110239276 Garcia Garcia Sep 2011 A1
20110249595 Rozov Oct 2011 A1
20110249609 Brusilovsky Oct 2011 A1
20110251992 Bethlehem et al. Oct 2011 A1
20110258128 Hambleton et al. Oct 2011 A1
20110261787 Bachmann Oct 2011 A1
20110286459 Rembarz Nov 2011 A1
20110289134 de los Reyes Nov 2011 A1
20110296186 Wong Dec 2011 A1
20110305339 Norrman Dec 2011 A1
20110313782 DeMeyer Dec 2011 A1
20110315763 Hochmuth Dec 2011 A1
20120002813 Wei Jan 2012 A1
20120002814 Wei Jan 2012 A1
20120002815 Wei Jan 2012 A1
20120005476 Wei Jan 2012 A1
20120005477 Wei Jan 2012 A1
20120005745 Wei Jan 2012 A1
20120005746 Wei Jan 2012 A1
20120016974 Bartholomay Jan 2012 A1
20120017270 Bartholomay Jan 2012 A1
20120021605 Omura et al. Jan 2012 A1
20120047262 Laarakkers Feb 2012 A1
20120054625 Pugh et al. Mar 2012 A1
20120079267 Lee Mar 2012 A1
20120084838 Inforzato Apr 2012 A1
20120084851 Neystadt Apr 2012 A1
20120102540 Aronson Apr 2012 A1
20120122424 Herscovici May 2012 A1
20120167162 Raleigh Jun 2012 A1
20120192250 Rakan Jul 2012 A1
20120201457 Bart Aug 2012 A1
20120203877 Bartholomay Aug 2012 A1
20120210415 Somani Aug 2012 A1
20120222099 Narendra Aug 2012 A1
20120254602 Bhansali Oct 2012 A1
20120260085 Van Mengsel Oct 2012 A1
20120272310 Souissi Oct 2012 A1
20120297311 Duggal Nov 2012 A1
20120309352 Fang Dec 2012 A1
20130007465 Movassaghi Jan 2013 A1
20130029641 Hickie Jan 2013 A1
20130035056 Prasad Feb 2013 A1
20130047210 Rotman Feb 2013 A1
20130067226 Kunde Mar 2013 A1
20130082822 Levenick Apr 2013 A1
20130085815 Onischuk Apr 2013 A1
20130125201 Sprague May 2013 A1
20130125202 Sprague May 2013 A1
20130125247 Sprague May 2013 A1
20130163757 Bellovin Jun 2013 A1
20130185772 Jaudon Jul 2013 A1
20130219268 Straten Aug 2013 A1
20130238678 Bloom et al. Sep 2013 A1
20130247149 Sanft Sep 2013 A1
20130263216 Vakil et al. Oct 2013 A1
20130275973 Greenfield Oct 2013 A1
20130297973 Hyland et al. Nov 2013 A1
20130337771 Klein Dec 2013 A1
20140018037 Shanmugavadivel et al. Jan 2014 A1
20140026205 Guo Jan 2014 A1
20140026207 Wang Jan 2014 A1
20140032758 Barton Jan 2014 A1
20140040993 Lorenzo et al. Feb 2014 A1
20140057597 Velusamy Feb 2014 A1
20140057599 Hazari Feb 2014 A1
20140068247 Davis Mar 2014 A1
20140068725 Zhang Mar 2014 A1
20140093079 Scott Apr 2014 A1
20140108670 Naik Apr 2014 A1
20140109174 Barton Apr 2014 A1
20140109175 Barton Apr 2014 A1
20140109178 Barton Apr 2014 A1
20140122731 Burch May 2014 A1
20140123237 Gaudet May 2014 A1
20140137188 Bartholomay May 2014 A1
20140157001 Buer Jun 2014 A1
20140164774 Nord Jun 2014 A1
20140165163 Salkintzis Jun 2014 A1
20140187190 Schuler Jul 2014 A1
20140201242 Bakthavachalam Jul 2014 A1
20140223520 Gafni Aug 2014 A1
20140230020 Mogaki Aug 2014 A1
20140231512 Onischuk Aug 2014 A1
20140259147 L'Heureux Sep 2014 A1
20140289830 Lemaster Sep 2014 A1
20140295821 Qureshi Oct 2014 A1
20140298420 Barton Oct 2014 A1
20140304326 Wesley Oct 2014 A1
20140304837 Mogaki Oct 2014 A1
20140330990 Lang Nov 2014 A1
20140337965 Savini Nov 2014 A1
20140365281 Onischuk Dec 2014 A1
20140369261 Noldus Dec 2014 A1
20150012339 Onischuk Jan 2015 A1
20150039483 Santarlas Feb 2015 A1
20150039507 Wu Feb 2015 A1
20150039840 Chandra Feb 2015 A1
20150039908 Lee et al. Feb 2015 A1
20150106881 Wharton Apr 2015 A1
20150113172 Johnson Apr 2015 A1
20150121487 Chastain Apr 2015 A1
20150124708 Blankenship May 2015 A1
20150128205 Mahaffey May 2015 A1
20150148093 Huang et al. May 2015 A1
20150150115 Le Rouzic May 2015 A1
20150163206 McCarthy Jun 2015 A1
20150163222 Pal Jun 2015 A1
20150169893 Desai Jun 2015 A1
20150188949 Mahaffey Jul 2015 A1
20150199213 Desai Jul 2015 A1
20150200949 Willhite Jul 2015 A1
20150215128 Pal Jul 2015 A1
20150222604 Ylonen Aug 2015 A1
20150235017 Oberheide et al. Aug 2015 A1
20150254659 Kulkarni Sep 2015 A1
20150281227 Fox Ivey Oct 2015 A1
20150281322 Dingwell et al. Oct 2015 A1
20150287302 Ruess Oct 2015 A1
20150310188 Ford Oct 2015 A1
20150319144 Barton Nov 2015 A1
20150319174 Hayton Nov 2015 A1
20150372983 Gmuender Dec 2015 A1
20150373023 Walker Dec 2015 A1
20150381602 Grim Dec 2015 A1
20150381633 Grim Dec 2015 A1
20150382195 Grim Dec 2015 A1
20160028731 Hebron Jan 2016 A1
20160050217 Mare Feb 2016 A1
20160072815 Rieke Mar 2016 A1
20160085962 Sokolov Mar 2016 A1
20160087933 Johnson Mar 2016 A1
20160094546 Innes Mar 2016 A1
20160096741 Lee Apr 2016 A1
20160113006 Murphy Apr 2016 A1
20160119379 Nadkarni Apr 2016 A1
20160127905 Liu May 2016 A1
20160128016 Avary May 2016 A1
20160134596 Kovacs May 2016 A1
20160134632 Cregg May 2016 A1
20160134634 Rosendal May 2016 A1
20160140659 Zeoli May 2016 A1
20160142914 He May 2016 A1
20160173483 Wong et al. Jun 2016 A1
20160173503 Knight Jun 2016 A1
20160182487 Zhu Jun 2016 A1
20160182507 Zhang Jun 2016 A1
20160182525 Zhu Jun 2016 A1
20160197905 Libal Jul 2016 A1
20160197909 Innes Jul 2016 A1
20160198344 Oba Jul 2016 A1
20160205002 Rieke Jul 2016 A1
20160205086 Zhang Jul 2016 A1
20160205132 Ramos Jul 2016 A1
20160226857 Liu Aug 2016 A1
20160234286 Fausak Aug 2016 A1
20160285844 Olivereau Sep 2016 A1
20160323280 Sade Nov 2016 A1
20160330233 Hart Nov 2016 A1
20160330613 Cook Nov 2016 A1
20160337104 Kalligudd Nov 2016 A1
20160337346 Momchilov Nov 2016 A1
20160342784 Beveridge Nov 2016 A1
20160359857 Demirjian Dec 2016 A1
20160359908 Lam Dec 2016 A1
20160371099 Woog et al. Dec 2016 A1
20160373251 Kumar Dec 2016 A1
20160380984 Johnson Dec 2016 A1
20160381024 Zhang Dec 2016 A1
20170006648 Aronius Jan 2017 A1
20170026383 Hayton Jan 2017 A1
20170034127 Singleton, IV Feb 2017 A1
20170034218 Rasband Feb 2017 A1
20170041296 Ford Feb 2017 A1
20170054718 Banerjee Feb 2017 A1
20170063927 Schultz Mar 2017 A1
20170075958 Duffy Mar 2017 A1
20170086069 Liu Mar 2017 A1
20170093803 Nayshtut Mar 2017 A1
20170093826 Werneyer Mar 2017 A1
20170093910 Gukal et al. Mar 2017 A1
20170111339 Lee Apr 2017 A1
20170116560 Wickstrom Apr 2017 A1
20170118214 Vainstein Apr 2017 A1
20170126817 Poliashenko May 2017 A1
20170134370 Mavrogiannopoulos May 2017 A1
20170134423 Sysman et al. May 2017 A1
20170150364 Laarakkers May 2017 A1
20170169227 Rajcan Jun 2017 A1
20170169234 Camiel Jun 2017 A1
20170171752 Lee Jun 2017 A1
20170195339 Brown Jul 2017 A1
20170201518 Holmqvist Jul 2017 A1
20170201588 Schmidt Jul 2017 A1
20170223046 Singh Aug 2017 A1
20170235848 Van Dusen Aug 2017 A1
20170257363 Franke Sep 2017 A1
20170272316 Johnson Sep 2017 A1
20170277678 Ganim Sep 2017 A1
20170289191 Thioux et al. Oct 2017 A1
20170302642 Hindocha Oct 2017 A1
20170308395 Cook Oct 2017 A1
20170317740 Basu Mallick Nov 2017 A1
20170324714 Wainner Nov 2017 A1
20170339564 Momchilov Nov 2017 A1
20170353496 Pai Dec 2017 A1
20170364450 Struttmann Dec 2017 A1
20180007059 Innes Jan 2018 A1
20180013568 Muhanna Jan 2018 A1
20180020005 Beiter et al. Jan 2018 A1
20180034822 Mistry Feb 2018 A1
20180041479 Wang Feb 2018 A1
20180061112 Richards Mar 2018 A1
20180063126 Karapantelakis Mar 2018 A1
20180063152 Erich Mar 2018 A1
20180069865 Rieke Mar 2018 A1
20180077243 Mathew Mar 2018 A1
20180115554 Dyon Apr 2018 A1
20180139238 Schultz May 2018 A1
20180159856 Gujarathi Jun 2018 A1
20180198824 Pulapaka Jul 2018 A1
20180219849 Jones Aug 2018 A1
20180227296 Joshi Aug 2018 A1
20180248692 Henderson Aug 2018 A1
20180248973 Cook Aug 2018 A1
20180255591 Valicherla Sep 2018 A1
20180262388 Johnson Sep 2018 A1
20180279407 Xu Sep 2018 A1
20180295137 Zager Oct 2018 A1
20180302419 Niemela Oct 2018 A1
20180302448 Nandoori Oct 2018 A1
20180308202 Appu Oct 2018 A1
20180322183 Feijoo Nov 2018 A1
20180324172 Unnikrishnan Nov 2018 A1
20180324173 Ananthapur Bache Nov 2018 A1
20180350180 Onischuk Dec 2018 A1
20180359237 Shem Tov et al. Dec 2018 A1
20180359259 Leon Dec 2018 A1
20180365259 Blaicher Dec 2018 A1
20180367569 Verma Dec 2018 A1
20180367570 Verma Dec 2018 A1
20180367571 Verma Dec 2018 A1
20180367574 Verma Dec 2018 A1
20180367578 Verma Dec 2018 A1
20190007216 Meriac Jan 2019 A1
20190007409 Totale Jan 2019 A1
20190014181 Ramasamy et al. Jan 2019 A1
20190018719 Brin Jan 2019 A1
20190020484 Boeckeler Jan 2019 A1
20190036853 Denoue et al. Jan 2019 A1
20190068373 Konduru Feb 2019 A1
20190068617 Coleman Feb 2019 A1
20190075099 Brouchier Mar 2019 A1
20190097970 Coleman Mar 2019 A1
20190097972 Coleman Mar 2019 A1
20190104415 Gehrmann Apr 2019 A1
20190121827 Boswell Apr 2019 A1
20190121962 Coleman Apr 2019 A1
20190132299 Tucker May 2019 A1
20190149539 Scruby May 2019 A1
20190158353 Johnson May 2019 A1
20190199803 Murray Jun 2019 A1
20190207963 Lord Jul 2019 A1
20190222439 Zhu Jul 2019 A1
20190222577 Eliyahu Jul 2019 A1
20190223012 Yu Jul 2019 A1
20190239081 Zhu Aug 2019 A1
20190245848 Divoux Aug 2019 A1
20190261222 Raleigh Aug 2019 A1
20190289013 Makmel Sep 2019 A1
20190311134 Mahaffey et al. Oct 2019 A1
20190318114 Holt et al. Oct 2019 A1
20190319794 Haldar Oct 2019 A1
20190327227 Tobkes Oct 2019 A1
20190340376 Fleck Nov 2019 A1
20190349338 Frost Nov 2019 A1
20190349406 Pan Nov 2019 A1
20190361694 Gordon et al. Nov 2019 A1
20190364418 Singh Nov 2019 A1
20190373447 Chughtai Dec 2019 A1
20190387408 Yang Dec 2019 A1
20190391712 Singh Dec 2019 A1
20200004946 Gilpin Jan 2020 A1
20200021591 Hecht Jan 2020 A1
20200036699 Suresh Jan 2020 A1
20200050686 Kamalapuram Feb 2020 A1
20200050749 Barboi Feb 2020 A1
20200052889 Bendersky Feb 2020 A1
20200053096 Bendersky Feb 2020 A1
20200059512 Ajodha Feb 2020 A1
20200076823 Coonrod Mar 2020 A1
20200076902 Huang Mar 2020 A1
20200089898 Borkar Mar 2020 A1
20200099738 Borkar Mar 2020 A1
20200106760 Chauhan Apr 2020 A1
20200112589 Chauhan Apr 2020 A1
20200120142 Maynard Apr 2020 A1
20200137062 Rao Apr 2020 A1
20200145425 Chauhan May 2020 A1
20200145515 Fleck May 2020 A1
20200151348 Chauhan May 2020 A1
20200153818 Chauhan May 2020 A1
20200153920 Chauhan May 2020 A1
20200153928 Chauhan May 2020 A1
20200162359 Borkar May 2020 A1
20200162454 Jain May 2020 A1
20200162471 Borkar May 2020 A1
20200162898 Nair May 2020 A1
20200177564 Arisankala Jun 2020 A1
20200177639 Cui Jun 2020 A1
20200178076 Ben Henda Jun 2020 A1
20200186518 Shah Jun 2020 A1
20200186526 Li Jun 2020 A1
20200193044 Dyvadheenam Jun 2020 A1
20200213355 Ogan Jul 2020 A1
20200228975 Li Jul 2020 A1
20200228987 Ben Henda Jul 2020 A1
20200235935 Cerna, Jr. Jul 2020 A1
20200244728 Jha Jul 2020 A1
20200285499 Heller Sep 2020 A1
20200285777 Heller Sep 2020 A1
20200293352 Foley Sep 2020 A1
20200304484 Lakunishok Sep 2020 A1
20200314104 Achyuth Oct 2020 A1
20200314133 Singh Oct 2020 A1
20200314167 Achyuth Oct 2020 A1
20200322327 Suresh et al. Oct 2020 A1
20200329072 Dubois Oct 2020 A1
20200334698 Magazine et al. Oct 2020 A1
20200336904 Maleknejad Oct 2020 A1
20200371822 Zhou et al. Nov 2020 A1
20200371995 Padmanabhan Nov 2020 A1
20200374284 Suresh Nov 2020 A1
20200374324 Le Strat Nov 2020 A1
20200412576 Kondapavuluru Dec 2020 A1
20200412731 Gulbrandsen Dec 2020 A1
20210014317 Lv et al. Jan 2021 A1
20210021605 Innes Jan 2021 A1
20210027743 Lee et al. Jan 2021 A1
20210037015 Deora Feb 2021 A1
20210049600 Spector Feb 2021 A1
20210092054 Kondapavuluru Mar 2021 A1
20210092136 Woodworth et al. Mar 2021 A1
20210092597 Sharma Mar 2021 A1
20210099451 Will Apr 2021 A1
20210099553 Grosjean et al. Apr 2021 A1
20210136084 Dayan May 2021 A1
20210136101 Ben-Yosef et al. May 2021 A1
20210160262 Bynum et al. May 2021 A1
20210184966 Ramaswamy Jun 2021 A1
20210194888 Bhaskar S Jun 2021 A1
20210194911 Hecht Jun 2021 A1
20210194913 Hecht Jun 2021 A1
20210218770 Ben-Yosef et al. Jul 2021 A1
20210232673 Athlur Jul 2021 A1
20210232693 Leenstra Jul 2021 A1
20210243027 Gupta Aug 2021 A1
20210243028 Song Aug 2021 A1
20210243193 Padmanabhan Aug 2021 A1
20210248053 Wei Aug 2021 A1
20210258308 Avetisov Aug 2021 A1
20210258316 Liu Aug 2021 A1
20210258381 Martini Aug 2021 A1
20210273923 Zhang Sep 2021 A1
20210274346 Suh Sep 2021 A1
20210288973 Dimble Sep 2021 A1
20210306331 Gadwale Sep 2021 A1
20210329021 Shaw Oct 2021 A1
20210329032 Shaw Oct 2021 A1
20210336944 Brinckman et al. Oct 2021 A1
20210336947 Rubin Oct 2021 A1
20210337013 Krishnamurthy et al. Oct 2021 A1
20210350064 Freundlich Nov 2021 A1
20210352069 Momchilov Nov 2021 A1
20210352106 Luo Nov 2021 A1
20210370705 Rizzolo Dec 2021 A1
20210385191 Ferguson Dec 2021 A1
20220007191 Shaw Jan 2022 A1
20220007195 Shaw Jan 2022 A1
20220038282 Teramoto Feb 2022 A1
20220038442 Lev Feb 2022 A1
20220039178 Salkintzis Feb 2022 A1
20220050828 Wu et al. Feb 2022 A1
20220060446 Dalvi Feb 2022 A1
20220066798 Kelly et al. Mar 2022 A1
20220094547 Duchastel Mar 2022 A1
20220095158 De kievit Mar 2022 A1
20220116345 Xu Apr 2022 A1
20220158992 Bendersky May 2022 A1
20220286303 Woo Sep 2022 A1
20220321362 Konda Oct 2022 A1
20220351357 Waldron Nov 2022 A1
20220352983 Nyamwange Nov 2022 A1
20220360981 Hessler Nov 2022 A1
20230014269 Sherker Jan 2023 A1
20230054961 Ramaswamy Feb 2023 A1
20230095715 Srivastava Mar 2023 A1
20230121852 Yan Apr 2023 A1
20230123524 Bendersky Apr 2023 A1
20230164058 Xiang May 2023 A1
20230216940 Parthasarathy Jul 2023 A1
20230269589 Baskaran Aug 2023 A1
20230275837 Parla Aug 2023 A1
20230327949 Singh Oct 2023 A1
20240031412 Sonoda Jan 2024 A1
20240037264 Tran Feb 2024 A1
20240119534 Kloeppel Apr 2024 A1
20240152690 Wei May 2024 A1
20240214356 Wang Jun 2024 A1
20240236214 Eastlake, III Jul 2024 A1
20240259290 Chen Aug 2024 A1
20240388533 Parla Nov 2024 A1
Non-Patent Literature Citations (11)
Entry
Kappes et al “Multitenant Access Control for Cloud-Aware Distributed Filesystems,” IEEE Transactions on Dependable and Secure Computing, vol. 16, No. 6, pp. 1070-1085 (Year: 2017).
Cholia et al “NEWT: A RESTful Service for Building High Performance Computing Web Applications,” IEEE, pp. 1-11, (Year: 2011).
Sharma et al Network Performance Evaluation of VPN Protocols (SSTP and IKEv2), IEEE, pp. 1-5 (Year: 2016).
Han et al “The Design of Secure Embedded VPN Gateway,” 2014 IEEE Workshop on Advanced Research and Technology in Industry Applications (WARTIA), pp. 350-353 (Year: 2014).
Kappes et al “Multitenant Access Control for Cloud-Aware Distributed Filesystems,” IEEE Transactions on Dependable and Secure Computing, IEEE, pp. 1070-1085 (Year: 2019).
Alshalan et al “A Survey of Mobile VPN Technologies,” IEEE Communications Surveys & Tutorials, pp. 1177-1196 (Year: 2016).
Communication and Search Report issued by the European Patent Office in Application No. 21186783.3-1213, dated Jan. 24, 2022 (10 pages).
Homeland Security “Configuring and Managing Remote Access for Industrial Control Systems”, Control Systems Security Program, National Cyber Security Division, CPNI, Centre for Protection of National Infrastructure, Nov. 2010, pp. 1-66 (2010).
Sharma, “Remote System Controller: An Implementation of a Secure Channel”, International Journal of Computer Science and Mobile Computing, A Journal of Computer Science and Information Technology, IJCS, vol. 2, Issue 4, Apr. 2013, pp. 414-421 (2013).
Montoro, “Remote Desktop Protocol, the Good, the Bad, and the Ugly”, Security Advisory, May 28, 2005, pp. 1-4 (2005).
Mogica “Remote Desktop: Integrating Mulitple Devices,” Thesis, Stockholm Sweden, Nov. 29, 2008, pp. 1-44 (2008).
Related Publications (1)
Number Date Country
20230123524 A1 Apr 2023 US
Continuations (1)
Number Date Country
Parent 17097809 Nov 2020 US
Child 18086119 US