A trusted storage method, system and SaaS server for SaaS
By remotely calling the user's encryption key and algorithm through the SaaS server and performing encryption and decryption in memory, the problem of centralized key management and trust in user data security protection in SaaS systems is solved, and data security isolation and enhanced user trust are achieved.
Patent Information
- Application Number
- CN202211402343.1
- Authority / Receiving Office
- CN · China
- Patent Type
- Patents(China)
- Current Assignee / Owner
- Filing Date
- 2022-11-09
- Publication Date
- 2025-11-04
- Estimated Expiration
- 2042-11-09
AI Technical Summary
In existing SaaS systems, the security protection of user business data faces challenges such as centralized key management and trust issues, and user data is easily leaked once the key is compromised.
The SaaS server remotely invokes the user's encryption key and algorithm to encrypt and decrypt business data, ensuring that the encryption and decryption process is executed in memory and that plaintext data is not written to disk. It uses a trusted execution environment to isolate user and service provider data.
It improves the security of user data, prevents data leakage, reduces the risk of total data leakage due to compromised keys, and enhances user trust in the service provider.
Smart Images

Figure CN115801243B_ABST
Abstract
Description
Technical Field
[0001] This invention relates to the field of information security technology, and in particular to a trusted storage method, system, and SaaS server for SaaS. Background Technology
[0002] SaaS, short for Software-as-a-Service, refers to a service provider remotely delivering software services to users over a network, eliminating the need for users to download and install the software locally. In practical applications, users often manage or process their business data through remote software services provided by the service provider, storing this data in the service provider's database. With the development of information security technologies and increased user awareness of business data security, there is a pressing need for a trusted storage method for SaaS to enhance the security of user business data. Summary of the Invention
[0003] One embodiment of this specification provides a trusted storage method for SaaS, executed by a SaaS server. The SaaS server provides software services to SaaS users via a network to assist SaaS users in maintaining or processing business data. The method includes: obtaining the encryption key remote access address of the SaaS user for the SaaS user's business data; obtaining the encryption key based on the encryption key remote access address; encrypting at least a portion of the business data based on the encryption key; and storing the at least partially encrypted business data into a SaaS database.
[0004] One embodiment of this specification provides a trusted storage system for SaaS, deployed on a SaaS server. The SaaS server provides software services to SaaS users via a network to assist SaaS users in maintaining or processing business data. The system includes: an encryption module for obtaining the remote access address of the SaaS user's encryption key; obtaining an encryption key based on the remote access address; encrypting at least a portion of the SaaS user's business data based on the encryption key; and a writing module for storing at least partially encrypted business data into a SaaS database.
[0005] One embodiment of this specification provides a SaaS server, including a processor and a storage medium, wherein the storage medium stores computer instructions, and the processor executes the computer instructions to implement the trusted storage method.
[0006] One embodiment of this specification also provides a storage medium storing computer instructions that, when executed by a processor, enable the trusted storage method. Attached Figure Description
[0007] This specification will be further described by way of exemplary embodiments, which will be described in detail with reference to the accompanying drawings. These embodiments are not limiting; in these embodiments, the same reference numerals denote the same structures, wherein:
[0008] Figure 1 These are schematic diagrams illustrating SaaS service application scenarios based on some embodiments of this specification;
[0009] Figure 2 This is an exemplary flowchart of a trusted storage method for SaaS, as shown in some embodiments of this specification;
[0010] Figure 3 This is an exemplary flowchart of a trusted storage method for SaaS according to other embodiments of this specification;
[0011] Figure 4 This is a schematic diagram of a trusted storage system for SaaS, illustrated according to some embodiments of this specification. Detailed Implementation
[0012] To more clearly illustrate the technical solutions of the embodiments in this specification, the accompanying drawings used in the description of the embodiments will be briefly introduced below. Obviously, the drawings described below are merely some examples or embodiments of this specification. For those skilled in the art, these drawings can be applied to other similar scenarios without creative effort. Unless obvious from the context or otherwise specified, the same reference numerals in the drawings represent the same structures or operations.
[0013] It should be understood that the terms “system,” “device,” “unit,” and / or “module” used herein are one way to distinguish different components, elements, parts, sections, or assemblies at different levels. However, if other terms can achieve the same purpose, they may be replaced by other expressions.
[0014] As indicated in this specification, unless the context clearly indicates otherwise, the words "a," "an," "an," and / or "the" do not specifically refer to the singular and may also include the plural. Generally speaking, the terms "comprising" and "including" only indicate the inclusion of expressly identified steps and elements, which do not constitute an exclusive list, and the method or apparatus may also include other steps or elements.
[0015] Flowcharts are used in this specification to illustrate the operations performed by the system according to embodiments of this specification. It should be understood that the preceding or following operations are not necessarily performed in exact order. Instead, the steps can be processed in reverse order or simultaneously. Furthermore, other operations can be added to these processes, or one or more steps can be removed from them.
[0016] SaaS emphasizes software products and remote deployment. In today's rapidly developing economy and technology, SaaS is an effective means to help users, especially small and medium-sized enterprises (SMEs), achieve digital transformation. Broadly speaking, any software product that does not require local deployment can be considered a SaaS product or service. More narrowly, SaaS mostly refers to remote software services for B2B clients (typically enterprise clients, business clients, or other organizational clients).
[0017] As an example, an OA (Office Automation) system can be seen as a SaaS application. OA, also known as Office Automation, is a new type of office work that applies modern technologies such as computers and communications to traditional office methods to improve productivity and support decision-making. Specifically, service providers can deploy OA software systems on servers or in the cloud. Employees of users (such as companies or organizations that purchase this software service) log in to the OA system via the internet to use its services for business document workflow, approval, and storage. Users no longer need to purchase and install the OA software system locally; their employees only need to log in with their account and password on the user's end, or even directly through a linked webpage, to use the software service. SaaS-based OA software services allow users' employees to log in to the system from anywhere via the internet to conduct business processing, reducing service costs while significantly improving productivity.
[0018] For example, a business development system can be seen as another application of SaaS services. This system can showcase a user's business content and assist in managing and maintaining customer data and other business information to help the user conduct business. Specifically, the service provider can deploy the business development software system on a server or in the cloud. Employees of the user (such as the company or organization that purchased the software service) can log in to the system via the network to use services such as business content display, customer referrals, and customer data maintenance to promote their own business development. SaaS-based business development systems eliminate the need for users to purchase and install software locally; their employees only need to log in with an account and password to use the software service, efficiently helping users achieve digital transformation of their businesses. It should be noted that the "customer" refers to the party that purchases goods or services from the user, also known as the user's user. In some embodiments, the customer can also be a user of the SaaS service provider, which can further include B-end users and C-end users (mainly including consumers and individual users).
[0019] Figure 1 These are schematic diagrams illustrating SaaS application scenarios based on some embodiments of this specification.
[0020] like Figure 1 As shown, application scenario 100 may include a SaaS server 110, a network 120, and multiple SaaS client terminals 130 (such as 131, 132, 133, etc.). Among them, the SaaS client terminal 130 can communicate and connect with the SaaS server 110 through the network 120.
[0021] SaaS server 110 can refer to a computing device deployed by a service provider to provide software services to its users, and the software services can run on the SaaS server. In some embodiments, the server can be a cluster, including multiple distributed computing devices. The server can be implemented on a cloud platform. As an example only, the cloud platform can include private cloud, public cloud, hybrid cloud, community cloud, distributed cloud, internal cloud, multi-tiered cloud, etc., or any combination thereof. In some embodiments, data and / or instructions can be stored on the server's local storage medium. For example, storing instructions or code of the software system that provides services to users, or storing user business data, etc. In some embodiments, the stored user business data can be stored in the form of a database to improve the efficiency of data maintenance and storage. In still other embodiments, a dedicated storage device can be set up for data storage, and the server can access the storage device through a network to achieve data access. In some embodiments, the storage device can also be implemented on a cloud platform. As an example only, the cloud platform can include private cloud, public cloud, hybrid cloud, community cloud, distributed cloud, internal cloud, multi-tiered cloud, etc., or any combination thereof.
[0022] Network 120 can connect various components within the scenario and / or connect devices within scenario 100 to external resources. Network 120 enables communication between components within the scenario and with other parts outside the scenario, facilitating the exchange of data and / or information. In some embodiments, network 120 can be any one or more of wired or wireless networks. For example, network 120 can include cable networks, fiber optic networks, telecommunications networks, the Internet, local area networks (LANs), wide area networks (WANs), wireless local area networks (WLANs), metropolitan area networks (MANs), public switched telephone networks (PSTNs), Bluetooth networks, ZigBee networks, near field communication (NFC), device internal buses, device internal wiring, cable connections, etc., or any combination thereof. Network connections between components can employ one or more of the above methods. In some embodiments, the network can be various topologies, such as point-to-point, shared, or centralized, or a combination of multiple topologies.
[0023] The SaaS client 130 can be implemented on any electronic device used by the user, such as a mobile device, tablet computer, laptop computer, desktop computer, etc., or any combination thereof. In some embodiments, the SaaS client may be a front-end application, or it may be further simplified to a web interface that can be accessed through a link. In some embodiments, after paying for the software service, the user will have a valid login account and password. The user logs in to the SaaS client with the account and password, and then interacts with the SaaS server to use the software service provided by the service provider.
[0024] To provide better services to users, SaaS service providers may use users' business data (such as internal company documents and customer information) with the user's knowledge and authorization. Therefore, protecting users' business data is a crucial step in further safeguarding users' legitimate rights and interests and promoting the SaaS model.
[0025] In some embodiments, SaaS servers can use the service provider's key to uniformly encrypt and store business data for different users, which can, to some extent, resist security attacks by malicious attackers. However, with this protection method, once an attacker breaks the password, they can crawl all users' private data. On the other hand, this method requires the service provider to generate its own keys and implement encryption and decryption algorithms, and user trust is also a problem that urgently needs to be solved.
[0026] In view of this, some embodiments of this specification provide a trusted storage method for SaaS, which separates the implementation and management of keys or algorithms from the service provider. The SaaS server calls the user's key or encryption algorithm to encrypt the user's business data, and the business data is stored in the service provider's database in ciphertext form. The aforementioned call and encryption process are performed in the server's memory, and the user's key or encryption algorithm and plaintext business data are not written to disk for storage, effectively isolating the service provider's business data from the user's business data and improving data security.
[0027] Figure 2 This is an exemplary flowchart of a trusted storage method for SaaS, as shown in some embodiments of this specification;
[0028] In some embodiments, Figure 2 The illustrated process 200 can be executed by the SaaS server 110. In some embodiments, process 200 can be implemented by a trusted storage system 400 deployed on the SaaS server. The SaaS server provides software services to SaaS users via a network to assist them in maintaining or processing business data.
[0029] like Figure 2 As shown, process 200 may include:
[0030] Step 210: Obtain the business data of the SaaS user. In some embodiments, step 210 may be performed by the acquisition module 410.
[0031] Business data refers to data written to the SaaS server by SaaS users during the use of the software service, or data generated during the use of the software service. This data is often closely related to the user's business. For example, when SaaS server 110 acts as a server providing OA software services, business data may include user documents and employee data. Documents may include work documents and reports, while employee data may include personal information, start date, professional field, and job title. As another example, when SaaS server 110 provides business services to users, business data may include customer information entered by the user, or customer information of new customers generated by the user using the service. Customer information may include the customer's name, contact information, and types of products they are interested in.
[0032] In some embodiments, the SaaS server can communicate with the SaaS client to obtain business data entered by the user. For example, users can upload work documents and enter customer data through the client interface. In some embodiments, users can use the software services provided by the SaaS server to interact with other devices (such as the customer's computing device) to obtain customer data (e.g., the customer directly sends their relevant information to the SaaS server via the network). In practical application scenarios, to fully protect the legitimate rights and interests of users, the SaaS service provider (specifically, the SaaS server) will only obtain, process, and / or store the user's business data after the user has known and given their consent, and will use this data within the scope permitted by law.
[0033] Step 220: Retrieve the SaaS user's encryption key from the storage area specified by the SaaS user to encrypt at least a portion of the business data. In some embodiments, step 220 may be performed by encryption module 420.
[0034] An encryption key refers to a key specified by a SaaS user for the SaaS server to use to encrypt their business data. The key can be a symmetric key or an asymmetric key. In some embodiments, the SaaS server can obtain the encryption key from a storage area specified by the SaaS user and use it to encrypt the user's business data when necessary. In some embodiments, the SaaS user can provide their encryption key remote access address to the SaaS server during registration, instead of storing the key directly with the SaaS service provider. Specifically, the SaaS user can generate their own encryption key and store it locally on the user's device or in another storage area trusted by the SaaS user. When registering for the SaaS service, the SaaS user submits a link address, also known as the encryption key remote access address, to the SaaS server. This address points to the area where the key is stored. The SaaS server can store the SaaS user's registration information and the encryption key remote access address accordingly. When the SaaS server needs to encrypt business data, it first obtains the encryption key remote access address based on the SaaS user's registration information, and then requests the encryption key from the corresponding storage device via remote access command (RPC) to encrypt the user's business data. In some embodiments, the encryption key can be a symmetric key, a private key in an asymmetric key, or a public key in an asymmetric key.
[0035] In some embodiments, the SaaS server can use a unified encryption algorithm to encrypt its business data based on the encryption keys of different SaaS users. That is, the encryption algorithm can be implemented by the SaaS service provider, using the same algorithm for different users' business data, but different encryption keys. This can, to some extent, avoid the security risk of a single key being compromised, leading to the leakage of all business data. In other embodiments, SaaS users can implement their own encryption algorithms, which are then used by the SaaS server when it needs to encrypt its business data. The encryption algorithms can include, but are not limited to, symmetric encryption algorithms such as AES (Advanced Encryption Standard), DES (Data Encryption Standard), and 3DES (Triple DES), as well as asymmetric encryption algorithms such as RSA, DSA (Digital Signature Algorithm), and ECC (Elliptic Curve Cryptography). Similar to the encryption key, the SaaS user can store the encryption algorithm locally on the user's end or in another storage area deemed trustworthy by the SaaS user. When a SaaS user registers for a SaaS service, they submit a link address, also known as a remote access address (RAD) for the encryption algorithm, to the SaaS server. This address points to the storage area where the encryption algorithm is stored. The SaaS server stores the user's registration information, the RAD for the encryption key, and the RAD for the encryption algorithm. When the SaaS server needs to encrypt business data, it first obtains the RAD for the encryption key and the RAD for the encryption algorithm based on the user's registration information. Then, it requests the encryption key and encryption algorithm from the corresponding storage device via a remote procedure call (RPC) to encrypt the user's business data. For example, the algorithm can be invoked using an SPI (Service Provider Interface). The SaaS provider can propose a unified interface for the encryption algorithm, such as defining standardized input and output parameters, while the specific implementation is the responsibility of the SaaS user. When both the encryption key and the encryption algorithm are implemented by the SaaS user, security is further enhanced, effectively addressing the trust issue between the SaaS user and the SaaS provider.
[0036] In some embodiments, all business data can be encrypted, or only a portion of it can be encrypted as needed. Specifically, sensitive or private data within the business data can be encrypted. For example, some data in the business data may involve trade secrets or personal privacy, and leakage could cause economic losses or even personal injury. Sensitive data in the business data may include, but is not limited to, user customer information (such as customer names, contact information, etc.), employee identification information, telephone numbers, home addresses, etc.
[0037] In some embodiments, privacy data in the business data can be determined based on a preset encryption strategy. The encryption strategy indicates which data in the business data constitutes privacy data. In some embodiments, the encryption strategy may further specify filtering conditions for privacy data, such as regular expressions for ID numbers, phone numbers, addresses, etc., or specify field names corresponding to the privacy data (e.g., fields like "ID Number," "Phone Number," "Communication Address," etc.). The SaaS server can encrypt the privacy fields in the business data according to the encryption strategy, or match privacy data from the business data based on regular expressions and encrypt it. In some embodiments, the encryption strategy can be set by the SaaS service provider or specified by the SaaS user.
[0038] It should be noted that the process of the SaaS server encrypting business data using encryption keys or algorithms is executed in memory. Upon power failure, the plaintext business data, the key, and the encryption algorithm are all erased, effectively ensuring information security. In some embodiments, the above process can also be implemented in a Trusted Execution Environment (TEE). A TEE is an independent area within a computing device where code can run and a certain amount of data can be cached. The data within the TEE is difficult for outsiders to access, and the code running within it is also difficult for external interference.
[0039] Step 230 involves storing at least partially encrypted business data into the SaaS database. In some embodiments, step 230 may be performed by the write module 430.
[0040] In some embodiments, the SaaS server's memory or TEE can write encrypted business data to the SaaS database. The data in the database is typically located on a hard drive and can be retained indefinitely. Because the business data, or at least the private data within it, is encrypted, the security risks to user business data are effectively reduced.
[0041] Figure 3 This is an exemplary flowchart of a trusted storage method for SaaS, as shown in other embodiments of this specification.
[0042] In some embodiments, Figure 3 The illustrated process 300 can be executed by the SaaS server 110. In some embodiments, process 300 can be implemented by a trusted storage system 400 deployed on the SaaS server. Figure 3 As shown, process 300 may include:
[0043] Step 310: Receive the business data access request from the SaaS user and retrieve the relevant business data from the SaaS database. In some embodiments, step 310 may be performed by the reading module 440.
[0044] In addition to writing business data to the SaaS server, SaaS users can also request access to business data stored by the SaaS service provider. SaaS users can initiate business data access requests to the SaaS server through their client. These access requests can be query requests, calculation requests, etc. For example, a business data access request can include query conditions, requesting to view business data that meets those conditions. Another example is that a business data access request can specify the required calculation results, such as statistical results or model prediction results, requesting the SaaS service provider to calculate the results based on the business data and return them to the SaaS user's client.
[0045] Upon receiving an access request, the SaaS service should first retrieve the relevant business data from the SaaS database. This includes business data that meets the query criteria or business data required for calculations.
[0046] Step 320: Decrypt the encrypted data in the business data by retrieving the decryption key of the SaaS user from the storage area specified by the SaaS user. In some embodiments, step 320 may be performed by the decryption module 450.
[0047] The decryption key can refer to the key specified by the SaaS user for the SaaS server to decrypt encrypted data in their business data. The decryption key can be the same as the encryption key. In asymmetric encryption, the decryption key is the corresponding private or public key of the encryption key. In some embodiments, the SaaS server can obtain the decryption key from the storage area specified by the SaaS user and use it to encrypt encrypted business data when retrieving it from the SaaS database. In some embodiments, the SaaS user can provide their decryption key remote access address to the SaaS server during registration, instead of storing the key directly with the SaaS service provider. In some embodiments, the decryption key is the same as the encryption key. For details on obtaining the decryption key based on the decryption key remote access address and decrypting business data, please refer to step 220, which will not be repeated here.
[0048] In some embodiments, the decryption key is different from the encryption key. For example, the decryption key may come from an asymmetric key, and the SaaS user may store the decryption key locally on the user's device or in another storage area that the SaaS user considers trustworthy. When registering for the SaaS service, the SaaS user submits the remote access address (RAO) for the encryption key to the SaaS server, along with the remote access address for the decryption key. This address points to the area where the decryption key is stored. The SaaS server can store the SaaS user's registration information, the ROC address for the encryption key, and the ROC address for the decryption key. When the SaaS server needs to decrypt business data, it first obtains the ROC address for the decryption key based on the SaaS user's registration information, and then requests the decryption key from the corresponding storage device via a remote RPC call to decrypt the user's business data.
[0049] Corresponding to encryption algorithms, in some embodiments, the SaaS server can use a unified decryption algorithm to decrypt business data based on the decryption keys of different SaaS users. That is, the decryption algorithm can be implemented by the SaaS service provider, using the same algorithm for different users' business data, but with different decryption keys. In other embodiments, SaaS users can implement their own decryption algorithms, using the user's decryption key and algorithm when the SaaS server needs to decrypt their business data. SaaS users can store the decryption algorithm locally on the user's end or in other storage areas trusted by the SaaS user. When registering for the SaaS service, the SaaS user submits a relevant link address to the SaaS server. The SaaS server can store the SaaS user's registration information, the encryption key remote access address, the encryption algorithm remote access address, the decryption key remote access address (in asymmetric encryption cases), and the corresponding decryption key remote access address. When the SaaS server needs to decrypt business data, it first obtains the decryption key remote access address and the decryption algorithm remote access address based on the SaaS user's registration information, and then requests the decryption key and decryption algorithm from the corresponding storage device via remote RPC to decrypt the user's business data. Similar to encryption algorithms, decryption algorithm calls can be implemented using SPI. SaaS service providers can propose a unified interface for the decryption algorithm, such as defining input and output parameters in a unified manner, while the specific implementation is the responsibility of the SaaS user.
[0050] Step 330: Output the results to the SaaS user based on the decrypted business data. In some embodiments, step 330 may be performed by the output module 460.
[0051] In some embodiments, after obtaining plaintext business data, the output module 460 can transmit it to the SaaS user client via a network to directly display the requested business data to the user. In other embodiments, the output module 460 needs to perform calculations on the plaintext business data, such as statistical operations or model predictions based on the plaintext business data, to obtain calculation results. The output module 460 then transmits the calculation results to the SaaS user client.
[0052] It should be noted that steps 320 and 330 are executed in the memory or TEE of the SaaS server. The decryption key, decryption algorithm, and plaintext business data will not be stored permanently, thus effectively protecting data security while meeting users' requirements for accessing business data.
[0053] The above description of the process is for illustrative purposes only and does not limit the scope of this specification. Those skilled in the art can make various modifications and changes to the process under the guidance of this specification. For example, step 310 can be broken down into sub-steps such as receiving a business data access request and retrieving relevant business data from the SaaS database. However, these modifications and changes remain within the scope of this specification.
[0054] Figure 4 This is a schematic diagram of a trusted storage system for SaaS, illustrated according to some embodiments of this specification.
[0055] like Figure 4 As shown, the trusted storage system 400 may include an acquisition module 410, an encryption module 420, and a write module 430. The acquisition module 410 can be used to acquire business data from SaaS users. The encryption module 420 can be used to encrypt at least a portion of the business data by retrieving the encryption key of the SaaS user from a storage area specified by the SaaS user. The write module 430 can be used to store at least partially encrypted business data into the SaaS database.
[0056] In some embodiments, the trusted storage system 400 may further include a read module 440, a decryption module 450, and an output module 460. The read module 440 can be used to receive business data access requests from SaaS users and retrieve relevant business data from the SaaS database. The decryption module 450 can be used to decrypt encrypted data in the business data by retrieving the decryption key from the storage area specified by the SaaS user. The output module 460 can be used to output results to the SaaS user based on the decrypted business data.
[0057] For more information on the modules in System 400, please refer to the relevant descriptions in Process 200 and Process 300.
[0058] It should be understood that the systems and modules shown in the figures can be implemented in various ways. For example, in some embodiments, the systems and modules can be implemented by hardware, software, or a combination of both. The hardware portion can be implemented using dedicated logic; the software portion can be stored in memory and executed by an appropriate instruction execution system, such as a microprocessor or dedicated hardware. Those skilled in the art will understand that the methods and systems described above can be implemented using computer-executable instructions and / or included in processor control code, for example, on a carrier medium such as a disk, CD, or DVD-ROM, a programmable memory such as read-only memory (firmware), or a data carrier such as an optical or electronic signal carrier. The systems and modules of this specification can be implemented not only by hardware circuits such as very large-scale integrated circuits or gate arrays, semiconductors such as logic chips, transistors, or programmable hardware devices such as field-programmable gate arrays, programmable logic devices, etc., but also by software, for example, executed by various types of processors, or by a combination of the aforementioned hardware circuits and software (e.g., firmware).
[0059] It should be noted that the above description of the system and its modules is for convenience only and should not be construed as limiting this specification to the embodiments described. It is understood that those skilled in the art, after understanding the system's principles, may arbitrarily combine the modules, or construct subsystems connected to other modules, without departing from these principles. Alternatively, a module may be further divided into multiple sub-modules. Such modifications are all within the scope of this specification.
[0060] The beneficial effects that the embodiments of this specification may bring include, but are not limited to: (1) using different encryption keys or encryption algorithms for different users' business data, even if one key is compromised, the data loss can be effectively controlled to a small extent; (2) obtaining the user's key and algorithm through remote calls, the encryption and decryption process and the plaintext of the business data only exist in the server's memory or TEE, and will not be stored for a long time, effectively ensuring the user's privacy and security. It should be noted that different embodiments may produce different beneficial effects. In different embodiments, the beneficial effects that may be produced can be any one or a combination of the above, or any other possible beneficial effects.
[0061] The basic concepts have been described above. Obviously, for those skilled in the art, the detailed disclosure above is merely illustrative and does not constitute a limitation on the embodiments of this specification. Although not explicitly stated herein, those skilled in the art may make various modifications, improvements, and corrections to the embodiments of this specification. Such modifications, improvements, and corrections are suggested in the embodiments of this specification, and therefore, such modifications, improvements, and corrections still fall within the spirit and scope of the exemplary embodiments of this specification.
[0062] Furthermore, this specification uses specific terms to describe embodiments thereof. For example, "an embodiment," "one embodiment," and / or "some embodiments" refer to a particular feature, structure, or characteristic associated with at least one embodiment of this specification. Therefore, it should be emphasized and noted that references to "an embodiment," "one embodiment," or "an alternative embodiment" in different locations throughout this specification do not necessarily refer to the same embodiment. Moreover, certain features, structures, or characteristics in one or more embodiments of this specification can be appropriately combined.
[0063] Furthermore, those skilled in the art will understand that various aspects of the embodiments of this specification can be described and illustrated through several patentable types or situations, including any new and useful combinations of processes, machines, products, or substances, or any new and useful improvements thereto. Accordingly, various aspects of the embodiments of this specification can be implemented entirely by hardware, entirely by software (including firmware, resident software, microcode, etc.), or by a combination of hardware and software. All of the above hardware or software may be referred to as a "data block," "module," "engine," "unit," "component," or "system." Furthermore, various aspects of the embodiments of this specification may be embodied as a computer product located on one or more computer-readable media, the product including computer-readable program code.
[0064] Computer storage media may contain a propagated data signal containing computer program code, for example, on baseband or as part of a carrier wave. This propagated signal may take various forms, including electromagnetic, optical, and suitable combinations thereof. Computer storage media can be any computer-readable medium other than a computer-readable storage medium, which can be connected to an instruction execution system, apparatus, or device to enable communication, propagation, or transmission of a program for use. The program code located on the computer storage medium can be propagated through any suitable medium, including radio, cable, fiber optic cable, RF, or similar media, or any combination of the above media.
[0065] The computer program code required for the operation of each part of the embodiments in this specification can be written in any one or more programming languages, including object-oriented programming languages such as Java, Scala, Smalltalk, Eiffel, JADE, Emerald, C++, C#, VB.NET, Python, etc., conventional procedural programming languages such as C, Visual Basic, Fortran2003, Perl, COBOL2002, PHP, ABAP, dynamic programming languages such as Python, Ruby, and Groovy, or other programming languages. This program code can run entirely on the user's computer, or as a standalone software package on the user's computer, or partially on the user's computer and partially on a remote computer, or entirely on a remote computer or processing device. In the latter case, the remote computer can be connected to the user's computer through any network, such as a local area network (LAN) or wide area network (WAN), or connected to an external computer (e.g., via the Internet), or in a cloud computing environment, or used as a service such as Software as a Service (SaaS).
[0066] Furthermore, unless expressly stated in the claims, the order of processing elements and sequences, the use of numbers and letters, or other names described in the embodiments of this specification are not intended to limit the order of the processes and methods of the embodiments of this specification. Although some inventive embodiments that are currently considered useful have been discussed by way of various examples in the foregoing disclosure, it should be understood that such details are for illustrative purposes only, and the appended claims are not limited to the disclosed embodiments. Rather, the claims are intended to cover all modifications and equivalent combinations that conform to the spirit and scope of the embodiments of this specification. For example, although the system components described above can be implemented by hardware devices, they can also be implemented solely by software solutions, such as installing the described system on existing processing devices or mobile devices.
[0067] Similarly, it should be noted that, in order to simplify the description of the embodiments disclosed in this specification and thereby aid in the understanding of one or more embodiments of the invention, the foregoing description of the embodiments in this specification may sometimes combine multiple features into a single embodiment, drawing, or description thereof. However, this method of disclosure does not imply that the objects of the embodiments in this specification require more features than those mentioned in the claims. In fact, the embodiments have fewer features than all the features of the single embodiments disclosed above.
[0068] For each patent, patent application, patent application publication, and other material, such as articles, books, specifications, publications, and documents, referenced in this specification, the entire contents of which are incorporated herein by reference. This excludes historical application documents that are inconsistent with or conflict with this specification, as well as documents that limit the broadest scope of the claims of this application (currently or subsequently appended to this application). It should be noted that in the event of any inconsistency or conflict between the descriptions, definitions, and / or terminology used in the supplementary materials to this specification and the content of this specification, the descriptions, definitions, and / or terminology used in this specification shall prevail.
[0069] Finally, it should be understood that the embodiments described in this specification are merely illustrative of the principles of the embodiments described herein. Other variations may also fall within the scope of the embodiments described herein. Therefore, alternative configurations of the embodiments described herein are intended to be illustrative rather than limiting, and should be considered consistent with the teachings of this specification. Accordingly, the embodiments described herein are not limited to those explicitly introduced and described herein.
Claims
1. A trusted storage method for SaaS, executed by a SaaS server, the SaaS server providing software services to SaaS users via a network to assist SaaS users in maintaining or processing business data, including business data specific to the SaaS users: Obtain the remote access address of the encryption key of the SaaS user; The encryption key is obtained by remotely calling the address based on the encryption key; Obtain the remote access address of the encryption algorithm for the SaaS user; The encryption algorithm is obtained by remotely calling the address based on the encryption algorithm. At least a portion of the business data is encrypted based on the encryption key, and the encryption process is performed according to the encryption algorithm; wherein the interface of the encryption algorithm is specified by the SaaS service provider, and the content of the encryption algorithm is implemented by the SaaS user; Store at least partially encrypted business data in the SaaS database.
2. The method as described in claim 1, wherein the encrypted business data includes privacy data in the business data determined based on a preset encryption strategy.
3. The method of claim 1, further comprising: Receive business data access requests from SaaS users and retrieve relevant business data from the SaaS database; The encrypted data in the business data is decrypted by retrieving the decryption key of the SaaS user from the storage area specified by the SaaS user. Output results to SaaS users based on the decrypted business data.
4. The method as described in claim 3, wherein the step of decrypting the encrypted data in the business data by retrieving the decryption key of the SaaS user from the storage area specified by the SaaS user includes: Obtain the remote access address of the decryption key for the SaaS user; The decryption key is obtained by remotely calling the address based on the decryption key; The encrypted data in the business data is decrypted based on the decryption key.
5. The method as described in claim 4, wherein the step of decrypting the encrypted data in the business data by retrieving the decryption key of the SaaS user from the storage area specified by the SaaS user further includes: Obtain the remote call address of the decryption algorithm for the SaaS user; The decryption algorithm is obtained by remotely calling the address based on the decryption algorithm, so that the decryption process is performed according to the decryption algorithm.
6. A trusted storage system for SaaS, deployed on a SaaS server, wherein the SaaS server provides software services to SaaS users via a network to assist SaaS users in maintaining or processing business data, comprising: The encryption module is used to: obtain the encryption key remote access address of the SaaS user; The encryption key is obtained by remotely calling the address based on the encryption key; Obtain the remote access address of the encryption algorithm for the SaaS user; obtain the encryption algorithm based on the remote access address; At least a portion of the SaaS user's business data is encrypted using the encryption key, and the encryption process follows the encryption algorithm; wherein the interface of the encryption algorithm is specified by the SaaS service provider, and the content of the encryption algorithm is implemented by the SaaS user. The write module is used to store at least partially encrypted business data into the SaaS database.
7. The system of claim 6, further comprising: The reading module is used to receive business data access requests from SaaS users and obtain relevant business data from the SaaS database. The decryption module is used to retrieve the decryption key of the SaaS user from the storage area specified by the SaaS user to decrypt the encrypted data in the business data; The output module is used to output results to SaaS users based on the decrypted business data.
8. A SaaS server, comprising a processor and a storage medium, the storage medium storing computer instructions, the processor being configured to execute the computer instructions to implement the method as described in any one of claims 1 to 5.
9. A storage medium storing computer instructions that, when executed by a processor, enable the implementation of the method as described in any one of claims 1 to 5.
Citation Information
Patent Citations
Encryption system and encryption method for multi-tenant SaaS platform
CN111917725A