当前位置: 首页 > 专利查询>微软公司专利>正文

具有键盘或相关设备的安全通信制造技术

技术编号:3522120 阅读:133 留言:0更新日期:2012-04-11 18:40
键盘和例如计算机上运行的一段软件的元件之间的安全通信。第一初始值是为键盘和元件都所知的。键盘和元件交换现时。键盘和元件基于现时和第一初始值分别计算第二初始值和第三初始值。由于键盘和元件都执行相同的计算,因此键盘和元件每个都有相同的第二和第三初始值。基于密钥和第二初始值,键盘加密数据运往使用CBC-3DES的元件,并且基于密钥和第三初始值为每个使用CBC-3DESMAC的创建消息验证码。元件解密和检验使用密钥和第二、第三初始值的键击。

【技术实现步骤摘要】

本专利技术总体上涉及计算机安全领域。本专利技术尤其涉及在通信信道上的键盘的安全使用,其中该通信信道可能会遭到窃听或其他类型的篡改。
技术介绍
键盘将用户输入数据传送到电子设备,例如计算机。当用户按下键盘上的键时,键盘生成代表被按的特定键的数据(例如,字母“e”的ASCII码),并且该数据由计算机中的元件,例如装置驱动器接收。随后该装置驱动器向在计算机上运行的正在接收输入的无论什么程序提供该数据(例如,通过将数据放入随便哪个运行中的应用程序的输入缓冲器)。在使用键盘接收数据中出现的一个问题是当数据是敏感的或另外需要保密。例如,安全应用(或操作系统的安全服务)可能要求用户输入口令,该口令通常不应该随意泄漏给公众。然而,因为有若干机会窃听数据,所以由键盘通向接收数据的软件元件的路径是非安全的。例如,数据将经常在会遭到窥探的总线上传播,并将由可能遭到篡改的装置驱动器进行处理(或者该操作系统将允许由非安全装置驱动器来代替,该非安全装置驱动器存储和泄漏由驱动器处理的信息)。换句话说,在保密数据由键盘到其最终目的地的路线上,有若干机会观测或篡改该保密数据。通常,对由非安全信道连接的两个元件之间传送的数据进行加密是可能的。然而,由于众多因素,许多加密技术不容易适用于键盘环境,例如密钥管理问题、重放攻击的可能性、以及如果密文的适度尺寸的样值可被窃听、那么通过键盘产生的相对小范围的数据将会使得在键盘通信上形成普通密码相对易于破解的事实。从上述观点可看出,需要一种具有键盘的促进安全通信的技术。专利技术概述本专利技术提供了一种通过非安全通信信道在两元件之间进行安全通信的技术。该技术使用一种尤其适合键盘的加密方案,,而且在对键盘应用标准加密方案的过程中将存在地址问题。根据本专利技术所述的键盘存储密钥和常量,该常量用于加密方案的初始化。元件(例如在计算机运行的应用程序)存储与存储在键盘中的密钥和常量相同的密钥和常量。为了启动元件和键盘之间的安全对话,元件和键盘分别产生一个现时(nonce),接着互相交换现时,以便键盘和元件均拥有两个现时。键盘和元件接着计算两个初始值,所述的每个初始值都基于两个现时,按键和常量的值。例如,第一初始值可以通过使用CBC-3DESMAC算法创建,此处CBC-3DESMAC使用存储的常量作为其初始链接值并将所述的密钥应用到消息中,该消息基于两个现时创建。(CBC-3DESMAC是指依照具有加密块链的数据加密标准(DES)算法,应用三倍加密,并使用最终密文块创建信息证实代码(MAC))。优选地,第二初始值通过反转第一初始值中的位来创建(例如,在第一初始值和数字0xffffffffffffffff之间执行“exclusive or”操作)。因为键盘和元件以同样方式计算第一和第二初始值,所以它们拥有相同的两个初始值。在可选的优选实施例中,键盘和元件配备有两个常量,且第一和第二初始值可以通过将CBC-3DESMAC应用到基于两个现时的消息中、使用第一常数创建第一初始值和使用第二常数创建第二初始值来创建。第一和第二初始值创建后,键盘准备传送加密数据,将接收该数据的元件准备解密并检验该数据。当数据键入键盘,键盘对基于第一初始值和密钥的数据进行加密。优选地,键盘通过上面提到的使用CBC-3DES(三倍-DES具有密码块链接)的密钥和用于填装密码块链的第一初始值对数据进行加密。键盘同样为优选地为使用CBC-3DESMAC的数据的每个单元创建MAC,此处该CBC-3DESMAC应用上面提到的密钥,并使用第二初始值填装密码块链。优选地,由于这种技术允许出现相同的键击(例如,字母“e”),依赖于先于他自己的键击,表现为不同的密文,因此每次键击在单独的加密块中加密,且整个数据流在构成密码块链的对话期间在键盘上产生。一旦在接收元件中接收了加密数据和MAC(s),接收元件就使用上面提到的密钥和第一、第二初始值来解密并验证该接收到的数据。下面描述本专利技术的其他特征。 附图说明前面的概述和随后的优选实施例的详细描述一样,当结合附图进行阅读时将变得更好理解。为达到说明本专利技术的目的,本专利技术的示范性构造展示在附图中;然而,本专利技术并不限于所公开的特殊方法和手段。附图中图1是示范性计算环境的框图,本专利技术各方面可以在该框图中执行;图2是第一示范性环境的框图,在该框图中键盘和元件之间的通信在非安全信道上发生;图3是第二示范性环境的框图,在该框图中键盘和元件之间的通信在非安全信道上发生;图4是已为安全通信设置的键盘和元件的框图,其依据本专利技术各方面交换现时;图5是参与键盘和元件之间安全通信对话的过程的流程图;图6是第一示范性环境的框图,在该框图中键盘和元件可以分配为参与依照本专利技术各方面的安全通信;专利技术详述示范性计算配置图1示出了示范性计算环境,在该环境中执行本专利技术的各方面。计算系统环境100只是一个适合的计算环境的示例,而且它并不打算对本专利技术的使用或功能的范围作任何限制的建议。计算环境100也不应解释为对示范性操作环境100所示出元件的任何单个或其结合具有任何依赖性或需求。本专利技术对于多个其他通用或专用计算系统环境或配置是可操作的。虽然众所周知的计算系统、环境、和/或配置的实例适合于在本专利技术包括的范围内使用,但是并不局限于个人计算机、服务器计算机、手持或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程用户电子设备、网络PC、迷你计算机、大型计算机、嵌入系统、包含任何上述系统或设备的分布式计算机环境等等。本专利技术通常可以描述为计算机可执行指令上下文,例如计算机执行的程序模块。通常,程序模块包括例行程序、程序、对象、元件、数据结构等,其完成特殊的任务或者实现特殊的抽象数据类型。本专利技术也在分布式计算环境内实行,该分布式计算环境中通过远程处理设备完成任务,该远程处理设备通过通信网络或其他数据传输媒质连接。在分布式计算环境中,程序模块和其他数据可以在包含存储器存储装置的本地和远程计算机存储媒体中定位。参照图1,执行本专利技术的示范性系统包括以计算机110的形式存在的通用计算设备。计算机110的元件包括,但不限定于处理单元120、系统存储器130、系统总线121,系统总线121将包括系统存储器在内的多种系统元件与处理单元120连在一起。系统总线121可以是总线结构若干类型的任何一种,该总线结构包括存储器总线或存储器控制器、外围总线、和使用多种总线体系结构的任何一种的局域总线。作为示例,担不是限定,这样的体系结构包括工业标准体系结构(ISA)总线、微新到体系结构(MCA)总线、增强的ISA(EISA)总线、视频电子标准协会(VESA)局域总线、周边元件扩展接口(PCI)总线(也叫Mezzanine总线)。系统总线121也可以实现为通信设备中的点到点连接、开关结构等等。计算机110典型地包括多种计算机可读媒体。计算机可读媒体可以是任何可以通过计算机110进行访问的媒体,该媒体包括易失性和非易失性媒体、可删除和非可删除媒体。作为示例,但不是限定,计算机可读媒体可以包含计算机存储媒体和通信媒体。计算机存储媒体包括易失性和非易失性、可删除和非可删除媒体,该媒体在任何用于信息存储的方法或技术中使用,所述信息指例如计算机可读指令、数据结构、程序模块或其他数据。计算机存储媒体包本文档来自技高网...

【技术保护点】
一种用键盘通信的方法,包括:    在元件接收来自键盘的多个数据,该多个数据三倍-DES和密码块链进行加密,该密码块链使用密钥和第一初始值,所述密钥和所述初始值对元件和键盘都是可知的;    基于所述初始值和所述密钥加密该多个数据。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:M佩那多J贝纳尔
申请(专利权)人:微软公司
类型:发明
国别省市:US[美国]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利