CN101789939B - 一种有效的可信OpenSSH的实现方法 - Google Patents

一种有效的可信OpenSSH的实现方法 Download PDF

Info

Publication number
CN101789939B
CN101789939B CN 201010100818 CN201010100818A CN101789939B CN 101789939 B CN101789939 B CN 101789939B CN 201010100818 CN201010100818 CN 201010100818 CN 201010100818 A CN201010100818 A CN 201010100818A CN 101789939 B CN101789939 B CN 101789939B
Authority
CN
China
Prior art keywords
tpm
server
ssh
client
type
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
CN 201010100818
Other languages
English (en)
Other versions
CN101789939A (zh
Inventor
常晓林
左向晖
刘新明
韩臻
刘吉强
邢彬
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.)
Beijing Jiaotong University
Original Assignee
Beijing Jiaotong University
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 Beijing Jiaotong University filed Critical Beijing Jiaotong University
Priority to CN 201010100818 priority Critical patent/CN101789939B/zh
Publication of CN101789939A publication Critical patent/CN101789939A/zh
Application granted granted Critical
Publication of CN101789939B publication Critical patent/CN101789939B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明涉及一种有效的可信OpenSSH的实现方法,方法的组件包括功能增强的参数协商模块和功能增强的会话密钥交换模块,方法的具体步骤如下:步骤1,对身份认证算法协商串的形成过程进行修改,步骤2,对选择身份认证算法的过程进行修改,步骤3,在可信客户端增加两个变量,分别用客户类型和服务器类型表示,步骤4,在可信服务器端增加两个变量,分别用客户类型和服务器类型表示,步骤5,对可信客户端会话密钥交换处理模块进行修改,步骤6,对可信服务器端密钥交换处理模块进行修改。本发明在实现可信信道的同时充分考虑系统性能、可扩展性和功能向后兼容性。

Description

