CN112733129A - 一种服务器带外管理的可信接入方法 - Google Patents
一种服务器带外管理的可信接入方法 Download PDFInfo
- Publication number
- CN112733129A CN112733129A CN202110046061.1A CN202110046061A CN112733129A CN 112733129 A CN112733129 A CN 112733129A CN 202110046061 A CN202110046061 A CN 202110046061A CN 112733129 A CN112733129 A CN 112733129A
- Authority
- CN
- China
- Prior art keywords
- bmc
- client
- module
- platform
- console
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 49
- 238000012795 verification Methods 0.000 claims abstract description 122
- 238000004891 communication Methods 0.000 claims abstract description 27
- 238000007726 management method Methods 0.000 claims description 137
- 238000004806 packaging method and process Methods 0.000 claims description 21
- 238000005259 measurement Methods 0.000 claims description 18
- 238000004364 calculation method Methods 0.000 claims description 15
- 230000002457 bidirectional effect Effects 0.000 claims description 13
- 238000004458 analytical method Methods 0.000 claims description 7
- 238000011156 evaluation Methods 0.000 claims description 5
- 239000000284 extract Substances 0.000 claims description 4
- 238000012790 confirmation Methods 0.000 claims description 3
- 238000012545 processing Methods 0.000 claims description 3
- 239000000203 mixture Substances 0.000 claims description 2
- 238000012544 monitoring process Methods 0.000 claims description 2
- 238000012856 packing Methods 0.000 claims description 2
- 238000004321 preservation Methods 0.000 claims description 2
- 239000000758 substrate Substances 0.000 claims 1
- 238000010276 construction Methods 0.000 abstract 1
- 230000007547 defect Effects 0.000 abstract 1
- 230000005540 biological transmission Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 3
- 230000026676 system process Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 230000007812 deficiency Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/45—Structures or tools for the administration of authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/44—Program or device authentication
- G06F21/445—Program or device authentication by mutual authentication, e.g. between devices or programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/602—Providing cryptographic facilities or services
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/606—Protecting data by securing the transmission between two devices or processes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/64—Protecting data integrity, e.g. using checksums, certificates or signatures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Computer And Data Communications (AREA)
Abstract
一种服务器带外管理的可信接入方法属于服务器带外管理技术领域,其特征在于,是在一个具有客户端、BMC和作为可行第三方的策略管理器共同组成的具有三元四层的可信连接架构内实现的。带外管理接入步骤依次为系统构建、系统初始化、用户输入、验证策略管理器证书、通信临时密钥协商、客户端和BMC的用户身份鉴别、客户端和BMC的平台完整性鉴别。这几个步骤的实现由于引入了可信第三方,从根本上解决了目前普通采用的二元认证模型的弊端,防止了任何一方的恶意行为。不仅对客户端和BMC用户进行相互验证,而且做到了“用户+平台”的双重安全验证,解决了用户所使用设备的安全鉴别问题,弥补了目前服务器带外管理接入的平台安全性不足的问题。
Description
技术领域
本发明涉及信息安全领域,具体涉及一种服务器带外管理的可信接入方法。
背景技术
当今的互联网时代充斥者大量的网络资源,但是这些资源无一例外地都需要通过各种服务器来进行承载,涉及到存储、计算、安全、负载等等。假如这些服务器发生故障,将会对使用者和管理员产生严重影响,甚至有可能造成极大的混乱和灾难。服务器的管理方式通常分为带内管理(In-Band)和带外管理(Out-Of-Band)。其中带外管理通过部署专有物理通道,绕过服务器主机操作系统,直接对主板上的资源加以管控。带外管理功能目前广泛应用于服务器领域,主要是通过基板管理控制器(Baseboard Management Controller,BMC)加上智能平台管理接口(Intelligent Platform Management Interface,IPMI)来实现的。服务器的运行情况不会对带外管理有任何影响,只要连通电源,运维人员就可以通过BMC实时监测CPU、内存、风扇、网卡、硬盘等设备的运行情况,甚至可以进行远程开关机、重启等操作。
带外管理虽然功能强大,但却带来了一系列的网络安全问题。目前传统的带外管理接入方式是远程客户端和BMC之间进行双向认证来实现的,通过客户端与BMC交换含有用户名和密码的消息认证码,实现双方的身份认证。但是此方法具有以下两点缺陷:(1)认证过程不可靠:建立连接的双方交换身份信息进行身份鉴别,存在“中间人攻击”等网络威胁。(2)缺少平台安全鉴别:如果远程客户端平台安装了其他恶意软件,存在针对BMC攻击的风险。
攻击者一旦获得BMC的访问权限,可以绕过操作系统控制,修改服务器硬件配置,重新启动系统,甚至安装新的操作系统,危害了服务器的机密性、完整性和可用性。因此需要研究带外管理接入的新方法,防止危险的发生。
专利申请公开号为CN 110781465专利申请名称为“基于可信计算的BMC远程身份验证方法及系统”的专利申请使用客户端的外接可信设备生成验证信息,代替用户信息发送到BMC进行登录验证,避免了弱密码登录问题。但是此方法取消了传统的密码验证,安全性只依赖于外接可信设备的安全,如果非法用户获得了客户机的访问权限或者外接可信设备丢失,则不能保证系统的安全。而且此方法只包含了BMC对客户端的单向身份认证,没有针对BMC的身份认证和平台认证。
专利申请公开号为CN 104504323专利申请名称为“一种带有加密认证的IPMI管理系统”的专利申请提出带有扩展IPMI安全模块的IPMI协议栈,使用USB-key和公钥密码体系进行IPMI的用户认证和用户信息管理,提高了认证过程的安全性。但是系统依赖于外接USB-key的安全,如果USB-key丢失,则不能保证系统的安全;没有针对BMC的身份认证,存在伪装攻击的风险;忽略了平台安全问题,如果客户端的安全防护水平不高,易被攻击者利用从而间接访问BMC,甚至可以通过客户端直接对BMC发起攻击,安全防护能力并不突出。
专利申请公开号为CN 104038478专利申请名称为“一种嵌入式平台身份验证可信网络连接方法和系统”的专利申请设计了嵌入式平台的可信网络接入方法,在平台接入网络之前进行平台度量验证,保证了接入平台的可信性。但是只利用可信根的平台配置寄存器信息作为验证的唯一依据,忽略了针对用户的访问控制,非法用户获得了平台的使用权限也可以成功接入网络。
总体来看,目前带外管理安全接入的解决方案大致有两种:(1)使用其他信息代替用户信息进行验证;(2)使用用户信息和USB-key信息进行双重验证。但是以上的解决方案依赖于外接可信设备,如果外接可信设备丢失,则不能保证系统的安全;都将双向认证简化为单向认证,存在无法抵御伪装攻击的问题;没有做到“用户+平台”的双重安全认证,无法保护恶意平台针对连接另一方的攻击,安全性并不突出。
发明内容
服务器的带外管理系统中,需要对建立连接的客户端和BMC进行网络访问控制,保证系统的安全。传统带外管理的认证方式易遭受网络攻击的威胁,并且使用外接可信设备认证的方式易产生人为安全隐患。此外,要保证系统的可信不仅需要对用户身份进行鉴别,也需要对连接双方的平台运行环境进行安全鉴别。有鉴于此,本专利申请的目的在于提供一种服务器带外管理的可信接入方法,通过引入可信第三方,改变了传统带外管理的二元网络接入模型,可以有效的预防中间人及伪装攻击等网络威胁;并且加入双向平台安全鉴别流程,使用可信计算技术对双方进行平台完整性度量,提高了带外管理系统的接入安全。
本发明适用于基于服务器BMC的带外管理系统。
本发明特征在于:
步骤(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,把会话标识Session id存入BMC访问控制模块;
步骤(2.4.2.2)所述BMC的访问控制模块把所述Console id、Session id、Cipherid三部分数据打包后,发送给PM的身份鉴别模块;
步骤(2.4.3)PM的身份鉴别模块在把所收到的步骤(2.4.2.2)所述数据包中的Console id、Session id、Cipher id保存后,产生两个18位随机数RandConsole1、RandBMC1,传送到PM身份鉴别模块;后者分别把RandConsole1、Console id、Session id相捆绑,把RandBMC1、Console id、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、Sessionid、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.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连同Console id一起打包,然后从所述智能平台管理模块读取密钥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进行加密通信,进行之后的带外管理工作流程。
综上,本方法将传统带外管理接入过程扩展为基于可信第三方的双向身份鉴别和平台鉴别流程,包含的方面有:
身份鉴别:在连接请求发送之后,进行双向身份鉴别。客户端将用户信息发送给BMC;BMC将收到的用户信息和自身的平台信息发送给策略管理器;策略管理器根据双方的身份信息做出判断,将结果发送回BMC;BMC将结果转发给客户端。
平台完整性鉴别:用户身份认证成功之后,进行双向平台完整性鉴别。客户端通过可信平台控制模块收集平台完整性信息,发送到BMC;BMC收集自己平台的信息,与接收到的客户端平台信息一起发送到策略管理器;策略管理器根据双方的平台完整性信息做出判断,将结果发送回BMC;BMC将结果转发给客户端。
网络访问控制:网络访问控制层和可信平台评估层通过上述的用户鉴别和平台完整性鉴别结果生成访问决策,并将其下发到访问控制模块,执行网络访问控制。
本发明较专利“基于可信计算的BMC远程身份验证方法及系统”和“一种带有加密认证的IPMI管理系统”相比,不使用外接可信设备,减少了人为安全隐患;弥补了平台鉴别的空白,使用可信计算技术进行平台鉴别,在客户端、BMC与策略管理器内部加入完整性度量层与可信平台评估层,与系统内原有的网络访问控制层与操作系统层相结合,构成符合我国可信网络连接标准的三元四层结构,在用户鉴别之后进行平台完整性鉴别,提高了带外管理的接入安全。较专利“一种嵌入式平台身份验证可信网络连接方法和系统”相比,保留了传统带外管理的用户认证能力,使用用户信息和平台信息进行双重认证,安全性更高。
附图说明
图1为系统架构图;
图2为带外管理可信接入控制流程图;
图3为带外管理可信接入时序图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明的技术方案进行清晰、详细的描述。
传统的带外管理的接入方式是客户端与BMC之间交换消息验证码来完成用户身份认证,本质上是二元鉴别架构。这种架构存在着因为某一方进行欺骗等恶意行为而造成的网络安全隐患。而且已有的专利对于带外管理的安全侧重点都集中在用户认证方面,即使用更能代表用户的信息代替用户的密码进行认证,但是本质上依旧属于二元认证范畴。本发明的出发点是摒弃二元认证体系,以我国的可信连接标准为基础,构建三元四层的接入架构,以策略管理器作为可信第三方,为连接双方提供鉴别服务。这种三元的认证结构从根本上解决了二元认证模型的安全隐患,提高了带外管理系统的安全。
此外,要保证接入设备的安全不仅要对接入的用户身份进行验证,还要对用户所使用设备的安全性进行鉴别。因此本发明在传统带外管理的身份鉴别功能的基础上,加入了平台完整性鉴别功能,做到了“用户+平台”的双重安全验证,弥补了带外管理在平台安全性上的不足。
本发明的带外管理可信接入系统架构从下至上分为四个层次,分别是网络访问控制层、可信平台评估层、完整性度量层与操作系统层。从左至右包含三个实体,分别是客户端、基板管理控制器(BMC)和策略管理器(PM)。每个实体又由若干组件组成,组件之间通过CPU进行消息传递。
客户端是请求接入带外管理系统的实体,包含的组件为:智能平台管理模块、远程接入模块、可信平台控制模块、随机数发生子模块和CPU与平台操作系统模块。智能平台管理模块是传统的带外管理的命令行客户端,提供的功能包括:为用户提供了简单交互界面;负责向BMC发起会话请求;与访问控制模块和身份鉴别模块通过执行用户鉴别协议实现客户端和BMC之间的双向身份鉴别;向远程接入模块传递平台鉴别请求,从远程接入模块接受它所做出的访问决策,根据访问决策执行访问控制。远程接入模块从可信平台控制模块获取平台完整性信息,与BMC的远程接入模块和平台完整性鉴别模块执行平台鉴别协议,实现客户端与BMC之间的双向平台鉴别。可信平台控制模块负责对BIOS、操作系统内核和系统进程信息进行度量,把度量值记录到平台配置寄存器中,向远程接入模块提供度量信息。随机数发生子模块负责随机数的产生。CPU与平台操作系统模块负责客户端的初始化、证书验证和数据传输。
BMC是提供带外管理服务的实体,是客户端要进行网络接入的实体。其包含的组件为访问控制模块、远程接入模块、可信平台控制模块、随机数发生子模块和CPU与平台操作系统模块。访问控制模块负责启动用户身份鉴别协议,与智能平台管理模块和身份鉴别模块执行身份鉴别协议来实现客户端和BMC之间的双向用户身份鉴别;向BMC远程接入模块发送平台鉴别请求;从BMC远程接入模块接受做出的访问决策;依据访问决策执行访问控制。BMC的远程接入模块从可信平台控制模块获取平台完整性信息,与客户端的远程接入模块和平台完整性鉴别模块执行平台鉴别协议,实现客户端与BMC之间的双向平台鉴别。可信平台控制模块负责对u-boot、操作系统内核和系统进程等信息进行度量,把度量值记录到平台配置寄存器中,向BMC的远程接入模块提供度量信息。随机数发生子模块负责随机数的产生。CPU与平台操作系统模块负责BMC的初始化、证书验证和数据传输。
策略管理器是客户端和BMC的集中管理方,包含的组件为身份鉴别模块,平台完整性鉴别模块、基准值校验库、随机数发生子模块和CPU与平台操作系统模块。PM的功能是协助客户端和BMC实现它们之间的双向用户身份鉴别和平台鉴别,在鉴别过程中,PM充当客户端和BMC的可信第三方。身份鉴别模块作为可信第三方与智能平台管理模块和访问控制模块执行用户鉴别协议,实现客户端与BMC之间的双向用户身份鉴别,接受和传送用户身份鉴别协议和平台鉴别协议数据。平台完整性鉴别模块作为可信第三方与客户端的远程接入模块和BMC的远程接入模块执行平台鉴别协议,实现客户端和BMC之间的双向平台完整性鉴别,平台校验基准值从基准值校验库获得。基准值校验库存放客户端和BMC度量的基准值,向平台完整性鉴别模块提供基准值。随机数发生子模块负责随机数的产生。CPU与平台操作系统负责策略管理器的初始化、签名验证和数据传输。
在策略管理器初始化阶段,策略管理器的操作系统向证书颁发机构(CA)进行证书申请。CA使用密钥生成算法产生一对公私钥,作为PM的公私钥。CA制作PM的证书,并且CA使用自己的私钥对证书进行数字签名。其中证书格式标准为X509,证书中内容为证书的版本号、序列号、签名算法、颁布者、有效期、主体、主体公钥、主体公钥算法、签名值。CA将PM的公私钥和证书返回给PM,PM的CPU将公私钥和证书保存在操作系统中。
PM的CPU从操作系统内部加载客户端与BMC的平台鉴别基准值,将其保存到基准值校验库中。CPU从操作系统内部加载注册的用户名、用户密码、加解密函数库openssl、加解密套件定义表,将用户名、用户密码、openssl、加解密套件定义表保存到身份鉴别模块中。其中加解密套件定义表是一张二维表,行代表具体每一种加解密套件,列代表某一种加解密套件不同功能使用的算法,涉及到的功能有非对称加解密、计算消息验证码(Hmac)、临时通信加解密、主会话加解密。因此确定了加解密套件,再通过查找加解密套件定义表,就可以获得以上4个功能所使用的算法种类。最后,PM的身份鉴别模块开启用户数据报协议(UDP)的623端口,监听来自BMC含有会话标识的证书验证数据包。
在BMC初始化阶段,BMC的操作系统向CA请求CA公钥,并将CA的公钥保存在操作系统中。BMC的CPU从操作系统内部加载加解密套件定义表、注册的用户名、用户密码、证书验证函数、证书解析函数、签名验证函数、加解密函数库openssl,将加解密套件定义表和openssl加载到访问控制模块中。访问控制模块开启UDP 623端口,监听来自客户端有功能码38H的“验证会话能力(Get Channel Authentication Capabilities)”数据包。
在客户端初始化阶段,客户端的操作系统向CA请求CA公钥,将CA的公钥保存在操作系统中。客户端的CPU从操作系统内部加载加解密套件定义表、证书验证函数、证书解析函数、签名验证函数、加解密函数库openssl,将加解密套件定义表和openssl加载到智能平台管理模块中。
初始化完毕之后进入可信接入部分。可信接入的第1阶段是用户输入,用户向客户端的智能平台管理模块输入用户名、用户的密码和所要连接BMC的IP,开始可信接入过程。
可信接入时序图中的前两部分“获得会话认证能力(Get ChannelAuthentication Capabilities)”和“开启会话(Open Session)”属于第2阶段:连接初始化。获得会话认证能力步骤的目的是客户端询问BMC是否支持带外管理,客户端的智能平台管理模块向BMC发送含有功能码38H的“获得会话认证能力”请求包,BMC的访问控制模块接受获得会话认证请求包。若BMC支持带外管理,访问控制模块返回确认;若不支持,返回否。客户端如果收到否定结果则通过智能平台管理模块主动断开连接。
开启会话步骤的目的是客户端与BMC协商加解密套件。客户端的智能平台管理模块向BMC发送含有功能码54H的“开启会话”请求包。BMC的访问控制模块接受以上请求包,根据操作系统已加载的加解密函数库和加解密套件定义表,找出自己支持的加解密算法套件,返回给客户端。
第3阶段是证书验证阶段。客户端使用随机数发生子模块产生1个18位随机数Console id,通过智能平台管理模块将Console id和选择的密码套件Cipher id打包发送到BMC;BMC的访问控制模块接受客户端数据包,使用随机数发生子模块产生1个18位随机数Session id,通过访问控制模块将Console id、Cipher id和Session id打包发送到策略管理器;策略管理器的身份鉴别模块接受BMC数据包,保存数据包内的Console id、Sessionid和Cipher id。通过随机数发生子模块产生2个18位的随机数,记为RandConsole1、RandBMC1,并将其传递到身份鉴别模块。身份鉴别模块将RandConsole1、Console id、Session id捆绑在一起,将RandBMC1、Console id、Session id捆绑在一起,并从操作系统读取自己的证书,将上述捆绑的RandConsole1、RandBMC1数据与CertPM进行打包,返回给BMC。
BMC的访问控制模块接受PM的数据。访问控制模块提取数据包中PM证书,并使用操作系统内的CA公钥与证书验证函数对证书进行签名验证。若证书验证失败,则断开连接;若证书验证成功,BMC的CPU使用证书解析函数提取证书中PM的公钥PkPM,并保存PkPM、RandBMC1与Console id到访问控制模块。访问控制模块将从PM接受到的证书与RandConsole1转发给客户端。客户端的智能平台管理模块接受BMC数据。客户端的CPU提取数据包中PM证书,并使用操作系统内的CA公钥与证书验证函数对证书进行签名验证。若证书验证失败,则断开连接;若证书验证成功,客户端的CPU使用证书解析函数提取证书中PM的公钥PkPM,并保存PkPM、RandConsole1与Session id到智能平台管理模块。
第4阶段是临时密钥协商阶段。客户端的CPU通过随机数发生子模块生成1个18位的随机数,记为RandConsole2,将其传送到智能平台管理模块。智能平台管理模块将RandConsole2与Console id打包,并使用PM的公钥和openssl中Cipher id指定的非对称加密算法对上述数据包进行加密,发送至BMC。
BMC收到客户端的数据包后,因为不知道PM的私钥,因此无法解密信息,保证了信息的保密性。通过随机数发生子模块生成1个18位的随机数,记为RandBMC2,将其传送到访问控制模块。访问控制模块将RandBMC2、Session id和来自客户端的数据进行打包,并使用PM的公钥和openssl中Cipher id指定的非对称加密算法对上述数据包进行加密,发送至PM。
PM的身份鉴别模块接受BMC的数据包。身份鉴别模块从操作系统中读取自己的私钥并用私钥解密接受的数据包,获得RandConsole2与RandBMC2。因为在第2阶段PM也生成了2个随机数并已经发送到BMC与客户端,所以到目前为止PM与客户端交换了随机数RandConsole1、RandConsole2,PM与BMC交换了随机数RandBMC1、RandBMC2,并且RandConsole2和RandBMC2是加密传输的。身份鉴别模块使用RandConsole1、RandConsole2作为输入,调用openssl中Cipherid指定的消息验证码生成算法计算与客户端的临时通信密钥,记为KConsole,计算表达式为:KConsole=Hmac(RandConsole1|RandConsole2);使用RandBMC1、RandBMC2作为输入,调用openssl中Cipher id指定的消息验证码生成算法计算与BMC的临时通信密钥,记为KBMC,计算表达式为:KBMC=Hmac(RandBMC1|RandBMC2);调用openssl的MD5算法分别计算KConsole、KBMC的MD5值,并分别对2个MD5值使用自己的私钥和openssl中非对称加密函数进行签名。身份鉴别模块将签名后的数据打包发送给BMC。
BMC的访问控制模块接受PM的数据包,并使用PM公钥和操作系统内的签名验证函数验证PM签名。若验证通过,访问控制模块使用RandBMC1与RandBMC2通过openssl中Cipher id指定的消息验证码算法生成BMC与PM通信的临时密钥,并对临时密钥进行MD5计算,并将计算结果与HBMC进行对比。若一致,则校验成功,转发HConsole到客户端;若不一致,则断开连接。
客户端的智能平台管理模块接受BMC数据包,并使用PM的公钥和和操作系统内的签名验证函数验证PM签名。若验证通过,智能平台管理模块使用RandConsole1、RandConsole2通过openssl中Cipher id指定的消息验证码算法生成客户端与PM通信的临时密钥,并对临时密钥进行MD5计算,并将计算结果与HConsole进行对比。若一致,则校验成功;若不一致,则断开连接。
第5阶段是身份鉴别。客户端的智能平台管理模块接受了用户输入的用户名和密码,调用openssl中Cipher id指定的消息验证码函数计算用户身份验证信息,计算表达式为:客户端用户信息=Hmac(RandConsole2|Username|Password)。智能平台管理模块以KConsole作为密钥,调用openssl中临时密钥加解密函数对用户身份信息进行加密,发送加密后的信息到BMC。
BMC的访问控制模块也使用所请求的用户名和密码,调用openssl中Cipher id指定的消息验证码函数计算用户身份验证信息,计算表达式为:BMC用户信息=Hmac(RandBMC2|Username|Password)。访问控制模块以KBMC作为密钥,调用openssl中临时密钥加解密函数对用户身份信息进行加密,并将从客户端收到的用户信息和自己计算的用户信息进行打包,发送给PM。
PM接受上述信息。身份鉴别模块使用KConsole、KBMC解密客户端和BMC的身份信息,对信息进行鉴别:将请求的用户名密码作为输入,调用openssl中Cipher id指定的消息验证码函数重新计算用户身份验证信息,将其与客户端和BMC的身份信息做对比,用二进制0或1代表验证成功或失败,生成客户端和BMC的身份鉴别结果RUConsole、RUBMC。身份鉴别模块使用KBMC作为密钥,调用操作系统openssl中Cipher id指定的对称加密算法加密RUConsole;使用KConsole作为密钥,调用操作系统openssl中Cipher id指定的对称加密算法加密RUBMC,把加密后的2个身份鉴别结果打包发送给BMC。
BMC收到身份验证结果后,访问控制模块解密并查看客户端的验证结果,若为否,则拒绝客户端的连接请求。访问控制模块转发BMC的验证结果到客户端。客户端收到身份验证结果后,智能平台管理模块解密并查看BMC的验证结果,若为否,则拒绝接入BMC。若为以上2次验证均为是,则双方身份验证成功。
第6阶段是平台完整性鉴别。首先客户端的智能平台管理模块通过客户端CPU向客户端远程接入模块请求完整性鉴别,远程接入模块通过CPU向可信平台控制模块请求平台的完整性信息。其中完整性信息的度量方法是由可信平台控制模块调用模块内SM3算法,在系统启动时对BIOS、操作系统内核进行度量,产生一个哈希值,保存在平台配置寄存器中;并且在系统启动之后对可信接入需要的指定进程PCB信息进行度量生成新的哈希值,将新哈希值与原哈希值拼接之后再次哈希,作为客户端平台完整性度量值。计算表达式为:客户端完整性信息=SM3(系统启动度量哈希值|进程度量哈希值)。可信平台控制模块把完整性信息传递给客户端远程接入模块;客户端远程接入模块从智能平台管理模块读取密钥KConsole,以KConsole作为密钥,调用操作系统openssl中Cipher id指定的对称加密算法加密上述数据包,通过智能平台管理模块发送至BMC。
BMC收到客户端的完整性信息后,访问控制模块通过CPU向BMC远程接入模块请求完整性鉴别,远程接入模块通过CPU向可信平台控制模块请求平台的完整性信息。BMC的完整性信息是可信平台控制模块在BMC启动过程中调用模块内SM3算法,对u-boot、操作系统内核、只读文件系统进行度量,最后将3部分的哈希值拼接在一起的哈希结果,计算表达式为:BMC的完整性信息=SM3(u-boot哈希值|操作系统内核哈希值|只读文件系统哈希值)。BMC远程接入模块获取BMC完整性信息之后,从访问控制模块读取密钥KBMC和来自客户端的数据包,并用KBMC作为密钥,调用操作系统openssl中Cipher id指定的对称加密算法加密BMC的完整性信息,并将加密数据与客户端数据包进行打包后通过访问控制模块发送给PM。
PM收到BMC发来的数据包。身份鉴别模块将完整性数据传递给平台完整性鉴别模块。平台完整性鉴别模块从身份鉴别模块获取临时密钥KBMC、KConsole,使用临时密钥解密客户端与BMC的完整性数据。平台完整性鉴别模块从基准值校验库读取平台完整性校验基准值,将基准值与客户端和BMC的完整性数据进行比较,用二进制0或1代表验证成功或失败,生成客户端和BMC的完整性鉴别结果RIConsole、RIBMC。平台完整性鉴别模块用KBMC作为密钥,调用操作系统openssl中Cipher id指定的对称加密算法加密RIConsole;用KConsole作为密钥,调用操作系统openssl中Cipher id指定的对称加密算法加密RIBMC。将上述的两个加密数据打包后通过身份鉴别模块发送给BMC。
BMC访问控制模块收到PM的数据包,传递到BMC远程接入模块。远程接入模块使用KBMC解密RIConsole,查看客户端的平台鉴别结果。若结果为否,拒绝客户端的连接;若结果为是,访问控制模块将BMC的验证结果转发给客户端,同时访问控制模块使用openssl中Cipher id指定的消息验证码算法计算此次会话的主密钥SIK,计算表达式为:主密钥=Hmac(Console id|Session id|Username|Password)。
客户端智能平台管理模块接收到BMC的数据包,使用KConsole解密RIBMC,查看BMC的平台鉴别结果。若结果为否,拒绝接入BMC;若结果为是,智能平台管理模块使调用openssl中Cipher id指定的消息验证码算法计算此次会话的主密钥SIK,计算表达式为:主密钥=Hmac(Console id|Session id|Username|Password)。至此,客户端与BMC在策略管理器的帮助下进行了双向身份鉴别和平台完整性鉴别,并且进行了主密钥协商,完成了接入流程。本方法采用三元认证模型,杜绝了二元认证模型的安全隐患;而且不仅对用户的身份进行鉴别,还使用可信计算技术对接入双方的平台完整性进行鉴别,提高了带外管理系统的接入安全。之后客户端与BMC通过主密钥进行加密通信,继续之后的带外管理命令的执行流程。
Claims (1)
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.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进行加密通信,进行之后的带外管理工作流程。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110046061.1A CN112733129B (zh) | 2021-01-14 | 2021-01-14 | 一种服务器带外管理的可信接入方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110046061.1A CN112733129B (zh) | 2021-01-14 | 2021-01-14 | 一种服务器带外管理的可信接入方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112733129A true CN112733129A (zh) | 2021-04-30 |
CN112733129B CN112733129B (zh) | 2024-06-04 |
Family
ID=75592916
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110046061.1A Active CN112733129B (zh) | 2021-01-14 | 2021-01-14 | 一种服务器带外管理的可信接入方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112733129B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113449343A (zh) * | 2021-05-31 | 2021-09-28 | 国科量子通信网络有限公司 | 基于量子技术的可信计算系统 |
CN113672884A (zh) * | 2021-08-23 | 2021-11-19 | 浙江大华技术股份有限公司 | 身份认证方法、装置、存储介质和身份认证设备 |
CN115618366A (zh) * | 2022-12-19 | 2023-01-17 | 苏州浪潮智能科技有限公司 | 用于服务器的验证方法及装置 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110191579A1 (en) * | 2007-08-01 | 2011-08-04 | China Iwncomm Co, Ltd | trusted network connect method for enhancing security |
CN106227636A (zh) * | 2016-07-20 | 2016-12-14 | 国网安徽省电力公司信息通信分公司 | 一种基于ipmi的数据中心带外管理系统 |
-
2021
- 2021-01-14 CN CN202110046061.1A patent/CN112733129B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110191579A1 (en) * | 2007-08-01 | 2011-08-04 | China Iwncomm Co, Ltd | trusted network connect method for enhancing security |
CN106227636A (zh) * | 2016-07-20 | 2016-12-14 | 国网安徽省电力公司信息通信分公司 | 一种基于ipmi的数据中心带外管理系统 |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113449343A (zh) * | 2021-05-31 | 2021-09-28 | 国科量子通信网络有限公司 | 基于量子技术的可信计算系统 |
CN113449343B (zh) * | 2021-05-31 | 2024-03-26 | 国科量子通信网络有限公司 | 基于量子技术的可信计算系统 |
CN113672884A (zh) * | 2021-08-23 | 2021-11-19 | 浙江大华技术股份有限公司 | 身份认证方法、装置、存储介质和身份认证设备 |
CN115618366A (zh) * | 2022-12-19 | 2023-01-17 | 苏州浪潮智能科技有限公司 | 用于服务器的验证方法及装置 |
WO2024131018A1 (zh) * | 2022-12-19 | 2024-06-27 | 苏州元脑智能科技有限公司 | 用于服务器的验证方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN112733129B (zh) | 2024-06-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111416807B (zh) | 数据获取方法、装置及存储介质 | |
US8452954B2 (en) | Methods and systems to bind a device to a computer system | |
US11432150B2 (en) | Method and apparatus for authenticating network access of terminal | |
JP5860815B2 (ja) | コンピューターポリシーを施行するためのシステムおよび方法 | |
US8196186B2 (en) | Security architecture for peer-to-peer storage system | |
CN109361668A (zh) | 一种数据可信传输方法 | |
US20080077592A1 (en) | method and apparatus for device authentication | |
CN112733129B (zh) | 一种服务器带外管理的可信接入方法 | |
CN103747036A (zh) | 一种桌面虚拟化环境下的可信安全增强方法 | |
JP2004508619A (ja) | トラステッド・デバイス | |
JP2011504026A (ja) | 3値同等識別に基づく、信頼されているネットワークアクセス制御システム | |
CN103138939A (zh) | 云存储模式下基于可信平台模块的密钥使用次数管理方法 | |
US9398024B2 (en) | System and method for reliably authenticating an appliance | |
CN101741842A (zh) | 一种基于可信计算实现可信ssh的方法 | |
US11218317B1 (en) | Secure enclave implementation of proxied cryptographic keys | |
JP2017152880A (ja) | 認証システム、鍵処理連携方法、および、鍵処理連携プログラム | |
WO2023151427A1 (zh) | 量子密钥传输方法、装置及系统 | |
US11418329B1 (en) | Shared secret implementation of proxied cryptographic keys | |
WO2024212512A1 (zh) | 一种远程证明方法、装置、设备及可读存储介质 | |
EP4145763A1 (en) | Exporting remote cryptographic keys | |
US11240661B2 (en) | Secure simultaneous authentication of equals anti-clogging mechanism | |
CN115361147A (zh) | 设备注册方法及装置、计算机设备、存储介质 | |
Kraxberger et al. | Trusted identity management for overlay networks | |
Megala et al. | A Review on Blockchain-Based Device Authentication Schemes for IoT | |
CN118432826B (zh) | 群组设备的注册与身份认证方法、系统、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |