CN116760639B - 一种用于多租户的数据安全隔离与共享框架实现方法 - Google Patents

一种用于多租户的数据安全隔离与共享框架实现方法 Download PDF

Info

Publication number
CN116760639B
CN116760639B CN202311040375.6A CN202311040375A CN116760639B CN 116760639 B CN116760639 B CN 116760639B CN 202311040375 A CN202311040375 A CN 202311040375A CN 116760639 B CN116760639 B CN 116760639B
Authority
CN
China
Prior art keywords
data
event
tenant
events
access
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.)
Active
Application number
CN202311040375.6A
Other languages
English (en)
Other versions
CN116760639A (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.)
Shenzhen Henghe Shuxin Technology Co ltd
Original Assignee
Shenzhen Daheng Data Security Technology Co ltd
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 Shenzhen Daheng Data Security Technology Co ltd filed Critical Shenzhen Daheng Data Security Technology Co ltd
Priority to CN202311040375.6A priority Critical patent/CN116760639B/zh
Publication of CN116760639A publication Critical patent/CN116760639A/zh
Application granted granted Critical
Publication of CN116760639B publication Critical patent/CN116760639B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/0807Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/105Multiple levels of security
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • H04L9/3242Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3271Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/40Network security protocols

Abstract

本发明公开了一种用于多租户的数据安全隔离与共享框架实现方法,所述共享框架为基于平台架构的实现方法,所述平台架构包括基于微服务架构实现的应用层和数据访问层,以及基于数据湖实现的数据层,所述数据访问层包括API网关和事件驱动架构EDA,所述API网关负责处理和转发来自应用层的请求以及根据请求的租户信息将请求路由到相应的服务和数据,所述事件驱动服务负责处理系统内部的事件。本发明的用于多租户的数据安全隔离与共享框架实现方法解决了如何在保证数据安全隔离与有效共享的同时,提高系统的稳定性、可扩展性和数据处理效率的问题。

Description