一种有效的可信OpenSSH的实现方法
技术领域
本发明涉及一种有效的可信OpenSSH的实现方法,属于计算机信息安全领域。
背景技术
SSH(Secure Shell)协议是IETF的网络工作小组制定了一个安全协议,用于保护客户端与服务器端之间传输的数据。SSH协议采用了分层结构设计,包括四个子协议:SSH传输层子协议、用户认证子协议、连接子协议和文件传输子协议。客户端与服务器端利用SSH协议进行通信时,首先执行的是SSH传输层子协议,它负责在服务器和客户端建立安全信道,该子协议包括协议版本交换、参数协商(参数协商内容包括密钥交换方法、身份认证算法、哈希算法、加密算法和压缩算法这五类)、会话密钥交换三个过程,该子协议运行结束后将协商出一个会话密钥,用于加密用户认证阶段的认证信息、连接阶段通信双方的通信数据和文件传输阶段通信双方的通信数据。
OpenSSH是一个完整地实现了SSH协议的免费开源软件包。在OpenSSH软件的参数协商过程中,客户端和服务器端首先分别按照自己安全策略对每类协商内容生成一个协商串,客户端生成的协商串称为客户协商串,服务器端生成的协商串称为服务器协商串,每个协商串包含数个候选项,按照优先级由高到低从左到右排列,各项之间用逗号隔开;然后客户端和服务器端将各自生成的协商串保留一份在本地,同时将这5个协商串与一个32位的备用变量以及其他信息形成一个协商数据包,发送给对方。在OpenSSH中,客户端和服务器端使用相同的身份认证算法协商模块来处理接收到的协商数据包,该模块的处理过程如下:客户端和服务器端在接收到对方的协商数据包后,将自己发给对方的协商串与收到的协商串进行比较,对于每个协商串,都按照客户端形成的候选项优先级顺序,选取优先级高的并且在服务器的协商串中出现的候选项,作为该类的协商结果。参数协商结果将用于下一步的会话密钥交换过程中。在OpenSSH中客户端和服务器端使用不同的模块来处理会话密钥交换,其中客户端使用客户端会话密钥交换处理模块,而服务器端使用服务器端会话密钥交换处理模块。
计算机信息的安全问题很难单靠软件解决,为了解决现有PC机的不安全问题,从根本上提高其可信性,可信计算平台联盟TCPA(后来更名为TCG)提出通过增强现有的终端体系结构的安全性来保证整个系统的安全,核心思想是在硬件平台上引入具有安全存储和加密功能的可信平台模块(又称为可信芯片)TPM。可信计算平台以TPM为信任根,借助其他可信度量模块对系统平台配置进行度量,然后安全地将系统运行情况记录在TPM中的平台配置寄存器(PCR),同时在系统保存代表了被验证的可信平台的完整性度量历史的度量存储日志SML(storage measurement log)。远程用户根据SML和相关PCR值来判断该运行环境是否可信、某些环节是否出现安全问题,这一过程被称作远程证明。在TCG规范中,TPM使用身份证明密钥AIK(attestation identity key)来证明自己的身份,凡是经过AIK签名的实体,都表明已经经过TPM的处理。为了防止重放、篡改、假冒等攻击,远程证明要求被验证的一方要使用AIK对数据进行签名。
目前许多损害终端的攻击是通过注入恶意代码而不是通过损害安全信道来实施的,这造成了一个终端在与未知端点通信时,即使使用安全信道,仍然可能遭受一系列攻击。北京交通大学常晓林申请了一个实现可信SSH的专利(申请号200910241782.7,一种基于可信计算实现可信SSH的方法),该专利提出了将可信计算的远程证明与SSH协议的会话密钥交换这两个过程进行有机整合,从而实现SSH可信信道。但是该专利只是设计了可信会话密钥交换协议,没有考虑和解决具体实现过程中将遇到安全、功能兼容、性能、快速部署等问题。
发明内容
本发明的目的是提供一种有效的可信OpenSSH的实现方法,在实现可信信道的同时充分考虑系统性能、可扩展性和功能向后兼容性。
本发明的技术方案为,一种有效的可信OpenSSH的实现方法的组件包括功能增强的参数协商模块和功能增强的会话密钥交换模块,方法的具体步骤如下:
步骤1,对身份认证算法协商串的形成过程进行修改:增加三个候选项,分别用变量ssh-TPM-TPM、ssh-TPM-option和ssh-option-TPM来表示;可信客户端与可信服务器端根据自己的策略分别构造一个身份认证算法协商串,每个协商串用大括号括起来,可选择的身份认证算法协商串有6种:自己可提供平台状态信息同时要求对方必须提供平台状态信息的身份认证算法协商串{ssh-option-TPM,ssh-TPM-TPM},自己不能提供平台状态信息但要求对方必须提供平台状态信息的身份认证算法协商串{ssh-option-TPM},自己可提供平台状态信息而且不要求对方必须提供平台状态信息的身份认证算法协商串{ssh-rsa,ssh-dss,ssh-TPM-option}、{ssh-dss,ssh-rsa,ssh-TPM-option},自己不能提供平台状态信息而且不要求对方必须提供平台状态信息的身份认证算法协商串{ssh-rsa,ssh-dss}、{ssh-dss,ssh-rsa};
步骤2,对选择身份认证算法的过程进行修改:可信服务器端和可信客户端在收到对方发送的协商数据包后,首先将数据包中出现的ssh-TPM-option和ssh-option-TPM分别用ssh-option-TPM和ssh-TPM-option替换,然后使用SSH标准协议中定义的匹配规则确定要采用的身份认证算法;
步骤3,在可信客户端增加两个变量,分别用客户类型和服务器类型表示,可信客户端在确定所采用的身份认证算法之后,但在进行会话密钥交换之前,要对这两个变量进行设置,如果选定的身份认证算法是“ssh-TPM-TPM”,则将客户类型和服务器类型均设置为“TPM”,如果选定的身份认证算法是“ssh-option-TPM”,则将客户类型设置空且将服务器类型设置为“TPM”,如果选定的身份认证算法是“ssh-TPM-option”,则将客户类型设置“TPM”且将服务器类型设置为空,如果选定的身份认证算法是“ssh-rsa”或“ssh-dss”,则将客户类型和服务器类型均设置为空;
步骤4,在可信服务器端增加两个变量,分别用客户类型和服务器类型表示,可信服务器端在确定所采用的身份认证算法之后,但在进行会话密钥交换之前,要对这两个变量进行设置,如果选定的身份认证算法是“ssh-TPM-TPM”,则将客户类型和服务器类型均设置为“TPM”,如果选定的身份认证算法是“ssh-option-TPM”,则将服务器类型设置空且将客户类型设置为“TPM”,如果选定的身份认证算法是“ssh-TPM-option”,则将客户类型设置空且将服务器类型设置为“TPM”,如果选定的身份认证算法是“ssh-rsa”或“ssh-dss”,则将客户类型和服务器类型均设置为空;
步骤5,对可信客户端会话密钥交换处理模块进行修改;
步骤6,对可信服务器端密钥交换处理模块进行修改。
所述步骤5的具体过程为:
步骤11,可信客户端收到服务器端发送来的p和g后,首先选择一个小于p且大于1的正整数x,计算kc=gxmod p,如果客户类型不等于“TPM”,则设ssc=kc,进入步骤12;如果客户类型等于“TPM”,则调用客户平台状态信息生成模块来生成ssc,进入步骤12;其中p和g为Diffie-Hellman公开密钥算法的全局公开参数,ssc表示一个字符串,kc为客户端生成的值;
步骤12,可信客户端发现可信服务器端发送数据包后,首先接收PKs,ks,Signs,计算kcs=(ks)xmodp并调用一个哈希计算模块来计算pn_string‖PKs‖dh_string‖kc‖ks‖kcs的哈希值hashcs;如果服务器类型不等于“TPM”,则调用OpenSSH原来的验证模块来验证Signs,如果验证失败则终止与服务器端的通信,验证成功进入步骤13;如果服务器类型等于“TPM”,则调用客户端验证服务器平台状态信息模块对Signs进行验证,验证失败则终止与服务器端的通信,验证成功就进入步骤13;其中符号‖表示链接,变量pn_string代表V_C‖V_S‖client_pn‖server_pn,变量dh_string代表min‖n‖max‖p‖g,V_C和V_S分别代表客户端的标识符和服务器端的标识符,client_pn和server_pn分别代表客户端的参数协商结果和服务器端的参数协商结果,min、n、max是p和g的取值范围,PKs为服务器端的公钥,ks为服务器端生成的值,Signs为服务器端生成的签名信息,Signc为客户端生成的签名信息;
步骤13,发送“会话密钥交换结束”数据包给服务器端,在接收到服务器端的“会话密钥交换结束”数据包后,结束密钥协商过程。
所述步骤6的具体过程为:
步骤21,服务器将p和g发送给可信客户端后,就等待可信客户端发送数据包;当发现可信客户端发送数据包后,首先接收kc,如果客户类型不等于“TPM”,则进入步骤22,否则调用服务器验证客户平台状态信息模块,如果验证通过,则判断服务器类型是否等于“TPM”,如果等于则设置 PK s = PK AIK s , 然后进入步骤22,如果不等于则进入步骤22;其中PKAIK s为服务器端AIK的公钥;
步骤22,选择一个小于p且大于1的正整数y,计算ks=gymod p和ksc=(kc)ymodp,并计算pn_string‖PKs‖dh_string‖kc‖ks‖ksc的哈希值hashs,如果可信服务器类型不等于“TPM”,则调用OpenSSH原来的签名模块生成签名结果Signs,设sss=(PKs,ks,Signs),然后进入步骤23;如果可信服务器类型等于“TPM”,则调用服务器平台状态信息生成模块生成sss,然后进入步骤23;其中sss表示一个字符串;
步骤23,将sss发送给可信客户端,然后再发送“会话密钥交换结束”数据包给可信客户端,在接收到可信客户端的“会话密钥交换结束”数据包后,结束密钥协商过程。
所述步骤11中的客户平台状态信息生成模块的具体过程为:计算pn_string‖PKAIK c‖dh_string‖kc的哈希值hashc,并根据客户端策略选定PCR,记作PCRc,然后根据TCG规范,将hashc和PCRc传给TPM设备,TPM设备生成一个签名,记作Quotec,设 ss c = ( k c , PK AIK c , Quote c , SML c ) ; 其中SMLc表示客户端的平台度量存储日志,PKAIK c为客户端AIK的公钥。
所述步骤21中的服务器验证客户平台状态信息模块的具体过程为:接收PKAIK c、Quotec和SMLc,利用PKAIK c从Quotec中获得PCRc和hashc,根据SMLc和PCRc对可信客户端平台状态进行验证,如果验证没通过,则终止与可信客户端的通信,否则计算pn_string‖PKAIK c‖dh_string‖kc的哈希值,并与hashc进行比较,如果验证不匹配,则终止与可信客户端的通信,如果验证匹配,则结束。
所述步骤22中的服务器平台状态信息生成模块的具体过程为:服务器根据自己策略选定PCR并记作PCRs,然后根据TCG规范,将hashs和PCRs传给TPM设备,TPM设备生成一个签名,记作Quotes,设Signs=Quotes且sss=(PKs,ks,Signs,SMLs),结束;其中SMLs表示服务器端的平台度量存储日志。
所述步骤12中的客户端验证服务器平台状态信息模块的具体过程为:接收SMLs,利用PKs从Signs中获得PCRs和hashs,根据SMLs和PCRs对服务器端平台进行验证,如果验证没通过,则终止与可信服务器端的通信,否则判断hashcs与hashs是否相等,如果验证不等,则终止与可信服务器端的通信,否则结束。
方法具有以下特性:(1)融合了可信计算中的平台状态验证的会话密钥交换模块能够确保会话密钥交换过程所协商的会话密钥是由可信终端完成的,从而确保平台状态信息和安全信道的真实连接,实现了SSH可信信道;(2)实施了本方法的通信双方可以灵活地选择通信方式,可以进行基于只认证单方平台状态的可信信道的通信、基于认证双方平台状态的可信信道的通信、基于标准SSH协议的通信,(3)本方法具有功能向后兼容特性,实施了本方法的终端可以与没有实施本方法的终端进行基于标准SSH协议的通信;(4)本方法通过功能增强的参数协商和功能增强的会话密钥交换模块的紧密配合,防范了攻击者利用参数协商过程中明文传输的特性发起的攻击;(5)本方法充分利用OpenSSH已有的数据结构、变量和代码,尽可能减少对SSH协议规范和OpenSSH原软件系统的修改,因此可扩展性好,支持快速部署。
附图说明
图1为实施了本发明提供的方法的会话密钥交换的流程图;
图2为本发明提供的方法中的客户平台状态信息生成模块的流程图;
图3为本发明提供的方法中的服务器端验证客户平台状态信息模块的流程图;
图4为本发明提供的方法中的服务器平台状态信息生成模块的流程图;
图5为本发明提供的方法中的客户端验证服务器平台状态信息模块的流程图;
具体实施方式
本发明提供的方法在硬件上假设服务器和客户端都配有可信安全芯片TPM,而且服务器和客户端的BIOS都支持TPM;在软件上假设服务器和客户端安装了操作系统可信引导管理器,安装了支持硬件TPM和可信度量模快的可信操作系统,此外服务器和客户端安装了TPM软件协议栈(TrouSers)软件。本发明提供的方法在开源OpenSSH软件4.7版本和以上版本的具体实施步骤如下:
步骤1,对身份认证算法协商串的形成过程进行修改:增加三个候选项,分别用变量ssh-TPM-TPM、ssh-TPM-option和ssh-option-TPM来表示;可信客户端与可信服务器端根据自己的策略分别构造一个身份认证算法协商串,每个协商串用大括号括起来,可选择的身份认证算法协商串有6种:自己可提供平台状态信息同时要求对方必须提供平台状态信息的身份认证算法协商串{ssh-option-TPM,ssh-TPM-TPM},自己不能提供平台状态信息但要求对方必须提供平台状态信息的身份认证算法协商串{ssh-option-TPM},自己可提供平台状态信息而且不要求对方必须提供平台状态信息的身份认证算法协商串{ssh-rsa,ssh-dss,ssh-TPM-option}、{ssh-dss,ssh-rsa,ssh-TPM-option},自己不能提供平台状态信息而且不要求对方必须提供平台状态信息的身份认证算法协商串{ssh-rsa,ssh-dss}、{ssh-dss,ssh-rsa}。
步骤2,对选择身份认证算法的过程进行修改:服务器端和客户端在收到对方发送的协商数据包后,首先将数据包中出现的ssh-TPM-option和ssh-option-TPM分别用ssh-option-TPM和ssh-TPM-option替换,然后使用SSH标准协议中定义的匹配规则确定要采用的身份认证算法。
步骤3,在可信客户端增加两个变量,分别用客户类型和服务器类型表示,可信客户端在确定所采用的身份认证算法之后,但在进行会话密钥交换之前,要对这两个变量进行设置,如果选定的身份认证算法是“ssh-TPM-TPM”,则将客户类型和服务器类型均设置为“TPM”,如果选定的身份认证算法是“ssh-option-TPM”,则将客户类型设置空且将服务器类型设置为“TPM”,如果选定的身份认证算法是“ssh-TPM-option”,则将客户类型设置“TPM”且将服务器类型设置为空,如果选定的身份认证算法是“ssh-rsa”或“ssh-dss”,则将客户类型和服务器类型均设置为空。
步骤4,在可信服务器端增加两个变量,分别用客户类型和服务器类型表示,可信服务器端在确定所采用的身份认证算法之后,但在进行会话密钥交换之前,要对这两个变量进行设置,如果选定的身份认证算法是“ssh-TPM-TPM”,则将客户类型和服务器类型均设置为“TPM”,如果选定的身份认证算法是“ssh-option-TPM”,则将服务器类型设置空且将客户类型设置为“TPM”,如果选定的身份认证算法是“ssh-TPM-option”,则将客户类型设置空且将服务器类型设置为“TPM”,如果选定的身份认证算法是“ssh-rsa”或“ssh-dss”,则将客户类型和服务器类型均设置为空。
步骤5,根据图1右边客户端的流程图对可信客户端会话密钥交换处理模块进行修改。
步骤6,根据图1左边服务器端的流程图对可信服务器端密钥交换处理模块进行修改。
步骤7,分别根据图2、3、4、5实现客户平台状态信息生成模块、服务器端验证客户平台状态信息模块、服务器平台状态信息生成模块、客户端验证服务器平台状态信息模块。
下面根据图1对可信客户端会话密钥交换处理模块的工作流程作详述:
步骤1,可信客户端收到服务器端发送来的p和g后,首先选择一个小于p且大于1的正整数x,计算kc=gxmodp,如果客户类型不等于“TPM”,则设ssc=kc,进入步骤2;如果客户类型等于“TPM”,则调用客户平台状态信息生成模块来生成ssc,进入步骤2;其中p和g为Diffie-Hellman公开密钥算法的全局公开参数,ssc表示一个字符串,kc为客户端生成的值。
步骤2,可信客户端发现可信服务器端发送数据包后,首先接收PKs,ks,Signs,计算kcs=(ks)x mod p并调用一个哈希计算模块来计算pn_string‖PKs‖dh_string‖kc‖ks‖kcs的哈希值hashcs;如果服务器类型不等于“TPM”,则调用OpenSSH原来的验证模块来验证Signs,如果验证失败则终止与服务器端的通信,验证成功进入步骤3;如果服务器类型等于“TPM”,则调用客户端验证服务器平台状态信息模块对Signs进行验证,验证失败则终止与服务器端的通信,验证成功就进入步骤3;其中符号‖表示链接,变量pn_string代表V_C‖V_S‖client_pn‖server_pn,变量dh_string代表min‖n‖max‖p‖g,V_C和V_S分别代表客户端的标识符和服务器端的标识符,client_pn和server_pn分别代表客户端的参数协商结果和服务器端的参数协商结果,min、n、max是p和g的取值范围,PKs为服务器端的公钥,ks为服务器端生成的值,Signs为服务器端生成的签名信息,Signc为客户端生成的签名信息。
步骤3,发送“会话密钥交换结束”数据包给服务器端,在接收到服务器端的“会话密钥交换结束”数据包后,结束密钥协商过程。
下面根据图1对可信服务器端会话密钥交换处理模块的工作流程作详述:
步骤1,服务器将p和g发送给可信客户端后,就等待可信客户端发送数据包;当发现可信客户端发送数据包后,首先接收kc,如果客户类型不等于“TPM”,则进入步骤2,否则调用服务器验证客户平台状态信息模块,如果验证通过,则判断服务器类型是否等于“TPM”,如果等于则设置 PK s = PK AIK s , 然后进入步骤2,如果不等于则进入步骤2;其中PKAIK s为服务器端AIK的公钥;
步骤2,选择一个小于p且大于1的正整数y,计算ks=gy mod p和ksc=(kc)ymodp,并计算pn_string‖PKs‖dh_string‖kc‖ks‖ksc的哈希值hashs,如果可信服务器类型不等于“TPM”,则调用OpenSSH原来的签名模块生成签名结果Signs,设sss(PKs,ks,Signs),然后进入步骤3;如果可信服务器类型等于“TPM”,则调用服务器平台状态信息生成模块生成sss,然后进入步骤3;其中sss表示一个字符串。
步骤3,将sss发送给可信客户端,然后再发送“会话密钥交换结束”数据包给可信客户端,在接收到可信客户端的“会话密钥交换结束”数据包后,结束密钥协商过程。
下面根据图2对客户平台状态信息生成模块的工作流程作详述:计算pn_string‖PKAIK c‖dh_string‖kc的哈希值hashc,并根据客户端策略选定PCR,记作PCRc,然后根据TCG规范,将hashc和PCRc传给TPM设备,TPM设备生成一个签名,记作Quotec,设 ss c = ( k c , PK AIK c , Quote c , SML c ) ; 其中SMLc表示客户端的平台度量存储日志,PKAIK c为客户端AIK的公钥。
下面根据图3对服务器验证客户平台状态信息模块的工作流程作详述:接收PKAIK c、Quotec和SMLc,利用PKAIK c从Quotec中获得PCRc和hashc,根据SMLc和PCRc对可信客户端平台状态进行验证,如果验证没通过,则终止与可信客户端的通信,否则计算pn_string‖PKAIK c‖dh_string‖kc的哈希值,并与hashc进行比较,如果验证不匹配,则终止与可信客户端的通信,如果验证匹配,则结束。
下面根据图4对服务器平台状态信息生成模块的工作流程作详述:服务器根据自己策略选定PCR并记作PCRs,然后根据TCG规范,将hashs和PCRs传给TPM设备,TPM设备生成一个签名,记作Quotes,设Signs=Quotes且sss=(PKs,ks,Signs,SMLs),结束;其中SMLs表示服务器端的平台度量存储日志。
下面根据图5对客户端验证服务器平台状态信息模块的工作流程作详述:接收SMLs,利用PKs从Signs中获得PCRs和hashs,根据SMLs和PCRs对服务器端平台进行验证,如果验证没通过,则终止与可信服务器端的通信,否则判断hashcs与hashs是否相等,如果验证不等,则终止与可信服务器端的通信,否则结束。
通过上述方法,下列形式的通信都能够进行:(1)实施了本方法的通信双方可以进行基于只涉及单方平台状态的可信信道的通信、基于涉及双方平台状态的可信信道的通信、基于标准SSH协议的通信;(2)实施了本方法的终端可以与没有实施本方法的终端进行基于标准SSH协议的通信。

