Session Restrictions for Disjoint USB Stacks via Filter Drivers

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In virtual desktop infrastructure (VDI) environments, USB device redirection allows devices connected to clients to be accessed as if they were locally connected to the server, but this lacks session-level restrictions, leading to security and privacy concerns as devices can be accessed by unauthorized users across sessions.

Innovation Solution

Implementing a Device Access Restriction (DAR) driver that registers as an upper filter driver to attach a Device Access Restriction object to the device stack, allowing only access from the original user session by verifying the presence of a redirection virtual bus driver and managing symbolic links to enforce session-level restrictions, even in disjoint stack configurations.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If USB device redirection is implemented to allow device access across sessions, then device accessibility and versatility are improved, but security and privacy are worsened due to unauthorized access by other users

Engineering Contradiction:
Improvedevice accessibilityVSAvoidunauthorized access
Core Design Contradiction:
Adaptability or versatilityVSObject-affected harmful factors

Solution Approach 1:

The patent applies local quality by creating session-specific symbolic links in local namespaces rather than global namespaces. Each user session gets its own isolated view of redirected devices through session-specific symbolic links stored in local namespaces, allowing devices to be accessible within their intended session while preventing cross-session access. This localized approach maintains device accessibility where needed while blocking unauthorized access elsewhere.

Inventive Principle:
Principle #3Local quality

2Reliability

If session level restrictions are implemented to prevent unauthorized device access, then security is improved, but device accessibility across sessions is worsened

Engineering Contradiction:
ImprovesecurityVSAvoiddevice accessibility
Core Design Contradiction:
ReliabilityVSAdaptability or versatility

Solution Approach 1:

The patent applies segmentation by dividing the namespace into local namespaces for each user session rather than using a single global namespace. Each session has its own isolated namespace where symbolic links to redirected devices are created only for that specific session. This segmentation ensures that devices redirected in one session cannot be accessed by other sessions, providing security while maintaining necessary accessibility within each session context.

Inventive Principle:
Principle #1Segmentation

3Reliability

If a filter driver traverses the device stack to locate the root driver for session identification, then session level control is improved, but device complexity and processing overhead are worsened

Engineering Contradiction:
Improvesession level controlVSAvoiddriver complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent applies preliminary action by having the filter driver perform the device stack traversal and session identification process when the device is first redirected or when access is requested. The session identifier is obtained in advance and stored for use in subsequent access control decisions. This preliminary action ensures that session level control is properly established before any potential unauthorized access can occur, while the complexity of the traversal process is executed only when necessary rather than continuously.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS10261933B2Enabling session level restrictions for devices having disjoint stacks
Publication Date: 2019.04.16 DELL MARKETING CORP
  • US10261933B2 patent drawing
  • US10261933B2 patent drawing
  • US10261933B2 patent drawing

AI summary

Session level restrictions can be implemented for devices having disjoint stacks. When a filter driver is loaded onto a device stack, it can traverse the device stack to locate the root driver in the stack. If the root driver is a redirection virtual bus driver, the filter driver can obtain a session identifier associated with the device. Otherwise, if the root driver is not a redirection virtual bus driver, the filter driver can obtain the container ID for the device. The filter driver can then obtain a list of the devices that are enumerated by the redirection virtual bus driver and determine whether any of the devices in the list have a container ID matching the container ID of the device. If a match is found, the session ID of the matching device can be obtained and employed to implement session level restrictions.