一种用于多租户的数据安全隔离与共享框架实现方法
技术领域
本发明属于计算机技术领域,尤其涉及一种用于多租户的数据安全隔离与共享框架实现方法。
背景技术
随着云计算和大数据应用的飞速发展,云数据取证鉴定分析平台正得到越来越广泛的应用。这种平台需要处理大量的云数据,以便为用户提供精确和高效的数据取证和鉴定服务。然而,现有技术在满足这些需求方面存在一些重要的挑战。
多租户环境下的数据隔离与共享环境中,不同的租户,例如不同的机构,共享同一套系统资源,但他们的数据需要在系统中被严格隔离,以确保数据的安全性。同时,为了提高数据的利用效率,租户之间又需要在一定程度上共享数据。现有的数据隔离技术,如物理隔离或逻辑隔离,往往在数据共享方面的灵活性和效率上存在限制。
其次,在线云数据取证鉴定分析中,防止数据的未授权访问和泄漏是至关重要的。现有的访问控制机制,通常依赖于复杂的权限管理系统,但这些系统在处理大量的租户和数据时,可能无法提供足够的性能和灵活性。
处理和分析大规模数据的系统稳定性和可扩展性也是一项重大挑战,传统的单体架构在面对大规模数据和大量并发请求时,可能会遇到性能瓶颈。而微服务架构和事件驱动架构,虽然可以提高系统的可扩展性,但却需要复杂的服务管理和协调机制。
因此,如何在保证数据安全隔离与有效共享的同时,提高系统的稳定性、可扩展性和数据处理效率,是云数据取证鉴定分析平台需要解决的重要技术问题。
发明内容
针对上述现有技术中存在的缺陷,本发明提供一种用于多租户的数据安全隔离与共享框架实现方法,所述共享框架为基于平台架构的实现方法,其特征在于,
所述平台架构包括基于微服务架构实现的应用层和数据访问层,以及基于数据湖实现的数据层;
所述数据访问层包括API网关和事件驱动架构EDA,所述API网关负责处理和转发来自应用层的请求以及根据请求的租户信息将请求路由到相应的服务和数据,所述事件驱动服务负责处理系统内部的事件;
以及,通过在API网关中实施访问控制策略来实现对数据进行访问控制,确保每个租户只能访问自己的数据,所述访问控制包括只有当请求中的租户ID与被请求数据的租户ID匹配时才允许访问对应数据,同时在所述API网关中对应用服务的权限进行管理;
基于数据湖的数据层,负责存储和管理所有租户的数据。
其中,数据共享服务允许租户将自己的某些数据标记为可共享的,当其他租户请求访问这些数据时,数据共享服务会检查请求者是否有权限访问,如果有则返回请求的数据;
以及,数据共享服务允许租户将自己的某些数据标记对特定租户标记为可永久共享或临时共享。
其中,基于租户ID和应用本身对数据属性类型的访问权限来限制对数据的访问,同时应用对租户的角色控制用于进一步细分对数据的访问权限。
其中,定义基于租户ID和应用ID的复合角色,所述复合角色可以在权限管理系统中创建和管理;每个复合角色都有其对应的权限集。
其中,定义基于租户和应用的复合身份;
当租户的应用请求访问API时,需要提供一个令牌,这个令牌是基于租户和应用的身份生成的;
当API网关收到请求时,首先验证令牌,然而通过发起挑战的方式来验证每次数据请求。
其中,当复合身份首次请求访问API时,需要向认证服务器请求一个JWT令牌,在这个过程中复合身份需要提供身份信息;
认证服务器验证复合身份的身份信息,如果验证成功,则生成一个JWT令牌,然后返回给复合身份,所述JWT令牌中包含复合身份的身份信息,以及一个MAC,用于验证令牌的完整性。
当复合身份使用JWT令牌请求访问API时,API网关首先验证令牌的MAC和其他属性,如果验证成功,所述API网关生成一个随机数或随机字符串作为挑战,然后将其发送给复合身份;
复合身份使用挑战和内部存储的密钥,复合身份将计算出的响应发送给API网关;
API网关使用同样的挑战和API网关内存储的复合身份的密钥,通过同样的公式或函数计算出一个响应;
然后,API网关比较自己计算的响应和复合身份发送的响应;
如果两者匹配,则验证成功,否则验证失败。
其中,事件驱动架构EDA依赖于事件的产生和处理来驱动整个系统的运行,所述事件驱动架构包括三种控制架构:
第一控制架构用于当多个事件同时发生时决定先处理哪个事件,以及在处理大量事件的系统中过滤掉一些事件,以减轻处理器的负担;
第二控制架构用于在一个分布式的事件驱动系统中,当一个事件发生时决定将这个事件发送给哪些处理器;
第三控制架构用于在处理流事件的系统中,将多个相关的事件聚合成一个事件,以简化处理过程。
其中,事件驱动架构EDA的平台架构至少包括的模块为:事件源、事件总线、事件调度和过滤服务、事件路由服务和事件处理器。
其中,所述事件源是产生事件的部分,包括来自不同应用服务的请求;
所有产生的事件都会首先发送到事件总线,事件源将事件发布到事件总线,其他服务可以从事件总线订阅事件;
在事件调度和过滤服务从事件总线订阅所有事件,并根据优先级规则和过滤规则决定事件处理的顺序,过滤后的事件再发送回事件总线;
事件路由服务订阅过滤后的事件,并根据事件的类型和处理器的状态,决定将事件发送到哪些处理器;
基于发布-订阅模型,处理器订阅他们关心的事件类型,当这些事件发生时,会被路由到相应的处理器进行处理;
事件处理器订阅关心的事件类型,并负责实际的事件处理。
其中,在事件调度和过滤服务从事件总线订阅所有事件,并根据优先级规则和过滤规则决定事件处理的顺序,过滤后的事件再发送回事件总线,包括:
基于应用ID、租户ID,以及请求数据的重要性的分数来确定每个请求的优先级分数,然后基于优先级分数和请求服务的相同动作的频率来确定过滤规则;
其中,通过如下公式确定优先级分数:
优先级分数=e^(AppID_score*log(TenantID_score))/(1+e^(-DataImportance_score)),
其中,
AppID_score和TenantID_score是基于应用ID和租户ID预设的基础优先级分数,这些分数可以根据应用和租户的重要性进行设定;
DataImportance_score是基于请求数据的重要性设定的重要性分数,这个分数可以根据数据的类型和内容进行设定;
以及,通过如下公式来确定过滤规则中的过滤阈值:
过滤阈值=优先级分数/(1+e^(-ActionFrequency)),
其中,ActionFrequency是服务请求的动作频率。
以及,只有当事件的优先级分数大于过滤阈值时,该请求才会被处理,小于或等于过滤阈值的事件将会被过滤。
本发明通过在API网关中实施访问控制策略和在数据湖中对每个租户的数据进行独立存储和索引,有效地防止了数据的未授权访问和泄露。通过API网关的访问控制策略和数据共享服务,本发明实现了在保证数据安全隔离的同时,支持租户之间的数据共享。通过微服务架构和事件驱动架构,本发明支持了系统的高并发处理,保证了系统在处理大量数据和请求时的稳定性和可扩展性。本发明通过数据湖支持了大规模数据的存储和高效查询,从而提高了数据处理和分析的效率。
附图说明
通过参考附图阅读下文的详细描述,本公开示例性实施方式的上述以及其他目的、特征和优点将变得易于理解。在附图中,以示例性而非限制性的方式示出了本公开的若干实施方式,并且相同或对应的标号表示相同或对应的部分,其中:
图1是示出根据本发明实施例的一种用于多租户的数据安全隔离与共享框架实现的示意图。
具体实施方式
为了使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明作进一步地详细描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
在本发明实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义,“多种”一般包含至少两种。
应当理解,尽管在本发明实施例中可能采用术语第一、第二、第三等来描述……,但这些……不应限于这些术语。这些术语仅用来将……区分开。例如,在不脱离本发明实施例范围的情况下,第一……也可以被称为第二……,类似地,第二……也可以被称为第一……。
应当理解,本文中使用的术语“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,本文中字符“/”,一般表示前后关联对象是一种“或”的关系。
取决于语境,如在此所使用的词语“如果”、“若”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的商品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种商品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的商品或者装置中还存在另外的相同要素。
如图1所示,本发明公开了一种线上云数据取证鉴定分析的基于平台架构实现的用于多租户的数据安全隔离与共享框架实现方法,所述平台架构包括应用层、数据访问层和数据层。所述平台架构包括基于微服务架构实现的应用层和数据访问层,以及基于数据湖实现的数据层。
基于微服务架构的应用层包括各种应用服务,包括数据分析、司法鉴定等。每项服务都作为一个独立的微服务来运行。
所述数据访问层包括API网关和事件驱动架构EDA,所述API网关负责处理和转发来自应用层的请求,它会根据请求的租户信息将请求路由到相应的服务和数据。事件驱动服务则负责处理系统内部的事件。
以及,通过在API网关中实施访问控制策略来实现对数据进行访问控制,确保每个租户只能访问自己的数据。所述访问控制包括只有当请求中的租户ID与被请求数据的租户ID匹配时才允许访问对应数据。同时,在所述API网关中对应用服务的权限进行管理。
基于数据湖的数据层,负责存储和管理所有租户的数据。在数据湖中,每个租户的数据都存储在单独的数据集中,通过租户ID和/或应用ID进行索引。
数据共享服务允许租户将自己的某些数据标记为可共享的,当其他租户请求访问这些数据时,数据共享服务会检查请求者是否有权限访问,如果有,则返回请求的数据。
以及,数据共享服务允许租户将自己的某些数据标记对特定租户标记为可永久共享或临时共享。
本发明通过基于微服务架构的API网关、事件驱动架构和数据湖的结合,实现了在线云数据取证鉴定分析平台的多租户数据安全隔离与共享,保证了数据的安全性,同时也保证了系统的稳定性和可扩展性。
微服务架构是将系统分解为一系列小的、独立的服务,每个服务都可以独立部署和扩展。在多租户环境中,微服务架构可以使得系统具有更好的扩展性和灵活性。
在某一实施例中,每个租户的应用服务都可以独立部署,当某个租户的需求增加时,可以独立扩展该租户的服务,不会影响到其他租户。同时,微服务架构也可以使得系统更容易进行优化和调整。
在某一实施例中,API网关是系统的入口,是系统与用户交互的主要接口。所有的请求都需要通过API网关进行路由和转发。API网关主要负责请求的处理,包括请求的验证、路由、限流、降级等功能。同时,API网关还需要进行权限控制,确保只有具有相应权限的用户才能访问系统。
在多租户环境中,API网关还需要进行租户识别,根据请求的租户信息,将请求路由到相应的服务和数据。
在某一实施例中,在基于API网关和事件驱动架构EDA的数据访问层中,租户ID和应用服务的权限需要配合来实现对数据池中的数据的访问控制。具体地,可以基于租户ID和应用本身对数据属性类型的访问权限来限制对数据的访问,同时应用对租户的角色控制用于进一步细分对数据的访问权限。
在某一实施例中,首先在API网关中对请求进行认证和授权,验证请求中携带的租户ID和应用服务的权限信息。
然后,API网关根据请求中携带的租户ID和应用服务的权限信息来限制对数据的访问。
最后,根据应用对租户的角色控制,包括对数据的访问权限,还包括根据不同角色的权限设置,来限制对数据的不同操作(例如,读取、写入、修改等)。
在某一实施例中,在云平台的线上取证场景下,这种访问控制可以被应用于司法鉴定或司法数据分析。假设该云平台上托管了各种类型的数据,包括文本、音频和视频等各类型电子数据。假设有一个租户是一家司法鉴定机构,该机构希望在云平台上访问存储在该平台上的一些音频文件以进行语音鉴定。同时,该平台上还有其他租户,比如一些研究机构,他们也可能需要访问这些音频文件,但他们可能只需要访问这些音频文件的标签数据,而不是实际的音频内容。
在这种情况下,使用API网关和EDA来实现对数据的访问控制。首先,基于租户ID和应用本身对数据属性类型的访问权限来限制对数据的访问。
对于该司法鉴定机构,其从鉴定类应用A请求访问,可以授予他们对这些音频文件的完全访问权限,以便他们可以下载和分析实际的音频内容。
而对于研究机构类的租户,其从研究类申请数据应用入口B进行数据的请求访问,将他们限制为只能访问这些音频文件的标签数据,以确保他们无法访问实际的音频内容。
此外,可以使用应用对租户的角色控制来进一步细分对数据的访问权限。例如,对于司法鉴定公司的不同员工,可以分配不同的角色,以便他们只能访问他们需要的数据。例如,分配给语音鉴定专家的角色可以允许他们访问所有音频文件,而分配给其他员工的角色可能只能访问部分音频文件。
通过使用API网关和EDA来实现对数据的访问控制,可以确保不同的租户和应用只能访问他们被授权的数据,并且可以进一步细分对数据的访问权限,以确保数据的安全性和隐私性。在云平台的线上取证场景下,这种访问控制可以被应用于司法鉴定或司法数据分析,以确保数据只能被授权的人员访问,并且可以根据不同的角色分配进一步细分对数据的访问权限。
在某一实施例中,需要定义角色,如"租户A的应用1"、"租户A的应用2"、"租户B的应用1"等复合角色。这些复合角色可以在权限管理系统中创建和管理。每个角色都有其对应的权限集,例如访问某个数据集的权限、调用某个服务的权限,读取或修改某些资源的权限等。
一旦定义了角色,就可以将它们分配给对应的租户和应用。例如,可以给"租户A的应用1"分配"读取数据集X"的权限,给"租户A的应用2"分配"读写数据集Y"的权限等。这个过程通常也在权限管理系统中进行。
在API网关中,当收到一个请求时,需要验证发出请求的租户和应用有没有执行该请求的权限。这通常通过查询权限管理系统来完成。例如,当"租户A的应用1"发出一个请求读取数据集X时,API网关会查找"租户A的应用1"的权限,看它是否有"读取数据集X"的权限。
在某一实施例中,随着系统的发展,可能会有新的API和资源需要控制访问权限,或者需要定义新的角色。这时,可以在权限管理系统中添加新的权限和角色,并将新的权限分配给对应的角色。API网关在处理请求时,会查询最新的权限信息。
在某一实施例中,API网关通过集成的权限管理系统,例如OAuth服务器实现权限管理过程。
在某一实施例中,定义复合身份:将"租户+应用"作为一个复合身份,例如,可以定义一个身份为"租户A-应用1","租户A-应用2","租户B-应用1"等。
当租户的应用请求访问API时,需要提供一个令牌,这个令牌是基于"租户+应用"的身份生成的。可以使用JWT(JSONWebTokens)令牌格式。令牌中应包含"租户+应用"的身份信息,以及令牌的MAC(MessageAuthenticationCode)。当API网关收到请求时,首先验证令牌的签名或MAC,以及令牌的其他属性(例如,是否过期)。然而通过发起挑战的方式来验证每次数据请求。
API网关然后对请求的API和操作,检查该身份是否有执行该操作的权限。这可以通过查询一个权限数据库或服务来实现,这个权限数据库或服务存储了每个"租户+应用"身份的在数据湖中的对不同数据的权限信息。
在某一实施例中,管理员可以管理每个"租户+应用"身份的权限,例如,添加或删除权限,启用或禁用某个身份等。当有新的API或操作需要控制访问权限时,可以在这个界面或API中添加新的权限,然后将新的权限分配给需要的"租户+应用"身份。以实现对复核身份的精细化管理。
在某一实施例中,当"租户+应用"首次请求访问API时,它需要向认证服务器请求一个JWT令牌。在这个过程中,"租户+应用"需要提供它的身份信息,例如用户名和密码,或者客户端证书。
认证服务器验证"租户+应用"的身份信息,如果验证成功,那么生成一个JWT令牌,然后返回给"租户+应用"。这个JWT令牌中包含"租户+应用"的身份信息,以及一个MAC,用于验证令牌的完整性。
当"租户+应用"使用JWT令牌请求访问API时,API网关首先验证令牌的MAC和其他属性,如果验证成功,那么API网关生成一个随机数(或随机字符串)作为挑战,然后将其发送给"租户+应用"。
"租户+应用"使用挑战和它的密钥,"租户+应用"将计算出的响应发送给API网关。
API网关使用同样的挑战和它存储的"租户+应用"的密钥,通过同样的公式或函数计算出一个响应。然后,API网关比较自己计算的响应和"租户+应用"发送的响应。如果两者匹配,则验证成功,否则验证失败。
通过令牌结合挑战-响应机制可以防止重放攻击,由于每次的挑战都是随机生成的,每次的响应也是根据挑战和密钥计算出来的。即使攻击者截获了一次有效的响应,也无法在其他情况下重复使用这个响应。因为下一次的挑战会不同,所以需要的响应也会不同。此外密钥是不直接发送的,而是用来计算响应。即使攻击者截获了响应,也无法直接得到密钥。
在某一实施例中,响应可以是response=HMAC-SHA256(challenge,key),其中HMAC-SHA256是一种哈希函数,challenge是挑战,key是"租户+应用"的密钥,将challenge和key两者拼接后进行HMAC-SHA256函数。
在某一实施例中,响应可以是response=SHA256(TenantID) XOR AES(Key,Challenge) XOR MD5(ApplicationID),
其中,
SHA256(TenantID):使用SHA256哈希函数计算"租户ID"的哈希值。
AES(Key,Challenge):使用AES加密算法,将"挑战"加密,使用"租户+应用"的密钥key作为AES的密钥。
MD5(ApplicationID):使用MD5哈希函数计算"应用ID"的哈希值。
XOR:使用异或运算符将上述三个结果进行异或运算。
上述挑战-响应过程比单一哈希函数的安全性更高。
在某一实施例中,事件驱动架构EDA依赖于事件的产生和处理来驱动整个系统的运行。所述事件驱动架构包括三种控制架构。
第一控制架构用于当多个事件同时发生时决定先处理哪个事件,以及在处理大量事件的系统中过滤掉一些不重要的事件,以减轻处理器的负担。
第二控制架构用于在一个分布式的事件驱动系统中,当一个事件发生时决定将这个事件发送给哪些处理器。
第三控制架构用于在处理流事件的系统中,将多个相关的事件聚合成一个事件,以简化处理过程。
在某一实施例中,基于通过微服务架构实现多模事件驱动架构(EDA)的平台架构。每个服务可以独立扩展和优化,根据系统的需求和负载动态调整资源。同时,通过服务注册和发现以及监控和告警系统,可以确保系统的高可用性和稳定性。
在某一实施例中,多模事件驱动架构(EDA)的平台架构包括如下模块:
(1)事件源:事件源是产生事件的部分,如来自不同应用服务的请求。
(2)事件总线:所有产生的事件都会首先发送到事件总线,事件总线可以使用消息队列Kafka实现。事件源将事件发布到事件总线,其他服务可以从事件总线订阅事件。
(3)事件调度和过滤服务:在事件调度和过滤服务从事件总线订阅所有事件,并根据优先级规则和过滤规则决定事件处理的顺序,过滤后的事件再发送回事件总线。
(4)事件路由服务:事件路由服务订阅过滤后的事件,并根据事件的类型和处理器的状态,决定将事件发送到哪些处理器。基于发布-订阅模型,处理器(订阅者)订阅他们关心的事件类型,当这些事件(发布者)发生时,会被路由到相应的处理器进行处理。
(5)事件处理器:事件处理器订阅他们关心的事件类型,并负责实际的事件处理,包括业务逻辑处理和事件聚合。事件聚合可以根据业务需求,例如,将一段时间内的多个事件合并为一个事件,以简化处理过程。
(6)服务注册和发现:为了支持动态路由和负载均衡服务注册和发现系统Eureka。事件处理器在启动时向服务注册和发现系统注册自己,事件路由服务可以从服务注册和发现系统获取可用的处理器列表。
(7)监控和告警系统:监控和告警系统用于实时监控每个服务的运行状态和性能,及时发现和解决问题。
在某一实施例中,在事件调度和过滤服务从事件总线订阅所有事件,并根据优先级规则和过滤规则决定事件处理的顺序,过滤后的事件再发送回事件总线。
其中,基于应用ID、租户ID,以及请求数据的重要性的分数来确定每个请求的优先级分数。然后基于优先级分数和请求服务的相同动作的频率来确定过滤规则。
其中,通过如下公式确定优先级分数:
优先级分数=e^(AppID_score*log(TenantID_score))/(1+e^(-DataImportance_score))
其中,
AppID_score和TenantID_score是基于应用ID和租户ID预设的基础优先级分数,这些分数可以根据应用和租户的重要性进行设定。
DataImportance_score是基于请求数据的重要性设定的重要性分数,这个分数可以根据数据的类型和内容进行设定。
通过如下公式来确定过滤规则中的过滤阈值:
过滤阈值=优先级分数/(1+e^(-ActionFrequency)),
其中,ActionFrequency是服务请求的动作频率。
然后,设定以下过滤规则:
if优先级分数>过滤阈值:
处理请求
else:
过滤请求
即只有当事件的优先级分数大于过滤阈值时,该事件才会被处理,小于或等于过滤阈值的事件将会被过滤。
通过上述优先级规则和过滤规则可以更有效地处理线上取证请求,通过应用ID、租户ID、请求数据的重要性和动作频率,可以优先处理那些重要的请求,以及排除掉频繁请求的操作,避免重复请求占用计算和网络资源,从而提高取证效率。
在某一实施例中,基于发布-订阅模型,处理器(订阅者)订阅他们关心的事件类型,当这些事件(发布者)发生时,会被路由到相应的处理器进行处理。
订阅者可能是各种处理器,它们对特定类型的事件感兴趣。例如,DataAccessHandler(数据访问处理器)可能对“数据访问事件”感兴趣,UserLoginHandler(用户登录处理器)可能对“用户登录事件”感兴趣,SystemOperationHandler(系统操作处理器)可能对“系统操作事件”感兴趣。
发布者是生成这些事件的各种系统和服务。例如,当用户访问数据时,数据服务可能会生成一个“数据访问事件”。当用户登录时,身份验证服务可能会生成一个“用户登录事件”。当管理员执行系统操作时,系统管理服务可能会生成一个“系统操作事件”。
事件总线负责管理订阅者和发布者。订阅者可以在事件总线上注册他们感兴趣的事件类型,而发布者可以将事件发布到事件总线上。
在某一实施例中,事件聚合可以从事件中提取有价值的信息,例如将一段时间内的所有 UserLoginEvent(用户登录事件)聚合为一个 LoginAttemptsSummary(登录尝试概要)。这个聚合事件可以包括尝试登录的次数,成功的次数,失败的次数,以及尝试登录的IP地址等信息。
将一段时间内的所有 AbnormalBehaviorEvent(异常行为事件)聚合为一个AbnormalBehaviorSummary(异常行为概要)。这个聚合事件可以包括发生异常行为的总次数,各种类型的异常行为的次数,以及异常行为的趋势等信息。
可以将一段时间内的所有 SystemOperationEvent(系统操作事件)聚合为一个SystemOperationSummary(系统操作概要)。这个聚合事件可以包括执行的操作总数,各种类型的操作的次数,以及操作的结果等信息。
事件聚合将大量的原始事件转化为更高级别的概要信息,例如通过分析LoginAttemptsSummary 来检测账号被攻击的风险。通过分析 AbnormalBehaviorSummary来预测系统信息的安全状况,或者通过分析 SystemOperationSummary 来评估系统管理员的工作效率。
在某一实施例中,数据共享服务允许租户将自己的某些数据标记为可共享的,当其他租户请求访问这些数据时,数据共享服务会检查请求者是否有权限访问,如果有访问权限,则返回请求的数据。
本发明在处理共享数据的加密问题时,使用加密键管理服务,对于特定对象间临时加密或者其他永久共享用户间的数据获取,都可以通过管理加密密钥的访问权限来实现。
在某一实施例中,对于每个需要加密的数据对象,生成一个唯一的加密键。使用这个密钥对数据加密,然后将加密的数据存储在数据湖中。
使用密钥管理服务管理这些加密键的访问权限。如果一个用户(或者用户组)有权限访问某个数据对象,就给他们分配这个数据对象对应的加密键的访问权限。
当用户请求访问数据时,数据共享服务先检查他们是否有权限。如果有权限,数据共享服务就从密钥管理服务获取对应的加密键,使用这个密钥解密数据,然后返回给用户。
对于需要临时加密的特定对象,设置临时更改加密键的访问权限,只允许特定用户访问。当临时共享结束后,再恢复原来的权限设置。
对于需要永久共享的用户,赋予用户间永久加密键的访问权限。
其中,加密键定期更新,使得临时访问权限在过期后,不得再使用之前的加密键对数据进行访问。
本发明通过在API网关中实施访问控制策略和在数据湖中对每个租户的数据进行独立存储和索引,有效地防止了数据的未授权访问和泄露。通过API网关的访问控制策略和数据共享服务,本发明实现了在保证数据安全隔离的同时,支持租户之间的数据共享。通过微服务架构和事件驱动架构,本发明支持了系统的高并发处理,保证了系统在处理大量数据和请求时的稳定性和可扩展性。本发明通过数据湖支持了大规模数据的存储和高效查询,从而提高了数据处理和分析的效率。
需要说明的是,本公开上述的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本公开中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本公开中,计算机可读信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读信号介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
附图中的流程图和框图,图示了按照本公开各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本公开实施例中所涉及到的单元可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,单元的名称在某种情况下并不构成对该单元本身的限定。
以上介绍了本发明的较佳实施方式,旨在使得本发明的精神更加清楚和便于理解,并不是为了限制本发明,凡在本发明的精神和原则之内,所做的修改、替换、改进,均应包含在本发明所附的权利要求概括的保护范围之内。