Claims (5)

1.一种有效的可信OpenSSH的实现方法,其特征在于:方法涉及的组件包括功能增强的参数协商模块和功能增强的会话密钥交换模块,方法的具体步骤如下: 
步骤1,对身份认证算法协商串的形成过程进行修改:增加三个候选项,分别用变量ssh-TPM-TPM、ssh-TPM-option和ssh-option-TPM来表示;可信客户端与可信服务器端根据自己的策略分别构造一个身份认证算法协商串,每个协商串用大括号括起来,可选择的身份认证算法协商串有6种:自己可提供平台状态信息同时要求对方必须提供平台状态信息的身份认证算法协商串{ssh-option-TPM,ssh-TPM-TPM},自己不能提供平台状态信息但要求对方必须提供平台状态信息的身份认证算法协商串{ssh-option-TPM},自己可提供平台状态信息而且不要求对方必须提供平台状态信息的身份认证算法协商串{ssh-rsa,ssh-dss,ssh-TPM-option}、{ssh-dss,ssh-rsa,ssh-TPM-option},自己不能提供平台状态信息而且不要求对方必须提供平台状态信息的身份认证算法协商串{ssh-rsa,ssh-dss}、{ssh-dss,ssh-rsa}; 
步骤2,对选择身份认证算法的过程进行修改:可信服务器端和可信客户端在收到对方发送的协商数据包后,首先将数据包中出现的ssh-TPM-option和ssh-option-TPM分别用ssh-option-TPM和ssh-TPM-option替换,然后使用SSH标准协议中定义的匹配规则确定要采用的身份认证算法; 
步骤3,在可信客户端增加两个变量,分别用客户类型和服务器类型表示,可信客户端在确定所采用的身份认证算法之后,但在进行会话密钥交换之前,要对这两个变量进行设置,如果选定的身份认证算法是“ssh-TPM-TPM”,则将客户类型和服务器类型均设置为“TPM”,如果选定的身份认证算法是“ssh-option-TPM”,则将客户类型设置空且将服务器类型设置为“TPM”,如果选定的身份认证算法是“ssh-TPM-option”,则将客户类型设置“TPM”且将服务器类型设置为空,如果选定的身份认证算法是“ssh-rsa”或“ssh-dss”,则将客户类型和服务器类型均设置为空; 
步骤4,在可信服务器端增加两个变量,分别用客户类型和服务器类型表示,可信服务器端在确定所采用的身份认证算法之后,但在进行会话密钥交换之前,要对这两个变量进行设置,如果选定的身份认证算法是“ssh-TPM-TPM”,则将客户类型和服务器类型均设置为“TPM”,如果选定的身份认证算法是“ssh-option-TPM”,则将服务器类型设置空且将客户类型设置为“TPM”,如 果选定的身份认证算法是“ssh-TPM-option”,则将客户类型设置空且将服务器类型设置为“TPM”,如果选定的身份认证算法是“ssh-rsa”或“ssh-dss”,则将客户类型和服务器类型均设置为空; 
步骤5,对可信客户端会话密钥交换处理模块进行修改; 
步骤6,对可信服务器端密钥交换处理模块进行修改; 
所述步骤5的具体过程为: 
步骤11,可信客户端收到服务器端发送来的p和g后,首先选择一个小于p且大于1的正整数x,计算kc=gx mod p,如果客户类型不等于“TPM”,则设ssc=kc,进入步骤12;如果客户类型等于“TPM”,则调用客户平台状态信息生成模块来生成ssc,进入步骤12;其中p和g为Diffie-Hellman公开密钥算法的全局公开参数,ssc表示一个字符串,kc为客户端生成的值; 
步骤12,可信客户端发现可信服务器端发送数据包后,首先接收PKs,ks,Signs,计算kcs=(ks)x mod p并调用一个哈希计算模块来计算pn_string||PKs||dh_string||kc||ks||kcs的哈希值hashcs;如果服务器类型不等于“TPM”,则调用OpenSSH原来的验证模块来验证Signs,如果验证失败则终止与服务器端的通信,验证成功进入步骤13;如果服务器类型等于“TPM”,则调用客户端验证服务器平台状态信息模块对Signs进行验证,验证失败则终止与服务器端的通信,验证成功就进入步骤13;其中符号||表示链接,变量pn_string代表V_C||V_S||client_pn||server_pn,变量dh_string代表min||n||max||p||g,V_C和V_S分别代表客户端的标识符和服务器端的标识符,client_pn和server_pn分别代表客户端的参数协商结果和服务器端的参数协商结果,min、n、max为客户端确定的算法常数,用于发送给服务器生成p和g,PKs为服务器端的公钥,ks为服务器端生成的值,Signs为服务器端生成的签名信息,Signc为客户端生成的签名信息; 
步骤13,发送“会话密钥交换结束”数据包给服务器端,在接收到服务器端的“会话密钥交换结束”数据包后,结束密钥协商过程; 
所述步骤6的具体过程为: 
步骤21,服务器将p和g发送给可信客户端后,就等待可信客户端发送数据包;当发现可信客户端发送数据包后,首先接收kc,如果客户类型不等于“TPM”,则进入步骤22,否则调用服务器验证客户平台状态信息模块,如果验证通过,则判断服务器类型是否等于“TPM”,如果等于则设置
Figure FSB00001042151100021
然后进入步骤22,如果不等于则进入步骤22;其中
Figure FSB00001042151100022
为服务器端的身份证 明密钥AIK的公钥; 
步骤22,选择一个小于p且大于1的正整数y,计算ks=gy mod p和ksc=(kc)ymodp,并计算pn_string||PKs||dh_string||kc||ks||ksc的哈希值hashs,如果可信服务器类型不等于“TPM”,则调用OpenSSH原来的签名模块生成签名结果Signs,设sss=(PKs,ks,Signs),然后进入步骤23;如果可信服务器类型等于“TPM”,则调用服务器平台状态信息生成模块生成sss,然后进入步骤23;其中sss表示一个字符串; 
步骤23,将sss发送给可信客户端,然后再发送“会话密钥交换结束”数据包给可信客户端,在接收到可信客户端的“会话密钥交换结束”数据包后,结束密钥协商过程。 
2.基于权利要求1所述的一种有效的可信OpenSSH的实现方法,其特征在于:所述步骤11中的调用客户平台状态信息生成模块的具体过程为:计算 
Figure FSB00001042151100031
的哈希值hashc,并根据客户端策略选定平台配置寄存器PCR,记作PCRc,然后根据TCG规范,将hashc和PCRc传给可信平台模块TPM设备,可信平台模块TPM设备生成一个签名,记作Quotec,设 
Figure FSB00001042151100032
其中SMLc表示客户端的平台度量存储日志,
Figure FSB00001042151100033
为客户端身份证明密钥AIK的公钥。 
3.基于权利要求2所述的一种有效的可信OpenSSH的实现方法,其特征在于:所述步骤21中调用的服务器验证客户平台状态信息模块的具体过程为:接收
Figure FSB00001042151100034
Quotec和SMLc,利用从Quotec中获得PCRc和hashc,根据SMLc和PCRc对可信客户端平台状态进行验证,如果验证没通过,则终止与可信客户端的通信,否则计算
Figure FSB00001042151100036
的哈希值,并与hashc进行比较,如果验证不匹配,则终止与可信客户端的通信,如果验证匹配,则结束。 
4.基于权利要求2所述的一种有效的可信OpenSSH的实现方法,其特征在于:所述步骤22中调用的服务器平台状态信息生成模块的具体过程为:服务器根据自己策略选定平台配置寄存器PCR并记作PCRs,然后根据TCG规范,将hashs和PCRs传给TPM设备,TPM设备生成一个签名,记作Quotes,设Signs=Quotes且sss=(PKs,ks,Signs,SMLs),结束;其中SMLs表示服务器端的平台度量存储日志。 
5.基于权利要求4所述的一种有效的可信OpenSSH的实现方法,其特征在于:所述步骤12中调用的客户端验证服务器平台状态信息模块的具体过程为:接收服务器端的平台度量存储日志SMLs,利用PKs从Signs中获得PCRs和 hashs,根据SMLs和PCRs对服务器端平台进行验证,如果验证没通过,则终止与可信服务器端的通信,否则判断hashcs与hashs是否相等,如果验证不等,则终止与可信服务器端的通信,否则结束。 
CN 201010100818 2010-01-25 2010-01-25 一种有效的可信OpenSSH的实现方法 Expired - Fee Related CN101789939B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN 201010100818 CN101789939B (zh) 2010-01-25 2010-01-25 一种有效的可信OpenSSH的实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN 201010100818 CN101789939B (zh) 2010-01-25 2010-01-25 一种有效的可信OpenSSH的实现方法

