[发明专利]一种服务器带外管理的可信接入方法在审
申请号: | 202110046061.1 | 申请日: | 2021-01-14 |
公开(公告)号: | CN112733129A | 公开(公告)日: | 2021-04-30 |
发明(设计)人: | 张建标;韩利;赵东浩;张璐;梁紫建 | 申请(专利权)人: | 北京工业大学 |
主分类号: | G06F21/45 | 分类号: | G06F21/45;G06F21/44;G06F21/31;G06F21/64;G06F21/60 |
代理公司: | 北京思海天达知识产权代理有限公司 11203 | 代理人: | 楼艮基 |
地址: | 100124 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 服务器 管理 可信 接入 方法 | ||
1.一种服务器带外管理的可信接入方法,其特征在于,是一个介入可信第三方以后不仅能在客户端与基板管理控制器之间进行双向安全鉴别而且能有效预防非法用户伪装攻击在内的网络威胁的带外管理系统;依此进行以下步骤来实现可信接入的方法:
步骤(1)构造一个符合我国可信连接架构标准的分别在横纵两个方向具有三元四层的带外管理系统;其中,三元是在带外管理架构中引入了作为可信第三方的策略管理器,简称PM;在软件功能层面,除了二元网络接入模型中的网络访问控制层和操作系统层外,在客户端和简称为BMC的基板管理控制器中分别加入了以各自可信平台控制模块为支持的完整性度量层和可信平台评估层,以实现解决客户端和BMC间双向平台安全鉴别,预防非法用户的伪装攻击的网络威胁;
所述带外管理系统,包括:客户端、BMC和PM,其中:
客户端,设有客户端平台操作模块、客户端可信平台控制模块、客户端远程接入模块和智能平台控制模块,其中:
客户端平台操作模块,设有客户端操作系统,客户端CPUC;所述的CPUC从客户端操作系统内部加载加解密套件定义表、证书验证函数、证书解析函数、签名验证函数和加解密函数库openssl;其中,所述加解密套件定义表是一张二维表,罗列了对应于实现下述四种加解密功能的不同加解密套件所使用的算法,所述四种加解密功能是指非对称加密、消息验证码Hmac算法、临时通信加解密和主会话加解密;在所述二维表中,行表示一种具体的加解密套件,列表示加解密套件种类在实现不同加解密功能时使用的算法;所述的平台操作模块还加载了客户端一个随机数发生子模块;
所述的客户端可信平台控制模块、客户端远程接入模块以及智能平台管理模块各自分别与所述客户端的平台操作模块互联;其中,所述智能平台管理模块还从所述客户端操作模块加载了所述加解密套件定义表和openssl;
BMC,设有BMC端CPUBMC控制的BMC端平台操作模块、BMC端可信平台控制模块、BMC端远程接入模块、BMC端访问控制模块,其中:
BMC端平台操作模块,设有受BMC的CPUBMC控制的BMC操作系统,所述CPUBMC从BMC端操作系统中加载所述加解密套件定义表、注册的用户名、用户密码、证书验证函数、证书解析函数、签名验证函数以及所述openssl,还设有一个BMC端随机数发生子模块;
所述BMC端可信平台控制模块、BMC远程接入模块以及BMC端访问控制模块各自分别与所述的BMC平台操作模块互连;其中,BMC端访问控制模块从所述BMC端平台操作模块加载了所述加解密套件定义表和所述openssl;
策略管理器PM,设有受策略控制端CPUPM控制的PM端平台操作模块、基准值校验库、平台完整性鉴别模块以及身份鉴别模块,其中:
PM端平台操作模块,设有:CPUPM、从PM操作系统内部加载的所述客户端与BMC的平台鉴别基准值,还加载了用户名、用户密码、所述openssl,所述加解密套件定义表,还设有一个PM端随机数发生子模块;
所述校验基准库、平台完整性鉴别模块以及身份鉴别模块各自分别与PM的平台操作模块互连;其中,所述校验基准库还从所述PM端平台操作模块中加载了所述客户端和BMC的平台鉴别基准值,所述身份鉴别模块也从所述PM平台操作模块中加载了用户名、用户密码、所述openssl、所述加解密套件定义表;
步骤(2)所述带外管理系统依此按照以下步骤实现带外管理的可信接入过程;具体而言,所述客户端、BMC、PM之间的网络通信均使用用户数据报协议UDP的623端口进行:
步骤(2.1)系统初始化:
客户端的平台操作系统向证书认证中心CA请求取得CA公钥,CPUC把得到的CA公钥存入客户端操作系统中;
BMC端操作系统向证书认证中心CA请求取得CA公钥,CPUBMC把得到的CA公钥存入BMC操作系统中;
PM操作系统向证书认证中心CA请求PM的证书CertPM,所述证书认证中心CA使用密钥生成算法产生一对公私钥,作为PM的公私钥,记为PkPM、然后在制作出PM的证书后,用CA私钥对所述证书CertPM进行数字签名,再把PM所述的公私钥和证书发送给PM;所述PM把自己的公私钥和证书存入PM操作系统中;
步骤(2.2)开启所述UDP 623端口,监听所述客户端、BMC和PM之间的网络通信:
所述BMC的访问控制模块开启所述UDP 623端口,准备监听来自客户端智能平台管理模块的含有功能码38H的“验证会话能力”数据包;
所述的PM的身份鉴别模块开启所述UDP 623端口,准备监听来自所述BMC端访问控制模块的含有会话标识的证书验证数据包;
步骤(2.3)用户输入:用户向客户端的智能平台管理模块输入用户名、用户密码和要接入BMC的IP,继续以下步骤;
步骤(2.3.1)BMC访问控制模块收到客户端的含有功能码35H的智能平台管理模块发出的“验证会话能力”数据包后,若BMC支持带外管理,则返回确认,继续步骤(2.3.2),若不支持带外管理,返回否;
步骤(2.3.2)BMC访问控制模块收到客户端的平台管理模块发出的含有功能码54H的“开启会话”请求包,然后从所述的加解密套件定义表中找出自己支持的至少一种加解密算法套件Cipher id;返回给客户端的智能平台管理模块;
步骤(2.4)在网络访问控制层中,BMC、客户端依次进行以下步骤验证PM证书CertPM:
步骤(2.4.1)客户端的智能平台管理模块把所述Cipher id和从CPUC发来的18位随机数Console id两部分数据打包,发给BMC的访问控制模块;
步骤(2.4.2)BMC端访问控制模块把步骤(2.4.1)中发来的数据包中Console id与Cipher id保存后,通知CPUBMC,CPUBMC依次进行以下步骤:
步骤(2.4.2.1)CPUBMC产生18位随机数作为会话标识Session id,把会话标识Sessionid存入BMC访问控制模块;
步骤(2.4.2.2)所述BMC的访问控制模块把所述Console id、Session id、Cipher id三部分数据打包后,发送给PM的身份鉴别模块;
步骤(2.4.3)PM的身份鉴别模块在把所收到的步骤(2.4.2.2)所述数据包中的Consoleid、Session id、Cipher id保存后,产生两个18位随机数RandConsole1、RandBMC1,传送到PM身份鉴别模块;后者分别把RandConsole1、Console id、Session id相捆绑,把RandBMC1、Consoleid、Session id相捆绑,连同PM平台操作模块的CertPM三者一起打包,发送给BMC访问控制模块;
步骤(2.4.4)CPUBMC从BMC访问控制模块接受CertPM,用BMC的操作系统内的所述PM公钥与证书验证函数对从步骤(2.4.3)发来的数据包中的CertPM进行签名验证;
若验证失败,则断开连接;
若验证成功,则CPUBMC使用证书解析函数取出CertPM中的公钥PkPM,保存PkPM、RandBMC1与Console id到BMC的访问控制模块,后者把PM证书CertPM与Console id、Session id、RandConsole1转发到客户端的智能平台管理模块;
步骤(2.4.5)CPUC使用自己操作系统内保存的CA公钥与证书验证函数对自己从客户端智能平台管理模块在步骤(2.4.4)得到的数据包中PM证书CertPM进行签名验证:
若证书验证失败,则断开连接;
若证书验证成功,则CPUC使用证书解析函数把中的PM公钥PkPM解析出来,并保存PkPM、RandConsole1、与Session id到客户端的智能平台管理模块;
步骤(2.5)构造客户端、BMC各自与PM通信用的临时密钥KConsole、KBMC:
步骤(2.5.1)客户端智能平台管理模块把CPUC生成并传输来的记为RandConsole2的第2个18位随机数连同证书验证时用的记为Console id的18位随机数打包;再用PM公钥PkPM和加解密套件Cipher id在加解密函数库openssl中选出的非对称加密算法对RandConsole2与Console id打包后的数据包加密后发送至BMC访问控制模块;
步骤(2.5.2)BMC的访问控制模块把CPUBMC传输来的,记为RandBMC2的第2个18位随机数,与所述会话标识Session id和步骤(2.5.1)中接受的客户端数据包打包后,再用公钥PkPM和步骤(2.5.1)所述的非对称加密算法进行加密,之后发送到PM的身份鉴别模块;
步骤(2.5.3)身份鉴别模块收到步骤(2.5.2)中发出的数据包后,依此进行以下步骤:
步骤(2.5.3.1)使用从PM操作系统中得到的私钥解密获得的数据包,提取BMC的临时会话密钥协商用的随机数RandBMC2;
步骤(2.5.3.2)再把证书验证时用的随机数RandBMC1、RandBMC2作为输入,调用openssl中Cipher id指定的消息验证码算法生成PM与BMC通信的临时密钥KBMC,再将KBMC进行MD5算法运算,把运算结果记为HBMC;
步骤(2.5.3.3)继续用私钥解密数据包,提取出客户端的随机数RandConsole2;将RandConsole1、RandConsole2作为输入,调用openssl中Cipher id指定的消息验证码算法生成PM与客户端的临时通信密钥KConsole;再用MD5算法对KConsole计算,结果记为HConsole;
步骤(2.5.3.4)身份鉴别模块使用PM私钥调用openssl中Cipher id指定的非对称加密算法对上述HConsole、HBMC进行签名,将签名后数据打包返回给BMC的访问控制模块;
步骤(2.5.4)BMC访问控制模块使用公钥PkPM和BMC操作系统内签名验证算法验证PM签名之后,把随机数RandBMC1、RandBMC2作为输入,调用openssl中Cipher id指定的消息验证码算法生成PM与BMC通信的临时密钥KBMC;对KBMC进行MD5运算,把计算结果与步骤(2.5.3.4)中的HBMC进行对比;若一致,则校验成功;若不一致,则断开连接;
步骤(2.5.5)客户端使用步骤(2.5.4)相同的方法计算出客户端与PM通信的临时会话密钥KConsole,再利用MD5算法计算校验值并与HConsole进行比较;若相同,则校验成功;否则,断开连接;
步骤(2.6)用户身份鉴别
步骤(2.6.1)客户端智能平台管理模块把加密的用户身份鉴别信息、用户名Username、Console id打包后发给BMC的访问控制模块;其中,用户身份信息是使用RandConsole2、用户名Username、密码Password作为输入,调用openssl中Cipher id指定的消息验证码算法生成的,加密是以KConsole作为密钥,调用openssl中Cipher id指定的对称加密算法加密的;
步骤(2.6.2)BMC把自己的身份加密信息与步骤(2.6.1)传来的客户端数据包一起打包后,发送给PM的身份鉴别模块;其中,BMC的身份加密信息是以KBMC作为密钥,调用步骤(2.6.1)中所述对称加密算法对BMC身份鉴别信息加密得到的;而BMC的身份鉴别信息又是BMC访问控制模块用步骤(2.6.1)所述消息验证码算法生成的;
步骤(2.6.3)PM身份鉴别模块依此进行以下步骤:
步骤(2.6.3.1)PM的身份鉴别模块用KBMC解密来自BMC访问控制模块的加密数据后,使用步骤(2.6.2)中所述的方法计算BMC的用户信息,并把解密的BMC用户信息与计算的用户信息进行比较:
若不一致,则断开连接;
若一致,则BMC的用户信息校验成功,生成BMC身份校验结果,记为RUBMC;
步骤(2.6.3.2)PM的身份鉴别模块用KConsole解密来自客户端的加密数据后,使用步骤(2.6.1)中所述的方法计算客户端的用户信息,并把解密的客户端用户信息与计算的用户信息进行比较:
若不一致,则断开连接;
若一致,则客户端的用户信息校验成功,生成客户端身份校验结果,记为RUConsole;
步骤(2.6.3.3)身份鉴别模块将RUConsole与Session id进行打包,并使用KBMC作为密钥,调用openssl中Cipher id指定的对称加密算法加密所述打包数据,证明客户端的用户身份;将RUBMC与Console id进行打包,并使用KConsole作为密钥,调用openssl中Cipher id指定的对称加密算法加密所述打包数据,证明BMC的用户身份;身份鉴别模块将所述的两个加密数据打包发送给BMC的访问控制模块;
步骤(2.6.4)BMC访问控制模块使用KBMC作为密钥,调用步骤(2.6.3.3)所述的对称解密算法解密接受的数据包,得到客户端的验证结果;若验证结果为否,则禁止客户端连入网络;否则,客户端身份验证成功,访问控制模块转发BMC验证结果到客户端智能平台管理模块;
步骤(2.6.5)客户端智能平台管理模块接受BMC访问控制模块发来的数据包,用步骤(2.6.3.4)所述的对称解密算法解密收到的数据包,得到BMC的用户身份验证结果;若验证结果为否,拒绝接入BMC,主动断开连接;若步骤(2.6.4)与步骤(2.6.5)均验证成功,则双方身份验证成功;
步骤(2.7)客户端和BMC的平台完整性鉴别
步骤(2.7.1)客户端智能平台管理模块通过CPUC向客户端远程接入模块发送平台鉴别请求;
步骤(2.7.2)客户端的远程接入模块通过客户端的可信平台控制模块在所述系统启动时对BIOS、操作系统内核进行度量,并且在所述系统启动后对可信接入需要的指定进程的PCB信息进行度量,生成客户端的平台完整性度量值IConsole。再把所述IConsole连同Consoleid一起打包,然后从所述智能平台管理模块读取密钥KConsole,调用openssl中Cipher id指定的对称加密算法加密所述打包数据,并将数据传递到智能平台管理模块;智能平台管理模块将加密数据发送到BMC的访问控制模块;
步骤(2.7.3)BMC收到数据包后,访问控制模块向BMC的远程接入模块发送平台鉴别请求;
步骤(2.7.4)BMC远程接入模块通过BMC可信平台控制模块获取BMC的完整性度量信息,可信平台控制模块在BMC启动过程中对u-boot、操作系统内核、只读文件系统进行度量,生成度量值IBMC;BMC远程接入模块将IBMC与Session id一起打包,再把此数据包和BMC访问控制模块接受的客户端数据打包在一起,从所述BMC的访问控制模块中获取KBMC作为密钥,用步骤(2.7.3)中的对称加密算法对经过两次打包的数据进行加密,并将所述加密数据传递给访问控制模块;访问控制模块将加密数据发送到PM的身份鉴别模块;
步骤(2.7.5)PM身份鉴别模块收到步骤(2.7.4)发来的数据包后,连同临时密钥KConsole、KBMC一起传递到平台完整性鉴别模块;
步骤(2.7.6)PM的平台完整性鉴别模块从身份鉴别模块获取临时密钥KBMC、KConsole,分别使用KConsole、KBMC解密客户端和BMC的平台完整性信息,并从基准值校验库读取平台校验基准信息,将完整性信息与平台校验基准值进行对比,分别生成客户端和BMC的平台验证结果RIConsole、RIBMC;分别将RIConsole与Session id打包,将RIBMC与Console id打包;分别以KBMC、KConsole作为密钥,调用操作系统openssl中Cipher id指定的对称加密算法加密两个打包数据,通过身份鉴别模块发送给BMC访问控制模块;
步骤(2.7.7)BMC的远程接入模块收到BMC访问控制模块传递的步骤(2.7.6)发出的加密数据包后,使用密钥KBMC解密客户端平台完整性验证结果,并进行判断:
若结果为否,则禁止客户端接入;
若结果正确,则允许客户端接入;访问控制模块使用Console id、Session id、Username、Password作为输入,调用openssl中Cipher id指定的消息验证码算法计算此次会话的主密钥SIK;访问控制模块转发BMC平台验证结果到客户端智能平台管理模块;
步骤(2.7.8)客户端远程接入模块收到智能平台管理模块传递的步骤(2.7.7)BMC访问控制模块发送的BMC平台完整性验证结果后,用密钥KConsole解密,得到BMC平台验证结果;
若结果为否,则禁止接入BMC;
若结果正确,则可以接入BMC;智能平台管理模块使用Console id、Session id、Username、Password作为输入,调用openssl中Cipher id指定的消息验证码算法计算此次会话的主密钥SIK;
步骤(2.8)带外管理通信
客户端与BMC之间使用主密钥SIK进行加密通信,进行之后的带外管理工作流程。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京工业大学,未经北京工业大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110046061.1/1.html,转载请声明来源钻瓜专利网。