Claims (6)

1.一种用于多租户的数据安全隔离与共享框架实现方法,所述共享框架为基于平台架构的实现方法,其特征在于,
所述平台架构包括基于微服务架构实现的应用层和数据访问层,以及基于数据湖实现的数据层;
所述数据访问层包括API网关和事件驱动架构EDA,所述API网关负责处理和转发来自应用层的请求以及根据请求的租户信息将请求路由到相应的服务和数据,所述事件驱动服务负责处理系统内部的事件;
以及,通过在API网关中实施访问控制策略来实现对数据进行访问控制,确保每个租户只能访问自己的数据,所述访问控制包括只有当请求中的租户ID与被请求数据的租户ID匹配时才允许访问对应数据,同时在所述API网关中对应用服务的权限进行管理;
基于数据湖的数据层,负责存储和管理所有租户的数据;
事件驱动架构EDA依赖于事件的产生和处理来驱动整个系统的运行,所述事件驱动架构包括三种控制架构:
第一控制架构用于当多个事件同时发生时决定先处理哪个事件,以及在处理大量事件的系统中过滤掉一些事件,以减轻处理器的负担;
第二控制架构用于在一个分布式的事件驱动系统中,当一个事件发生时决定将这个事件发送给哪些处理器;
第三控制架构用于在处理流事件的系统中,将多个相关的事件聚合成一个事件,以简化处理过程;
事件驱动架构EDA的平台架构至少包括的模块为:事件源、事件总线、事件调度和过滤服务、事件路由服务和事件处理器;
所述事件源是产生事件的部分,包括来自不同应用服务的请求;
所有产生的事件都会首先发送到事件总线,事件源将事件发布到事件总线,其他服务可以从事件总线订阅事件;
在事件调度和过滤服务从事件总线订阅所有事件,并根据优先级规则和过滤规则决定事件处理的顺序,过滤后的事件再发送回事件总线;
事件路由服务订阅过滤后的事件,并根据事件的类型和处理器的状态,决定将事件发送到哪些处理器;
基于发布-订阅模型,处理器订阅他们关心的事件类型,当这些事件发生时,会被路由到相应的处理器进行处理;
事件处理器订阅关心的事件类型,并负责实际的事件处理;
在事件调度和过滤服务从事件总线订阅所有事件,并根据优先级规则和过滤规则决定事件处理的顺序,过滤后的事件再发送回事件总线,包括:
基于应用ID、租户ID,以及请求数据的重要性的分数来确定每个请求的优先级分数,然后基于优先级分数和请求服务的相同动作的频率来确定过滤规则;
其中,通过如下公式确定优先级分数:
优先级分数=e^(AppID_score*log(TenantID_score))/(1+e^(-DataImportance_score)),
其中,
AppID_score和TenantID_score是基于应用ID和租户ID预设的基础优先级分数,这些分数可以根据应用和租户的重要性进行设定;
DataImportance_score是基于请求数据的重要性设定的重要性分数,这个分数可以根据数据的类型和内容进行设定;
以及,通过如下公式来确定过滤规则中的过滤阈值:
过滤阈值=优先级分数/(1+e^(-ActionFrequency)),
其中,ActionFrequency是服务请求的动作频率;
以及,只有当事件的优先级分数大于过滤阈值时,该请求才会被处理,小于或等于过滤阈值的事件将会被过滤;
其中,第三控制架构的事件聚合用于从事件中提取有价值的信息,以及所述事件聚合将原始事件转化为更高级别的概要信息,包括:
将一段时间内的所有异常行为事件聚合为一个异常行为概要,或将一段时间内的所有系统操作事件聚合为一个系统操作概要。
2.如权利要求1所述的一种用于多租户的数据安全隔离与共享框架实现方法,其特征在于,
数据共享服务允许租户将自己的某些数据标记为可共享的,当其他租户请求访问这些数据时,数据共享服务会检查请求者是否有权限访问,如果有则返回请求的数据;
以及,数据共享服务允许租户将自己的某些数据标记对特定租户标记为可永久共享或临时共享。
3.如权利要求1所述的一种用于多租户的数据安全隔离与共享框架实现方法,其特征在于,
基于租户ID和应用本身对数据属性类型的访问权限来限制对数据的访问,同时应用对租户的角色控制用于进一步细分对数据的访问权限。
4.如权利要求3所述的一种用于多租户的数据安全隔离与共享框架实现方法,其特征在于,
定义基于租户ID和应用ID的复合角色,所述复合角色可以在权限管理系统中创建和管理;每个复合角色都有其对应的权限集。
5.如权利要求1所述的一种用于多租户的数据安全隔离与共享框架实现方法,其特征在于,
定义基于租户和应用的复合身份;
当租户的应用请求访问API时,需要提供一个令牌,这个令牌是基于租户和应用的身份生成的;
当API网关收到请求时,首先验证令牌,然而通过发起挑战的方式来验证每次数据请求。
6.如权利要求5所述的一种用于多租户的数据安全隔离与共享框架实现方法,其特征在于,
当复合身份首次请求访问API时,需要向认证服务器请求一个JWT令牌,在这个过程中复合身份需要提供身份信息;
认证服务器验证复合身份的身份信息,如果验证成功,则生成一个JWT令牌,然后返回给复合身份,所述JWT令牌中包含复合身份的身份信息,以及一个MAC,用于验证令牌的完整性;
当复合身份使用JWT令牌请求访问API时,API网关首先验证令牌的MAC和其他属性,如果验证成功,所述API网关生成一个随机数或随机字符串作为挑战,然后将其发送给复合身份;
复合身份使用挑战和内部存储的密钥,复合身份将计算出的响应发送给API网关;
API网关使用同样的挑战和API网关内存储的复合身份的密钥,通过同样的公式或函数计算出一个响应;
然后,API网关比较自己计算的响应和复合身份发送的响应;
如果两者匹配,则验证成功,否则验证失败。
CN202311040375.6A 2023-08-18 2023-08-18 一种用于多租户的数据安全隔离与共享框架实现方法 Active CN116760639B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202311040375.6A CN116760639B (zh) 2023-08-18 2023-08-18 一种用于多租户的数据安全隔离与共享框架实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202311040375.6A CN116760639B (zh) 2023-08-18 2023-08-18 一种用于多租户的数据安全隔离与共享框架实现方法

