一种分布式***中的双向安全审计方法及装置
技术领域
本发明涉及一种分布式***中的安全控制技术
背景技术
分布式平台是一项基于中间件的技术,中间件是一种独立的***软件或服务程序,分布式平台通过该技术在不同的服务器之间共享资源,统一管理分布于不同服务器的服务和资源。用户在需要使用服务或资源时,通过客户端向分布式平台发出所需服务/资源的请求,并由分布式平台对用户所请求的服务/资源进行定位,找到该服务/资源所在的服务器,将该请求发送至对应的服务器进行处理,服务器处理完毕后,得出的处理结果仍然通过此分布式平台反馈给该客户端。
在分布式***中,为了防止安全威胁,必须在整个***运作中采用安全防范措施,即安全认证方法。具体的说,首先对于每一个处于客户端的用户,该***都对其进行身份验证,并在验证通过后颁发数字证书和属性证书。用户在客户端登陆时会对其所提供的证书和密钥进行鉴定,只有在证明其合法身份及确定权限后,其所提出的请求才会得到响应。这个过程就是确认实体是他自己所声明的自己以及拥有合法有效的访问权限。使用数字证书的身份认证是一种强因子认证。数字证书是第三方权威公正的颁发机构签发,所以他能向一个实体确认另一个实体确实是他自己。
在现有技术中,安全服务只在登录时进行身份和权限验证,就认定其在随后的运行时间内一直处于合法的身份和有效的权限分配。这为整个***的安全性留下了隐患,为恶意攻击者提供了机会,并对审计模块的正常执行带来了不稳定因素。特别是针对一些重要工业数据的访问,执行更新、删除和复制操作时,仅对使用主体进行“一次验证通过,永远有效”的访问控制是不合理、不可靠及不彻底的。
另外,本发明的发明人发现在现有分布式网络***中,用户、客户端和应用进程都具备认证身份的数字证书和密钥。***通过数字证书和密钥对其进行身份认证,为其提供服务。而作为提供服务方的服务器却不具备可鉴定的身份认证,也没有任何数字证书与密钥,更不对服务器的操作的合法性进行审计,无法确保这样的服务器所提供的服务合法,也无法辨识所获取的数据是否有效。尽管后台服务器群处于一个相对隔离的内部局域网中,安全威胁较小,但也无法完全排除内部泄密、或内部黑客等人为行为。服务器与服务器之间的相互通讯无法保障数据的安全需求,这种安全级别对于普通的互联网***而影响较小,但对于要求高保密性的工业互联网而言是不够的,一旦发生非法行为,所造成的后果也更为严重。可见,为分布式平台提供一种更为有效的双向安全审计方法是保障分布式***安全性的关键之一。
发明内容
本发明主要解决的技术问题是提供一种分布式***中的双向安全审计方法及装置,确保分布式***中用户、应用程序、服务器及***应用场景中的各种合法角色在登录***之后的操作中的身份和权限合法有效,最大程度保障***安全。
为了解决上述技术问题,本发明提供了一种分布式***中的双向安全审计方法,审计日志至少包含以下之一:操作时间、数据源、安全等级和访问结果,并包含以下步骤:
分布式***中每个受控端包含一身份认证模块,该身份认证模块中存储该受控端的数字证书、角色信息和角色对应的权限信息;
受控端使用所述数字证书通过身份认证后,登录所述分布式***;
在登录后的受控端每次执行操作时,参照该受控端当前的角色所对应的权限信息对其操作信息进行审计,如果该权限信息中包含所述操作的权限,则允许该受控端执行所述操作,反之则禁止该受控端执行所述操作;
该受控端至少包含接入所述分布式***的客户端和所述分布式***中的服务器。
作为上述技术方案的改进,在受控端每次执行操作时,还包含以下步骤:
对受控端数字证书进行验证,在验证通过后,参照该受控端当前的角色所对应的权限信息对其操作信息进行审计。
作为上述技术方案的改进,在对该客户端的用户的数字证书进行验证的步骤之前,对用户的密钥进行验证。
作为上述技术方案的改进,如果受控端对应至少两个角色,则该受控端的身份认证模块中对应包含各角色的角色信息和各角色对应的权限信息;
受控端在登录所述分布式***时,选择当前使用的角色。
作为上述技术方案的改进,身份认证模块为一外接模块,数字证书验证的步骤和所述操作信息审计的步骤中,从该外接的身份认证模块获取受控端的数字证书和当前角色所对应的权限信息,如果受控端与外接的身份认证模块断开连接,则该数字证书验证或操作信息审计失败。
作为上述技术方案的改进,受控端执行的操作至少包含以下之一:获取服务、访问***资源、访问后台数据。
作为上述技术方案的改进,数字证书为基于X.509标准的数字证书;
角色对应的权限信息保存在该基于X.509标准的数字证书的扩展字段中。
作为上述技术方案的改进,分布式***中各类***资源和后台数据分别对应一权限值,该分布式***中的各服务分别对应一服务码;
身份认证模块存储的权限信息包括一可访问服务列表和一权限值;
参照受控端当前的角色所对应的权限信息对其操作信息进行审计的方式为:
如果受控端请求获取服务,则读取其请求中的服务码及其身份认证模块中对应当前角色的可访问服务列表,如果该服务码在该列表中对应的权限为允许,则允许该受控端获取所述服务;反之如果该服务码对应的权限为禁止,则禁止该受控端获取所述服务;
如果受控端请求访问***资源或后台数据,则将该待访问的***资源或后台数据的权限值与该受控端的权限值相比较,如果受控端权限值高于或等于待访问的***资源或后台数据的权限值,则允许该受控端访问所述***资源或后台数据;反之,则禁止该受控端访问所述***资源或后台数据。
作为上述技术方案的改进,可访问服务列表为一字符串,字符串中每个比特对应一个服务,该比特的值表示该受控端允许或禁止使用该服务。
作为上述技术方案的改进,对于预设范围内的高安全等级的执行操作,保存审计日志;
审计日志至少包含以下之一:操作时间、数据源、安全等级和访问结果。
本发明还提供了一种分布式***中的双向安全审计装置,还包含:
分布式***中每个受控端包含一身份认证模块,该身份认证模块中存储该受控端的数字证书、角色信息和角色对应的权限信息,该装置包含:
验证模块,用于对受控端数字证书进行验证,在验证通过后,允许该客户端登录所述分布式***;
权限审计模块,用于在受控端每次执行操作时,参照该受控端当前的角色所对应的权限信息对其操作信息进行审计,如果该权限信息中包含所述操作的权限,则允许该受控端执行所述操作,反之则禁止该受控端执行所述操作;
受控端至少包含接入所述分布式***的客户端和所述分布式***中的服务器。
作为上述技术方案的改进,还包含:
身份审计模块,用于在受控端每次执行操作时,对该受控端数字证书进行验证,在验证通过后,指示权限审计模块对操作信息进行审计。
作为上述技术方案的改进,对于客户端,身份审计模块还对使用该客户端的用户的密钥进行验证。
作为上述技术方案的改进,如果受控端对应至少两个角色,则该受控端的身份认证模块中对应包含各角色的角色信息和各角色对应的权限信息;
受控端在登录所述分布式***时,选择当前使用的角色。
作为上述技术方案的改进,身份认证模块为一外接模块,权限审计模块和身份审计模块从该外接的身份认证模块获取受控端的数字证书和当前角色所对应的权限信息,如果受控端与外接的身份认证模块断开连接,则数字证书验证或所述操作信息审计失败。
作为上述技术方案的改进,受控端执行的操作至少包含以下之一:获取服务、访问***资源、访问后台数据;
分布式***中各类***资源和后台数据分别对应一权限值,该分布式***中的各服务分别对应一服务码;身份认证模块存储的权限信息包括一可访问服务列表和一权限值;
权限审计模块对操作信息进行审计的方式为:
如果受控端请求获取服务,则读取其请求中的服务码及其身份认证模块中对应当前角色的可访问服务列表,如果该服务码在该列表中对应的权限为允许,则允许该受控端获取所述服务;反之如果该服务码对应的权限为禁止,则禁止该受控端获取所述服务;
如果受控端请求访问***资源或后台数据,则将该待访问的***资源或后台数据的权限值与该受控端的权限值相比较,如果受控端权限值高于或等于待访问的***资源或后台数据的权限值,则允许该受控端访问所述***资源或后台数据;反之,则禁止该受控端访问所述***资源或后台数据。
作为上述技术方案的改进,可访问服务列表为一字符串,字符串中每个比特对应一个服务,该比特的值表示该受控端允许或禁止使用该服务。
作为上述技术方案的改进,还包含:
审计日志模块,对于预设范围内的高安全等级的执行操作,保存审计日志;
审计日志至少包含以下之一:操作时间、数据源、安全等级和访问结果。
本发明实施方式与现有技术相比,主要区别及其效果在于:在分布式***中受控端(至少包括接入分布式***的客户端和分布式***中的服务器)通过身份认证,登录分布式***后,每次执行操作时,参照该受控端当前的角色所对应的权限信息对其操作信息进行审计,如果该权限信息中包含该操作的权限,则允许该受控端执行该操作,反之则禁止该受控端执行该操作;从而确保分布式***中用户、应用程序、服务器及***应用场景中的各种合法角色在登录***之后的操作中的身份和权限合法有效,最大程度保障***安全。
在受控端每次执行操作时,还对该受控端密码及数字证书进行验证,即进行身份审计,在身份审计通过后,参照该受控端当前的角色所对应的权限信息对其操作信息进行审计。从而有效防止操作者临时离开情况下,不法者盗用情况,进一步保障***安全性。
该身份认证模块为一外接模块,身份认证的步骤和操作信息审计的步骤中,均从该外接的身份认证模块获取受控端的数字证书和当前角色所对应的权限信息,一旦受控端与外接的身份认证模块断开连接,则身份认证或操作信息审计失败,受控端无法执行任何操作,保障了***安全性。
对于安全等级较高的资源访问及执行操作,都会留下包含时间、数据源、安全等级和访问结果等信息的审计日志,用以今后的统计和跟踪,随时发现可疑情况。
附图说明
下面结合附图和具体实施方式对本发明作进一步详细说明。
图1是本发明第一实施方式的分布式***中的双向安全审计方法中用户侧的审计流程图;
图2是本发明第一实施方式中的X.509身份证书结构示意图;
图3是本发明第一实施方式的分布式***中的双向安全审计方法中服务器侧的审计流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明的实施方式作进一步地详细描述。
本发明第一实施方式涉及一种分布式***中的双向安全审计方法,本实施方式中,摈弃传统的***中服务器默认为安全的观念,在分布式***中的客户端及服务器每次执行操作前,都要对其进行身份鉴定和权限审计,即对于每一次用户或服务器的数据访问、操作执行及资源享用都有进行身份鉴定和权限审计。其中,操作执行一般包括获取服务、访问***资源、访问后台数据等。而对于预设范围内的高安全等级的执行操作,还进行跟踪记录,生成日志信息,以便日后***据此产生离线统计和审计报告。
本实施方式中,用户向分布式平台发出登陆请求,并输入相应的密码。若用户关联两个或以上的角色时,则需在登陆界面上选择相应的角色。此时,分布式平台结合密钥对数字证书进行验证。经分布式平台验证通过后,返回与该用户所选角色及其权限相对应的用户界面。若用户需要执行一操作,需向分布式平台递交相应的操作信息,如请求服务的服务码、或请求访问的***资源标识、或后台数据标识等,由分布式平台进行身份和权限的双重审计,并记录下相应的审计日志。
具体的双向安全审计方法如图1所示,在步骤101中,用户通过客户端向分布式平台发出登陆请求,在客户端上外接一身份认证模块,并在客户端输入相应的密码。本步骤中,若该用户关联两个或以上的角色时,还需要选择当前登录的角色。该身份认证模块中包含该用户的数字证书、该用户对应的角色的角色信息和角色对应的权限信息。对于包含多个角色的用户,该身份认证模块中分别包含各角色信息,以及各角色对应的权限信息。
步骤102中,分布式平台结合用户的密钥对其数字证书进行验证。
从该外接的身份认证模块获取用户的数字证书,如果用户使用的客户端与外接的身份认证模块断开连接,则身份认证失败。
其中,数字证书采用基于X.509标准,并将用户角色及角色对应的权限信息保存在该数字证书的扩展字段中,如图2所示。
步骤103中,向用户返回验证结果。若验证通过,则返回该角色和权限相对应的用户界面,进入步骤104。若没有通过验证,则返回登录失败信息,结束本流程。
步骤104中,用户向分布式平台递交所需执行操作请求。用户需要执行的操作一般包括:获取服务、访问***资源、访问后台数据等。
步骤105中,分布式平台收到该执行操作的请求后,先对用户进行身份认证,在身份认证通过后,参照该用户当前的角色所对应的权限信息对其操作信息进行审计,确定该用户是否有执行相应操作的权限,如果有执行该操作的权限则进入步骤106,如果没有则进入步骤107。
其中,身份认证的方式同步骤102,结合用户的密钥对数字证书进行验证。即要求用户输入密码,对该用户的密码及数字证书分别进行验证。
具体的说,参照该用户当前的角色所对应的权限信息对其操作信息进行审计的方式如下:
分布式***中的各服务分别对应一服务码;分布式***中各类***资源和后台数据分别对应一权限值。用户的身份认证模块存储的权限信息包括一可访问服务列表和一权限值。
其中,可访问服务列表为一字符串,共128比特。字符串中每个比特对应一个服务,该比特的值为1表示允许该用户使用该服务,该比特的值为0标表示禁止使用该服务,如表1所示。
表1
如果用户请求执行的操作为获取服务,则读取其请求中的服务码及其身份认证模块中对应当前角色的可访问服务列表,如果该服务码在该列表中对应的权限为允许,则允许该用户获取该服务;反之如果该服务码对应的权限为禁止,则禁止该用户获取该服务。以服务A为例,用户在需要请求获取该服务时,在其操作请求中包含服务码28,分布式平台根据该服务码找到该用户的可访问服务列表中相应的比特,该比特为0,说明禁止该用户获取该服务。
如果用户请求访问***资源或后台数据,则将该待访问的***资源或后台数据的权限值与该用户的权限值相比较,如果用户权限值高于或等于待访问的***资源或后台数据的权限值,则允许该用户访问***资源或后台数据;反之,则禁止该用户访问***资源或后台数据。举例而言,用户希望访问A资源,则在其操作请求中包含所请求的资源标识,分布式平台收到该请求后,根据该资源标识确定A资源的权限值,将该权限值与身份认证模块中存储的权限值相比较,如果用户身份认证模块中的权限值低于A资源的权限值,则禁止该用户访问A资源,反之则允许该用户访问A资源。
通过结合128比特服务列表、和权限值进行权限审计,使得权限审计实现起来更方便,审计速度更快,不影响***正常使用。
步骤106中,对照用户当前角色对应的可访问列表的相应位置,在对应位置的比特为1时,该用户具有执行该操作的权限,向该用户返回服务对象接口。用户根据服务对象接口,向对应的服务器获取所需的信息,包括用户所需的服务、用户访问***资源或后台数据等。
步骤107中,在权限审计得到该用户不具有执行该操作的权限,返回操作请求失败的信息。
本实施方式中,服务器在启动后,执行任何操作时,同样需要进行审计。具体地说,服务器在为用户提供服务的过程中,同样需要调用其他服务、访问***资源或后台数据,在服务器进行上述操作时,平台同样对其进行审计,在审计通过后,返回相应的服务对象接口。
具体流程如图3所示,在步骤301中,服务器启动时登陆分布式平台。与用户相同,服务器登录时同样需要外接一身份认证模块,该身份认证模块中存储该服务器的数字证书、角色信息和对应的权限信息。其中角色信息为固定的,即服务器角色。服务器在登录时同样需要密码,为了方便使用,其登录密码可以直接保存在该服务器程序中。
步骤302中,分布式平台结合服务器的密码对其数字证书进行验证。
从该外接的身份认证模块获取服务器的数字证书,如果服务器与外接的身份认证模块断开连接,则身份认证失败。
数字证书同样采用基于X.509标准,并将服务器角色(固定角色)及对应的权限信息保存在该数字证书的扩展字段中,如图2所示。
步骤303中,平台向服务器返回验证结果。若验证通过,则允许该服务器登录分布式平台,进入步骤304。若没有通过验证,则返回登录失败信息,结束本流程。
步骤304中,在有需求时,服务器向分布式平台递交所需执行操作请求。一般包括:获取其他服务、访问***资源、访问后台数据等。
步骤305中,分布式平台收到该执行操作的请求后,先对服务器进行身份认证,在身份认证通过后,参照该服务器当前的权限信息对其操作信息进行审计,确定该服务器是否有执行相应操作的权限,如果有执行该操作的权限则进入步骤306,如果没有则进入步骤307。
其中,身份认证的方式同步骤302,结合服务器的密钥对数字证书进行验证。即对该服务器的密码及数字证书分别进行验证。
参照该服务器当前的权限信息对其操作信息进行审计的方式与步骤105中类似,如果服务器请求执行的操作为获取服务,则读取其请求中的服务码及其身份认证模块中的可访问服务列表,如果该服务码在该列表中对应的权限为允许,则允许该服务器获取该服务;反之如果该服务码对应的权限为禁止,则禁止该服务器获取该服务。
如果服务器请求访问***资源或后台数据,则将该待访问的***资源或后台数据的权限值与该服务器的权限值相比较,如果服务器权限值高于或等于待访问的***资源或后台数据的权限值,则允许该服务器访问***资源或后台数据;反之,则禁止该服务器访问***资源或后台数据。
步骤306中,该服务器的操作请求通过审计,分布式平台向该服务器返回服务对象接口。服务器根据服务对象接口,向对应的服务器获取所需的信息,包括服务器所需的服务、服务器访问***资源或后台数据等。
步骤307中,在权限审计得到该服务器不具有执行该操作的权限,返回操作请求失败的信息。
综上所述,采用上述双向审计技术后,分布式***中的任何用户及服务器在进行每一次服务调用、每一次数据调用、每一次资源访问时,都需要在进行身份审计和权限审计,从而确保分布式***中用户、应用程序、服务器及***应用场景中的各种合法角色在登录***之后执行操作时,其身份和权限是合法有效,最大程度保障***安全。并且,对于安全等级较高的资源访问及执行操作,都会留下包含时间、数据源、安全等级和访问结果等信息的审计日志,用以今后的统计和跟踪。从而进一步保障***安全。
并且,在对用户或者服务器的权限信息进行审计之前,先对该受控端密码及数字证书进行验证,即进行身份审计,从而有效防止操作者临时离开情况下,不法者盗用情况,进一步保障***安全性。
本发明第二实施方式涉及一种分布式***中的双向安全审计装置,包含:分布式***中每个受控端包含一身份认证模块,该身份认证模块中存储该受控端的数字证书、角色信息和角色对应的权限信息,该装置包含:验证模块,用于对受控端数字证书进行验证,在验证通过后,允许该客户端登录分布式***;权限审计模块,用于在受控端每次执行操作时,参照该受控端当前的角色所对应的权限信息对其操作信息进行审计,如果该权限信息中包含该操作的权限,则允许该受控端执行该操作,反之则禁止该受控端执行该操作;受控端至少包含接入分布式***的客户端和分布式***中的服务器。
作为上述技术方案的改进,该装置中还可以包含:身份审计模块,用于在受控端每次执行操作时,对该受控端数字证书进行验证,在验证通过后,指示权限审计模块对操作信息进行审计。
作为上述技术方案的改进,对于客户端,该身份审计模块还对使用该客户端的用户的密钥进行验证。
作为上述技术方案的改进,如果受控端对应至少两个角色,则该受控端的身份认证模块中对应包含各角色的角色信息和各角色对应的权限信息;受控端在登录分布式***时,选择当前使用的角色。
作为上述技术方案的改进,身份认证模块为一外接模块,权限审计模块和身份审计模块从该外接的身份认证模块获取受控端的数字证书和当前角色所对应的权限信息,如果受控端与外接的身份认证模块断开连接,则数字证书验证或该操作信息审计失败。
作为上述技术方案的改进,受控端执行的操作至少包含以下之一:获取服务、访问***资源、访问后台数据;分布式***中各类***资源和后台数据分别对应一权限值,该分布式***中的各服务分别对应一服务码;身份认证模块存储的权限信息包括一可访问服务列表和一权限值;
权限审计模块对操作信息进行审计的方式为:如果受控端请求获取服务,则读取其请求中的服务码及其身份认证模块中对应当前角色的可访问服务列表,如果该服务码在该列表中对应的权限为允许,则允许该受控端获取该服务;反之如果该服务码对应的权限为禁止,则禁止该受控端获取该服务;
如果受控端请求访问***资源或后台数据,则将该待访问的***资源或后台数据的权限值与该受控端的权限值相比较,如果受控端权限值高于或等于待访问的***资源或后台数据的权限值,则允许该受控端访问该***资源或后台数据;反之,则禁止该受控端访问该***资源或后台数据。
作为上述技术方案的改进,可访问服务列表为一字符串,字符串中每个比特对应一个服务,该比特的值表示该受控端允许或禁止使用该服务。
作为上述技术方案的改进,该装置还可以包含:审计日志模块,对于预设范围内的高安全等级的执行操作,保存审计日志;审计日志至少包含以下之一:操作时间、数据源、安全等级和访问结果。
通过本实施方式,可以确保分布式***中用户、应用程序、服务器及***应用场景中的各种合法角色在登录***之后的操作中的身份和权限合法有效,最大程度保障***安全。
虽然通过参照本发明的某些优选实施方式,已经对本发明进行了图示和描述,但本领域的普通技术人员应该明白,可以在形式上和细节上对其作各种改变,而不偏离本发明的精神和范围。