CN104137112B - 安全的单点登录 - Google Patents

安全的单点登录 Download PDF

Info

Publication number
CN104137112B
CN104137112B CN201380011196.8A CN201380011196A CN104137112B CN 104137112 B CN104137112 B CN 104137112B CN 201380011196 A CN201380011196 A CN 201380011196A CN 104137112 B CN104137112 B CN 104137112B
Authority
CN
China
Prior art keywords
certificate
client
server
user certificate
user
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Fee Related
Application number
CN201380011196.8A
Other languages
English (en)
Other versions
CN104137112A (zh
Inventor
V·莫卡纳
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Citrix Systems Inc
Original Assignee
Citrix Systems Inc
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 Citrix Systems Inc filed Critical Citrix Systems Inc
Publication of CN104137112A publication Critical patent/CN104137112A/zh
Application granted granted Critical
Publication of CN104137112B publication Critical patent/CN104137112B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0815Network architectures or network communication protocols for network security for authentication of entities providing single-sign-on or federations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/41User authentication where a single sign-on provides access to a plurality of computers
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • G06F21/42User authentication using separate channels for security data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0823Network architectures or network communication protocols for network security for authentication of entities using certificates

Abstract

本文中描述了一种提供安全的单点登录的系统和方法。当用户向客户端设备提供证书时,可以拦截证书并且将证书高速缓存在安全位置,如在可信环境内。当客户端过程如在客户端设备上运行的远程桌面程序向提供远程桌面服务的服务器请求用于单点登录的证书时,证书可以被保护,例如在可以作为在可信环境下运行的仅被访问的部件的不透明容器内,并且证书可以被提供给客户端过程。客户端过程可以在不可信环境下运行,如操作系统会话。客户端设备可以将安全证书转发给服务器中的可信环境,以实现单点登录。

Description

安全的单点登录
技术领域
本文中描述的多个方面涉及计算机系统和计算机安全。更具体地,本文中描述的多个方面涉及安全的单点登录,如在虚拟化背景下,并且提供了一种用于以安全方式从客户端向服务器发送用户证书的方法和系统。
背景技术
传统上,个人计算机包括操作系统、应用和用户设置的组合,操作系统、应用和用户设置各自分别由拥有者或管理者在持续基础上来管理。然而,很多组织现在使用桌面虚拟化来提供解决其用户的变化的需求的更灵活的选择。在桌面虚拟化中,用户的计算环境(例如,操作系统、应用、和/或用户设置)可以与用户的物理计算设备(例如,智能电话、笔记本计算机、台式计算机)分离。通过使用客户端-服务器技术,可以由远程服务器而非客户端计算设备的本地存储装置中的服务器来存储和管理“虚拟桌面”。
存在若干不同类型的桌面虚拟化系统。例如,虚拟桌面基础架构(VDI)指代在存在于服务器上的虚拟机内运行用户桌面的处理。VDI和其他基于服务器的桌面虚拟化系统可以向每个用户提供个性化的桌面,同时使得能够实现集中化的管理和安全。这样的系统中的服务器可以包括用于虚拟桌面图像和系统配置信息的存储装置、以及用于提供虚拟桌面并且使得用户能够与其交互的软件部件。例如,VDI服务器可以包括用于创建和维护多个虚拟机的一个或多个管理程序(虚拟机管理者)、用于管理管理程序的软件、连接代理、以及用于提供和管理虚拟桌面的软件。
可以使用单个虚拟化服务器或互连为服务器网的多个服务器的组合来实现桌面虚拟化系统。多服务器桌面虚拟化系统通常包括附加的计算设备和/或共享存储装置,以提供公共系统管理门户并且维持全局状态信息。这样的系统通常使用外部共享存储装置、连同虚拟化服务器内的数据库和企业服务器软件来管理系统。在虚拟化桌面系统中,用户分别提供证书来登陆提供虚拟化服务的服务器,阻碍了用户生产率。
发明内容
鉴于以上背景技术,以下内容呈现本公开内容的简化概述,以提供对本文中描述的一些方面的基本理解。这个概述不是广泛的概要,并且不意在识别关键或重要的元素或者描绘权利要求的范围。以下概述仅以简化形式呈现了各种所描述的方面,作为以下提供的更详细的描述的序言。
为了克服以上缺点并且获得在阅读本公开内容时实现的附加优点,本文中的方面描述了具有客户端的单点登录系统,其通过证书提供者从客户端过程接收对于用户证书的请求并且向客户端安全服务查询用户证书。向客户端安全服务查询用户证书可以包括向客户端安全服务发送高速缓存的用户证书。在一些实施方式中,客户端安全服务可以认证服务器,并且在认证服务器之后,可以基于服务器来保护用户证书,例如以安全传输至服务器。保护用户证书可以包括对高速缓存的用户证书进行加密。可以通过客户端过程将安全的用户证书发送至服务器,并且服务器可以基于安全的用户证书来授予对客户端过程的访问权限。
在一些实施方式中,保护用户证书可以包括基于客户端安全服务和服务器安全服务达成一致的密钥来对用户证书进行加密。在另外的实施方式中,服务器可以包括服务器安全服务,并且服务器可以通过查询服务器安全服务以对加密用户证书进行解密以及确认用户证书的有效性来授予对客户端过程的访问权限。
在又一实施方式中,证书提供者和客户端安全服务可以在可信计算基础中执行,而客户端过程可以在操作系统的不可信会话中执行。客户端过程可以是不可信过程,并且证书提供者可以先于将安全的用户证书发送至客户端过程来认证客户端过程。认证客户端过程可以包括例如验证与客户端过程关联的可执行文件(例如,通过操作系统加载以创建客户端过程的可执行文件)的数字签名。
对于单点登录,客户端可以接收用户证书。随后,证书提供者可以拦截所接收的用户证书并且将证书高速缓存在可信计算基础内的位置。在一些实施方式中,用户证书可以包括智能卡引脚。
附图说明
这样,已经用通用术语描述了本公开内容的多个方面,现在将参考并非必须按比例绘制的附图,其中:
图1示出了可以实现本公开内容的多个方面的示例操作环境。
图2示出了可以根据本文中所描述的一个或多个说明性方面来使用的设备。
图3示出了可以根据本文中所描述的一个或多个说明性方面来使用的设备。
图4示出了根据本文中所描述的一个或多个说明性方面的用于单点登录的一个示例客户端和服务器环境。
图5示出了根据本文中所描述的一个或多个说明性方面的用于单点登录的另一示例客户端和服务器环境。
图6示出了根据本文中所描述的一个或多个说明性方面的用于单点登录的又一示例客户端和服务器环境。
图7示出了根据本文中所描述的一个或多个说明性方面的安全的单点登录的示例方法。
图8示出了根据本文中所描述的一个或多个说明性方面的安全的单点登录的另一示例方法。
具体实施方式
在以下对多种实施方式的描述中,参考了附图,附图形成了本文的一部分,并且其中,通过说明示出了可以实践本文中所描述的多个方面的多种实施方式。应当理解,可以使用其他实施方式,并且可以在不脱离本公开内容的范围和精神的情况下进行结构和功能修改。
如本领域技术人员在阅读以下公开内容时可以理解的,本文中所描述的多个方面可以实现为方法、数据处理系统或计算机程序产品。因此,这些方面可以采用完全硬件实施方式、完全软件实施方式或组合软件和硬件方面的实施方式的形式。此外,这样的方面可以采用由一个或多个计算机可读存储介质来存储的计算机程序产品的形式,计算机可读存储介质具有在存储介质中或上实施的计算机可读程序代码或指令。可以使用任意合适的计算机可读存储介质,包括硬盘、CD-ROM、光学存储设备、磁性存储设备、和/或其任意组合。此外,可以以通过信号传导介质如金属线、光缆、和/或无线传输介质(例如,空气和/或空间)行进的电磁波的形式在源与目的地之间传送多种如本文中所描述的表示数据或事件的信号。
图1示出了可以根据本公开内容的一个或多个说明性实施方式来使用的示例计算环境100中的通用计算设备101(例如,计算机服务器106a)的示例框图。根据一个或多个方面,通用计算设备101可以是被配置成提供用于客户端存取设备的虚拟机的单服务器或多服务器桌面虚拟化系统中的服务器106a。通用计算设备101可以具有用于控制服务器及其关联部件——包括随机存取存储器(RAM)105、只读存储器(ROM)107、输入/输出(I/O)模块109和存储器115——的整个操作的处理器103。
I/O模块109可以包括鼠标、键盘、触摸屏、扫描仪、光学读取器和/或触笔(或其他输入设备),通过这些输入设备,通用计算设备101的用户可以提供输入,I/O模块109还可以包括以下中的一个或多个:用于提供音频输出的扬声器、以及用于提供文本、音视频、和/或图形输出的视频显示设备。软件可以存储在存储器115和/或其他存储装置内,以向处理器103提供用于使得通用计算设备101执行各种功能的指令。例如,存储器115可以存储由通用计算设备来使用的软件,如操作系统117、应用程序119和关联数据库121。可替换地,用于通用计算设备101的计算机可执行指令中的一些或全部可以用硬件或固件(未示出)来实施。
通用计算设备101可以在支持与一个或多个远程计算机如终端140(也称为客户端设备)的连接的连网环境下使用。终端140可以是包括以上关于通用计算设备101所描述的元件中的很多或全部元件的个人计算机或服务器。图1所描绘的网络连接包括局域网(LAN)125和广域网(WAN)129,但是也可以包括其他网络。当在LAN连网环境下使用时,通用计算设备101可以通过网络接口或适配器123连接至LAN125。当在WAN连网环境下使用时,通用计算设备101可以包括用于通过WAN129如计算机网络130(例如,互联网)建立通信的调制解调器127或其他网络接口。应当理解,所示网络连接是说明性的,可以使用在计算机之间建立通信链接的其他器件。
通用计算设备101和/或终端140还可以是包括各种其他部件如电池、扬声器和天线(未示出)的移动终端(例如,移动电话、智能电话、PDA、笔记本等)。
本公开内容在大量其他通用或专用计算系统环境或配置下操作。可以适合于与本公开内容一起使用的公知计算系统、环境和/或配置的示例包括但不限于个人计算机、服务器计算机、手持式或膝上型设备、多处理器系统、基于多处理器的系统、机顶盒、可编程客户电子设备、网络PC、微型计算机、大型计算机、包括任意上述系统或设备的分布式计算环境、等等。
如图1所示,一个或多个客户端设备140可以与一个或多个服务器106a至106n(本文中统称为“服务器106”)通信。在一些实施方式中,计算环境100可以包括安装在服务器106与客户端机器140之间的装置。这个装置可以管理客户端/服务器连接,并且在一些情况下可以加载多个后端服务器106之间的平衡客户端连接。
在一些实施方式中,客户端机器140可以称为单个客户端机器140或单个客户端机器组140,而服务器106可以称为单个服务器106或单个服务器组106。在一些实施方式中,单个客户端机器140与多于一个服务器106通信,而在其他实施方式中,单个服务器106与多于一个客户端机器140通信。在又一其他实施方式中,单个客户端机器140与单个服务器106通信。
在一些实施方式中,客户端机器140可以用以下术语中的任一个来指代:客户端机器140、客户端、客户端计算机、客户端设备、客户端计算设备、本地机器、远程机器、客户端节点、端点、端点节点、或第二机器。在一些实施方式中,服务器106可以用以下术语中的任一种来指代:服务器、本地机器、远程机器、服务器群、主机计算设备、或第一机器。
在一些实施方式中,客户端机器140可以是虚拟机。虚拟机可以是任何虚拟机,虽然在一些实施方式中,虚拟机可以是由Citrix系统、IBM、VMware提出的管理程序或任何其他管理系统来管理的任何虚拟机。在一些方面,虚拟机可以由管理程序来管理,而在一些方面,虚拟机可以由在服务器106上执行的管理程序或在客户端140上执行的管理程序来管理。
客户端机器140可以执行、操作或提供可以为以下各项的任一项的应用:软件、程序、可执行指令、虚拟机、管理程序、网络浏览器、基于网络的客户端、客户端服务器应用、瘦客户端计算客户端、ActiveX控件、Java小程序、与网络语音协议(VoIP)通信如软IP电话有关的软件、用于流传输视频和/或音频的应用、用于方便实时数据通信的应用、HTTP客户端、FTP客户端、Oscar客户端、Telnet客户端、或任何其他可执行指令集。又一其他实施方式包括显示由在服务器106或其他远程机器上远程执行的应用生成的应用输出的客户端设备140。在这些实施方式中,客户端设备140可以在应用窗口、浏览器、或其他输出窗口中显示应用输出。在一个示例中,应用为桌面,而在其他示例中,应用为生成桌面的应用。桌面可以包括提供用于其中可以包括本地和/或远程应用的操作系统的实例的用户界面的图形壳。如本文中所使用的,应用为在加载操作系统(以及可选地也加载桌面)的实例之后执行的程序。
在一些实施方式中,服务器106执行远程呈现客户端或如下其他客户端或程序:其使用瘦客户端或远程显示协议来捕获由在服务器106上执行的应用生成的显示输出,并且将应用显示输出传输至远程客户端140。瘦客户端或远程显示协议可以是以下协议中的任一个:由佛罗里达劳德代尔堡的Citrix System(西里克斯系统)公司制造的独立计算架构(ICA)协议、或由华盛顿雷德蒙德的Microsoft(微软)公司制造的远程桌面协议(RDP)。
计算环境可以包括多于一个服务器106A至106N,使得服务器106A至106N在逻辑上被一起分组成服务器群(farm)106。服务器群106可以包括服务器群106中的地理上分散并且逻辑上被一起分组的服务器106、或者服务器群106中的位于彼此附近并且逻辑上被一起分组的服务器106。在一些实施方式中,服务器群106内的地理上分散的服务器106A至106N使用WAN、MAN或LAN来通信,其中,不同地理区域的可以被特征化为:不同的大陆、大陆的不同区域、不同的国家、不同的州、不同的城市、不同的校园、不同的房间、或上述地理位置的任意组合。在一些实施方式中,服务器群106可以作为单个实体被管理,而在其他实施方式中,服务器群106可以包括多个服务器群106。
在一些实施方式中,服务器群106可以包括执行基本上类似类型的操作系统平台(例如,由华盛顿雷德蒙德的Microsoft公司制造的WINDOWS NT,UNIX、LINUX或SNOWLEOPARD)的服务器106。在其他实施方式中,服务器群106可以包括执行第一类型的操作系统平台的第一组服务器106、以及执行第二类型的操作系统平台的第二组服务器106。在其他实施方式中,服务器群106可以包括执行不同类型的操作系统平台的服务器106。
在一些实施方式中,服务器106可以是任何服务器类型。在其他实施方式中,服务器106可以是以下服务器类型中的任一种:文件服务器、应用服务器、网络服务器、代理服务器、装置、网络应用、网关、应用网关、网关服务器、虚拟化服务器、部署服务器、SSL VPN服务器、防火墙、网络服务器、应用服务器或主应用服务器、执行活动目录的服务器106、或者执行提供防火墙功能、应用功能或加载平衡功能的应用加速程序的服务器106。在一些实施方式中,服务器106可以是包括远程认证拨入用户服务的RADIUS服务器。在服务器106包括装置的实施方式中,服务器106可以是由以下制造商中的任一个制造的装置:CitrixApplication Networking Group(西里克斯应用网络组)、Silver Peak Systems(银峰系统)公司、Riverbed Technology(河床科技)公司、F5Networks(F5网络)公司、或JuniperNetworks(瞻博网络)公司。一些实施方式包括从客户端机器140接收请求、向第二服务器106n转发请求、以及用来自第二服务器106n的响应对由客户端机器140生成的请求进行响应的第一服务器106A。第一服务器106A可以获取可应用于客户端机器140的大量应用以及与存储在大量应用内识别的应用的应用服务器106关联的地址信息。接着,第一服务器106A可以使用网络接口来呈现对客户请求的响应,并且与客户端140直接通信以向客户端140提供对识别的应用的访问。
在一些实施方式中,服务器106可以执行以下应用中的任一个:使用瘦客户端协议来向客户端传输应用显示数据的瘦客户端应用、远程显示呈现应用、Citrix System公司的CITRIX ACCESS SUITE的任何部分如METAFRAME或CITRIX PRESENTATION SERVER、由Microsoft公司制造的MICROSOFT WINDOWS终端服务、或由Citrix System公司研发的ICA客户端。另一实施方式包括作为应用服务器的服务器106,例如:提供电子邮件服务如由Microsoft公司制造的MICROSOFT EXCHANGE的电子邮件服务器、网络或互联网服务器、桌面共享服务器、协同服务器、或任何其他类型的应用服务器。又一其他实施方式包括执行以下类型的存储服务器应用中的任一个的服务器106:由Citrix Online Division(西里克斯在线部门)公司提供的GOTOMEETING、由加利福尼亚圣克拉拉的WebEx(网迅)公司提供的WEBEX、或由Microsoft公司提供的Microsoft Office LIVE MEETING。
在一些实施方式中,客户端机器140可以是寻求对由服务器106提供的资源的访问的客户端节点。在其他实施方式中,服务器106可以向客户端140或客户端节点提供对存储资源的访问。在一些实施方式中,服务器106用作主节点,使得其能够与一个或多个客户端140或服务器106通信。在一些实施方式中,主节点可以识别与存储所请求的应用的服务器106关联的地址信息并且将其提供给一个或多个客户端140或服务器106。在再一实施方式中,主节点可以是服务器群106、客户端140、一组客户端节点140或装置。
一个或多个客户端140和/或一个或多个服务器106可以通过安装在计算环境100内的机器与应用之间的网络130传输数据。网络130可以包括一个或多个子网络,并且可以安装在包括在计算环境100内的客户端140、服务器106、计算机器和装置的任意组合之间。在一些实施方式中,网络130可以是:局域网(LAN)、城域网(MAN)、广域网(WAN)、包括位于客户端机器140与服务器106之间的多个子网络的主网络104、具有私有子网络的主公共网络130(例如,互连网)、具有公共子网络的主私有网络130、或具有私有子网络的主私有网络130。另外的实施方式包括可以是以下网络类型中的任意类型的网络130:点对点网络、广播网络、电信网络、数据通信网络、计算机网络、ATM(异步传输模式)网络、SONET(同步光纤网络)网络、SDH(同步数字体系)网络、无线网络、有线网络、或包括其中无线链路可以是红外信道或卫星频带的无线链路的网络。在不同的实施方式中,网络130的网络拓扑结构可以不同,可能的网络拓扑结构包括:总线网络拓扑结构、星形网络拓扑结构、环形网络拓扑结构、基于中继器的网络拓扑结构、或分层星形网络拓扑结构。另外的实施方式可以包括使用用于多个移动设备之间的通信的协议的移动电话网络的网络,其中,这个协议可以是以下各项中的任一项:AMPS、TDMA、CDMA、GSM、GPRS UMTS、或任何其他能够在多个移动设备之间传输数据的协议。
图2所示为计算设备200的实施方式,其中,图1所示的客户端机器140和服务器106可以部署为本文中所说明和描述的计算设备200的任何实施方式和/或在其上执行。计算设备200内包括与以下部件通信的系统总线250:中央处理单元221、主存储器222、存储装置228、输入/输出(I/O)控制器223、显示设备224A至224N、安装设备216、和网络接口218。在一种实施方式中,存储装置228包括:操作系统、软件例程和客户端代理220。在一些实施方式中,I/O控制器223还连接至键盘226和指示设备227。其他实施方式可以包括连接至多于一个输入/输出设备230A至230N的I/O控制器223。
图3示出了计算设备300的一种实施方式,其中,图1所示的客户端机器140和服务器106可以部署为本文中所说明并且描述的计算设备300的任何实施方式并且可以在其上执行。计算设备300内包括与以下部件通信的系统总线350:桥接器370和第一I/O设备330a。在其他实施方式中,桥接器370还与主控制处理单元321通信,其中,中央处理单元321还可以与第二I/O设备330b、主存储器322和高速缓冲存储器340通信。中央处理单元321内包括I/O端口、存储器端口303和主处理器。
计算机器300的实施方式可以包括特征在于以下部件配置中的任一种的中央处理单元321:响应于并且处理从主存储器单元322取出的指令的逻辑电路;微处理器单元,如:由Intel(英特尔)公司制造的、由Motorola(摩托罗拉)公司制造的、由加利福尼亚圣克拉拉的Transmeta(全美达)公司制造的、由International Business Machnies(国际商业机器)制造的微处理器单元;处理器,如由Advanced Micro Devices制造的处理器;或逻辑电路的任意其他组合。中央处理单元321的其他实施方式可以包括以下的任意组合:微处理器、微控制器、具有单个处理核的中央处理单元、具有两个处理核的中央处理单元、或者具有多于两个处理核的中央处理单元。
虽然图3示出了包括单个中央处理单元321的计算设备300,然而,在一些实施方式中,计算设备300可以包括一个或多个处理单元321。在这些实施方式中,计算设备300可以存储并且执行固件或如下其他可执行指令:这些指令在执行时指示一个或多个处理单元321同时执行多个指令或对单个数据同时执行多个指令。在其他实施方式中,计算设备300可以存储并且执行固件或如下其他可执行指令:这些指令在执行时指示一个或多个处理单元每个执行一组指令的一部分。例如,可以指令每个处理单元321执行程序的一部分或程序内的具体模块。
在一些实施方式中,处理单元321可以包括一个或多个处理核。例如,处理单元321可以具有两个核、四个核、八个核等等。在一些实施方式中,处理单元321可以包括一个或多个并行处理核。在一些实施方式中,处理单元321的处理核可以访问可用存储器,如全局地址空间,或者在其他实施方式中,可以将计算设备300内的存储器分段并且分配给处理单元321内的具体的核。在一些实施方式中,计算设备300内的一个或多个处理核或处理器每个可以访问本地存储器。在其他实施方式中,计算设备300内的存储器可以由一个或多个处理器或处理器核来共享,而其他存储器可以由具体的处理器或处理器的子集来访问。在计算设备300包括多于一个处理单元的实施方式中,多个处理单元可以包括在单个集成电路(IC)中。在一些实施方式中,这些多个处理器可以通过内部高速总线链接在一起,内部高速总线可以称为元件互连总线。
在计算设备300包括一个或多个处理单元321或者处理单元321包括一个或多个处理核的实施方式中,处理器可以同时对多个数据执行单个指令(SIMD),或者在其他实施方式中,可以同时对多个数据执行多个指令(MIMD)。在一些实施方式中,计算设备100可以包括任何数量的SIMD处理器和MIMD处理器。
在一些实施方式中,计算设备300可以包括图形处理器或图形处理单元(未示出)。图形处理单元可以包括软件和硬件的任意组合,并且还可以输入图形数据和图形指令,渲染来自输入数据和指令的图形,并且输出渲染图形。在一些实施方式中,图形处理单元可以包括在处理单元321内。在一些实施方式中,计算设备300可以包括一个或多个处理单元321,其中,至少一个处理单元321专用于处理和渲染图形。
计算机器300的一个实施方式包括经由辅助总线——也公知为后端总线——与高速缓冲存储器340通信的中央处理单元321,而计算机器300的其他实施方式包括经由系统总线350与高速缓冲存储器通信的中央处理单元321。在一些实施方式中,本地系统总线350也由中央处理单元用于与多于一种类型的I/O设备330a至330n通信。在一些实施方式中,本地系统总线350可以是以下类型的总线中的任一种:VESA VL总线、ISA总线、EISA总线、微通道架构(MAC)总线、PCI总线、PCI-X总线、PCI-Express总线或NuBus。计算机器300的其他实施方式包括I/O设备330a至330n,I/O设备330a至330n包括与中央处理单元321通信的视频显示器224。计算设备300的其他版本包括经由以下连接中的任一种连接至I/O设备330a至330n的处理器321:超传输、快速I/O或无限带宽。计算机器300的另外的实施方式包括使用本地互连总线与一个I/O设备330a通信并且使用直接连接与第二I/O设备330b通信的处理器321。
在一些实施方式中,计算设备300包括主存储器单元322和高速缓冲存储器340。高速缓冲存储器340可以是任何存储器类型,并且在一些实施方式中,高速缓冲存储器340可以是以下类型的存储器中的任一种:SRAM、BSRAM或EDRAM。其他实施方式包括高速缓冲存储器340以及可以为以下类型的存储器中的任一种的主存储器单元332:静态随机存取存储器(SRAM)、突发SRAM或同步突发SRAM(BSRAM)、动态随机存取存储器(DRAM)、快速页面模式DRAM(FPM DRAM)、增强型DRAM(EDRAM)、扩展型数据输出RAM(EDO RAM)、扩展型数据输出DRAM(EDODRAM)、突发扩展型数据输出DRAM(BEDO DRAM)、增强型DRAM(EDRAM)、同步DRAM(SDRAM)、JEDEC SRAM、PC100SDRAM、双数据速率SDRAM(DDR SDRAM)、增强型SDRAM(ESDRAM)、同步链路DRAM(SLDRAM)、直接兰巴斯(Rambus)DRAM(DRDRAM)、铁电RAM(FRAM)、或者任何其他类型的存储器。另外的实施方式包括可以经由以下来访问主存储器322的中央处理单元321:系统总线350、存储器端口303、或者任何其他使得处理器321能够访问存储器322的连接、总线或端口。
计算设备200/300的一种实施方式提供对以下安装设备216中的任一种的支持;CD-ROM驱动、CD-R/RW驱动、DVD-ROM驱动、各种格式的磁带驱动、USB设备、可引导介质、可引导CD、用于GNU/Linux分布如的可引导CD、硬驱动或任何其他适合于安装应用或软件的设备。在一些实施方式中,应用可以包括客户端代理220、或者客户端代理220的任何部分。计算设备200/300还可以包括可以是一个或多个硬盘驱动或者一个或多个独立磁盘的冗余阵列的存储设备228,其中,存储设备被配置成存储操作系统、软件、程序应用或至少客户端代理220的一部分。计算设备200、300的另外的实施方式包括用作存储设备228的安装设备216。
计算设备200、300还可以包括网络接口218,网络接口218用于通过各种连接与局域网(LAN)、广域网(WAN)或互联网对接,各种连接包括但不限于标准电话线、LAN或WAN链路(例如,802.11、T1、T3、56kb、X.25、SNA、DECNET)、宽带连接(例如,ISDN、帧延迟、ATM、千兆比特以太网、SONET之上的以太网)、无线连接、或以上中的任意或全部的一些组合。也可以使用各种通信协议(例如,TCP/IP、IPX、SPX、NetBIOS、以太网、ARCNET、SONET、SDH、光纤分布式数据接口(FDDI)、RS232、RS485、IEEE802.11、IEEE 802.11a、IEEE 802.11b、IEEE 802.11g、CDMA、GSM、WiMax和直接异步连接)来建立连接。计算设备200、300的一个版本包括能够经由任何类型和/或形式的网关或隧道协议如安全套接层(SSL)或传输层安全(TLS)或者CitrixSystems公司制造的Citrix网关协议来与附加的计算设备200’、300’通信的网络接口218。网络接口218的版本可以包括以下中的任一种:内置网络适配器、网络接口卡、PCMCIA网卡、卡总线网络适配器、无线网络适配器、USB网络适配器、调制解调器、或适合于将计算设备200、300对接至能够传输和执行本文中所描述的方法和系统的网络的任何其他设备。
计算设备200、300的实施方式包括以下I/O设备230a至230n中的任一个:键盘226、指示设备227、鼠标、跟踪板、光学笔、跟踪球、麦克风、绘图板、视频显示器、扬声器、喷墨打印机、激光打印机、和热升华打印机、或者能够执行本文所描述的方法和系统的任何其他输入/输出设备。在一些实施方式中,I/O控制器223可以连接至多个I/O设备230a至230n,以控制一个或多个I/O设备。I/O设备230a至230n的一些实施方式可以被配置成提供存储装置或安装介质216,而其他实施方式可以提供用于接纳USB存储设备如由Twintech工业公司制造的设备的USB闪存驱动线的通用串行总线(USB)接口。又一其他实施方式包括可以是系统总线250与外部通信总线之间的桥接器的I/O设备230,外部通信总线例如为:USB总线、苹果桌面总线、RS-232串联、SCSI总线、防火墙总线、防火墙800总线、以太网总线、苹果对话总线、千兆比特以太网总线、异步传输模式总线、HIPPI总线、超HIPPI总线、串行Plus总线、SCI/LAMP总线、光纤信道总线、或串行附接小型计算机系统接口总线。
在一些实施方式中,计算机器200、300可以连接至多个显示设备224a至224n,在其他实施方式中,计算设备100可以连接至单个显示设备224,而在又一其他实施方式中,计算设备200、300连接至为相同类型或形式的显示器的显示设备224a至224n,或者连接至为不同类型或形式的显示设备。显示设备224a至224n的实施方式可以由以下设备来支持或启用:一个或多个I/O设备230a至230n、I/O控制器223、I/O设备230a至230n与I/O控制器223的组合、能够支持显示设备224a至224n的硬件与软件的任意组合、用于对接、通信、连接或以其他方式使用显示设备224a至224n的任何类型和/或形式的视频适配器、视频卡、驱动器、和/或库。在一些实施方式中,计算设备200、300可以被配置成使用一个或多个显示设备224A至224N,这些配置包括:具有用于接口连接至多个显示设备224A至224N的多个连接器;具有多个视频适配器,其中,每个视频适配器连接至显示设备224A至224N中的一个或多个;具有被配置成支持多个显示器224A至224N的操作系统;使用包括在计算设备200内的电路和软件来连接至并且使用多个显示设备224A至224N;以及执行主计算设备200和多个辅助计算设备上的软件以使得主计算机设备200能够使用辅助计算设备的显示器作为用于主计算设备200的显示器224A至224N。计算设备200的又一其他实施方式可以包括由多个辅助计算设备提供的并且经由网络连接至主计算设备200的多个显示设备224A至224N。
在一些实施方式中,计算机器200可以执行任何操作系统,而在其他实施方式中,计算机器200可以执行以下操作系统中的任一种:MICROSOFT WINDOWS操作系统的如下版本,如WINDOWS3.x、WINDOWS95、WINDOWS 98、WINDOWS2000、WINDOWS NT3.51、WINDOWSNT4.0、WINDOWS CE、WINDOWS XP、WINDOWS VISTA和WINDOWS7;Unix和Linux操作系统的不同发布;由Apple Computer(苹果计算机公司)制造的MAC OS的任何版本;由InternationalBusiness Machines制造的OS/2;任何嵌入式操作系统、任何实时操作系统、任何开放式源操作系统、任何专有操作系统;用于移动计算设备的任何操作系统;或者任何其他操作系统。在又一其他实施方式中,计算机器200可以执行多个操作系统。例如,计算机器200可以执行PARALLELS或者其他虚拟化平台,该其他虚拟化平台可以执行或管理执行第一操作系统的虚拟机,与此同时计算机器200执行不同于第一操作系统的第二操作系统。
计算机器200可以内嵌在以下计算设备中的任一种中:计算工作站、台式计算机、笔记本计算机、服务器、手持式计算机、移动电话、便携式电信设备、媒体播放设备、游戏系统、移动计算设备、上网本、由Apple Computer制造的IPOD设备家族中的设备、由Sony(索尼)公司制造的PLAYSTATION设备家族中的任何设备、由Nintendo(任天堂)公司制造的Nintendo设备家族中的任何设备、由Microsoft公司制造的XBOX设备家族中的任何设备、或者能够通信并且具有足以执行本文中所描述的方法和系统的处理器功率和存储器能力的任何其他类型和/或形式的计算、电信或媒体设备。在其他实施方式中,计算机器100可以是移动设备,如以下移动设备中的任一种:支持JAVA的蜂窝电话或个人数字助理(PDA),如i55sr、i58sr、i85s、i88s、i90c、i95cl或im1100,其全部由Motorola公司制造;由Kyocera(京瓷)制造的6035或7135;由Samsung Electronics(三星电子)有限公司制造的i300或i330;由Palm公司制造的TREO180、270、600、650、680、700p、700w或750智能电话;具有不同的处理器的任何计算设备、操作系统和与该设备一致的输入设备;或者能够执行本文中所描述的方法和系统的任何其他移动计算设备。在又一其他实施方式中,计算设备200可以是以下移动计算设备中的任一种:任一种Blackberry(黑莓)系列或者由Research In MotionLimited制造的其他手持式设备;由Apple Computer制造的iPhone;Palm Pre;口袋型PC;口袋型PC电话;或任何其他手持式移动设备。
在一些实施方式中,计算设备200可以具有不同的处理器、操作系统和与该设备一致的输入设备。例如,在一种实施方式中,计算设备200为由Palm公司制造的TREO180、270、600、650、680、700p、700w、或750智能电话。在这些实施方式中的一些中,TREO智能电话在PalmOS操作系统的控制下操作,并且包括手写笔输入设备以及五向导航设备。
在其他实施方式中,计算设备200为移动设备,如支持JAVA的蜂窝电话或个人数字助理(PDA),如i55sr、i58sr、i85s、i88s、i90c、i95cl或im1100,其全部由伊利诺斯州绍姆堡的Motorola公司制造;由日本京都的Kyocera制造的6035或7135;或者由韩国首尔的Samsung Electronics有限公司制造的i300或i330。在一些实施方式中,计算设备200为由芬兰的Nokia制造的移动设备、或者由瑞典隆德的Sony Ericsson移动通信公司制造的移动设备。
在又一其他实施方式中,计算设备200为Blackberry手持式或智能电话,如由Research In Motion Limited制造的设备,包括Blackberry7100系列、8700系列、7700系列、7200系列、Blackberry 7520或Blackberry Pearl 8100。在又一其他实施方式中,计算设备200为智能电话、口袋型PC、口袋型PC电话或支持Microsoft Windows移动软件的其他手持式移动设备。此外,计算设备200可以是任何工作站、台式计算机、笔记本计算机、服务器、手持式计算机、移动电话、任何其他计算机、或能够通信并且具有足以执行本文中所描述的操作的处理器功率和存储器能力的其他形式的计算或电信设备。
在一些实施方式中,计算设备200为数字音频播放器。在这些实施方式中的一种中,计算设备200为数字音频播放器,如由加利福尼亚库比蒂诺的Apple Computer制造的Apple IPOD、IPOD Touch、IPOD NANO和IPOD SHUFFLE设备线。在这些实施方式中的其他实施方式中,数字音频播放器可以用作便携式媒体播放器和大容量存储设备二者。在其他实施方式中,计算设备200为数字音频播放器,如由新泽西里奇菲尔德公园的SamsungElectronics America制造的数字音频播放器选择(DigitalAudioPlayer Select)MP3播放器、或者由伊利诺伊州绍姆堡的Motorola公司制造的Motorola m500或m25数字音频播放器。在又一其他实施方式中,计算设备200为便携式媒体播放器,如由CreativeTechnologies(创新科技)有限公司制造的MP3播放器的Zen Vision W、Zen Vision系列、Zen便携式媒体中央设备、或数字MP3线。在又一其他实施方式中,计算设备200为支持如下文件格式的便携式媒体播放器或数字音频播放器:包括但不限于MP3、WAV、M4A/AAC、WMA保护的AAC、AIFF、可听有声读物、Apple无损失音频文件格式以及.mov、.m4v和.mp4MPEG-4(H.264/MPEG-4AVC)视频文件格式。
在一些实施方式中,计算设备200包括如组合有数字音频播放器或便携式媒体播放器的移动电话等设备的组合。在这些实施方式中的一种中,计算设备200为组合数字音频播放器和移动电话的Motorola RAZR或Motorola ROKR线。在这些实施方式中的其他实施方式中,计算设备200为由加利福尼亚库比蒂诺的Apple Computer制造的iPhone智能电话。
图1至图3示出了说明性桌面虚拟化系统的高层架构。如所示出的,桌面虚拟化系统可以是单服务器或多服务器系统,包括被配置成向一个或多个客户端访问设备140提供虚拟桌面和/或虚拟应用的至少一个虚拟化服务器106。如本文中所使用的,桌面指代其中可以保存和/或执行一个或多个应用的图形环境或空间。桌面可以包括提供用于其中可以集成有本地和/或远程应用的操作系统的实例的用户界面的图形壳。如本文中所使用的,应用为在操作系统(以及可选的桌面)的实例加载之后执行的程序。操作系统的每个实例可以为物理的(例如,每个设备一个操作系统)或虚拟的(例如,在单个设备上运行的OS的很多实例)。每个应用可以在本地设备上执行,或者在位于远处的设备(例如,远程设备)上执行。
以上参考图1至图3所描述的系统和架构以及其他系统和架构可以用于实现以下描述的功能。通常,在单点登录(SSO)系统中,用户在第一次登陆计算机或网络时可以提供证书(例如,经由客户端设备的输入设备),并且用户可以被授权访问多个系统而不必再次提供证书。在一些实施方式中,SSO可能要求用户证书在实现SSO的所有系统上是相同的。在一些实施方式中,用户在初始登陆客户端设备或网络时可以提供证书。在用户随后访问远程桌面应用时,用户的证书可能被自动提供给运行远程桌面的客户端或服务器,使得SSO通过缩短与远程桌面的连接时间来增加用户的生产率。另一方面,在多签名系统中,可能要求用户在登陆客户端设备以及在登陆服务器以访问远程应用或桌面两种情况下提供证书,降低了用户的效率。
在SSO系统中,保持了如用户证书的信息的安全。可以通过将证书保持在可信计算基础(TCB)内和/或在证书离开TCB时以安全(例如,加密)格式传输证书来保护用户证书。TCB可以在任何时间捕获并且存储证书,如当证书在签名期间或在设定处理期间被初始提供给客户端设备时。在客户端设备的可信操作系统会话中运行的客户端过程(例如,在客户端设备上运行的远程桌面程序)可以从TCB请求用户证书,以使用其中所包括的服务器和处理来实现SSO。响应于请求,TCB可以认证客户端过程和服务器。在认证之后,TCB可以将证书保护在如不透明容器中,并且将安全证书发送给服务器TCB。不透明容器可以存储任何类型的数据,包括但不限于用户证书和认证消息。容器之所以被称为不透明是因为,其中存储的内容在没有适当的授权或安全的情况下不可见和/或不可用。在一些实施方式中,软件、硬件和/或固件部件可以使用密钥如加密或解密密钥来提取不透明容器中存储的数据。不能提取数据或未锁住不透明容器的部件可能不知道不透明容器的内容。相反,这些部件可能仅知道容器的长度、容器存储数据的事实、和/或包括在容器的一些头字段中的数据(例如,以识别不透明容器的目的地)。不透明容器可以包括例如HTTP载荷、TCP载荷、UDP载荷等。在一些实施方式中,安全证书从不离开不安全TCB(客户端或服务器)。一旦用户验证证书有效,则服务器可以授权对服务器资源的客户端过程访问(例如,用于支持远程桌面环境的服务)。
图4示出了根据本文中所描述的一个或多个说明性方面的用于单点登录的示例客户端405和服务器425环境。在一些实施方式中,客户端405可以是图1所示客户端设备140中的一种。客户端405可以包括可信计算基础(TCB)410。TCB410可以包括可信的和安全的和/或以提升的权限执行的硬件、固件和/或软件部件。在一些实施方式中,TCB410可以执行强调安全的功能,包括:存储重要的和/或信任的信息;通过生成包含信息和/或加密信息的不透明容器来保护该信息;使用安全通信手段如密码学通过不可信环境与其他TCB部件通信;以及提供对于安全而言重要的服务和/或政策。
若干元件——包括证书提供者445和安全服务460——可以在TCB410内运行。在一些实施方式中,证书提供者445可以由开发者(例如,Citrix Systems公司的CtxKerbHook.dll内的开发者)来提供,以高速缓存由客户端提供的证书。证书提供者445可以拦截(例如,接收)用户证书。在一些实施方式中,当用户向客户端设备提供证书时(例如,通过经由计算设备200的I/O设备230输入证书),证书提供者445可以将证书拦截和/或存储(例如,高速缓存)在如TCB410内。在其他实施方式中,证书提供者445可以类似地拦截和/或存储由用户提供的证书,以用嵌入式芯片来解锁智能卡或其他安全卡。卡可以采用任何形式或形状。当将智能卡插入客户端设备405的读取器(或带入非接触智能卡的读取器的附近内)时,智能卡可以与客户端设备405内的一个或多个部件通信,以认证用户。在这个用户认证期间,证书提供者445可以拦截和/或存储证书(例如,用户PIN)。在一些实施方式中,证书提供者可以仅在用户认证成功时存储证书。证书提供者445可以通过存储证书并且在请求证书时提供证书来用作代理证书提供者。
证书提供者445可以将用户证书高速缓存为证书450,如图4所示。证书450可以被高速缓存在TCB410内的位置,由TCB410来维护,或者是TCB410可访问的。此外,可以用如下方式来高速缓存证书450:该方式使得能够保护其对证书提供者445和/或安全服务460的可访问性,这将在以下示例中进一步描述。证书可以包括用于识别和/或认证证书的持有者如用户的任何信息。例如,证书包括但不限于用户标识(例如,用户编号、用户名等)和/或密码、个人标识号(PIN)、智能卡标识、安全证书(例如,公共密钥证书)、和用户的特征(例如,通过传感器捕获的,如指纹读取器、虹膜扫描、语音识别器或其他生物计量器件等等)。证书可以用安全格式来存储。例如,证书提供者445可以使得能够先于存储来对证书450进行加密。
TCB410还可以包括客户端侧安全服务部件460。在一些实施方式中,客户端侧安全服务460可以方便通过不可信环境来实现用户证书的传输。例如,证书提供者445可以向客户端侧安全服务460查询服务,以方便从客户端405至服务器425安全地传输用户证书。此外,客户端侧安全服务460可以方便服务器425的认证。可以由例如服务器侧认证器435和服务器侧安全服务440来对客户端405执行类似的认证步骤,这将在以下示例中进一步详细描述。在服务器425和/或客户端405被认证之后,客户端侧安全服务460可以保护用户证书。例如,安全服务460可以生成其中包含有加密用户证书的不透明容器。在一些实施方式中,仅具有匹配解密密钥的部件可以解锁不透明容器以访问其中包括的用户证书。这些部件可以包括在客户端侧TCB410或服务器侧TCB430内运行的部件。在其他实施方式中,仅客户端侧安全服务460和服务器侧安全服务440可以具有用于访问证书的加密和/或解密密钥。在一些实施方式中,客户端侧安全服务460和服务器侧安全服务440可以关于在服务器425和/客户端405的认证之后但是在安全的用户证书传输之前所使用的加密和/或解密密钥达成一致。例如,安全服务460和440可以依赖于标准密码协议(例如,TLS、SSL等)以协商用于加密/解密的共享对称密钥。
安全服务460可以将各种类型的加密用于安全信息,包括TLS、SSL、公共网关协议和/或任何其他密码协议。安全服务460还可以依赖于密码协议中所包括的握手功能来执行认证。在一些实施方式中,加密/解密密钥可以是对称的,并且可以在一次使用之后(例如,在加密和/或解密用户证书的实例之后)被丢弃。例如,客户端可以在向服务器发送安全证书之后立刻丢弃密钥。通常,没有正确密钥的部件不能够访问不透明容器内包括的信息。(先于发送证书执行的)认证步骤可以类似地通过发送和接收不透明容器来执行,使得中间不可信部件(例如,TCB外部的部件,如客户端过程420)不知道不透明容器的内容,如容器是否包括认证消息或用户证书。客户端侧安全服务460可以与服务器侧安全服务440一起工作以认证和传输用户证书。在一些实施方式中,客户端侧安全服务460可以向证书提供者445(或查询安全服务460的任何其他部件)发送包括加密用户证书的不透明容器,证书提供者445(或查询安全服务460的任何其他部件)又可以向服务器转发容器。在一些实施方式中,安全服务460和/或440可以是由设备操作系统提供的服务。例如,安全服务460和/或440可以是WINDOWS证书安全支持提供者(CredSSP)。或者,可以使用服务器侧SSP来访问服务器425。
客户端405还可以包括不可信计算环境415。在一些实施方式中,不可信计算环境可以包括易于遭受恶意软件(malware)攻击的环境。不可信环境415可以包括可信计算基础外部的任何硬件、固件和/或软件部件。例如,不可信环境415可以是不可信操作系统(OS)会话,如WINDOWS(或UNIX、MAC OS等)会话。在一些实施方式中,可以通过使用用户证书注册来利用OS在用户证书之后创建登陆会话。如之前所讨论的,可以另外在用户提供用于登陆会话的证书时由证书提供者445来拦截和/或高速缓存的用户证书。在创建会话之后,用户可以发起会话内的应用,包括客户端过程420。客户端过程420可以包括虚拟化会话应用,如ICA(例如,Citrix ICA客户端),以方便客户端405与服务器425之间的通信,使得服务器425能够向客户端405提供虚拟化(例如,虚拟应用、桌面等)服务。客户端过程420还可以使得一个或多个可执行文件与其关联。在一些实施方式中,在OS会话内运行的应用可以是不可信的,因为其在不可信环境中运行。因此,可以先于证书输入不可信环境来保护用户证书(例如,设置在不透明容器中、加密等等)。
服务器425还可以包括可信计算基础(TCB)430。如之前关于客户端侧TCB410所描述的,服务器侧TCB430通常可以包括可信的且安全的和/或以提升的权限执行的硬件、固件和/或软件部件。若干元件——包括认证器435和安全服务440——可以在TCB430内运行。在一些实施方式中,认证器435可以由开发者(例如,Citrix Systems公司)来提供。由于认证器435在TCB430内运行,所以认证器435可以是以提升的权限运行的可信部件。认证器435可以方便对客户端405和包括在其中的部件(例如,证书提供者445、客户端过程等)的认证。例如,认证器435可以是在客户端过程420与服务器侧安全服务440之间交换的代理不透明容器。认证器435还可以告知其他服务器部件(例如,被配置成提供虚拟化资源的部件)由客户端过程420提供的证书有效,并且将用户标识提供给服务器部件,以方便向客户端过程420提供虚拟化资源(例如,虚拟应用)。
服务器侧安全服务440可以与客户端侧安全服务460一起工作以认证和传送用户证书。例如,当认证器435从客户端405处接收安全信息(例如,在不透明容器中或者作为加密信息)时,认证器435可以向安全服务440查询对安全信息的访问。在一些实施方式中,安全服务440可以具有用于对从客户端侧TCB410接收的信息进行解密的密钥。安全信息可以包括例如认证信息,其可以用于(例如,经由握手处理)认证服务器425和/或客户端405。安全信息还可以包括例如通过客户端侧安全服务460保护的安全的用户证书。在一些实施方式中,服务器侧安全服务440可以不保护用户证书(例如,纯文本格式)并且将其发送给认证器435。认证器435可以通过例如比较证书与本地认证数据库或其他连接至服务器425(例如,LDAP服务器、RADIUS服务器等)的基础架构而基于证书来验证用户。
客户端405和服务器425可以经由一个或多个信道455来通信,如LAN125、WAN129、计算机网络130或客户端与服务器之间的任何其他网络中所包括的通信信道。信道455可以方便客户端过程420与服务器425之间的通信,并且可以包括任何数量的信道,包括虚拟信道。可以保留一个或多个信道用于在证书提供者455/客户端侧安全服务460与认证器435/服务器侧安全服务440之间传输不透明容器。
图5示出了根据本文中所描述的一个或多个说明性方面的用于单点登录的另一示例客户端505和服务器525环境。类似于图4的示例环境,客户端505可以包括可信计算基础510和不可信环境515。可信计算基础510可以具有若干元件,包括证书提供者545、证书550、和安全服务560。不可信环境515可以包括客户端过程520。服务器525可以包括可信计算基础530。若干元件——包括认证器535和安全服务540——可以在可信计算基础530内运行。类似于图4的示例环境,客户端505和服务器525可以经由一个或多个信道555来通信。
图5的示例环境可以包括第二信道565,第二信道565用于证书提供者545直接与认证器535通信,而非通过客户端过程520彼此通信。在一些实施方式中,证书提供者545和认证器535可以依赖于第二信道545来认证和/或交换证书。例如,在SSO中,证书提供者545可以直接向认证器535发送用户证书,以允许客户端过程520使用服务器525的资源,而不需要客户端505第二次提供用户证书(例如,在首次用户证书提供之后,如当用户登录OS会话时)。在这个示例中,由于客户端侧TCB510中的部件和服务器侧TCB530中的部件直接通信(例如,不通过不可信应用,如客户端过程520),所以证书没有离开可信计算基础,并且因此保持安全。
图6示出了根据本文中描述的一个或多个说明性方面的用于单点登录的另一示例客户端605和服务器625环境。类似于图4和图5的示例环境,客户端605可以包括可信计算基础610和不可信环境615。可信计算基础610可以具有若干元件,包括证书提供者645和高速缓存证书650。不同于图4和图5的示例环境,安全服务665可以在不可信环境615而非TCB610内运行。以下将参考图8在示例中进一步详细描述安全服务665的功能。
不可信环境615还可以包括客户端过程620和用户证书660。在一些实施方式中,客户端过程620可以从证书提供者645处请求和/或接收高速缓存证书的安全副本650(例如,加密版本)。证书650的安全副本650可以存储在不可信环境中作为副本660。
服务器625可以包括可信计算基础630。若干元件——包括认证器635和安全服务640——可以在可信计算基础640内运行。类似于图4和图5的示例环境,客户端605和服务器625可以经由一个或多个655来通信。
图7示出了根据本文中所描述的一个或多个说明性方面的安全的单点登录的示例方法。在一些实施方式中,图7的示例方法可以对应于图4的示例客户端和服务器系统。在步骤705,客户端405可以接收用户证书。证书可以是用户提供的,作为登录过程的一部分,如经由I/O设备230而通过智能卡或用户输入。在一些实施方式中,在用户进入登录(例如,OS)会话时,客户端可以接收证书。例如,当用户发起WINDOWS会话时,客户端405可以经由WINDOWS会话来提示用户输入证书,如用户名和密码。
在步骤710,证书提供者445可以拦截和/或存储用户的证书以便启用SSO。证书提供者445可以将证书450高速缓存在TCB410内的位置处以维持证书的安全性。在一些实施方式中,证书450可以以安全(例如,加密)格式来存储。
在步骤715,证书提供者445可以从客户端过程420接收对证书的请求。在一些实施方式中,客户端过程420可以在OS会话内的客户端过程420开始(例如,通过OS自动开始或者通过用户命令手动开始)之后请求证书。在一些实施方式中,客户端过程420可以在服务器425从客户端过程420处请求证书时请求证书。因此,在一些实施方式中,不是给用户生成用户证书的提示(例如,经由GUI),而是客户端过程420可以从用于SSO的证书提供者445处请求证书。
在步骤720,可以响应于对证书的请求来认证客户端过程420。在一些实施方式中,证书提供者445可以认证客户端过程420。例如,证书提供者445可以从OS请求与客户端过程420关联的可执行文件的路径(例如,开始客户端过程的路径)。客户端过程420的认证可以包括若干步骤。首先,证书提供者445可以验证识别的可执行文件的数字签名。如果证书提供者445不能验证数字签名,则可执行文件可能被恶意软件破坏。接着,证书提供者445可以例如通过联系证书机构(CA)以认证附接至数字签名的证书来认证这个证书。如果CA不能确定证书的拥有者,则拥有者可能是恶意软件创建者。其次,证书提供者445可以例如通过判定在可执行文件中所包括的可执行代码被数字签名之后是否被改变来验证可执行代码的完整性。如果不能判定可执行代码的真实性,则可执行代码可能已经被恶意软件改变。其次,证书提供者445可以通过判定签名证书的拥有者是否可信来认证可执行文件的签名者。如果不能认证签名者,则恶意软件创建者可能已经对证书签名。
通过认证客户端过程420,将所添加的安全层合并到SSO系统中。在一些实施方式中,如果证书提供者445不能认证客户端过程420,则证书提供者可以拒绝与客户端过程交流,因为客户端过程客户可能已经被恶意软件感染。例如,由于客户端过程的可执行图像可能是恶意软件或可能被恶意软件感染,所以如果数字签名无效,或者如果签名证书不能被认证,则证书提供者445可以拒绝与客户端过程420交流。在一些实施方式中,因为签名者可以是不可信方,如恶意软件创建者,所以如果签名者不是可信方,则证书提供者445可以拒绝与客户端过程420交流。虽然认证客户端过程420被示出为直接在接收对证书的请求这个步骤之后,然而,认证也可以在任何时间出现。在一些实施方式中,认证先于TCB410向服务器425发送证书(例如,步骤740,如图7所示)而出现,使得证书保持安全,直到客户端过程420被认证。
在步骤725,证书提供者445可以向安全服务460查询安全证书。在一些实施方式中,这个查询发起对客户端405和/或服务器425的认证(例如,步骤730),并且发起将证书传送至服务器425(例如,步骤740,如图7所示)。在一些实施方式中,证书提供者445在查询安全服务460的情况下可以包括高速缓存证书的副本450(例如,“新的证书”)。在其他实施方式中,安全服务460可以知道证书的位置,使得证书提供者445在查询的情况下可以不包括高速缓存证书。在这些实施方式中,安全服务460可以独立地从TCB410内的其存储位置获取高速缓存证书450(例如,“默认证书”)。例如,“默认证书”可以由WINDOWS CredSSP来提供。在一些实施方式中,安全服务460在查询的情况下可以包括识别高速缓存证书的位置的信息。
在步骤730,可以对服务器425和/或客户端405进行认证。在一些实施方式中,客户端侧安全服务460和服务器侧安全服务440可以生成和/或消费不透明容器以认证。通常,证书提供者445(和客户端侧安全服务460)和认证器435(和服务器侧安全服务440)可以经由客户端过程420和/或信道455来交换不透明容器。如在先所描述的,安全服务460和440可以依赖于对于各种密码协议如TLS、SSL或任何其他安全隧道协议可用的握手功能。
在步骤735,安全服务460可以保护证书。如在先所描述的,安全服务460可以创建包含有加密用户证书的不透明容器。在一些实施方式中,可以使用任何密码协议如TLS、SSL、公共网关协议等来对用户证书进行加密。安全服务460可以向证书提供者445转发安全证书或者指示安全证书的位置(例如,在TCB410内)。
在步骤740,证书提供者445可以向认证器435发送安全证书。在一些实施方式中,可以经由客户端过程420来发送安全证书,客户端过程420已经建立了一个或多个与认证器435的通信信道455。因为证书先于传送至客户端过程420而被保护,所以证书没有离开安全可信计算基础。以这种方式,客户端过程420可以用作在客户端侧TCB410与服务器侧TCB430之间转发不透明容器的假的(dumb)代理。在一些实施方式中,客户端过程420可以使用一个或多个预先存在的信道(例如,用于传输图像信息的数据信道)来转发不透明容器。在其他实施方式中,客户端过程420和服务器425可以建立专用信道以转发不透明容器。
在步骤745,认证器435可以查询服务器侧安全服务440以访问安全信息(例如,包括在不透明容器中的安全信息)。安全服务440可以具有用于对从客户端侧TCB410接收的信息进行解密的密钥。密钥可以是与客户端侧安全服务460共享的密钥。例如,加密密钥(例如,客户端侧安全服务460所使用的)和解密密钥(例如,服务器侧安全服务440所使用的)可以是对称的。在一些实施方式中,可以在解密证书之后丢弃解密密钥。在步骤750,认证器435和/或安全服务440可以验证从客户端设备处接收的证书。例如,可以将证书与用户证书的数据库进行比较以验证用户是否试图访问服务器资源。认证器435和/或安全服务440还可以通过比较一组证书如全文本格式的证书与用户证书散列的数据库来验证证书。如果存在散列匹配,则认证器435可以确定证书是可靠的。
认证器435和/或安全服务440可以依赖于其他认证协议,如Kerberos。例如,认证器435可以使用证书从Kerberos服务器(例如,Kerberos票据授予服务器)请求票据授予票据(TGT)。如果Kerberos服务器响应于请求返回TGT,则认证器435可以判定证书有效。此外,如果结合用户提供证书(例如,PIN)使用智能卡,则可以使用智能卡重新定向来授予Kerberos对客户端405处的智能卡的访问。智能卡重新定向部件可以拦截所有对访问智能卡的服务器侧请求并且经由虚拟信道(例如,通信信道455内的信道)将请求重新定向至客户端405。基于这个重新定向,客户端405可以代表服务器425服务于智能卡请求。在步骤755,服务器425可以在验证证书时授权客户端过程420访问服务器资源(例如,虚拟化硬件、固件和/或软件)。
图8示出了根据本文中所描述的一个或多个说明性方面的安全单点登录的另一示例方法。在一些实施方式中,图8的示例方法可以对应于图6的示例客户端和服务器系统。在一些实施方式中,先于步骤805并且类似于步骤705、710和715,客户端605可以接收证书(例如,当用户进入登录会话时),证书提供者645可以拦截和/或存储证书和/或证书提供者645可以例如从客户端过程620接收对证书的请求。
在步骤805,证书提供者645可以以第一安全性来保护证书650。例如,可以使用仅证书提供者645和/或可信计算基础610内的其他部件可访问的密钥来加密证书。例如,服务器侧TCB630(或者其中所包括的部件)可以具有用于使用第一安全性加密的信息的解密密钥。在步骤810,证书提供者645可以将安全证书发送至客户端过程620。在一些实施方式中,客户端过程620可以具有用于解密证书的密钥。客户端过程620可以将所接收的安全证书存储为副本660。
在步骤815,客户端过程620可以向安全服务665查询安全证书。具体地,客户端过程620可以请求以不同于第一安全性的第二安全性来保护安全证书660。在步骤820,安全服务665可以不保护以第一安全性保护的证书660。例如,安全服务665可以调用TCB610内的部件如证书提供者645以不保护(例如,解密)证书。由证书提供者645管理的密钥可以用于解密证书。
在步骤825,安全服务665可以以第二安全性来重新保护证书。例如,可以将证书隐藏在不透明容器中和/或使用对于客户端侧安全服务665和服务器侧安全服务640可访问的密钥来加密证书。如在先所描述的,可以使用任何密码协议如TLS、SSL、公共网关协议等来加密证书。在一些实施方式中,安全服务665所使用的密钥和安全服务640所使用的密钥可以是对称的。
安全服务665可以将以第二安全性保护的证书转发给客户端过程620。在步骤830,客户端过程620可以使用一个或多个预先存在的和/或专用的信道665将安全证书转发给认证器635。在一些实施方式中,如在先关于步骤730所讨论的,可以先于发送安全证书来认证服务器625和/或客户端605。
在接收到安全证书之后,认证器635可以查询服务器侧安全服务640,如关于步骤745类似地描述的,并且认证器635和/或安全服务640可以验证用户证书并且基于验证来授权对服务器625的访问,如关于步骤750和755类似地描述的。
虽然以上描述了示例实施方式,然而,可以以任何期望方式来组合、划分、省略和/或增加各种特征和步骤,并且可以依赖于所期望的具体的建议处理来添加其他步骤。本专利的范围应当仅由以下权利要求来限定。

Claims (20)

1.一种在远程桌面环境下执行单点登录的方法,包括:
在客户端设备处接收用户证书;
通过在所述客户端设备的可信计算基础中运行的证书提供者拦截所述用户证书;
将所述用户证书高速缓存在所述可信计算基础内的位置处;
通过所述证书提供者从客户端过程接收对于所述用户证书的请求;
通过所述证书提供者将所述用户证书发送至在所述客户端设备的所述可信计算基础中运行的客户端安全服务;
通过所述客户端安全服务对服务器进行认证;
在对所述服务器进行认证之后,通过所述客户端安全服务保护所述用户证书以向所述服务器安全传输;
通过所述客户端过程将安全的用户证书发送至所述服务器;以及
通过所述服务器基于所述安全的用户证书来授予对所述客户端过程的访问权限。
2.根据权利要求1所述的方法,其中保护所述用户证书包括基于所述客户端安全服务和服务器安全服务达成一致的密钥来对所述用户证书进行加密。
3.根据权利要求2所述的方法,其中所述服务器包括所述服务器安全服务,并且授予对所述客户端过程的访问权限包括:
查询所述服务器安全服务以对所加密的用户证书进行解密;以及
确认所述用户证书的有效性。
4.根据权利要求1所述的方法,其中所述客户端过程为不可信的远程桌面程序,并且所述方法还包括:
在通过所述客户端过程发送所述安全的用户证书之前,通过所述证书提供者对所述客户端过程进行认证。
5.根据权利要求4所述的方法,其中对所述客户端过程进行认证还包括通过所述证书提供者验证与所述客户端过程关联的可执行文件的数字签名。
6.根据权利要求1所述的方法,其中所述客户端过程在操作系统的不可信会话中执行。
7.根据权利要求1所述的方法,其中:
通过所述证书提供者将所述用户证书发送至所述客户端安全服务包括通过所述证书提供者发送所述客户端安全服务对所述服务器进行认证的请求;以及
所述客户端安全服务保护所述用户证书还包括对所述用户证书进行加密。
8.根据权利要求1所述的方法,其中所述用户证书包括智能卡引脚。
9.一种用于在远程桌面环境下执行单点登录的系统,包括:
处理器;以及
存储计算机可读指令的存储器,所述计算机可读指令在由所述处理器执行时使得所述系统:
在客户端设备处接收用户证书;
通过在所述客户端设备的可信计算基础中运行的证书提供者拦截所述用户证书;
将所述用户证书高速缓存在所述可信计算基础内的位置处;
通过所述证书提供者从客户端过程接收对于所述用户证书的请求;
通过所述证书提供者将所述用户证书发送至在所述客户端设备的所述可信计算基础中运行的客户端安全服务;
通过所述客户端安全服务对服务器进行认证;
在对所述服务器进行认证之后,通过所述客户端安全服务保护所述用户证书以向所述服务器安全传输;
通过所述客户端过程将安全的用户证书发送至所述服务器;以及
基于所述安全的用户证书来访问服务器服务。
10.根据权利要求9所述的系统,其中保护所述用户证书包括基于所述客户端安全服务和服务器安全服务达成一致的密钥来对所述用户证书进行加密。
11.根据权利要求9所述的系统,其中所述客户端过程为不可信的远程桌面程序,并且其中所述存储器存储附加的计算机可读指令,所述附加的计算机可读指令在由所述处理器执行时使得所述系统:
在通过所述客户端过程发送所述安全的用户证书之前,通过所述证书提供者对所述客户端过程进行认证。
12.根据权利要求11所述的系统,其中对所述客户端过程进行认证还包括验证与所述客户端过程关联的可执行文件的数字签名。
13.根据权利要求9所述的系统,其中所述客户端过程在操作系统的不可信会话中执行。
14.根据权利要求9所述的系统,其中:
通过所述证书提供者将所述用户证书发送至所述客户端安全服务包括通过所述证书提供者发送所述客户端安全服务对所述服务器进行认证的请求;以及
所述客户端安全服务保护所述用户证书还包括对所述用户证书进行加密。
15.根据权利要求9所述的系统,其中所述用户证书包括智能卡引脚。
16.一种用于在远程桌面环境下执行单点登录的设备,包括:
处理器;以及
存储器,所述存储器存储计算机可读指令,所述计算机可读指令在由所述处理器执行时使得所述处理器:
在客户端设备处接收用户证书;
通过在所述客户端设备的可信计算基础中运行的证书提供者拦截所述用户证书;
将所述用户证书高速缓存在所述可信计算基础内的位置处;
通过所述证书提供者从客户端过程接收对于所述用户证书的请求;
通过所述证书提供者将所述用户证书发送至在所述客户端设备的所述可信计算基础中运行的客户端安全服务;
通过所述客户端安全服务对服务器进行认证;
在对所述服务器进行认证之后,所述客户端安全服务保护所述用户证书以向所述服务器安全传输;
通过所述客户端过程将安全的用户证书发送至所述服务器;以及
在所述服务器基于所述安全的用户证书授予访问权限的基础上,访问服务器服务。
17.根据权利要求16所述的设备,其中通过所述处理器保护所述用户证书包括基于所述客户端安全服务和服务器安全服务达成一致的密钥来对所述用户证书进行加密。
18.根据权利要求17所述的设备,其中所述客户端过程为不可信过程,并且所述存储器存储附加的计算机可读指令,所述附加的计算机可读指令在由所述处理器执行时使得所述处理器:
在通过所述客户端过程发送所述安全的用户证书之前,由所述证书提供者通过验证与所述客户端过程关联的可执行文件的数字签名来对所述客户端过程进行认证。
19.根据权利要求16所述的设备,其中所述客户端过程在操作系统的不可信会话中执行。
20.根据权利要求16所述的设备,其中通过所述证书提供者将所述用户证书发送至所述客户端安全服务包括通过所述证书提供者发送所述客户端安全服务对所述服务器进行认证的请求。
CN201380011196.8A 2012-02-28 2013-02-27 安全的单点登录 Expired - Fee Related CN104137112B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/407,133 US9032496B2 (en) 2012-02-28 2012-02-28 Secure single sign-on
US13/407,133 2012-02-28
PCT/US2013/027948 WO2013130550A1 (en) 2012-02-28 2013-02-27 Secure single sign-on

Publications (2)

Publication Number Publication Date
CN104137112A CN104137112A (zh) 2014-11-05
CN104137112B true CN104137112B (zh) 2017-12-08

Family

ID=47913553

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380011196.8A Expired - Fee Related CN104137112B (zh) 2012-02-28 2013-02-27 安全的单点登录

Country Status (4)

Country Link
US (1) US9032496B2 (zh)
EP (1) EP2820588B1 (zh)
CN (1) CN104137112B (zh)
WO (1) WO2013130550A1 (zh)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9323915B2 (en) 2010-12-08 2016-04-26 Verizon Patent And Licensing Inc. Extended security for wireless device handset authentication
US10433161B2 (en) * 2012-01-30 2019-10-01 Telefonaktiebolaget Lm Ericsson (Publ) Call handover between cellular communication system nodes that support different security contexts
US8997193B2 (en) * 2012-05-14 2015-03-31 Sap Se Single sign-on for disparate servers
US9135050B2 (en) * 2012-10-18 2015-09-15 Vmware, Inc. Extensible network configuration management
US9325687B2 (en) 2013-10-31 2016-04-26 Cellco Partnership Remote authentication using mobile single sign on credentials
US10135805B2 (en) 2013-10-31 2018-11-20 Cellco Partnership Connected authentication device using mobile single sign on credentials
US10181122B2 (en) 2013-10-31 2019-01-15 Cellco Partnership Mobile authentication for web payments using single sign on credentials
US9628482B2 (en) * 2013-10-31 2017-04-18 Cellco Partnership Mobile based login via wireless credential transfer
US10282527B2 (en) * 2014-04-30 2019-05-07 Rakuten, Inc. Information processing apparatus, information processing method, program, storage medium, and password entry apparatus
CN105282095A (zh) * 2014-06-18 2016-01-27 中兴通讯股份有限公司 虚拟桌面登录验证方法和装置
CN105450406B (zh) * 2014-07-25 2018-10-02 华为技术有限公司 数据处理的方法和装置
CN104574237A (zh) * 2014-12-23 2015-04-29 重庆贝锦科技有限公司 一种数字化校园系统
US10757107B2 (en) * 2015-02-27 2020-08-25 Dropbox, Inc. Application-assisted login for a web browser
US10025913B2 (en) * 2015-02-27 2018-07-17 Dropbox, Inc. Cross-application authentication on a content management system
US10454917B2 (en) 2015-11-05 2019-10-22 Red Hat, Inc. Enabling single sign-on authentication for accessing protected network services
CN106936582A (zh) * 2015-12-31 2017-07-07 航天信息股份有限公司 电子签章系统及方法
CN107104801B (zh) * 2016-02-22 2020-11-10 西门子公司 一种用于测试的方法和装置
US10574661B2 (en) * 2016-09-01 2020-02-25 Vmware, Inc. Method and system for preventing unauthorized access to smart card devices in a remote desktop infrastructure
CN108496323B (zh) * 2018-03-21 2020-01-21 福建联迪商用设备有限公司 一种证书导入方法及终端
US10805283B2 (en) * 2018-06-18 2020-10-13 Citrix Systems, Inc. Single sign-on from desktop to network
US11330441B2 (en) * 2019-05-14 2022-05-10 T-Mobile Usa, Inc. Systems and methods for remote device security attestation and manipulation detection
CN110493236B (zh) * 2019-08-23 2020-09-25 星环信息科技(上海)有限公司 一种通信方法、计算机设备及存储介质
US11716395B2 (en) * 2021-01-29 2023-08-01 Connectify, Inc. Minimizing connection delay for a data session
US20230099355A1 (en) * 2021-09-29 2023-03-30 Dell Products L.P. Single sign-on services for database clusters

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2426837A (en) 2005-06-01 2006-12-06 Hewlett Packard Development Co Checking the integrity of a software component
AU2009214668A1 (en) * 2008-02-15 2009-08-20 Citrix Systems, Inc. Systems and methods for secure handling of secure attention sequences
US20110010543A1 (en) * 2009-03-06 2011-01-13 Interdigital Patent Holdings, Inc. Platform validation and management of wireless devices
US8838991B2 (en) * 2009-04-01 2014-09-16 Microsoft Corporation Secure biometric identity broker module
JP5570610B2 (ja) * 2009-11-05 2014-08-13 ヴイエムウェア インク 遠隔ユーザ・セッションのためのシングル・サインオン
US8850526B2 (en) * 2010-06-23 2014-09-30 K7 Computing Private Limited Online protection of information and resources
US8505083B2 (en) * 2010-09-30 2013-08-06 Microsoft Corporation Remote resources single sign on

Also Published As

Publication number Publication date
US20130227668A1 (en) 2013-08-29
CN104137112A (zh) 2014-11-05
US9032496B2 (en) 2015-05-12
WO2013130550A1 (en) 2013-09-06
EP2820588A1 (en) 2015-01-07
EP2820588B1 (en) 2022-04-20

Similar Documents

Publication Publication Date Title
CN104137112B (zh) 安全的单点登录
JP7457173B2 (ja) モノのインターネット(iot)デバイスの管理
CN104106052B (zh) 用于主控的服务的连接租赁
US7996888B2 (en) Virtual identity apparatus and method for using same
JP4600851B2 (ja) コンピュータシステム間でメッセージを通信するための安全なコンテキストの確立
US20130205380A1 (en) Identity verification
US9906518B2 (en) Managing exchanges of sensitive data
CN106664208A (zh) 使用安全传输协议建立信任的系统和方法
WO2015101310A1 (zh) 一种业务处理方法、装置及系统
WO2006093148A1 (ja) データ通信システム,代行システムサーバ,コンピュータプログラム,およびデータ通信方法
US11909889B2 (en) Secure digital signing
US10990692B2 (en) Managing data handling policies
US20060068758A1 (en) Securing local and intra-platform links
CN115001841A (zh) 一种身份认证方法、装置及存储介质
US8176533B1 (en) Complementary client and user authentication scheme
WO2022042745A1 (zh) 一种密钥管理方法及装置
JP2020095687A (ja) 情報処理装置、情報処理方法及び情報処理プログラム
CN110753029B (zh) 一种身份验证方法及生物识别平台
CN111147501A (zh) 一种蓝牙钥匙查询方法及其装置
US9185110B2 (en) Device and method for secure access to a remote server
WO2003084175A1 (en) A system and method for secure electronic transaction using a registered intelligent telecommunication device
US20220353073A1 (en) Method for authenticating an end-user account, method for single authenticating within a cluster of hsm, and method for implementing access control
JP6278290B1 (ja) 認証方法
Kyrillidis et al. A smart card web server in the web of things
Selvanambi et al. Blockchain‐Based Identity Management Systems

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20171208

CF01 Termination of patent right due to non-payment of annual fee