Publications (2)

Publication Number Publication Date
CN116760639A CN116760639A (zh) 2023-09-15
CN116760639B true CN116760639B (zh) 2023-10-31

Family

ID=87951836

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202311040375.6A Active CN116760639B (zh) 2023-08-18 2023-08-18 一种用于多租户的数据安全隔离与共享框架实现方法

Country Status (1)

Country Link
CN (1) CN116760639B (zh)

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106569895A (zh) * 2016-10-24 2017-04-19 华南理工大学 一种基于容器的多租户大数据平台构建方法
WO2017196774A1 (en) * 2016-05-11 2017-11-16 Oracle International Corporation Multi-tenant identity and data security management cloud service
CN109508962A (zh) * 2018-12-12 2019-03-22 长治医学院 EDU云DaaS与云校一体的校园信息化架构
CN109756448A (zh) * 2017-11-02 2019-05-14 广东亿迅科技有限公司 基于微服务的api网关安全管理方法及其系统
CN110233817A (zh) * 2018-03-06 2019-09-13 广州西麦科技股份有限公司 一种基于云计算的容器安全系统
CN113781159A (zh) * 2021-08-23 2021-12-10 河南宇章信息技术有限公司 一种基于多租户SaaS技术的智能财税一体化服务平台
CN114928460A (zh) * 2022-02-14 2022-08-19 上海大学 一种基于微服务架构的多租户应用集成框架系统
WO2023284722A1 (zh) * 2021-07-14 2023-01-19 华为技术有限公司 一种租户的资源管理方法及租户管理系统

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017196774A1 (en) * 2016-05-11 2017-11-16 Oracle International Corporation Multi-tenant identity and data security management cloud service
CN106569895A (zh) * 2016-10-24 2017-04-19 华南理工大学 一种基于容器的多租户大数据平台构建方法
CN109756448A (zh) * 2017-11-02 2019-05-14 广东亿迅科技有限公司 基于微服务的api网关安全管理方法及其系统
CN110233817A (zh) * 2018-03-06 2019-09-13 广州西麦科技股份有限公司 一种基于云计算的容器安全系统
CN109508962A (zh) * 2018-12-12 2019-03-22 长治医学院 EDU云DaaS与云校一体的校园信息化架构
WO2023284722A1 (zh) * 2021-07-14 2023-01-19 华为技术有限公司 一种租户的资源管理方法及租户管理系统
CN113781159A (zh) * 2021-08-23 2021-12-10 河南宇章信息技术有限公司 一种基于多租户SaaS技术的智能财税一体化服务平台
CN114928460A (zh) * 2022-02-14 2022-08-19 上海大学 一种基于微服务架构的多租户应用集成框架系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
事件驱动、面向服务的物联网服务提供方法;乔秀全;章洋;吴步丹;程渤;赵帅;马华东;陈俊亮;;中国科学:信息科学(10);第41-65页 *
面向SaaS应用的SMTDM可伸缩多租户数据管理框架;尤晓青;;计算机系统应用(11);第104-108页 *