Publications (2)

Publication Number Publication Date
CN101789939A CN101789939A (zh) 2010-07-28
CN101789939B true CN101789939B (zh) 2013-10-30

Family

ID=42532993

Family Applications (1)

Application Number Title Priority Date Filing Date
CN 201010100818 Expired - Fee Related CN101789939B (zh) 2010-01-25 2010-01-25 一种有效的可信OpenSSH的实现方法

Country Status (1)

Country Link
CN (1) CN101789939B (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103888438A (zh) * 2013-03-01 2014-06-25 上海富欣智能交通控制有限公司 应用信息安全技术的列车数据通信系统
CN104754608B (zh) * 2013-12-25 2019-06-28 腾讯科技(深圳)有限公司 实现移动终端性能监控的方法和系统
CN106230595B (zh) * 2016-07-21 2019-09-03 北京可信华泰信息技术有限公司 一种可信平台控制模块的授权协议
CN106713338A (zh) * 2017-01-03 2017-05-24 上海金融云服务集团安全技术有限公司 一种基于服务器硬件信息的长连接隧道建立方法
CN108111301B (zh) * 2017-12-13 2021-06-15 中国联合网络通信集团有限公司 基于后量子密钥交换实现ssh协议的方法及其系统
CN115085966B (zh) * 2022-04-28 2024-04-05 麒麟软件有限公司 一种建立openpts远程可信连接的方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101217549A (zh) * 2008-01-17 2008-07-09 赵运磊 高效、不可锻造、不需数字签名的ssh运输层认证协议

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101217549A (zh) * 2008-01-17 2008-07-09 赵运磊 高效、不可锻造、不需数字签名的ssh运输层认证协议

Also Published As

Publication number Publication date
CN101789939A (zh) 2010-07-28

Similar Documents

Publication Publication Date Title
CN109716375B (zh) 区块链账户的处理方法、装置和存储介质
CN111095899B (zh) 针对可信执行环境的分布式密钥管理
US9208335B2 (en) Space-time separated and jointly evolving relationship-based network access and data protection system
Bhatia et al. Data security in mobile cloud computing paradigm: a survey, taxonomy and open research issues
CN103118027B (zh) 基于国密算法建立tls通道的方法
US8533806B2 (en) Method for authenticating a trusted platform based on the tri-element peer authentication(TEPA)
WO2019084578A1 (en) METHOD, APPARATUS AND SYSTEM FOR REMOTELY CERTIFIED PROOF
Lin et al. A new strong-password authentication scheme using one-way hash functions
CN109359464B (zh) 一种基于区块链技术的无线安全认证方法
CN103888251A (zh) 一种云环境中虚拟机可信保障的方法
CN101741842A (zh) 一种基于可信计算实现可信ssh的方法
US8145917B2 (en) Security bootstrapping for distributed architecture devices
CN101241528A (zh) 终端接入可信pda的方法和接入系统
CN106576043A (zh) 病毒式可分配可信消息传送
CN101789939B (zh) 一种有效的可信OpenSSH的实现方法
CN105873031A (zh) 基于可信平台的分布式无人机认证和密钥协商方法
Frymann et al. Asynchronous remote key generation: An analysis of yubico's proposal for W3C webauthn
Obert et al. Recommendations for trust and encryption in DER interoperability standards
EP4022840A1 (en) Decentralized techniques for verification of data in transport layer security and other contexts
Zhang et al. BTNC: A blockchain based trusted network connection protocol in IoT
CN114036539A (zh) 基于区块链的安全可审计物联网数据共享系统及方法
US8954728B1 (en) Generation of exfiltration-resilient cryptographic keys
CN111241492A (zh) 一种产品多租户安全授信方法、系统及电子设备
CN101834852B (zh) 一种保护平台信息的可信OpenSSH的实现方法
CN110572392A (zh) 一种基于Hyperledger网络的身份认证方法

Legal Events

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

Granted publication date: 20131030

Termination date: 20140125