一种基于可信计算实现可信SSH的方法技术

技术编号:4269082 阅读:302 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供了一种基于可信计算实现可信SSH的方法。本方法通过将可信计算的远程证明与SSH协议的密钥交换这两个过程进行有机整合,实现了平台状态信息验证与会话密钥协商的紧密结合,在保证数据安全传输的前提下,加强了数据在通信端点的安全性。本方法要求服务器端和客户端都配有可信安全芯片,并且安装了度量模块和可信操作系统,能够对各自平台状态进行度量。本方法不但有效地防范了SSH协议中存在的利用安全通道与未知端点通信仍可能遭受各种攻击的安全威胁,同时有效地防范了重放攻击、假冒攻击和中间人攻击。

【技术实现步骤摘要】

本专利技术涉及计算机信息安全领域,特别是指一种基于可信计算实现可信SSH的方 法。
技术介绍
SSH (Secure Shell)协议是IETF的网络工作小组制定了一个安全协议,用于保护 客户端与服务器端之间传输的数据。SSH协议采用了分层结构设计,包括四个子协议SSH 传输层子协议、用户认证子协议、连接子协议和文件传输子协议。前两个子协议首先依次被 执行,其中SSH传输层子协议负责在服务器和客户端建立安全通道,该子协议包括协议版 本交换、参数协商(包括密钥交换方法和密钥交换过程中使用的一系列算法)、和密钥交换 三个过程,该子协议运行结束后将协商出一个会话密钥,用于加密用户认证阶段的认证信 息、连接阶段通信双方的通信数据和文件传输阶段通信双方的通信数据。图1是SSH协议规 范定义的传输层子协议的流程图,其中K和ks分别为客户端和服务器端产生的密钥,signs 代表服务器的签名信息,Cert(服务器)代表服务器的公钥证书。SSH协议可用于安全的远 程登录、安全的远程命令执行、安全的远程文件传输、TCP/IP端口转发等等。虽然SSH协议 允许服务器与客户端相互进行身份验证,但是SSH协议没有考虑通信终端(包括服务器和 客户端)的安全性,对终端上运行的软件不提供保护也不做验证,也就是说目前的SSH协议 规范没有实现可信通道。可信通道是一个与终端的软硬件配置状态进行安全绑定的安全通 信通道。 现有的PC系统在网络化时代容易遭受恶意代码攻击、信息非法窃取、数据和系统 非法破坏等安全威胁。许多损害终端的攻击方法是通过注入病毒、蠕虫、木马、间谍软件、 钓鱼软件等多种形式的恶意代码而不是通过损害安全信道来实施的,因此在与未知端点通 信时,即使使用安全通道,仍然遭受一系列攻击。计算机信息的安全问题很难单靠软件解 决,为了解决现有PC机结构上的不安全问题,从根本上提高其可信性,可信计算平台联盟 TCPA(后来更名为TCG)提出通过增强现有的终端体系结构的安全性来保证整个系统的安 全,核心思想是在硬件平台上引入具有安全存储和加密功能的可信平台模块(又称为可信 芯片)TPM。可信计算平台以TPM为信任根,借助可信度量功能对系统平台配置进行度量,然 后安全地将系统运行情况记录在TPM中的平台配置寄存器(PCR),同时在系统保存代表了 被验证的可信平台的完整性度量历史的度量存储日志SML(storage measurement 1og)。远 程用户根据SML和相关PCR值来判断该运行环境是否可信、某些环节是否出现安全问题,这 一过程被称作远程证明。在TCG规范中,TPM使用身份证明密钥AIK (attestation identity key)来证明自己的身份,凡是经过AIK签名的实体,都表明已经经过TPM的处理。为了防止 重放、篡改、假冒等攻击,远程证明过程使用AIK来确保收到的信息是经过某一指定TPM处 理的。图2是美国IBM公司的研究人员设计的远程证明协议的流程图。在这个远程证明过 程中,首先验证请求者生成一个160bit随机数并记为nonce,并发送给被验证者;被验证者 在收到nonce后,请求内置TPM用AIK的私钥SKAIK对指定的PCR的值和nonce进行签名,3签名结果记为Quote,然后将Quote、SML和AIK公钥证书Cert (AIK)发送给验证请求者;最 后验证请求者对接收的内容进行验证,确定远程计算平台身份及其所报告内容的真实性。 可信计算可以通过提高终端的安全性来提高安全通道技术的安全强度,但是目前 还没有关于将可信计算的远程证明应用于SSH协议的研究报告或软件。
技术实现思路
本专利技术的目的在于避免上述现有技术中的不足之处而提供一种基于可信计算实 现可信SSH的方法。本方法通过将可信计算的远程证明与SSH协议的密钥交换这两个过程 进行有机整合,实现了平台状态信息验证与会话密钥协商的紧密结合,在保证数据安全传 输的前提下,加强了数据在通信端点的安全性。 本专利技术的目的可以通过以下措施来达到 —种基于可信计算实现可信SSH的方法,将可信计算的远程证明与SSH协议的密 钥交换这两个过程进行有机整合,从而实现平台状态信息验证与会话密钥协商的紧密结 合,该方法涉及客户端和服务器端,其方法的具体步骤如下 步骤l,参数协商客户端与服务器端进行参数协商,协商内容除了 SSH协议规定 的内容以外,还包括平台状态信息验证所要使用的PCR的编号;此外客户端与服务器端分 别将参数协商过程中收到的信息和发送的信息记录下来,并分别存放在MsglE和Msgls ; 步骤2,客户端发送信息给服务器端客户端首先选择一个小于p且大于1的正整 数x,计算出kc = gx mod p,并对V—Cl |V_S| |Msglc| |Msgls| |PMAIK1 Ik。进行哈希运算,哈希 运算结果记为has『;然后客户端从安装在客户端所在计算机的主板上的安全芯片TPM中 获取步骤1中指定的PCR的内容并记为PCR、使用SKm/対PCR1 |hashE进行签名,签名结 果记作sigr^ ;最后将My《4 SMIA F 、 、 Cer4.)发送给服务器端;其中P为一个大素数,g为一个正整数,V_C和V_S分别代表客户端的标识符和服务器端的标识符,符 号I I表示链接,SKAIKe、 PUKAIK1P CertA^分别为客户端AIK的私钥、公钥和公钥证书,SMLC 表示客户端平台的度量存储日志; 步骤3,服务器端验证客户端服务器端收到Msg,后,首先验证CertAI/的有效性 和合法性,如果验证没通过,则终止密钥交换过程,如果验证通过,则利用CertAIKe中的公钥 PUKAI/从signe中获得步骤2中的SMLe、 has『和PCR、并分别记作t_SMLs、 t_hashs和t_ PCRS ;然后对自身记录的V_C和V_S和MsgJ和Msgls、以及所接收到的PUKAI/和Msg,中的 kE做哈希运算,哈希运算后的结果记作s_hashs,检查t_hashs和s_hashs是否匹配,如果不 匹配,则终止密钥交换过程;如果匹配,则根据t_SML重构客户端的整个完整性度量过程, 计算并得到最终值,记作s—PCRS,判断s_PCRs与t_PCRs是否匹配,如果不匹配,则终止密钥 交换过程;如果匹配,则进入步骤4 ; 步骤4,服务器端发送信息给客户端服务器端首先选择一个小于p且大于1 的正整数y,计算出ks = gy mod p和ksc = (kc) ymod p,并对V_C | | V_S | | MsgJ | | Msgls |Msg21 |PMAIKS| |k1 |ks| |『进行哈希运算,哈希运算结果记为hashs,然后服务器端 从安装在服务器所在计算机的主板上的安全芯片TPM中获取步骤1中指定的PCR的 内容,记作PCR5,使用SKAIKS对PCR51 I hashs进行签名,签名结果记作signs ;最后将 My《=(SMLS、 F 、 、 O W:)发送给客户端;其中SKAIKS、 PUKAIKS和CertAIKs为4服务器端AIK的私钥、公钥和公钥证书,SMLS表示服务器端平台的度量存储日志; 步骤5,客户端验证本文档来自技高网
...