Also Published As

Publication number Publication date
CN116760639A (zh) 2023-09-15

Similar Documents

Publication Publication Date Title
US11347876B2 (en) Access control
US10956614B2 (en) Expendable access control
CN110414268B (zh) 访问控制方法、装置、设备及存储介质
US8966021B1 (en) Composable machine image
US8997198B1 (en) Techniques for securing a centralized metadata distributed filesystem
WO2017054985A1 (en) Access control
GB2540976A (en) Access control
GB2540977A (en) Expendable access control
US11121876B2 (en) Distributed access control
US11531777B2 (en) Methods and systems for restricting data access based on properties of at least one of a process and a machine executing the process
US20140075571A1 (en) Role-oriented database record field security model
US10484343B1 (en) Distributed logging for securing non-repudiable multi-party transactions
US20210352077A1 (en) Low trust privileged access management
CN113542214B (zh) 一种访问控制方法、装置、设备及机器可读存储介质
Ulybyshev et al. (WIP) blockhub: Blockchain-based software development system for untrusted environments
US10607025B2 (en) Access control through data structures
WO2022116761A1 (en) Self auditing blockchain
US20100030805A1 (en) Propagating information from a trust chain processing
Xu et al. Blockchain-based transparency framework for privacy preserving third-party services
CN116760639B (zh) 一种用于多租户的数据安全隔离与共享框架实现方法
US11647020B2 (en) Satellite service for machine authentication in hybrid environments
Shahin et al. Big data platform privacy and security, a review
US20220311777A1 (en) Hardening remote administrator access
Kaushik et al. Cloud computing security: attacks, threats, risk and solutions
Vijay Chaurasiya., et al

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
TR01 Transfer of patent right
TR01 Transfer of patent right

Effective date of registration: 20231210

Address after: 518000 Room 201, building A, No. 1, Qian Wan Road, Qianhai Shenzhen Hong Kong cooperation zone, Shenzhen, Guangdong (Shenzhen Qianhai business secretary Co., Ltd.)

Patentee after: Shenzhen Henghe Shuxin Technology Co.,Ltd.

Address before: 518000 Shenzhen Hong Kong University Research Base, No. 015, Gaoxin South 7th Road, Gaoxin Community, Yuehai Street, Nanshan District, Shenzhen, Guangdong Province W703A

Patentee before: SHENZHEN DAHENG DATA SECURITY TECHNOLOGY CO.,LTD.