基于CPK的Linux操作系统登录认证方法、设备、终端及服务器与流程

文档序号:16062632发布日期:2018-11-24 12:20阅读:194来源:国知局

本发明涉及计算机和信息安全技术领域,具体地涉及一种基于cpk的linux操作系统登录认证方法、设备、终端及服务器。

背景技术

随着计算机和网络应用的发展,大量的linux服务器被部署。而linux服务器的日常维护和管理都需要管理员登录linux操作系统。传统的方式中管理员采用用户名和口令作为登录的用户凭证,这种方法存在很多安全风险,如简单口令易被攻击,口令易泄漏,口令不能真正确认用户的身份,口令过于复杂又不容易记忆。

而且现代的网络攻击多以猜测口令、暴力破解口令或网络劫持口令等手段非法获得操作系统的访问控制权,一旦非法获得管理员控制权,则对系统安全是毁灭性的。所以采用静态口令的认证方式,其安全强度是非常有限的,对于承载了企业重要数据的服务器操作系统,增加操作系统的安全性至关重要。



技术实现要素:

本发明实施例的目的是提供一种基于cpk的linux操作系统登录认证方法、设备、终端及服务器,解决了现有技术中通过网络攻击获得操作系统口令从而得到访问控制权的问题,通过数字签名技术实现了linux操作系统的登录安全认证。

为了实现上述目的,本发明实施例提供一种基于cpk的linux操作系统登录认证方法,所述方法应用于终端,所述方法包括获取cpk密钥设备的待认证用户标识,并将所述待认证用户标识发送给所述linux服务器;获取cpk密钥设备的口令,并将所述口令和终端待签名时间发送给所述cpk密钥设备;接收所述cpk密钥设备发送的签名信息,并将所述签名信息发送给所述linux服务器,以便所述linux服务器通过所述签名信息进行登录认证,所述签名信息中包括所述终端待签名时间的数字签名以及所述cpk密钥设备对应的用户标识。

进一步地,所述获取cpk密钥设备的口令,并将所述口令和终端待签名时间发送给所述cpk密钥设备包括:当接收到所述linux服务器发送的提示输入cpk密钥设备的口令时,显示口令录入界面;获取所述cpk密钥设备的口令,并将所述口令和终端待签名时间发送给所述cpk密钥设备。

进一步地,在所述将所述口令和终端待签名时间发送给所述cpk密钥设备之后,所述方法还包括:当接收到所述cpk密钥设备发送的口令验证错误的通知时,继续显示所述口令录入界面。

相应的,本发明实施例还提供一种基于cpk的linux操作系统登录认证方法,所述方法应用于cpk密钥设备,所述方法包括:接收终端发送的cpk密钥设备的口令和终端待签名时间;验证所述口令是否正确;当验证所述口令正确时,利用预设私钥对所述终端待签名时间进行数字签名,得到签名信息并将所述签名信息发送给所述终端,以便由所述终端将所述签名信息发送给linux服务器进行登录认证。

进一步地,所述接收终端发送的终端待签名时间包括:接收所述终端发送的cpk密钥设备的口令和终端待签名时间;验证所述口令,并当验证所述口令正确时,向所述终端发送口令验证正确的通知;当验证所述口令错误时,向所述终端发送口令验证错误的通知。

进一步地,所述利用预设私钥对所述终端待签名时间进行数字签名,得到签名信息包括:根据sigalice(time)=(s,c)=sign,得到签名数据data={alice,time,sign},其中,sig为签名函数,alice为所述cpk密钥设备的预设私钥,alice为所述cpk密钥设备对应的用户标识,time为所述终端待签名时间,s为签名码,c为验证码,sign用于标记(s,c)。

相应的,本发明实施例还提供一种基于cpk的linux操作系统登录认证方法,所述方法应用于linux服务器,所述方法包括:接收所述终端发送的待认证用户标识,并确定所述待认证用户标识是否存在于所述linux操作系统的合法用户信息中;当确定所述待认证用户标识存在于所述linux操作系统的合法用户信息中之后,接收所述终端发送的签名信息,并根据所述签名信息进行登录认证,所述签名信息中包括终端待签名时间的数字签名以及cpk密钥设备对应的用户标识。

