TWI814877B - 將重定向的生物辨識裝置隔離到遠程會話 - Google Patents

將重定向的生物辨識裝置隔離到遠程會話 Download PDF

Info

Publication number
TWI814877B
TWI814877B TW108127578A TW108127578A TWI814877B TW I814877 B TWI814877 B TW I814877B TW 108127578 A TW108127578 A TW 108127578A TW 108127578 A TW108127578 A TW 108127578A TW I814877 B TWI814877 B TW I814877B
Authority
TW
Taiwan
Prior art keywords
identity
session
application
biometric
enumeration response
Prior art date
Application number
TW108127578A
Other languages
English (en)
Other versions
TW202027477A (zh
Inventor
戈庫爾 T 瓦杰拉韋爾
拉馬努加姆 K 文卡特什
Original Assignee
美商戴爾產品有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 美商戴爾產品有限公司 filed Critical 美商戴爾產品有限公司
Publication of TW202027477A publication Critical patent/TW202027477A/zh
Application granted granted Critical
Publication of TWI814877B publication Critical patent/TWI814877B/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/12Discovery or management of network topologies
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/148Migration or transfer of sessions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • G06F9/452Remote windowing, e.g. X-Window System, desktop virtualisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/146Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/563Data redirection of data network streams
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computer And Data Communications (AREA)
  • Measuring And Recording Apparatus For Diagnosis (AREA)
  • Measurement Of The Respiration, Hearing Ability, Form, And Blood Characteristics Of Living Organisms (AREA)

Abstract

一種用於將生物辨識裝置隔離到用戶會話的方法。可透過堆疊在裝置驅動器堆疊的頂部的篩選驅動器來實現會話級別限制。當用戶將生物辨識裝置重定向至遠程會話時,篩選驅動器可獲取生物辨識裝置的身份標識並對此身份標識與重定向的用戶的遠程會話的會話身份標識之間的映射進行維護。然後,當在伺服器上執行的應用程式試圖對生物辨識裝置進行枚舉時,掛鉤組件可檢測並調節相應的響應,以移除未被定向至應用程式在其中執行的相同用戶會話的任何生物辨識裝置。這樣,應用程式將無法發現被重定向至其他用戶會話的任何生物辨識裝置。

Description

將重定向的生物辨識裝置隔離到遠程會話
發明領域 本發明關於虛擬桌面基礎架構(VDI)環境中的通用序列匯流排(USB)裝置的重定向。
發明背景 通常,USB裝置重定向是指:使得連接到用戶端電腦的USB裝置可於虛擬桌面內被存取,好像該USB裝置已物理地連接於虛擬桌面。換言之,當執行USB裝置重定向時,用戶可將USB裝置連接到他/她的用戶終端,並且USB裝置將好像被連接到伺服器一樣的運行。
圖1、圖2及隨後的描述中將對本發明一些實施例中可執行USB裝置重定向的方式加以概述。在圖1中,所描述的電腦系統100包含經由網路106與伺服器104進行通訊的多個用戶終端102a-102n(此處,統稱為「用戶端電腦102」)。伺服器104可支援遠程會話(例如,遠程桌面會話),其中位於用戶端電腦102處的用戶可從用戶端電腦102對位於伺服器104處的應用程式與資料進行存取。可使用諸如遠程桌面協議(RDP)與「Citrix®」獨立計算架構(ICA )的多種習知技術中的任何一種技術建立上述連接。
用戶端電腦102可為電腦、行動電話(如,智慧型電話)、筆記型電腦、個人數位助理(PDA)、便攜式電腦終端或具有處理器的適宜的終端或裝置。伺服器104可為電腦、筆記型電腦、電腦終端、虛擬機(如,「VMware® Virtual Machine」)、桌面會話(如,「Microsoft Terminal Server」)、已發佈的應用程式(如,「Microsoft Terminal Server」)或具有處理器的適宜的終端。
用戶端電腦102可透過向伺服器104傳送用於遠程存取的請求及身份驗證資訊(例如,登錄名及密碼),藉以發起與伺服器104的遠程會話。若伺服器104接受來自用戶端電腦102的身份驗證資訊,則伺服器104可建立遠程會話,藉以令用戶可於用戶端電腦102對伺服器104處的應用程式與資料進行存取。在進行遠程會話期間,伺服器104可透過網路106向用戶端電腦102傳送顯示資料,其中顯示資料可包含伺服器104上所運行的一個或多個應用程式和/或桌面的顯示資料。例如,桌面可包含可於伺服器104上啟動的不同應用程式所對應的圖標。顯示資料可使用戶端電腦102於本地顯示出在伺服器104上所運行的應用程式和/或桌面。
在進行遠程會話期間,用戶端電腦102可透過網路106向伺服器104傳送用戶命令(如透過用戶端電腦102的鍵鼠或鍵盤所輸入的用戶命令)。進而,伺服器104可對來自用戶端電腦102的用戶命令進行處理(與由伺服器104本地從輸入裝置所接收的用戶命令相類似地處理)。例如,若用戶命令包含鍵鼠的移動,則伺服器104可相應地於伺服器104所運行的桌面上移動光標。而當桌面和/或應用程式的顯示資料因用戶命令而產生變化時,伺服器104會將更新後的顯示資料傳送至用戶端電腦102。因此,用戶端電腦102可於本地顯示更新後的顯示資料,藉以使用戶端電腦102處的用戶可看到伺服器104上因用戶命令所產生的變化。綜合上述各種方面,用戶端電腦102處的用戶可於本地看到在遠程的伺服器104上所運行的桌面和/或應用程式,並且用戶可將命令輸入到在遠程的伺服器104上所運行的桌面和/或應用程式。而從用戶端電腦的角度來看,在伺服器104上所運行的桌面可被視為虛擬桌面環境。基於本申請的目的,裝置240可以表示生物辨識裝置,例如指紋掃描儀。
圖2為根據本發明一些實施例的本地裝置虛擬化系統200的方塊圖。系統200可包含如圖1所示的可透過網路106與伺服器104進行通訊的用戶端電腦102。用戶端電腦102可包含網絡代理(proxy)210、短截驅動器(stub driver)220與匯流排驅動器230。如圖2所示,用戶端電腦102可連接至裝置240。伺服器104可包含:代理裝置(agent)250和虛擬匯流排驅動器260。
根據USB裝置重定向技術,當裝置240既非於本地又未物理地連接至伺服器104且遠離伺服器104時,如以下所討論的,對於伺服器104而言,裝置240好像在本地連接於伺服器104一般。因此,對於伺服器104而言,裝置240恰似虛擬裝置290。
作為說明而非限制,裝置240可以是任何類型的USB裝置(此USB裝置包含電腦可讀存儲介質(如,快閃存儲裝置))、列印機、掃描儀、相機、傳真機、電話、音頻裝置(如耳機)、視頻裝置(如照相機)、外圍裝置或者可連接至用戶端電腦102的其它適當的裝置。同時,裝置240可以是外部裝置(即,位於用戶端電腦102外部)或內部裝置(即,位於用戶端電腦102內部)。
匯流排驅動器230可用於使用戶端電腦102的作業系統和程式與裝置240相互作用。在一方面,當裝置240連接至用戶端電腦102(例如,被插入用戶端電腦102的埠)時,匯流排驅動器230可對裝置240的存在進行檢測並從裝置240讀取關於此裝置240的資訊(「裝置資訊」)。這些裝置資訊可包含裝置240所特有的特徵、特性、或其它資訊,諸如裝置描述符(如:產品身份標識、供應商身份標識和/或其他資訊)、配置描述符、介面描述符、端點描述符和/或字串描述符。匯流排驅動器230可透過電腦匯流排或者其它有線介面或無線通訊介面與裝置240進行通訊。
根據USB裝置重定向技術,可從伺服器104對裝置240進行存取,好像此裝置是本地連接於伺服器104一樣。當用戶端電腦102透過在伺服器104上運行的遠程會話連接至伺服器104時,可由伺服器104對裝置240進行存取。例如,可由在伺服器104上所運行的桌面(即,虛擬桌面環境)對裝置240進行存取。為此,匯流排驅動器230可加載短截驅動器220以作為裝置240的默認驅動器。短截驅動器220可向網絡代理210報告裝置240的存在並向網絡代理210提供裝置資訊(如,裝置描述符)。網絡代理210可用於透過網路106(如,經由傳輸控制協定插座或用戶資料元協定插座)向伺服器104的代理裝置250報告裝置240的存在以及裝置資訊。因此,短截驅動器220經由網絡代理210將裝置240重定向至伺服器104。
代理裝置250可從網絡代理210處接收裝置240連接至用戶端電腦102的報告及裝置資訊。代理裝置250還可用於將來自網絡代理210的報告關聯於用戶端電腦102的一個或多個身份標識和/或使用戶端電腦102連接到伺服器104的遠程會話的一個或多個身份標識,其中身份標識例如會話號或會話本地唯一身份標識(LUID)。代理裝置250可將裝置240的通知與裝置資訊一併提供至虛擬匯流排驅動器260。虛擬匯流排驅動器260(可以是Dell 公司的「Wyse TCX USB」匯流排驅動器或任何其他匯流排驅動器)可用於創建與裝置240相應的記錄並將此記錄存儲於記憶體中。此記錄可包含從代理裝置250所接收的至少一部分裝置資訊與會話身份標識。虛擬匯流排驅動器260可用於向伺服器104的作業系統170報告裝置240已連接並向作業系統提供裝置資訊。這樣,即使將裝置240是連接於用戶端電腦102,伺服器104的作業系統亦可辨識出裝置240的存在。
伺服器104的作業系統可透過裝置資訊以在伺服器104處為裝置240搜尋並加載一個或多個適當的裝置驅動器。如圖2所示,各驅動器可具有相關聯的裝置對象(對象281a、對象281b、…對象281n,以下統稱為「裝置對象281」)。裝置對象281是為實際的裝置240或虛擬化裝置290(或概念化裝置)的軟體實現方式。不同的裝置對象281可相互層疊,以提供完整的功能。這些不同的裝置對象281可關聯於不同的裝置驅動器(驅動器282a、驅動器282b、…驅動器282n,統稱為「裝置驅動器282」)。本一實例中,諸如USB快閃驅動器的裝置240可具有相關的裝置對象,這些相關的裝置對象包含:對應於匯流排驅動器的對象、對應於存儲驅動器的對象、對應於卷管理器驅動器的對象及對應於裝置的文檔系統驅動器的對象。對應於同一裝置240的多個裝置對象281可形成用於裝置240的分層的裝置堆疊280。例如,對於USB裝置來講,USB匯流排驅動器將創建裝置對象281a,藉以表明已插入新的裝置。接下來,作業系統的隨插即用(PNP)組件將為裝置240搜尋並加載最佳的驅動器,這將創建層疊於先前的裝置對象281a上的另一個裝置對象281b。裝置對象281的層疊將創建裝置堆疊280。
裝置對象281可存儲於與虛擬匯流排驅動器260相關的伺服器104的記憶體中。具體來講,裝置對象281與所獲得的裝置堆疊280可存儲於伺服器104的隨機存取記憶體中。不同的裝置240/裝置290可具有裝置堆疊,這些裝置堆疊所具有的裝置對象不相同且裝置對象的數量亦不相同。可對裝置堆疊進行排序,藉以使較低階的裝置對象(對應於較低階的裝置驅動器)的編號小於較高階的裝置對象(對應於較高階的裝置驅動器)。可從較高階對象至較低階對象向下的對裝置堆疊加以遍歷。例如,在對應於USB快閃驅動器的示意性的裝置堆疊280實例中,可從處於高階的文檔系統驅動器裝置對象開始向下的對排序的裝置堆疊加以遍歷,進而遍歷至卷管理器驅動器裝置對象、存儲驅動器裝置對象、USB驅動器裝置對象,直至低階的虛擬匯流排驅動器裝置對象。不同的裝置堆疊280又可相互層疊,藉以在諸如USB耳機或USB筆驅動器的裝置內提供裝置240/裝置290的功能。例如,USB筆驅動器可先創建USB裝置堆疊,進而於這種USB裝置堆疊上創建存儲裝置堆疊,其中每個裝置堆疊具有兩個或更多個裝置對象。
一旦伺服器104的作業系統170加載了一個或多個裝置對象281,各裝置對象281便可創建到裝置對象281及相關的裝置驅動器282的符號鏈接(亦被稱為「裝置介面」)。符號鏈接由伺服器104上運行的應用程式使用,藉以對裝置對象281和裝置240/290進行存取。可透過調用諸如「IoCreateSymbolicLink()」的功能創建符號鏈接,其中前述「IoCreateSymbolicLink()」包含:諸如符號鏈接的名稱及裝置對象281或相關裝置240的名稱的引數(argument)。例如,在一個實例中,可透過將用於裝置240的裝置對象281調用至「IoCreateSymbolicLink()」功能,藉以創建到USB快閃驅動器的裝置240的符號鏈接,其中「IoCreateSymbolicLink()」包含引數「\\GLOBAL??\C:」(即,符號鏈接的名稱)與引數「\Device\HarddiskVolume1」(即,裝置對象的名稱)。
此處,符號鏈接的創建導致於作業系統170的目標管理名稱空間(OMN)中創建輸入數據(entry)。目標管理名稱空間將資訊存儲在符號鏈接上,其中符號鏈接是為作業系統170而創建並由作業系統170所使用,其包含用於裝置240的符號鏈接、虛擬化的裝置290的符號鏈接及在伺服器104上運行的應用程式270的符號鏈接。
作為符號鏈接的創建過程的結果,於伺服器104的目標管理名稱空間中對裝置240的符號鏈接進行枚舉。一旦向伺服器104的作業系統170報告裝置240的存在,便可由在伺服器104(即,虛擬桌面環境)上運行的遠程會話(即,相關聯的桌面)對裝置240進行存取。例如,裝置240可顯示為在虛擬桌面環境上的圖標和/或裝置240可由在伺服器104上運行的應用程式存取。
在伺服器104上運行的應用程式270可透過向作業系統170傳送處理請求而對裝置240進行存取,其中處理請求包含用於裝置240的符號鏈接。作業系統170可諮詢目標管理名稱空間,以檢索裝置240自身的位址或其他身份標識或與裝置240相關的裝置對象281的位址或其他身份標識。利用所檢索到的位址或身份標識,作業系統170直接透過裝置堆疊280的裝置對象281和/或透過虛擬匯流排驅動器260將用於裝置240的處理請求傳送。虛擬匯流排驅動器260可將處理請求傳送至代理裝置250,代理裝置250可透過網路106再將處理請求傳送至網絡代理210。網絡代理210從代理裝置250處接收處理請求,並將所接收到的處理請求傳送至短截驅動器220。然後,短截驅動器220可透過匯流排驅動器230將處理請求傳送至裝置240。
匯流排驅動器230可從裝置240處接收處理請求的結果並將處理請求的結果傳送至短截驅動器220。短截驅動器220將處理請求的結果傳送至網絡代理210,網絡代理210透過網路106將處理請求的結果傳送至代理裝置250。代理裝置250將處理請求的結果傳送至虛擬匯流排驅動器260。而後,虛擬匯流排驅動器260將處理請求的結果傳送至應用程式270(直接地或是透過裝置堆疊280的裝置對象281)。
因此,虛擬匯流排驅動器260可從應用程式270接收裝置240的處理請求並將此處理請求的結果送回至應用程式270(直接地或是透過裝置堆疊280的裝置對象281)。這樣,應用程式270可與虛擬匯流排驅動器260相互作用,其方式與本地地連接至伺服器104的裝置的匯流排驅動器相同。虛擬匯流排驅動器260可隱藏其向代理裝置250(而非本地連接至伺服器104的裝置)傳送處理請求並從代理裝置250(而非本地連接至伺服器104的裝置)接收處理請求的結果的事實。因此,連接至用戶端電腦102的裝置240對於應用程式270來說就好像物理裝置240本地連接到伺服器104一樣。
而在諸如「Windows」作業系統的某些作業系統中,對裝置240的符號鏈接的創建可導致於對像管理器命名空間的全域命名空間中創建輸入數據。由於符號鏈接是創建於全域命名空間中,所以可從運行於伺服器104上的任何會話中對符號鏈接進行存取。因此,可從伺服器104上的任何用戶會話和/或從在伺服器104上具有有效用戶會話的任意用戶終端對與符號鏈接相關的裝置240進行存取。
通常,不期望允許透過任意的用戶會話對重定向裝置進行存取。為此,已開發出許多技術來實現「會話級別限制」,藉以使得僅可透過重定向用戶的遠程會話(即,重定向裝置所連接到的用戶終端的用戶的遠程會話)內所執行的應用程式來對重定向裝置進行存取。
在第8,990,394號的美國專利中揭露了一種技術,其包含裝載驅動器以作為欲對其進行限制的一種類別的裝置的高階篩選驅動器,進而使得驅動器可以防止並阻攔由另一個用戶會話所發起的對重定向裝置進行的存取作業。雖然,這種技術可用於多種類別的裝置,但這種技術卻無法適用於生物辨識裝置。特別是,在這種技術中,高階篩選驅動器辨識與針對重定向裝置的各輸入/輸出請求相關的用戶會話,然後基於所辨識的用戶會話限制存取。然而,對於生物辨識裝置而言,作業系統可使得針對生物辨識裝置的所有輸入/輸出請求都透過無用戶授權的會話中所運行的服務程式(例如,透過在會話0中運行的「Windows Biometric Service」)處理。
圖3示出的實例說明如何由在遠程會話中運行的應用程式270對重定向的生物辨識裝置340/390進行存取。如圖所示,圖2和圖3中所示出的重定向架構大體上是相同的。兩者的差異在於應用程式270如何對重定向裝置進行存取。由於重定向裝置是為生物辨識裝置,所以將需要在用戶會話/遠程會話中執行的應用程式270,以使用生物辨識程式庫170b(如,「Winbio DLL」)來對生物辨識裝置340進行存取。更具體而言,當應用程式270調用生物辨識程式庫170b的功能以對生物辨識裝置340進行存取時,此功能將調用運行於會話 0中的生物辨識服務程式170a。然後,生物辨識服務程式170a將與生物辨識裝置驅動器堆疊380進行交互(如透過使得適當的輸入輸出請求封包被送至堆疊下方)。若基於第8,990,394號美國專利所揭露的技術將高階篩選驅動器添加至生物辨識裝置的驅動器堆疊中,則篩選驅動器將無法透過輸入/輸出請求來將應用程式270確定為此輸入/輸出請求的來源。相反,輸入/輸出請求將被看來是由生物辨識服務程式170a從會話0內發起的。值得注意的是,若在另一用戶的遠程會話中運行的應用程式試圖對重定向的生物辨識裝置340進行存取,亦會出現上述狀況。
發明概要 本發明涵蓋了用於將重定向的生物辨識裝置隔離到遠程會話的方法、系統及電腦程式產品。可透過堆疊在用於重定向的生物辨識裝置的裝置驅動器堆疊的頂部的篩選驅動器來實現會話級別限制。當用戶將生物辨識裝置重定向至遠程會話時,篩選驅動器可獲取生物辨識裝置的身份標識並對此身份標識與重定向的用戶的遠程會話的會話身份標識之間的映射進行維護。然後,當在伺服器上執行的應用程式試圖對生物辨識裝置進行枚舉時,掛鉤組件可對相應的響應進行檢測與調節,以移除未被重定向至應用程式在其中執行的相同用戶會話的任何生物辨識裝置。這樣,應用程式將無法發現被重定向至其他用戶會話的任何生物辨識裝置。
在本發明的一個實施例中,揭露了一種用於將生物辨識裝置隔離到用戶會話的方法。響應在用戶會話中執行的應用程式請求對連接於伺服器的多個生物辨識裝置進行枚舉,掛鉤組件對包含生物辨識裝置的身份標識的枚舉響應進行攔截。掛鉤組件從枚舉響應中提取生物辨識裝置的身份標識,並將身份標識送至篩選驅動器。篩選驅動器利用生物辨識裝置的身份標識來獲得生物辨識裝置重定向到的用戶會話的會話身份標識,並將會話身份標識返回掛鉤組件。掛鉤組件對從篩選驅動器所接收的會話身份標識與應用程式正在其中執行的用戶會話的會話身份標識進行比較。當掛鉤組件確定從篩選驅動器所接收的會話身份標識與應用程式正在其中執行的用戶會話的會話身份標識不匹配時,在允許枚舉響應被提供至應用程式前,掛鉤組件從枚舉響應中移除生物辨識裝置的身份標識。而當掛鉤組件確定從篩選驅動器所接收的會話身份標識與應用程式正在其中執行的用戶會話的會話身份標識匹配時,掛鉤組件允許枚舉響應被提供至應用程式並且不移除生物辨識裝置的身份標識。
在本發明的另一個實施例中,揭露了一種用於將被重定向至用戶會話的生物辨識裝置隔離,藉以使生物辨識裝置無法由在其它用戶會話中所執行的應用程式存取的方法。響應於生物辨識裝置被連接到已在遠程於伺服器上建立用戶會話的用戶終端,建立該生物辨識裝置的身份標識與該用戶會話的會話身份標識之間的映射。響應於來自在不同的用戶會話中執行的第一應用程式的對生物辨識裝置進行枚舉的請求,對包含該生物辨識裝置的身份標識的枚舉響應進行攔截。在允許該枚舉響應被提供至該第一應用程式前,從該枚舉響應中提取該生物辨識裝置的身份標識,並且利用該身份標識檢索出該身份標識所映射到的會話身份標識。對所檢索出的該身份標識與請求對該等生物辨識裝置進行枚舉的該第一應用程式的會話身份標識進行比較。當確定所檢索出的該身份標識與該第一應用程式的會話身份標識不匹配時,在允許該枚舉響應被提供至該第一應用程式前,從該枚舉響應中移除該身份標識。
在本發明的又一個實施例中,揭露了一種用於將生物辨識裝置隔離到用戶會話的方法。掛鉤組件攔截枚舉響應,此枚舉響應包含生物辨識裝置的至少一個身份標識,並且用於在第一用戶會話中執行的應用程式。對於枚舉響應中的各身份標識而言,此方法包含:從枚舉響應中提取生物辨識裝置的身份標識並將身份標識送至篩選驅動器;透過篩選驅動器,利用生物辨識裝置的身份標識來獲得該身份標識所關聯的會話身份標識,並將會話身份標識返回掛鉤組件;及當掛鉤組件確定從篩選驅動器所接收的會話身份標識與應用程式正在其中執行的第一用戶會話的會話身份標識不匹配時,透過掛鉤組件從枚舉響應中移除生物辨識裝置的身份標識。最終,僅在將與第一用戶會話的會話身份標識不匹配的會話身份標識所關聯的各身份標識移除後,才允許將枚舉響應提供至應用程式。
提供本發明內容以簡化的形式介紹一些概念,這些概念將在下面的詳細描述中進一步描述。本發明內容並不旨在標識所要求保護的主題的關鍵特徵或必要特徵。
較佳實施例之詳細說明 在本申請說明書中,遠程會話應解讀為遠程用戶已於伺服器上建立的用戶會話。因此,術語「用戶會話」與術語「遠程會話」是可互換使用的。在本申請說明書的內容中,生物辨識裝置應解讀為提供基於生物辨識的認證的裝置。通常,這種生物辨識裝置是連接於用戶的用戶端電腦並重定向至用戶已於伺服器上建立的用戶會話,但本申請亦可涵蓋直接連接於伺服器的生物辨識裝置。
「WinBio」裝置應解讀為可透過「Windows Biometric Framework」進行存取的生物辨識裝置。「Morpho」裝置應解讀為可透過「MorphoSmart SDK」(或「Morpho Framework」)進行存取的生物辨識裝置。術語「會話級別限制」是指使重定向裝置隔離到特定用戶會話或多個用戶會話的能力。雖然下文將對如何於「Windows Biometric Framework」與「Morpho Framework」內實現會話級別限制進行闡釋,但本申請亦可於其他架構內實現會話級別限制。諸如「掛鉤組件」(hooking component)、「鉤住」(hooking)、「攔截調用」(intercepted calls)、「掛鉤功能」(hooked function)等術語大體上涵蓋了用於執行應用程式介面(API,Application Programming Interface)掛鉤的許多不同技術中的任意一種技術,且本申請並不局限於任何一種特定的掛鉤技術。
圖4示出了可在本申請使用以實現會話級別限制的示意性架構。通常,上述架構可與添加了各種組件及資料結構的圖3所示的重定向架構相匹配。如圖所示,為了對重定向的生物辨識裝置提供會話級別限制,可將篩選驅動器401添加於生物辨識裝置驅動器堆疊380上,藉以將篩選驅動器作為高階篩選驅動器。此外,可以用戶會話組件的形式添加掛鉤組件450,這種用戶會話組件用於鉤住生物辨識程式庫170b的一個或多個功能。如下文將要描述的,當掛鉤組件450攔截到掛鉤功能的調用時,掛鉤組件450可(如經由輸入/輸出控制IOCTLs)與篩選驅動器401進行通訊。
篩選驅動器401可用於創建裝並維護裝置實例身份標識映射401a和/或裝置序列號映射401b,其可在對所攔截到的到掛鉤功能的調用進行處理時使用。映射401a中的各輸入數據可將生物辨識裝置的裝置實例身份標識映射至用戶會話的會話身份標識,其中生物辨識裝置被重定向到該用戶會話。透過下文的描述可理解,篩選驅動器401可將「WinBio」裝置的裝置實例身份標識映射至會話身份標識。
在「Morpho」裝置的情況中,篩選驅動器401可替代地將生物辨識裝置的序列號映射至會話身份標識。因此,映射401b中的各輸入數據將生物辨識裝置的裝置序列號映射至用戶會話的會話身份標識,其中生物辨識裝置被重定向到該用戶會話。
作為裝置初始化過程的一部分,篩選驅動器401可創建這些映射。因此,當「WinBio」裝置被重定向時,篩選驅動器401可(例如,透過向虛擬匯流排驅動器260傳送「IRP_MJ_PNP」與「IRP_MN_QUERY_ID IRP」)來獲取裝置實例身份標識以及會話身份標識(例如,會話身份標識可從虛擬匯流排驅動器260處獲取,其中虛擬匯流排驅動器260可能從代理裝置250處接收會話身份標識以作為IOCTL的一部分以添加重定向的「WinBio」裝置),進而可將輸入數據添加到映射401a中。相反,當對「Morpho」裝置進行重定向時,篩選驅動器401可獲取裝置序列號(如,透過使用「MorphoSmart SDK」的「ILV_SECU_GET_CONFIG」指令獲取)並獲取會話身份標識(如,透過與「WinBio」裝置所實施的相同的方式),進而篩選驅動器401可將輸入數據添加至映射401b中。因此,本申請可同時地為「WinBio」裝置與「Morpho」裝置提供會話級別限制。在其它架構中,篩選驅動器401亦可類似地使用可用功能而獲取生物辨識裝置的唯一身份標識以及會話身份標識,藉以將輸入數據添加至相應的映射資料結構中。圖7為裝置初始化過程中由篩選驅動器401所執行的處理的流程圖。
在隨後的諸多實例中,假設了當前有四部生物辨識裝置被重定向至(或者可能連接至)伺服器,並且因此篩選驅動器401已將四個條目添加至映射401a /映射401b。如所示,具有身份標識ID1與ID2的重定向的兩部生物辨識裝置被假設為「WinBio」裝置,其被重定向至會話身份標識SessionID17與SessionID12的會話。具有裝置序列號SN1與SN2的重定向的另外兩部生物辨識裝置被假設為「Morpho」裝置,其被重定向至會話身份標識為SessionID25與SessionID13的會話。
圖5A至圖5E示出了掛鉤組件450和篩選驅動器401的協作以對「WinBio」裝置實施會話級別限制的實例。在此實例中,假設應用程式270正在會話身份標識為SessionID21的用戶會話內執行。在步驟1中,應用程式270請求對連接至伺服器的各「WinBio」裝置進行枚舉(enumerated)。在「Windows Biometric Framework」中,可利用生物辨識程式庫170b所提供的「WinBioEnumBiometricUnits」功能完成上述步驟。在對隨後的步驟進行描述前,應當注意的是,在沒有本發明的情況下,這種功能調用將導致當前連接到伺服器的兩部「WinBio」裝置都被枚舉到應用程式270(換言的,應用程式270可對此兩部「WinBio」裝置進行存取)。
如上所述,掛鉤組件450可用於鉤住「WinBioEnumBiometricUnits」功能,以便對其行為進行修正。然而,如圖5A所示,掛鉤組件450最初可允許此調用功能繼續進行至生物辨識服務程式170a以進行典型處理。在圖5B所示的步驟2中,上述典型處理將令生物辨識服務程式170a創建當前連接至伺服器的「WinBio」裝置的列表。特別的是,「WinBioEnumBiometricUnits」功能可返回一個「_WINBIO_UNIT_SCHEMA」結構的陣列以及對陣列中結構數量進行辨識的「UnitCount」參數。各「_WINBIO_UNIT_SCHEMA」結構表示特定的生物辨識裝置,並且包含其它多種參數,包括該裝置的裝置實例身份標識。因此,「UnitCount」參數的值可標識連接到伺服器的「WinBio」裝置的數量。在步驟3中,掛鉤組件450可對「WinBioEnumBiometricUnits」響應進行攔截,藉以防止未被改變的響應到達應用程式270。
在圖5C所示的步驟4中,掛鉤組件450可從多個「_WINBIO_UNIT_SCHEMA」結構中的一個結構中提取裝置實例身份標識,並將此身份標識提供至篩選驅動器401(如,提供至IOCTL)。作為響應,如步驟5所示,篩選驅動器401可使用所提交的裝置實例身份標識來從映射501a檢索出相應的會話身份標識。在此實例中,所檢索出的會話身份標識將會是SessionID17。
在圖5D所示的步驟6中,篩選驅動器401將會話身份標識SessionID17返回到掛鉤組件450,進而可向掛鉤組件450通知:裝置實例身份標識為ID1的「WinBio」裝置被重定向至會話身份標識為SessionID17的用戶會話。在步驟7中,掛鉤組件450可對所接收的會話身份標識與正在執行的用戶會話的會話身份標識進行比較(並且因此,與正在執行的應用程式中的會話身份標識進行比較)。在此實例中,掛鉤組件450將確定具有裝置實例身份標識的「WinBio」裝置從掛鉤組件450正在其中執行的一個用戶會話(SessionID21)被重定向至另一個不同的用戶會話(SessionID17)。因此,在步驟8中,掛鉤組件450可從「WinBioEnumBiometricUnits」響應中所辨識的陣列移除相應的「_WINBIO_UNIT_SCHEMA」結構。隨著上述結構的移除,掛鉤組件450還可減小響應內的「UnitCount」參數的數值。
掛鉤組件450將針對各「_WINBIO_UNIT_SCHEMA」結構(即,所連接的各「WinBio」裝置)執行步驟4至步驟7,並且移除「_WINBIO_UNIT_SCHEMA」結構,除非篩選驅動器401所返回的會話身份標識與其中正在執行掛鉤組件450的會話的會話身份標識相匹配(執行步驟8)。因此,在進行上述處理後,陣列應當僅包含涉及被重定向至掛鉤組件450正在其中執行的相同會話的「WinBio」裝置的「_WINBIO_UNIT_SCHEMA」結構。在此實例中,鑒於裝置實例身份標識為ID2的「WinBio」裝置被重定向至會話身份標識為sessionID21的會話,因此將僅保留裝置實例身份標識為ID2的結構。因此,在圖5E所示出的步驟9中,掛鉤組件450允許完成「WinBioEnumBiometricUnits」功能調用,以使提供至應用程式270的響應包含僅一個陣列,其具有「_WINBIO_UNIT_SCHEMA」的結構以及數值為1的「UnitCount」。因此,應用程式270與重定向的用戶將僅可對用戶所重定向的「WinBio」裝置進行存取。
圖6A至圖6E示出了掛鉤組件450和篩選驅動器401的協作以對「Morpho」裝置實施會話級別限制的基本相似的實例。在此實例中,生物辨識服務程式170a與生物辨識程式庫170b可體現為「MorphoSmart SDK」而非「Windows Biometric Framework」。
在圖6A所示的步驟1中,應用程式270請求對連接至伺服器的各「Morpho」裝置進行枚舉。雖然未示出,但應用程式270將首先調用「InitUsbDevicesNameEnum」功能,藉以獲得所連接的「Morpho」裝置的總數。有了這個數字,應用程式270就可為各「Morpho」裝置反覆運算地調用「GetUsbDevicesNameEnum」功能,如步驟1所示。具體來講,「GetUsbDevicesNameEnum」功能可用索引參數作為輸入,此索引參數的值是介於0與從對「InitUsbDevicesNameEnum」功能所進行的調用返回的數值之間。
每當應用程式270調用「GetUsbDevicesNameEnum」功能時,掛鉤組件450可允許此調用繼續以典型方式進行至生物辨識服務程式170a,其中生物辨識服務程式170a將使用特定的索引參數對由此索引定義的「Morpho」裝置的序列號進行檢索。因此,在圖6B中所描述的步驟2中,生物辨識服務程式170a被示出為提供響應,該響應包含序列號SN1,其中掛鉤組件450將於步驟3中對此序列號SN1進行攔截。
在圖6C所示的步驟4中,掛鉤組件450可將序列號傳送至篩選驅動器401;且於步驟5中,篩選驅動器使用序列號來從映射401b中檢索出所映射到的會話身份標識。在此實例中,由於序列號為SN1,因此篩選驅動器401將檢索出會話身份標識SessionID25。
在圖6D所示的步驟6中,篩選驅動器401可使會話身份標識返回掛鈎組件450;然後,在步驟7中,可將所返回的會話身份標識與掛鈎組件450正在其中執行的會話的會話身份標識進行比較。在此實例中,假設掛鉤組件450(及應用程式270)正在會話身份標識SessionID13的會話內執行,掛鉤組件450將確定具有序列號SN1的生物辨識裝置未被重定向至當前會話。
在圖6E所示的步驟8中,由於篩選驅動器401所返回的會話身份標識與當前的會話身份標識不匹配,因此掛鉤組件450將從「GetUsbDevicesNameEnum」功能的響應中移除該序列號。這種移除作業可能涉及從響應中刪除「o_pc_MsoName」與「o_pc_MsoProperties」字串,或者涉及以任何其他方式(如,通過使其返回錯誤)對響應進行修改以阻止應用程式270獲得序列號。最終,在步驟9中,掛鉤組件450將允許上述響應送至應用程式270。
如上所述,應用程式270對「GetUsbDevicesNameEnum」功能進行調用的次數將等於在「InitUsbDevicesNameEnum」功能的響應中所報告的連接至伺服器的「Morpho」裝置的數量。因此,對所連接的各「Morpho」裝置,將重複執行步驟1至步驟9。因為步驟8,所以如果「Morpho」裝置當前被重定向至的會話與應用程式正在其中執行的會話相同,則提供給應用程式270的響應將僅包含「Morpho」裝置的序列號,由此防止應用程式發現被重定向至其它用戶會話的「Morpho」裝置。例如,當「GetUsbDevicesNameEnum」響應包含裝置序列號SN2時(在該實例中,可能發生在功能的第二次調用時),篩選驅動器401可返回與當前會話身份標識相匹配的會話身份標識SessionID13。因此,鑒於「Morpho」裝置當前被重定向至應用程式270正在其中執行的會話,所以掛鉤組件450會因此而在步驟8中不修改響應,藉以使應用程式270發現序列號為SN2的「Morpho」裝置。
圖8為在對生物辨識裝置進行枚舉的過程中篩選驅動器401可能執行的處理的流程圖。通常,此流程圖通常將包含前述每一實例中的步驟5和步驟6。
綜上所述,掛鉤組件450可鉤住生物辨識程式庫170b中適當的應用程式介面,藉以允許其檢測與修改應用程式枚舉所連接的生物辨識裝置的嘗試。在嘗試枚舉生物辨識裝置期間,掛鉤組件450可透過使用所枚舉的裝置的身份標識,來向選器驅動器401詢問所枚舉的裝置被重定向到的用戶會話的會話身份標識。而僅當所返回的會話身份標識與當前會話匹配時,掛鉤組件450才將身份標識返回給提出請求的應用程式。
圖9為用於使重定向的生物辨識裝置隔離到遠程會話的實例的方法900的流程圖。方法900可透過掛鉤組件450和篩選驅動器401實現。
方法900包含動作901:響應於在用戶會話中執行的應用程式請求對連接於伺服器的多個生物辨識裝置進行枚舉,透過掛鉤組件對包含生物辨識裝置的身份標識的枚舉響應進行攔截。例如,掛鉤組件450可攔截應用程式對「Windows Biometric Framework」的「WinBioEnumBiometricUnits」功能的調用的響應或可攔截應用程式對「MorphoSmart SDK」的「GetUsbDevicesNameEnum」功能的調用的響應。
方法900包含動作902:從該枚舉響應中提取該生物辨識裝置的身份標識,並將該身份標識送至篩選驅動器。例如,掛鉤組件450可從所攔截到的響應中提取出裝置實例身份標識或序列號,並且將裝置實例身份標識或序列號送至篩選驅動器401。
方法900包含動作903:透過篩選驅動器,利用該生物辨識裝置的身份標識來獲得該生物辨識裝置被重定向到的用戶會話的會話身份標識,並將該會話身份標識返回該掛鉤組件。例如,篩選驅動器401可對映射401a或映射401b進行存取,藉以獲得裝置實例身份標識或序列號所映射到的會話身份標識。
方法900包含動作904:透過掛鉤組件,對從該篩選驅動器所接收的會話身份標識與正在執行該應用程式的用戶會話的會話身份標識進行比較,進而:當該掛鉤組件確定從該篩選驅動器所接收的會話身份標識與正在執行該應用程式的用戶會話的會話身份標識不匹配時,在允許該枚舉響應被提供至該應用程式前,該掛鉤組件從該枚舉響應中移除該生物辨識裝置的身份標識。例如,每當所映射的會話身份標識與正在執行應用程式的用戶會話的會話身份標識不匹配時,掛鉤組件450便可從枚舉響應中移除裝置實例的身份標識或序列號。
本申請的實施例可包含或使用專用電腦或通用電腦,其具有電腦硬體,諸如一個或多個處理器和系統記憶體。在本發明範圍內的實施例還可包含:用於攜帶或存儲電腦可執行指令和/或資料結構的物理的電腦可讀取介質和其他電腦可讀取介質。這些電腦可讀取介質為可由專用電腦系統或通用電腦系統進行存取的任意的可用介質。
電腦可讀取介質分可為兩個不相交的類別,即,電腦存儲介質與傳輸介質。電腦存儲介質(電腦存儲裝置)包含:隨機存取記憶體(RAM)、唯讀記憶體(ROM)、電子抹除式唯讀記憶體(EEPROM)、唯讀緊緻光碟記憶體(CD-ROM)、固態驅動器(SSD)(例如,基於RAM)、快閃記憶體、相變記憶體(PCM)、其它類型的記憶體、其它光盤記憶體、磁盤記憶體或其它磁性記憶裝置,或者可用於以電腦可執行指令或資料結構的形式存儲所需程式代碼並可由專用電腦或通用電腦進行存取的任何其他類似存儲介質。傳輸介質包含訊號與載波。
例如,電腦可執行指令包含指令及資料,當透過處理器執行的這些指令及資料時,可令專用電腦、通用電腦或專用處理裝置執行某個功能或某一組功能。例如,電腦可執行指令可以是二進製指令或者是諸如彙編語言或P代碼的中間格式指令,甚至可以是源代碼。
本發明所屬領域內熟習相像技藝者應當理解:本發明可於具有多種類型的電腦系統結構的網路電腦環境中實施,其中電腦系統結構可包含:個人電腦、臺式電腦、膝上型電腦、消息處理器、手持裝置、多處理器系統、基於微處理器的消費電子產品或可編程消費電子設備、網路個人電腦、小型電腦、大型電腦、攜帶電話、個人數位助理(PDA)、平板電腦、傳呼機、路由器、交換器等。
本發明亦可於分佈式系統環境中實施,其中可透過網路(透過硬連線數據鏈接,無線數據鏈接,或硬連線和無線數據鏈接的組合)使本地電腦系統與遠程電腦系統鏈接並使兩者執行任務。在分佈式系統環境中,可於本地記憶體存儲裝置以及遠程記憶體存儲裝置內都放置程式模組。分佈式系統環境的實例為網路伺服器或伺服器資源的雲端。因此,本發明亦可託管在雲端環境中。
在不脫離本發明的精神或基本特徵的情況下,本發明可以以其他特定形式來體現。所描述的實施例在所有方面都應被認為是僅出於進行說明的目的而非限制的。因此,本發明的範圍取決於所附的權利要求書而不是前面的描述。
100:電腦系統 102:用戶端電腦 102a-102n:用戶終端 104:伺服器 106:網路 170:作業系統 170a:生物辨識服務程式 170b:生物辨識程式庫 200:系統 210:網絡代理(proxy) 220:短截驅動器(stub driver) 230:匯流排驅動器 240:裝置 250:代理裝置(agent) 260:虛擬匯流排驅動器 270:應用程式 280:裝置堆疊 281、281a、281b、…281n:裝置對象 282、282a、282b、…282n:裝置驅動器 290:虛擬裝置 380:生物辨識裝置驅動器堆疊 340、390:生物辨識裝置 401:篩選驅動器 401a、501a:裝置實例身份標識映射 401b:裝置序列號映射 450:掛鉤組件 900:方法 901、902、903、904:動作
本領域內熟習相像技藝者應當理解,本申請的各圖式僅示出了本發明的典型實施例。各圖式並不希望對本申請所欲保護的範圍構成限制,而是,透過各圖式可對本申請作更清晰、明確的描述與解釋。
圖1為可實施本發明的計算環境的實例的示意圖。
圖2示出USB裝置如何由用戶端電腦被重定向至伺服器。
圖3示出生物辨識裝置如何由用戶端電腦被重定向至伺服器。
圖4示出了可用於實施本發明實施例的架構實例。
圖5A至圖5E示出了「WinBio」裝置可被隔離到特定用戶會話的過程。
圖6A至圖6E示出了「Morpho」裝置可被隔離到特定用戶會話的過程。
圖7示出了篩選驅動器可執行以在生物辨識裝置身份標識與會話身份標識之間建立映射的過程。
圖8示出了當給定了生物辨識裝置的身份標識時,篩選驅動器可執行以檢索會話身份標識的過程。
圖9為將重定向的生物辨識裝置隔離到用戶會話的示意性方法的流程圖。
170a:生物辨識服務程式
170b:生物辨識程式庫
250:代理裝置(agent)
380:生物辨識裝置驅動器堆疊
401:篩選驅動器
401a:裝置實例身份標識映射
401b:裝置序列號映射
450:掛鉤組件

Claims (20)

  1. 一種用於將生物辨識裝置隔離到用戶會話的方法,該方法於虛擬桌面基礎架構環境內的伺服器中執行,該方法包含:響應於在用戶會話中執行的應用程式請求對連接於伺服器的多個生物辨識裝置進行枚舉,透過掛鉤組件對包含生物辨識裝置的身份標識的枚舉響應進行攔截;從該枚舉響應中提取該生物辨識裝置的身份標識,並將該身份標識送至篩選驅動器;透過該篩選驅動器,利用該生物辨識裝置的該身份標識來獲得該生物辨識裝置被重定向到的用戶會話的會話身份標識,並將該會話身份標識返回該掛鉤組件;以及透過該掛鉤組件,對從該篩選驅動器所接收的會話身份標識與該應用程式正在其中執行的用戶會話的會話身份標識進行比較,進而:當該掛鉤組件確定從該篩選驅動器所接收的會話身份標識與該應用程式正在其中執行的用戶會話的會話身份標識不匹配時,在允許該枚舉響應被提供至該應用程式前,該掛鉤組件從該枚舉響應中移除該生物辨識裝置的身份標識;以及當該掛鉤組件確定從該篩選驅動器所接收的會話身份標識與該應用程式正在其中執行的用戶會話的會話身份標識匹配時,該掛鉤組件允許該枚舉響應被提供至該應用程式並且不移除該生物辨識裝置的 身份標識。
  2. 如請求項1所述的方法,其中該掛鉤組件與該應用程式執行於相同的對用戶會話中。
  3. 如請求項1所述的方法,其中該篩選驅動器裝載於該生物辨識裝置的裝置驅動器堆疊上。
  4. 如請求項1所述的方法,其中該篩選驅動器對所連接的多個生物辨識裝置的多個身份標識與多個會話身份標識之間的映射進行維護。
  5. 如請求項4所述的方法,其中該篩選驅動器創建所連接的該生物辨識裝置的身份標識與會話身份標識之間的映射,以作為裝置初始化過程的一部分,該裝置初始化過程使生物辨識裝置從用戶終端重定向至該伺服器。
  6. 如請求項1至5中之任一項所述的方法,其中該生物辨識裝置的身份標識為裝置實例身份標識與序列號中的一個。
  7. 如請求項1至5中之任一項所述的方法,其中該掛鉤組件透過鉤住生物辨識程式庫中的應用程式介面來對該枚舉響應進行攔截。
  8. 如請求項1至5中之任一項所述的方法,其中該枚舉響應包含多個生物辨識裝置的多個身份標識,並且對於該枚舉響應中的各身份標識而言,在允許該枚舉響應被提供至該應用程式前,該掛鉤組件使用該身份標識從該篩選驅動器獲得相應的會話身份標識,並且當該相應的 會話身份標識與該用戶會話的會話身份標識不匹配時,該掛鉤組件從該枚舉響應中移除該身份標識。
  9. 如請求項1至5中之任一項所述的方法,其中將該身份標識送至該篩選驅動器的步驟包含:將輸入/輸出控制傳送至包含該身份標識的該篩選驅動器。
  10. 一種電腦存儲介質,該電腦存儲介質存儲有電腦可執行指令,當透過一或多個處理器執行時,該電腦可執行指令實施一種用於將被重定向至用戶會話的生物辨識裝置隔離藉以使該生物辨識裝置無法由在其它用戶會話中所執行的應用程式存取的方法,該方法包含:響應於生物辨識裝置被連接到已在遠程於伺服器上建立用戶會話的用戶終端,建立該生物辨識裝置的身份標識與該用戶會話的會話身份標識之間的映射;響應於來自在不同的用戶會話中執行的第一應用程式的對生物辨識裝置進行枚舉的請求,對包含該生物辨識裝置的身份標識的枚舉響應進行攔截;在允許該枚舉響應被提供至該第一應用程式前,從該枚舉響應中提取該生物辨識裝置的身份標識,並且利用該身份標識檢索出該身份標識所映射到的會話身份標識;對所檢索出的該身份標識與請求對該等生物辨識裝置進行枚舉的該第一應用程式的會話身份標識進行比較;以及當確定所檢索出的該身份標識與該第一應用程式的會話身份標識不匹配時,在允許該枚舉響應被提供至該第 一應用程式前,從該枚舉響應中移除該身份標識。
  11. 如請求項10所述的電腦存儲介質,其中該身份標識為裝置實例身份標識與序列號中的一個。
  12. 如請求項10或11所述的電腦存儲介質,其中透過在該不同的用戶會話中執行的掛鉤組件的實例來對該枚舉響應進行攔截。
  13. 如請求項10或11所述的電腦存儲介質,從該枚舉響應中移除該身份標識的步驟包含:將在該枚舉響應中被參考的資料結構移除,其中該資料結構包含該身份標識。
  14. 如請求項10或11所述的電腦存儲介質,其中利用該身份標識檢索出該身份標識所映射到的會話身份標識的步驟包含:透過掛鉤組件將該身份標識提供至篩選驅動器;透過該篩選驅動器,利用該身份標識檢索該會話身份標識;以及透過該篩選驅動器將該會話身份標識提供至該掛鉤組件。
  15. 如請求項10或11所述的電腦存儲介質,該方法進一步包含:響應於來自在該用戶會話中執行的第二應用程式的對多個該生物辨識裝置進行枚舉的請求,對包含該生物辨識裝置的身份標識的枚舉響應進行攔截;在允許將該枚舉響應提供至該第二應用程式前,從該 枚舉響應中提取該生物辨識裝置的身份標識,並且利用該身份標識檢索該身份標識所映射到的該會話身份標識;對所檢索出的會話身份標識與請求對該等生物辨識裝置進行枚舉的該第二應用程式的會話身份標識進行比較;以及當確定所檢索出的會話身份標識與該第二應用程式的會話身份標識相匹配時,允許將該枚舉響應提供至該第二應用程式並且不移除該生物辨識裝置的身份標識。
  16. 一種用於將生物辨識裝置隔離到用戶會話的方法,該方法透過掛鉤組件與篩選驅動器實施,該方法包含:透過該掛鉤組件攔截枚舉響應,該枚舉響應包含生物辨識裝置的至少一個身份標識,並且該枚舉響應是用於在第一用戶會話中執行的應用程式的;對於該枚舉響應中的各身份標識而言:從該枚舉響應中提取該生物辨識裝置的身份標識並將該身份標識送至篩選驅動器;透過該篩選驅動器利用該生物辨識裝置的該身份標識來獲得該身份標識所關聯的會話身份標識,並將該會話身份標識返回該掛鉤組件;及當該掛鉤組件確定從該篩選驅動器所接收的會話身份標識與該應用程式正在其中執行的第一用戶會話的會話身份標識不匹配時,透過該掛鉤組件從該枚舉響應中移除該生物辨識裝置的身份標識;以及 僅在將與該第一用戶會話的會話身份標識不匹配的會話身份標識所關聯的各身份標識移除後,才允許將該枚舉響應提供至該應用程式。
  17. 如請求項16所述的方法,其中該篩選驅動器使該生物辨識裝置的身份標識關聯於該生物辨識裝置重定向到的用戶會話的會話身份標識。
  18. 如請求項16或17所述的方法,其中該枚舉響應包含多個身份標識,其中該多個身份標識的各身份標識為裝置實例身份標識。
  19. 如請求項16或17所述的方法,其中該枚舉響應包含單個身份標識,其中該單個身份標識為序列號。
  20. 如請求項16或17所述的方法,其中該掛鉤組件執行於該第一用戶會話中。
TW108127578A 2018-08-07 2019-08-02 將重定向的生物辨識裝置隔離到遠程會話 TWI814877B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US16/057,634 US10862757B2 (en) 2018-08-07 2018-08-07 Isolating a redirected biometric device to a remote session
US16/057,634 2018-08-07
PCT/US2019/042259 WO2020033115A1 (en) 2018-08-07 2019-07-17 Isolating a redirected biometric device to a remote session
WOPCT/US19/42259 2019-07-17

Publications (2)

Publication Number Publication Date
TW202027477A TW202027477A (zh) 2020-07-16
TWI814877B true TWI814877B (zh) 2023-09-11

Family

ID=69407289

Family Applications (1)

Application Number Title Priority Date Filing Date
TW108127578A TWI814877B (zh) 2018-08-07 2019-08-02 將重定向的生物辨識裝置隔離到遠程會話

Country Status (5)

Country Link
US (1) US10862757B2 (zh)
EP (1) EP3834399A4 (zh)
CN (1) CN112470443B (zh)
TW (1) TWI814877B (zh)
WO (1) WO2020033115A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11553058B1 (en) * 2022-02-09 2023-01-10 coretech It, UAB Sticky sessions in a proxy infrastructure

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200541282A (en) * 2004-06-01 2005-12-16 Vincent Chiang Processing unit that may process the signal with wireless communication protocol and device therewith
US20170061145A1 (en) * 2015-08-28 2017-03-02 Dell Products L.P. System and method to redirect and unlock software secure disk devices in a high latency environment
US20180212817A1 (en) * 2017-01-23 2018-07-26 Wyse Technology L.L.C. Enabling redirection policies to be applied based on the windows class of a usb device
US20180210856A1 (en) * 2017-01-23 2018-07-26 Wyse Technology L.L.C. Enabling session level restrictions for devices having disjoint stacks

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6895588B1 (en) * 1999-04-09 2005-05-17 Sun Microsystems, Inc. Remote device access over a network
US20060034494A1 (en) * 2004-08-11 2006-02-16 National Background Data, Llc Personal identity data management
US8406421B2 (en) * 2005-10-13 2013-03-26 Passban, Inc. Method and system for multi-level secure personal profile management and access control to the enterprise multi-modal communication environment in heterogeneous convergent communication networks
US8151323B2 (en) * 2006-04-12 2012-04-03 Citrix Systems, Inc. Systems and methods for providing levels of access and action control via an SSL VPN appliance
CN101686245B (zh) * 2008-09-28 2014-06-11 国际商业机器公司 用于隔离超文本传输协议会话的方法和系统
US8831677B2 (en) * 2010-11-17 2014-09-09 Antony-Euclid C. Villa-Real Customer-controlled instant-response anti-fraud/anti-identity theft devices (with true-personal identity verification), method and systems for secured global applications in personal/business e-banking, e-commerce, e-medical/health insurance checker, e-education/research/invention, e-disaster advisor, e-immigration, e-airport/aircraft security, e-military/e-law enforcement, with or without NFC component and system, with cellular/satellite phone/internet/multi-media functions
US8555409B2 (en) * 2011-11-02 2013-10-08 Wyse Technolgoy Inc. System and method for providing private session-based access to a redirected USB device or local device
US8990394B2 (en) 2012-05-07 2015-03-24 Wyse Technology L.L.C. System and method for providing session-level access management of access requests to a redirected device from a predetermined session
CN102932327A (zh) * 2012-07-17 2013-02-13 上海金图信息科技有限公司 零终端设备与桌面虚拟机之间的通信方法及系统
CN103327005B (zh) * 2013-05-15 2016-08-24 深信服网络科技(深圳)有限公司 基于虚拟桌面的设备接入方法及装置
US9467458B2 (en) * 2014-08-01 2016-10-11 Dell Products L.P. System and method for providing selective access to a redirected device
US9307317B2 (en) * 2014-08-29 2016-04-05 Coban Technologies, Inc. Wireless programmable microphone apparatus and system for integrated surveillance system devices
US20160065908A1 (en) * 2014-08-29 2016-03-03 Coban Technologies, Inc. Portable camera apparatus and system for integrated surveillance system devices
CN105183675B (zh) * 2015-09-30 2018-03-27 华为技术有限公司 对usb设备的访问方法、装置、终端、服务器及系统
US20170214701A1 (en) * 2016-01-24 2017-07-27 Syed Kamran Hasan Computer security based on artificial intelligence
US20180124497A1 (en) * 2016-10-31 2018-05-03 Bragi GmbH Augmented Reality Sharing for Wearable Devices
US20190305955A1 (en) * 2018-03-27 2019-10-03 Ca, Inc. Push notification authentication
US11382546B2 (en) * 2018-04-10 2022-07-12 Ca, Inc. Psychophysical performance measurement of distributed applications

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW200541282A (en) * 2004-06-01 2005-12-16 Vincent Chiang Processing unit that may process the signal with wireless communication protocol and device therewith
US20170061145A1 (en) * 2015-08-28 2017-03-02 Dell Products L.P. System and method to redirect and unlock software secure disk devices in a high latency environment
US20180212817A1 (en) * 2017-01-23 2018-07-26 Wyse Technology L.L.C. Enabling redirection policies to be applied based on the windows class of a usb device
US20180210856A1 (en) * 2017-01-23 2018-07-26 Wyse Technology L.L.C. Enabling session level restrictions for devices having disjoint stacks

Also Published As

Publication number Publication date
CN112470443B (zh) 2023-06-16
TW202027477A (zh) 2020-07-16
CN112470443A (zh) 2021-03-09
EP3834399A4 (en) 2022-05-04
US10862757B2 (en) 2020-12-08
US20200052970A1 (en) 2020-02-13
EP3834399A1 (en) 2021-06-16
WO2020033115A1 (en) 2020-02-13

Similar Documents

Publication Publication Date Title
US10462228B2 (en) Providing access to a smartcard within a remote session
US9467458B2 (en) System and method for providing selective access to a redirected device
US10313448B2 (en) Employing an auxiliary device to implement USB device redirection
US10489311B1 (en) Managing webUSB support for local and redirected USB devices
US10235189B2 (en) Isolating a redirected smart card reader to a remote session
US20170264649A1 (en) Employing session level restrictions to limit access to a redirected interface of a composite device
US10496590B2 (en) Enabling redirection policies to be applied based on the windows class of a USB device
US10078609B1 (en) Virtualizing a non-USB device as a USB device
US10114779B2 (en) Isolating a redirected USB device to a set of applications
US10635816B2 (en) Restricting reprogramming of a redirected USB device
US10798201B2 (en) Redirecting USB devices via a browser-based virtual desktop infrastructure application
US10536559B2 (en) Blocking an interface of a redirected USB composite device
US20200053084A1 (en) Intelligent redirection of authentication devices
US20090006503A1 (en) System Virtualization Instance Management for Terminal Sessions
TWI814877B (zh) 將重定向的生物辨識裝置隔離到遠程會話
US10742776B1 (en) Accelerating isochronous endpoints of redirected USB devices
US10223178B2 (en) Enabling WPD devices to be managed at the capability level
US11196799B2 (en) Redirection of USB devices from hardware isolated virtual desktop infrastructure clients
US10747707B1 (en) Redirection of USB devices in nested hub environments
US10261933B2 (en) Enabling session level restrictions for devices having disjoint stacks
US11068613B2 (en) Differentiating and managing identical USB devices
US11316854B2 (en) Reverse authentication in a virtual desktop infrastructure environment
US10394722B1 (en) Managing alt-mode interfaces of a USB Type-C device
US10719273B2 (en) Enabling SCSI commands that are not supported by a client terminal
US10691630B2 (en) State-based IRP management for redirected device