【技术保护点】
一种基于可信计算实现可信SSH的方法,其特征在于:将可信计算的远程证明与SSH协议的密钥交换这两个过程进行有机整合,从而实现平台状态信息验证与会话密钥协商的紧密结合,该方法涉及客户端和服务器端,其方法的具体步骤如下:步骤1,参数协商:客户端与服务器端进行参数协商,协商内容除了SSH协议规定的内容以外,还包括平台状态信息验证所要使用的PCR的编号;此外客户端与服务器端分别将参数协商过程中收到的信息和发送的信息记录下来,并分别存放在Msg↓[l]↑[c]和Msg↓[l]↑[s];↑[sc]=(k↑[c])↑[y]modp,并对V_C||V_S||Msg↓[1]↑[c]Msg↓[1]↑[c]Msg↓[2]↑[c]||PUK↓[AIK]↑[s]||k↑[c]||k↑[s]||k↑[sc]进行哈希运算,哈希运算结果记为hash↑[S],然后服务器端从安装在服务器所在计算机的主板上的安全芯片TPM中获取步骤1中指定的PCR的内容,记作PCR↑[S],使用SK↓[AIK]↑[s]对PCR↑[S]||hash↑[S]进行签名,签名结果记作sign↑[s];最后将Msg↓[2]↑[s]=(SML↑[S]、k↑[s]、sign↑[s]、Cert↓[AIK]↑[s])发送给客户端;其中SK↓[AIK]↑[S]、PUK↓[AIK]↑[S]和Cert↓[AIK]↑[S]为服务器端AIK的私钥、公钥和公钥证书,SML↑[S]表示服务器端平台的度量存储日志;步骤5,客户端验证服务器端:客户端收到Msg↓[2]↑[s]后,首先验证Cert↓[AIK]↑[S]的有效性和合法性,如果验证没通过,则终止密钥交换过程,如果验证通过,则利用Cert↓[AIK]↑[S]中的公钥PUK↓[AIK]↑[S]从sign↑[s]中获得步骤4中的SML↑[S]、hash↑[S]和PCR↑[S],并分别记作t_SML↑[c]、t_hash↑[c]和t_PCR↑[c];然后计算k↑[cs]=(k↑[s])↑[x]modp,并对自身记录的V_C和V_S和Msg↓[1]↑[c]和Msg↓[1]↑[c]和Msg↓[2]↑[c]和k↑[c]、以及接收到的PUK↓[AIK]↑[S]和Msg↓[2]↑[s]中的k↑[s]、k↑[cs]进行哈希运算,哈希运算后的结果记作c_hash↑[c];检查t_hash↑[c]和c_hash↑[c]是否匹配,如果不匹配,则终止密钥交换过程;如果...

【技术特征摘要】
一种基于可信计算实现可信SSH的方法,其特征在于将可信计算的远程证明与SSH协议的密钥交换这两个过程进行有机整合,从而实现平台状态信息验证与会话密钥协商的紧密结合,该方法涉及客户端和服务器端,其方法的具体步骤如下步骤1,参数协商客户端与服务器端进行参数协商,协商内容除了SSH协议规定的内容以外,还包括平台状态信息验证所要使用的PCR的编号;此外客户端与服务器端分别将参数协商过程中收到的信息和发送的信息记录下来,并分别存放在Msglc和Msgls;步骤2,客户端发送信息给服务器端客户端首先选择一个小于p且大于1的正整数x,计算出kc=gxmodp,并对V_C||V_S||Msglc||Msgls||PUKAIKc||kc进行哈希运算,哈希运算结果记为hashc;然后客户端从安装在客户端所在计算机的主板上的安全芯片TPM中获取步骤1中指定的PCR的内容并记为PCRc,使用SKAIKc对PCRc||hashc进行签名,签名结果记作signc;最后将发送给服务器端;其中p为一个大素数,g为一个正整数,V_C和V_S分别代表客户端的标识符和服务器端的标识符,符号||表示链接,SKAIKc、PUKAIKc和CertAIKc分别为客户端AIK的私钥、公钥和公钥证书,SMLc表示客户端平台的度量存储日志;步骤3,服务器端验证客户端服务器端收到Msg2c后,首先验证CertAIKc的有效性和合法性,如果验证没通过,则终止密钥交换过程,如果验证通过,则利用CertAIKc中的公钥PUKAIKc从signc中获得步骤2中的SMLc、hashc和PCRc,并分别记作t_SMLS、t_hashS和t_PCRS;然后对自身记录的V_C和V_S和MsgIc和MsgIs、以及所接收到的PUKAIKc和Msg2c中的kc做哈希运算,哈希运算后的结果记作s_hashS,检查t_hashS和s_hashS是否匹配,如果不匹配,则终止密钥交换过程;如果匹配,则根据t_SML重构客户端的整个完整性度量过程,计算并得到最终值,记作s_P...

【专利技术属性】
技术研发人员:常晓林左向晖韩臻刘吉强刘新明邢彬
申请(专利权)人:北京交通大学
类型:发明
国别省市:11[中国|北京]

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

1