进一步地,当确定所述待认证用户标识存在于所述linux操作系统的合法用户信息中之后,所述方法还包括:向所述终端发送提示输入cpk密钥设备的口令。

进一步地,所述接收所述终端发送的签名信息,并根据所述签名信息进行登录认证包括:接收所述签名信息data={alice,time,sign},其中,alice为所述cpk密钥设备对应的用户标识,time为所述终端待签名时间,sign用于标记(s,c),s为签名码,c为验证码;根据veralice(time,s)=c’,得到所述终端待签名时间的验证码c’,其中,ver为验证函数,alice为所述cpk密钥设备的预设公钥;验证c与c’是否相同;当c与c’相同时,根据所述终端待签名时间和所述cpk密钥设备对应的用户标识进行登录认证;当c与c’不相同时,确定所述待认证用户标识登录失败。

进一步地,所述根据所述终端待签名时间和所述cpk密钥设备对应的用户标识进行登录认证包括:确定所述linux操作系统的本地时间与所述终端待签名时间的时间差值;判断所述时间差值是否小于或等于预设时间;当所述时间差值小于或等于所述预设时间时,判断所述cpk密钥设备对应的用户标识是否与所述待认证用户标识一致;当所述cpk密钥设备对应的用户标识与所述待认证用户标识一致时,确定所述待认证用户标识登录成功。

进一步地,所述方法还包括:当所述时间差值大于所述预设时间时,确定所述待认证用户标识登录失败。

进一步地,所述方法还包括:当所述cpk密钥设备对应的用户标识与所述待认证用户标识不一致时,确定所述待认证用户标识登录失败。

相应的,本发明实施例还提供一种终端,所述终端用于执行上述所述的基于cpk的linux操作系统登录认证方法。

相应的,本发明实施例还提供一种cpk密钥设备,所述cpk密钥设备用于执行上述所述的基于cpk的linux操作系统登录认证方法。

相应的,本发明实施例还提供一种linux服务器,所述linux服务器用于执行上述所述的基于cpk的linux操作系统登录认证方法。

通过上述技术方案,采用cpk密钥设备和终端待签名时间的软硬件结合认证体系,而且将公钥体制的数字签名技术融入认证过程,实现了基于cpk的安全认证,提升了linux操作系统的登录安全性,解决了现有技术中通过网络攻击获得操作系统口令从而得到访问控制权的问题。

本发明实施例的其它特征和优点将在随后的具体实施方式部分予以详细说明。

附图说明

附图是用来提供对本发明实施例的进一步理解,并且构成说明书的一部分,与下面的具体实施方式一起用于解释本发明实施例,但并不构成对本发明实施例的限制。在附图中:

图1是本发明实施例提供的基于cpk的linux操作系统登录认证方法的模块示意图;

图2是本发明实施例提供的一种基于cpk的linux操作系统登录认证方法的流程示意图;

图3是本发明实施例提供的另一种基于cpk的linux操作系统登录认证方法的流程示意图;

图4是本发明实施例提供的又一种基于cpk的linux操作系统登录认证方法的流程示意图;

图5是本发明实施例提供的一种基于cpk的linux操作系统登录认证方法的流程示意图。

具体实施方式

以下结合附图对本发明实施例的具体实施方式进行详细说明。应当理解的是,此处所描述的具体实施方式仅用于说明和解释本发明实施例,并不用于限制本发明实施例。

本发明实施例是通过数字签名技术实现linux操作系统的安全认证。其中的数字签名是由cpk组合公钥体制提供的。cpk是基于标识的公钥体制,公钥由标识通过hash变换和矩阵的组合运算而得到。其中,在椭圆曲线上,g是基点,如果任意整数a是私钥,那么ag=a,a是对应于a的公钥。设:标识是alice,那么alice的公私钥分别是:标识通过hash变换,变为一串随机数序列,将随机数序列当作矩阵的坐标,将32个坐标上的变量分别累加得公、私钥。如:

(大写,斜体,表示公钥)

(小写,斜体,表示私钥)

由于公钥矩阵(ri,j)预先设置在linux服务器中,所以只要知道标识,就可以计算出公钥,而私钥矩阵(ri,j)只存在于密钥中心,私钥在cpk密钥设备中保管。其中,当用户予使用cpk密钥设备进行认证时,用户使用所述cpk密钥设备对应的用户标识向密钥中心申请私钥,从而密钥中心通过安全协议将私钥写入所述cpk密钥设备中。

为了实现本发明实施例,扩展了linux操作系统的pam(pluggableauthenticationmodules,可插入认证模块),如图1所示,将cpk安全鉴别模块设置在linux操作系统的可插入认证模块中。另外,所述cpk安全鉴别模块所依赖的公钥矩阵以及其它配置文件部署在指定的路径,修改linux操作系统的pam配置文件,注销原默认认证模块,使得在进行操作系统登录认证时直接使用所述cpk安全鉴别模块进行认证,而且需要将linux操作系统的selinux模块设置为开启状态,才能保证只能使用cpk密钥设备方可登录linux操作系统。

如图1所示,系统认证应用程序接口是要求验证服务的应用程序与提供验证服务的验证机制之间的通信接口,是linux操作系统中应用程序安全通道的入口。由于linux操作系统中包括cpk安全鉴别模块,即可实现上层应用层的多个应用程序的安全认证问题,只需要通过接口层的配置就能灵活为某一应用程序增加cpk的安全认证机制。从而在本发明实施例中,不仅支持linux操作系统的安全登录认证,还可支持多应用程序的安全认证,只需要在配置文件中配置需要实现安全认证的应用程序即可。

另外,本发明实施例中提到的linux服务器可以是远程服务器,也可以是本地服务器。

实施例一

图2是本发明实施例提供的一种基于cpk的linux操作系统登录认证方法的流程示意图。如图2所示,所述方法应用于终端,所述方法包括如下步骤:

步骤201,获取cpk密钥设备的待认证用户标识,并将所述待认证用户标识发送给所述linux服务器;

步骤202,获取cpk密钥设备的口令,并将所述口令和终端待签名时间发送给所述cpk密钥设备;

步骤203,接收所述cpk密钥设备发送的签名信息,并将所述签名信息发送给所述linux服务器,以便所述linux服务器通过所述签名信息进行登录认证,所述签名信息中包括所述终端待签名时间的数字签名以及所述cpk密钥设备对应的用户标识。

在本发明实施例中,当用户将cpk密钥设备插入所述终端之后,所述终端即可获取到所述cpk密钥设备的待认证用户标识,从而将所述待认证用户标识发送给所述linux服务器。

对于步骤202,当接收到所述linux服务器发送的提示输入cpk密钥设备的口令时,显示口令录入界面;获取所述cpk密钥设备的口令,并将所述口令和终端待签名时间发送给所述cpk密钥设备。

另外,当接收到所述cpk密钥设备发送的口令验证错误的通知时,继续显示所述口令录入界面。

通过本发明实施例,采用cpk密钥设备和口令的双因子认证,即使口令被泄密也没关系,因为没有cpk密钥设备是无法登录linux操作系统,有效防止网络攻击,使得最常用的网络攻击手段完全失效,解决了现有技术中通过网络攻击获得操作系统口令从而得到访问控制权的问题,实现了基于cpk的安全认证,提升了linux操作系统的登录安全性。

实施例二

图3是本发明实施例提供的一种基于cpk的linux操作系统登录认证方法的流程示意图。如图3所示,所述方法应用于cpk密钥设备,所述方法包括如下步骤:

步骤301,接收终端发送的cpk密钥设备的口令和终端待签名时间;

步骤302,验证所述口令是否正确;

步骤303,当验证所述口令正确时,利用预设私钥对所述终端待签名时间进行数字签名,得到签名信息并将所述签名信息发送给所述终端,以便由所述终端将所述签名信息发送给linux服务器进行登录认证。

其中,当验证所述口令错误时,向所述终端发送口令验证错误的通知。

另外,所述cpk密钥设备内保存有所述cpk密钥设备对应的用户标识的预设私钥,从而在步骤302中可利用所述预设私钥对所述终端待签名时间进行数字签名,得到签名信息,具体为:

根据sigalice(time)=(s,c)=sign,得到签名数据data={alice,time,sign},其中,sig为签名函数,alice为所述cpk密钥设备的预设私钥,alice为所述cpk密钥设备对应的用户标识,time为所述终端待签名时间,s为签名码,c为验证码,sign用于标记(s,c)。

通过本发明实施例,利用cpk密钥设备对终端待签名时间进行数字签名之后,得到签名信息,以便linux服务器对所述签名信息中的终端待签名时间进行验证,即每次登录都会对一个终端待签名时间进行数字签名,解决了现有技术中通过网络攻击获得操作系统口令从而得到访问控制权的问题,实现了基于cpk的安全认证,提升了linux操作系统的登录安全性。

实施例三

图4是本发明实施例提供的一种基于cpk的linux操作系统登录认证方法的流程示意图。如图4所示,所述方法应用于linux服务器,所述方法包括如下步骤:

步骤401,接收所述终端发送的待认证用户标识,并确定所述待认证用户标识是否存在于所述linux操作系统的合法用户信息中;

步骤402,当确定所述待认证用户标识存在于所述linux操作系统的合法用户信息中之后,接收所述终端发送的签名信息,并根据所述签名信息进行登录认证,所述签名信息中包括终端待签名时间的数字签名以及cpk密钥设备对应的用户标识。

其中,当确定所述待认证用户标识存在于所述linux操作系统的合法用户信息中之后,所述linux服务器向所述终端发送提示输入cpk密钥设备的口令。

对于步骤402,接收所述签名信息data={alice,time,sign},其中,alice为所述cpk密钥设备对应的用户标识,time为所述终端待签名时间,sign用于标记(s,c),s为签名码,c为验证码。然后根据veralice(time,s)=c’,得到所述终端待签名时间的验证码c’,其中,ver为验证函数,alice为所述cpk密钥设备的预设公钥。之后验证c与c’是否相同,当c与c’相同时,根据所述终端待签名时间和所述cpk密钥设备对应的用户标识进行登录认证,而当c与c’不相同时,确定所述待认证用户标识登录失败。

另外,当c与c’相同时,根据所述终端待签名时间和所述cpk密钥设备对应的用户标识进行登录认证包括:确定所述linux操作系统的本地时间与所述终端待签名时间的时间差值,并判断所述时间差值是否小于或等于预设时间,当所述时间差值小于或等于所述预设时间时,判断所述cpk密钥设备对应的用户标识是否与所述待认证用户标识一致,当所述cpk密钥设备对应的用户标识与所述待认证用户标识一致时,确定所述待认证用户标识登录成功。即判断本次登录认证开始时,接收到的待认证用户标识是否与所述cpk密钥设备对应的用户标识一致,保证了上述二者为同一用户。

而当所述时间差值大于所述预设时间时,确定所述待认证用户标识登录失败。另外,当所述cpk密钥设备对应的用户标识与所述待认证用户标识不一致时,也确定所述待认证用户标识登录失败。

其中,由于在所述linux服务器中存储有公钥矩阵,在获得cpk密钥设备对应的用户标识之后,利用公钥矩阵就可以得到所述用户标识对应的预设公钥。

通过本发明实施例,利用cpk密钥设备对终端待签名时间进行数字签名之后,得到签名信息,linux服务器对所述签名信息中的终端待签名时间进行验证,即每次登录都生成一个终端待签名时间,实现了登录凭证的动态变化,另外,对于终端待签名时间与系统时间的比较,可解决重放攻击的问题。通过数字签名技术实现linux操作系统的安全认证,解决了静态口令易猜测、可拦截的问题。

实施例四

为了便于理解本发明实施例,下面以终端、cpk密钥设备和linux服务器之间的信息交互进行说明本发明实施例。图5是本发明实施例提供的一种基于cpk的linux操作系统登录认证方法的流程示意图。如图5所示,所述方法包括如下步骤:

步骤501,终端获取cpk密钥设备的待认证用户标识,并将所述待认证用户标识发送给所述linux服务器;

步骤502,所述linux服务器接收待认证用户标识,并确定所述待认证用户标识是否存在于所述linux操作系统的合法用户信息中,若是则执行步骤503,若否则返回步骤501;

步骤503,向所述终端发送提示输入cpk密钥设备的口令;

步骤504,所述终端接收所述提示输入cpk密钥设备的口令,显示口令录入界面;

步骤505,所述终端获取所述cpk密钥设备的口令,并将所述口令和终端待签名时间发送给所述cpk密钥设备;

步骤506,所述cpk密钥设备接收所述终端发送的cpk密钥设备的口令和终端待签名时间;

步骤507,验证所述口令是否正确,当验证所述口令正确时执行步骤508,当验证所述口令错误时,向所述终端发送口令验证错误的通知并返回步骤504;

步骤508,所述cpk密钥设备利用预设私钥对所述终端待签名时间进行数字签名,得到签名信息并将所述签名信息发送给所述终端;

步骤509,所述终端接收所述cpk密钥设备发送的签名信息,并将所述签名信息发送给所述linux服务器;

步骤510,所述linux服务器接收所述终端发送的签名信息,并对所述签名信息进行验证,当验证通过后执行步骤511,验证未通过则确定所述待认证用户标识登录失败;

步骤511,确定所述linux操作系统的本地时间与所述终端待签名时间的时间差值;

步骤512,判断所述时间差值是否小于或等于预设时间,若是执行步骤513,若否确定所述待认证用户标识登录失败;

步骤513,判断所述cpk密钥设备对应的用户标识是否与所述待认证用户标识一致,若是确定所述待认证用户标识登录成功,若否确定所述待认证用户标识登录失败。

通过上述实施例,利用数字签名技术实现操作系统的安全认证,解决静态口令易猜测、可拦截的问题。另外,登录时必须提供cpk密钥设备和口令,采用强双因子认证,即使口令泄密也不担心。有效地防止网络攻击,没有cpk密钥设备无法登录,使得常用的网络攻击手段完全失效。本发明实施例还具有高度松耦合性和可扩展性,不仅支持linux操作系统的登录,还支持多应用程序的登录认证,只需要修改linux操作系统中的配置文件即可实现应用程序的cpk安全认证,应用程序无需进行代码修改。

相应的,本发明实施例还提供了一种终端,所述终端用于执行上述实施例中应用于终端的所述的基于cpk的linux操作系统登录认证方法。

相应的,本发明实施例还提供了一种cpk密钥设备,所述cpk密钥设备用于执行上述实施例中应用于cpk密钥设备的所述的基于cpk的linux操作系统登录认证方法。

相应的,本发明实施例还提供了一种linux服务器,所述linux服务器用于执行上述实施例中应用于linux服务器的所述的基于cpk的linux操作系统登录认证方法。

以上结合附图详细描述了本发明实施例的可选实施方式,但是,本发明实施例并不限于上述实施方式中的具体细节,在本发明实施例的技术构思范围内,可以对本发明实施例的技术方案进行多种简单变型,这些简单变型均属于本发明实施例的保护范围。

另外需要说明的是,在上述具体实施方式中所描述的各个具体技术特征,在不矛盾的情况下,可以通过任何合适的方式进行组合。为了避免不必要的重复,本发明实施例对各种可能的组合方式不再另行说明。

本领域技术人员可以理解实现上述实施例方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序存储在一个存储介质中,包括若干指令用以使得单片机、芯片或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、磁碟或者光盘等各种可以存储程序代码的介质。

此外,本发明实施例的各种不同的实施方式之间也可以进行任意组合,只要其不违背本发明实施例的思想,其同样应当视为本发明实施例所公开的内容。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1