Process for analyzing system vulnerabilities focused on data processing

By organizing data processing into enclaves with defined confidentiality levels and protection types, the method enhances data protection, ensuring confidentiality and integrity while addressing security vulnerabilities in existing systems.

FR3156218A1Pending Publication Date: 2025-06-06UNIVERSITÉ BRETAGNE SUD (UBS)
View PDF 1 Cites 0 Cited by

Patent Information

Application Number
FR2023013340
Authority / Receiving Office
FR · FR
Patent Type
Applications
Current Assignee / Owner
Filing Date
2023-11-30
Publication Date
2025-06-06

AI Technical Summary

Technical Problem

Existing systems lack effective methods to manage and enhance the protection of data assets throughout their processing, transit, and storage, particularly in ensuring confidentiality and integrity.

Method used

The method involves organizing data processing operations into multiple enclaves, each with defined confidentiality levels, protection types, encryption capabilities, and specific functions. This approach manages confidentiality through 'fixed' and 'maximum' protection policies, utilizing signature and encryption resources to produce security directives and codes.

Benefits of technology

This method effectively secures data processing operations by ensuring confidentiality and integrity through enclave-based protection, generating tailored security codes suited for industrial applications, and identifying potential security violations.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure 00000000_0000_ABST
    Figure 00000000_0000_ABST
Patent Text Reader

Abstract

The invention relates to a method for securing a set of data processing operations intended to be applied to at least one data stream, said method comprising an organization of a set of data processing operations of the data stream in a plurality of enclaves (, , , ) each enclave being capable of carrying out one or more processing operations on the data stream, each enclave being defined by, a confidentiality level (, , ) of the enclave, a type of protection (fixed, maximum) of the enclave, an encryption and decryption capacity of the enclave, one or more functions according to the data stream, such as a creation, transit, writing or reading function. Figure for the abstract: Fig. 2
Need to check novelty before this filing date? Find Prior Art

Description

Title of the invention: Method for analyzing system vulnerabilities centered on data processing Technical field

[0001] The present invention relates to a method and a system for intelligent management of data protection capacities in order to guarantee the protection of this data, considered as assets to be protected in their exploitation.

[0002] It applies particularly in the context of systems for which it is possible to exhaustively list the assets limited to the data to be protected, as well as the processing sequences carried out on this data by the system.

[0003] These treatments are deployed on hardware supports allowing either the creation of data, or their transit without needing access to the data transited, or their modification in writing, or their access in reading without modification of the data, or their storage.

[0004] A confidentiality level is associated with each piece of data created by the system. A confidentiality protection level is associated with each of the physical media on which processing of these created data can be carried out.

[0005] These physical media have the capacity to provide signature calculation processing on data as well as encryption and decryption capabilities. These encryption and decryption capabilities relate to a level of data confidentiality. Technical background

[0006] The definition of information in the system engineering activity on the one hand in the description of the system processing and on the other hand in the definition of assets to be protected resulting from a risk analysis, is well known to those skilled in the art.

[0007] The same applies to the determination of a level of protection for physical media in which processing of data to be protected is carried out.

[0008] The document “Flaws in Flows: Unveiling Design Flaws via Information Flow Analysis” by Tuma, Katja and Scandariato, Riccardo and Balliu, Musard published in 2019, presents on pages 191-200 a description of systems in the form of secure data flow diagrams called “secDFD” (for “it security Data Flow Diagram” in English) with a confidentiality level attached to each of the secDSD. The nodes of these secDFD refer to contexts of use called “asset” with a definition of contracts in the paths of the nodes in the secDFD. The inference rules applied to these secDFD make it possible to define a confidentiality level of a function common to several secDFD. This work allows to identify the level of confidentiality that an attacker must acquire for this asset in order to capture the information from the secDSDs passing through it.

[0009] There is a need to further improve the protection of data considered as assets to be protected in their exploitation by a system. Summary of the invention

[0010] An object of the invention relates to a method for securing a set of data processing operations intended to be applied to at least one data flow, said method comprising an organization of a set of data processing operations of the data flow in a plurality of enclaves (ei, C, e3, e4) each enclave being capable of carrying out one or more processing operations on the data flow, each enclave being defined by:

[0011] - a confidentiality level (Cb C2, C3) of the enclave;

[0012] - a type of protection (fixed, maximum) of enclave, said type of protection comprising at least two categories, a first category called fixed protection for which any data in the data flow leaving the enclave is associated with the confidentiality level of the enclave and a second category called maximum protection for which any data in the data flow leaving the enclave is associated with a confidentiality level less than or equal to the confidentiality level of the enclave;

[0013] - an enclave encryption and decryption capability;

[0014] - one or more functions depending on the data flow, such as a function of creation, transit, writing or reading.

[0015] The invention thus distinguishes itself from the cited prior art by a verification of the confidentiality level of secure functional chain processing. On the one hand, the proposed security method comprises enclave protection levels managing the confidentiality of the assets passing through it according to two types of policies (maximum or fixed). On the other hand, the security method exploits signature and encryption resources allowing the production of associated security directives. It also produces security codes.

[0016] The invention takes into account the system engineering characteristics and is based on the recommendations for securing industrial applications. It therefore allows the generation of confidentiality and integrity protection codes particularly suited to these applications.

[0017] In an alternative embodiment, the method comprises: - a step of calculating integrity control directives, said step making it possible to associate with each enclave a first Boolean variable IC and a second Boolean variable AIC, said first Boolean variable IC being associated with an integrity check of the data of the data flow entering the enclave, the second AIC boolean variable being associated with a data signature control of the data flow entering the enclave.

[0018] In an alternative embodiment, the securing method comprises:

[0019] - a step of calculating a global confidentiality level for each enclave?

[0020] In an alternative embodiment, the securing method comprises:

[0021] - a step of calculating encryption and decryption directives to determine it mination of encryption and decryption capacity for each enclave.

[0022] In an alternative embodiment, the securing method comprises: - a step (E4) of producing security rule validation directives and generating control code.

[0023] In an alternative embodiment, the organization of the set of data processing operations of the data flow in a plurality of enclaves is carried out from design data obtained via a modeling tool.

[0024] Another object of the invention relates to a system for managing security events and information for implementing the security method of the invention.

[0025] Another subject of the invention relates to a computer program comprising program code instructions for executing the steps of a method for securing a set of data processing operations intended to be applied to at least one data stream when said program is executed by a processor. Description of the figures

[0026] [Fig.l] represents a system for managing security events and information according to the invention;

[0027] [Fig.2] shows diagrammatically the different stages of a security process implemented by the system of [Fig.l];

[0028] [Fig.3] represents a first step in calculating integrity control directives for the process of [Fig.2];

[0029] [Fig.4] represents a second step of calculating an overall confidentiality level of the method of [Fig.2];

[0030] [Fig.5] represents a third step of calculating encryption and decryption directives of the method of [Fig.2];

[0031] [Fig.6] represents a fourth step in producing safety rule validation directives for the process of [Fig.2];

[0032] [Fig.7] represents a capture of system requirements annotated with information from a vulnerability analysis using a modeling design tool;

[0033] [Fig.8] represents a translation of the system requirements of [Fig.7] by the security method of [Fig.2];

[0034] [Fig.9] schematically shows a hardware device suitable for implementing software able to carry out the steps of the securing process of [Fig.2].

[0035] Any production of industrial applications requires a system engineering phase. For applications handling sensitive data assets that must be protected from access, a risk analysis (for example using the EBIOS-RM method of ANSSI (for "National Authority for the Security and Defense of Information Systems") requires categorizing the level of severity of data disclosure in the form of a confidentiality level. This analysis requires that the system carrying out the processing protects itself from data disclosure in the processing, transit and storage units of the physical architecture of the system. For this, each physical component carrying out either the processing, the transit or the storage is associated with a level of protection guaranteeing the capacity to process, transit and store data according to the confidentiality level associated with the data.Different policies for modifying the confidentiality level when leaving a sensitive data processing unit have been proposed. The one that associates the protection level of the component with the outgoing processed data is the one used in defense applications.

[0036] The invention exploits this protection policy as well as a lowest outgoing level policy taking into account secure inter-functional chain interactions.

[0037] [Fig.l] illustrates a security event and information management system 1 for a set of data processing operations applied to a data flow.

[0038] This management system 1 is divided into a plurality of enclaves ei, e2, e3, C.

[0039] By the term "enclave" is meant a hardware support. Each enclave is capable of perform one or more processing operations on the data stream.

[0040] Each enclave e\ e2, ^4 is defined by:

[0041] - a level of confidentiality of the enclave;

[0042] - a type of enclave protection;

[0043] - an enclave encryption / decryption capability;

[0044] - one or more functions depending on the data flow.

[0045] The confidentiality level of the enclave is included in a set C comprising n elements or levels of confidentiality Q which can be defined as follows:

[0046] C: {Cj, ...,^ 0}

[0047] The set C can be partially ordered, in particular constitute a lattice.

[0048] The confidentiality elements of set C can be arranged in ascending order.

[0049] In particular, the confidentiality elements of the set C can be arranged according to the following condition:

[0050] VC^0, Q> 0

[0051] The enclave protection type is included in a set T PE of enclave protection types. This set is defined as follows:

[0052] T PE: {fixed, maximum}

[0053] / ixe means that any data leaving the enclave of a level of protection of confi dentiality is affected by this level of confidentiality.

[0054] maximum means that data leaving the enclave is assigned the maximum confidentiality level of information from this enclave which could affect this data.

[0055] The function(s) belong to a set of function types Ftype . This set is defined as:

[0056] Ftype: [creation x C, reading, writing, saving, transiting}

[0057] A function / is defined by its function type, by the enclave in which it is processed and by an identifier. The set of functions F is a set of 3-tuples ..... fidt,\*E^F,ylx,

[0058] For f GF, E(f) provides the identifier of the enclave on which f is processed.

[0059] The set Ec is defined as a list of 3-tuples (elements of {^j , em} xCxTPE, {ej , being enclave identifiers.

[0060] An enclave e> provides signature computation capability if Sign(e,) — True-

[0061] An ei enclave provides encryption / ciphering capability for a level of confidentiality if Ciph{ei, c= True.

[0062] For an enclave e, its confidentiality protection level is noted C It is subsequently considered that Ciph( e, e ) — True for the confidentiality protection level of enclaves for which T PE = / ixe.

[0063] In the example of Figure 1, the management system 1 comprises a first enclave ei, a second enclave e2, a third enclave e3 and a fourth enclave

[0064] The first enclave ex is defined by:

[0065] - a confidentiality level Cl;

[0066] - a maximum level of confidentiality protection;

[0067] - an encryption / decryption capacity compatible with levels Cl, C2 and C3 privacy policy.

[0068] - a function for creating data of confidentiality level Cl;

[0069] - a read function.

[0070] The second enclave e2 is defined by:

[0071] - no level of confidentiality;

[0072] - a maximum level of confidentiality protection;

[0073] - no encryption / decryption capability.

[0074] - a transit function / 2;

[0075] - a transit function / 7.

[0076] The third enclave e3 is defined by:

[0077] - no level of confidentiality;

[0078] - a maximum level of confidentiality protection;

[0079] - an encryption / decryption capacity compatible with levels Cl, C2 of confidentiality.

[0080] - a write function / 3;

[0081] - a read function f 6.

[0082] The fourth enclave is defined by:

[0083] - a confidentiality level C2;

[0084] - a fixed level of confidentiality protection;

[0085] - an encryption / decryption capacity compatible with levels Cl, C2 and C3 privacy policy.

[0086] - a read function / 4;

[0087] - a function f 5 for creating data of confidentiality level CL

[0088] A data stream is processed by the different enclaves ei, e2, e3, û.

[0089] In the remainder of the description, the expression “annotated functional chain of security information cjs” or more simply the expression “functional chain” means a sequence of processing operations carried out by the different enclaves.

[0090] A system to be secured S is a set of functional chains, notably defined as follows: [00911 S:{cA , cfsn}

[0092] In the example of Figure 1, the system to be secured comprises two functional chains cfs. A first functional chain comprises the succession of functions fv f2, fvf 4. A second functional chain comprises the succession of functions f,, f -,

[0093] [Fig.2] illustrates all of the steps E0 to E4 of a method for securing a set of data processing operations.

[0094] Step E0 corresponds to a recovery of information from the system as a list of cfs. This step E0 allows the organization of a set of operations for processing the data of the data flow in the plurality of enclaves.

[0095] [Fig.3] describes more particularly the results of a first step E1 of calculating the integrity control directives in the different enclaves.

[0096] A calculation of the integrity control directives includes an identification of the path portions of the system's cfs, which, for the first and last nodes of the path portion, have enclaves that allow the calculation of data signatures, with all intermediate nodes being of read or transit type, and with an enclave change between the first two and last two nodes.

[0097] Such a calculation can be formalized as follows. The application of signature capabilities between / j and fn of a functional chain cfs is effective if re with J IcffJ n Here defined as follows: cfs

[0098] 3fe fvie 12, n-11F f • ) g [reading, in transit} J [cfsJ n •1 V if , E(fJ*E(fj.E(fJ*E(.ff sign true, sign ( E ( fn ) ) - true

[0099] Each node of the cfs can be associated with two Boolean variables ic and aie initialized to the state f aux.

[0100] For each pair fp fn satisfying the condition r , ic — true for the ■' î cfs-'n nodes of the paths from to f ] allowing the relation to be satisfied.

[0101] ic = true indicates that there is a path for which integrity checking is possible. ic = true does not indicate that all paths in the cfs passing through this node could have been previously signed. It is the Boolean variable aie which is intended to subsequently carry such information.

[0102] A calculation of a Boolean variable aie can be formalized in the following way.

[0103] The Boolean variable aie is initialized to true for nodes for which ic — true.

[0104] For each node for which ic = true, the steps of the cf s can be traversed in the direction of the directed graph up to the node for which ic = false. If none of the nodes f satisfies signff) = true along this path, then the Boolean variable takes the state false(aic = false).

[0105] According to a variant, for each node for which ic = true, the steps of the cfs can be traversed in reverse of the direction of the directed graph up to the node for which ic — f aux. If none of the nodes f satisfies sigr^f) = true along this path, then the boolean variable takes the state false (aic — false).

[0106] Algorithmically, such a calculation of a Boolean variable aie can be carried out via traversals of the directed graph for each cfs.

[0107] Examples of algorithms that can be implemented, in particular by a computer, to perform such a calculation of a Boolean variable aie are described below.

[0108] An example of a first algorithm Algorithm 1 for performing a calculation of a variable ic is described below. Such a calculation of a variable ic can be performed on the nodes of a cfs.

[0109] [Algorithm 1] Algorithm 1 Calculation ic on the nodes of a cfs. Requires: cfs For each node accessed by an enclave with sign = true. Appt i gu er cal eu 11C (knot)

[0110] An example of a second algorithm Algorithm 2 for performing a CalculIC(node) calculation is described below. [YES] [Algorithm 2] Algorithm 2 CalculIC(node) Requires: cfs note “ode traveled; if type diff renders or type diff transit then ic = falsc else if all following nodes already traversed then ic — false else for ail node uode2 of the csf accessed by node and not traversed do ic ic or CaleulICTerm(node2,enclave(node)) end for end if

[0112] An example of a third algorithm Algorithm 3 for performing a calculation CalculICTermfnode, enclave) is described below.

[0113] [Algorithm 3] Algorithm 3 CalculationICTemdnode,enclave) note node traveled; if type diff read or type diff transit then ic = false else if ions following nodes already traversed then ic = false else if enclavecotirante diff enclave and sign^true then return thing else for ail node node2 of the csf accessed by node and not traversed do ic ~ ic or CalctilICTerm(node.2,enclave) end for end if return here;

[0114] An example of a fourth algorithm Algorithm 4 for performing a calculation of an aie variable is described below. Such a calculation of an aie variable can be performed on the nodes of a cfs.

[0115] [Algorithm 4] Algorithm 4 Calculation of aie on the nodes of a cfs. Require: cfs with ic calculation done. note the traveled route; For each node with ic — trua for ail node node2 of the egg accessed by node in ascending and descending direction, and not traversed do ouch-- ouch and ÇalculAIC(node2) end for

[0116] An example of a fifth algorithm Algorithm 5 for performing a CalculAIC calculation is described below. In the following example, the CalculAIC calculation is performed on a node nodel.

[0117] [Algorithm 5] Algorithm 5 Calculation AIC note node traversed; if sigïi ^ tTue then feturn true else if ouch = done then return to do so; else if t.otis following nodes already traversed then ouch — made else for ail node node'2 of the csf accessed by node in upstream and downstream directions and not traversed do ouch-: ouch and CalailAK'(iiode2) end for end if return ouch:

[0118] [Fig.4] illustrates the result of a second step E2 of calculating an overall confidentiality level of the process implemented by the management system of [Fig.l].

[0119] This calculation consists of identifying the impact of contamination in confidentiality of the cfs between them when they share the same processing units, namely the enclaves. It is therefore necessary to provide for a possibility of disclosure of information of a data of a cf s accessible in an enclave by a data of another cf s and resulting from a write processing by a function in this enclave.

[0120] On the other hand, it is also necessary to verify that the level of protection offered by an enclave is higher than the need for protection relative to the level of confidentiality of the data of the cfs carrying out processing on these enclaves.

[0121] The calculations to be carried out in this method are described as inference rules to be applied to the nodes of the cfs of the system in order to calculate, on the one hand the level of effective protection requirement % / for a given enclave, with regard to the processing of cfs functions on data on the enclave and on the other hand the level of confidentiality of the cfs data at the output of the functions.

[0122] The inference rules are expressed as follows: Axiom on E and Etype I— Information received from the cfs node Impact on Eef 1— Impact on f - Axiom on E and Etype representing the characteristics attached to an enclave and being invariant; - Information received from the cfs node representing the function to be processed upon receipt of the data received as input; - Impact on Eef calculating the effective level of protection of the enclave to be respected to ensure the protection of data passing through this enclave, the value of / being the value of the confidentiality level at the input of the data to be processed; - Impact on f calculating the confidentiality level of the data after processing by / in the enclave. The confidentiality level of the data after processing by f in the enclave can be the confidentiality level of the input data for the next node of the cf s. true indicates a transmission of the data with a confidentiality level identical to that of the received data. When it is a function receiving and transmitting a stream, true is equivalent to fl f.

[0123] The method may comprise a step of initializing the nodes of the cfs of the system, in particular via an initialization rule.

[0124] Initialization rule: Initialization on enclaves. This rule is independent of cfs and initializes enclaves.

[0125] .....(Rinit)

[0126] Rule 1: Rule applied to all by functional chains in the case where Etype — fixed. The ® operator is applied on confidentiality levels. Any Type means that the rule applies regardless of the type of the function.

[0127] E fixed r— / Any Type (RD E^-. Eef ®

[0128] Rule 2: Rule applied to any cfs step for which aie = f aux, i.e. at least one path for which it is not possible to perform an integrity check on the incoming data.

[0129] E. Enpe: max i— f Any Type, aic=false (R2) E£ / : E^- ® f^fE^

[0130] Rule 3: Rule for which whatever the execution steps since the creation of the data relating to the cfs, the data received at the input of the node f is always signed and without modification since the signature on the one hand, and with this unmodified data whose integrity control is carried out in the processing sequence on the cfs.

[0131] CA max H / Read, aie=true (R3)

[0132] Changes to transit functions are made based on whether or not the data in transit can be encrypted.

[0133] Rule 4: Rule on processing for functions in transit, before calculating encryption capabilities.

[0134] E, Etype: max, I— f In transit, aic=trae (R4) i— true

[0135] Algorithmically, these rules apply on the nodes of all cfs of the system as long as the value of the input data of a node has its confidentiality level changing.

[0136] An example of such an algorithm is illustrated below: Algorithm 6 Oslcrtî sw the nodes of the cfs. Kequtre: 5: {<" / »;., ..., (:. / ¾} Application (R mit) on the nodes of the cfs. wMie (.Privacy modification in node entry of a cfs) do if JE'iyjw: f ixe ut f A ByType then Application {R ï ) end if if H-rpix:: maximum and f AnyType and thets Application (R 2) end if ^tV)K ; maæinud and f Read ei ài<;-tare then AppUentum. (R3) end if if: nwxinwl and / In transit and aic -trae theu endowment (R 4) end if end wldle

[0137] [Fig.5] illustrates the result of a third step E3 of calculating encryption and decryption directives for determining an encryption and decryption capacity of the enclave.

[0138] The information from the cfs annotated with integrity control information is used in the form of a Kripke structure in order to express the encryption capabilities as a satisfaction result on a state of this structure expressed by a temporal logic property.

[0139] Firstly, the calculation of the information attached to the nodes of the cfs is completed by the calculation, for each confidentiality level c of cmc(c) for encryption storage capacity. This calculation is carried out by a backward traversal of the directed graph of the tagged states aie = true up to the states for which aie — false. All these states are initialized V c CC, emefe) — true. If in none of these paths any node has ciph(c) ~ true, then cmc(c) — false.

[0140] In a second step, all the states attached to an enclave of the cfs are grouped together, then divided into as many states of the Kripke structure as there are distinct parts of the tree. If there are several functions for a state of the kripke structure, we retain as the attached type that of create if there is a state of this type, then write if there is a read function, then transit if there are only transit functions.

[0141]

[0142]

[0143]

[0144]

[0145]

[0146]

[0147]

[0148]

[0149]

[0150]

[0151]

[0152]

[0153]

[0154] This type is stored for a state of the Kripke structure by a type variable. The output confidentiality level of the state of the Kripke structure is stored by a variable con f . A state of the Kripke structure also stores the information ic of the initial enclave of the cfs from which it is deduced. The signature and encryption capabilities applied to the data in the secure functional chain are described using a representation in the form of the following Kripke structure: Kcp ■ {, T, AP, Atom} for which: - £ is the set of enclave states traversed by the cfs. These enclaves carry the enclave identifier, the set of cfs functions that host the enclave in the form of a DAG. These host functions share the same confidentiality level called f; - T is the transition function between enclave states; - A is the enclave state carrying the function of creating the secure functional chain; - AP carries the attributes of the state necessary for determining the application of encryption and decryption directives, namely the encryption / decryption capabilities for a given confidentiality level, the integrity control directive ic, the confidentiality level con f carried by the data of the functional chain in the enclave state, as well as the type of the functions of the enclave state type; - Alom, a set of boolean functions applied to the attributes of the enclave state, namely ic, ciph(c). First, the Boolean functions that will be applied to the enclave states are defined. P(c): (type = transit) a (con f = c) Q(c):ciph(c) Re: (ic = true) Ra(c) :(cmc(c) —true) An ActionCiph(c) function returns an enumerated value in the set: {none, bot h. asReceived, ciph, ciphered} ■ The calculation of ActionCiph(c) initialized to none is explained below. Tree temporal logic allows the following properties to be expressed: A{0.LGp} iff Vn : (½ si, s2, ... ), 3 s- g tt, such that hipeV j < i, Sj H ¢ E{^U.yt] iff V tt : (s, si, s2, ...), 3s, ë such that st H y» e V j< i, Sj l— ¢

[0155] A Proper Property): A(P(c).Z7.g(c)) is written in the form of a CTL property applied to Kcys states.

[0156] This property is true for states for which, for a confidentiality level c, and all paths lead to a state allowing decryption of confidentiality data c . States that can encrypt their data and then access states validating Prop(c) can apply encryption.

[0157] Data produced by a function in an enclave e can be encrypted if it can access a state by a path and without being modified, all sequences of paths from this state and will be in transit to a state where the data can be encrypted.

[0158] This corresponds to states satisfying the following CTL property CiphCapProp: CiphCapProp^ = Q(c).E(Re.UPropî(c) )' For the states of these paths, it is instantiated, for states validating ActionCiplAc) = both, for states validating PropŸ ActionCiph^c) = asReceived, for the validating state

[0159] CiphCapProp? ActionCiph{c) = ciph.

[0160] It is useful, for a received data, to know if it can be received while being encrypted, because this allows to relax the confidentiality constraint of the enclave which receives it. This corresponds to the states satisfying Prop^ : Propre) / \cmc(c) -true-For these states, ActionCiph(c) - ciphered-

[0161] The inference rules for states in transit are then completed:

[0162] Rule 5: Node in transit for received data always encrypted for confidentiality level / .

[0163] Ei-f Transit, ActionCiph(c)=ciphered, c>—f (R5) 1—(number] f, e) ) => / : 0

[0164] The information (digit( f, c) ) i 0 indicates that the data has been received encrypted at the enclave entrance and that this encrypted data with a confidentiality protection level of c gives this encrypted data a confidentiality level of 0.

[0165] Rule 5bis: Node in transit for received data always encrypted but for a confidentiality level c lower than / .

[0166] Ei-f Transit, ActionCiph(c)=ciphered, f>=c (R5 bis) Eef: Eej ® fi- true

[0167] In case 5 bis, the data is encrypted but not sufficiently to consider that the level of protection of the data to be encrypted could be 0. The confidentiality level of / is that of the data before encryption.

[0168] Rule 6: Node in transit for received data that may not be encrypted

[0169] E. Etype: ntax if Transit, ActionCiph{c)*ciphered (R6) Eef: Ecj @ ff— true

[0170] The application of these rules only has an impact on the effective level of need for confidentiality protection of the enclave of functions in transit validating the entry conditions.

[0171] [Fig.6] illustrates the result of a fourth step E4 of producing directives and security verification code.

[0172] For a functional chain, in the context of code production, the chain data is traced with an identifier of said functional chain. This identifier is kept at each stage of processing of the functional chain.

[0173] Enclave confidentiality constraint satisfaction directive:

[0174] If for an enclave e, we do not have ~ eef or e > eef, then an alert is raised indicating a vulnerability of the system.

[0175] Data encryption constraints satisfaction directive:

[0176] If rule 5bis applies, it must be indicated that the encryption level of the cfs data in enclave e does not correspond to the expected level of data protection.

[0177] Integrity calculation directives. Code production:

[0178] For all nodes in the cfs leading to nodes for which ic = true or a ic = true, the data integrity calculation must be performed and added to the data to be transmitted.

[0179] A type code is added before transmission to the next enclave:

[0180] if (data.cfs == identifier_cfs) Sign(data.cfs)

[0181] For a node for which the received data comes from an enclave for which ic = true or aie — true and ic = false for the current enclave, an integrity calculation must be performed with verification of non-modification of the data. A type code is added to the reception of the previous enclave:

[0182] if (data.cfs ==cfs_identifier), Check(data.cfs.signature, data.cfs)

[0183] Encryption directives. Code production:

[0184] If for a given enclave for cfs data

[0185] Case No. 1:

[0186] If we have ActionCiphic) = ciph, then the encryption of the data as well as its signature is carried out.

[0187] If for the following enclave the code of ActionCiphic) is both:

[0188] If (data.cfs = = identifier_cfs) digit (c, data.cfs);

[0189] Transmit(encrypted_data and clear_data)

[0190] As received or ciphered:

[0191] if (data.cfs == identifier_cfs) digit (c, data.cfs);

[0192] transmit(encrypted_data)

[0193] Case No. 2:

[0194] If we have ActionCiphic) - bot h:

[0195] If (data.cfs == cfs_identifier)

[0196] Transmit(encrypted_data and clear_data)

[0197] asReceived

[0198] if (cfs_data == cfs_identifier) ​​transmit(encrypted_data)

[0199] none

[0200] if (cfs_data == cfs_identifier) ​​transmit(clear_data)

[0201] Case #3, we have ActionCipHp) — asReceived for the following enclave the code of ActionCipttc) is either asReceived or a Ciphic) = true.

[0202] Case #4, we have ActionCiphic) = ciphered for the following enclave the code of ActionCipfyc) is either ciphered or has CipHc) = true.

[0203] Case #5, we have ActionCipHc) = none for the following enclave the code of ActionCiphfe) is either asReceived or a CipHc) ~ true.

[0204] Inconsistency analysis and code production:

[0205] In cases not listed in the previous encryption guidelines, these are error cases to be reported.

[0206] In the case of receiving data without a cfs identifier, this is an error to be reported.

[0207] In the case of non-provision of security resources (signature, encryption) corresponding to what is specified, this must be postponed.

[0208] In the case of data whose identifier or signature and encryption status does not correspond to what is expected, an error must be reported.

[0209] The steps of the securing method may be executed by a computer program or software product comprising program code instructions.

[0210] Such software thus performs the transformation into a list of cfs and treatments described from system designs produced using a Capella modeling tool. Such system designs are notably illustrated in the example of [Fig.7].

[0211] This software parses the elements of the input model of the physical view by exploiting the description of processing sequences.

[0212] The software is also able to capture the information added and not defined in Capella on the confidentiality level of these chains and the protection level and confidentiality management policy of the physical components and channels of the physical view of the model. The software then translates these elements in the form of functional chains. Such functional chains are notably illustrated in the example of [Fig.8].

[0213] This software also captures the information added and not defined in Capella of type of functions traversed in the description of the sequences of functions. The in added formations are information added from the "summary" field of the model elements and interpreted by the software that performs the invention.

[0214] The software transforms the information of the original model into a software representation in the form of a list of functional chains annotated with information from a vulnerability analysis as formalized in the description of the invention. It performs the processing of calculating integrity control directives, calculating the confidentiality protection level of the enclaves necessary for securing the system, calculating encryption and decryption directives, producing an assessment of compliance with security needs with regard to the initial information describing the system, as well as codes for securing the system to be integrated in addition to the implementation of the operational part of the functions in order to protect the integrity and confidentiality of the exchanges of data to be protected from the system.

[0215] Such software may be implemented in hardware equipment as illustrated in [Fig.9].

[0216] The invention thus proposes a method for securing a system composed of identified processes on data assets to be secured. These processes are carried out on an architecture of data processing components and communication channels for the transit of data between components. These architectural elements offer, for each, levels of protection against disclosure and encryption and signature calculation capabilities. This method identifies security violations on the system. The method also identifies the encryption and signature processes to be carried out to secure the system for the processing of the system's data.The method thus comprises a step of identifying the application of signature directives and integrity testing, a step of defining the protection needs of the architectural elements for processing the data of the system, a step of identifying the application of encryption and decryption directives, a step of producing directives for compliance with security constraints and producing signature code, integrity testing, encryption and decryption on the system and a step of producing control code guaranteeing behavior of the system implementation consistent with the system design annotated with information from a vulnerability analysis.

[0217] The step of identifying the application of signature directives and integrity tests comprises a step of identifying the processing paths on the components for which data to be secured is not modified. During the processing paths, the data to be secured can be signed upstream or downstream of the processing by these components. An identification step for each step of these paths is applied if the data can always be signed with a subsequent integrity calculation step.

[0218] The step of defining the protection needs of the architectural elements for processing the data of the system of said security method comprises a step of processing the components for which the outgoing data takes the level of protection confidentiality of the component and a step of defining the need for protection on a component in which different data to be protected transit. This last step also defines the impact of the level of confidentiality of outgoing data of a component by the level of confidentiality of other data transiting in the component. This step exploits the data processing in components never requiring modification of the data and therefore not impacted by the other data transiting in the system.

[0219] The step of identifying the application of encryption and decryption directives of the security method comprises: a step of identifying situations where data can pass from a component in all its possible behaviors to a component in which it can be decrypted without it being necessary for this data to be read or modified, a step of identifying situations where it is possible to encrypt data and access a defined state, a step of identifying situations where the data can be encrypted and will not be modified before accessing the step of identifying situations, a step of identifying situations where the data can always be encrypted and will not be modified before accessing the step of identifying situations.

[0220] The step of producing directives for compliance with security constraints and producing signature code, integrity testing, encryption and decryption on the system comprises a step of identifying security violations, these violations being insufficient levels of protection of the components, these violations also being data encryption guaranteeing a level of protection lower than the expected level of protection due to the criticality of the data to be protected, a step of producing signature calculation code to integrate it into the data to be transmitted, then into the data received for the integrity calculation, a step of producing encryption and decryption code, transmission of the encrypted, unencrypted data, as well as decryption.

[0221] The step of producing control codes guaranteeing behavior of the system implementation consistent with the system design annotated with information from a vulnerability analysis includes an alert issued in cases not listed in the encryption directives, an alert issued in the case of reception of data without identifier linked to data processing, an alert issued in the case of non-provision of security resources (signature, encryption) corresponding to what is specified, an alert issued in the case of data whose identifier or the signature and encryption status do not correspond to what is expected.

Claims

Claims

1. Method for securing a set of data processing operations intended to be applied to at least one data flow, said method comprising an organization of a set of data processing operations of the data flow in a plurality of enclaves (ei, e2, e4) each enclave being capable of carrying out one or more processing operations on the data flow, each enclave being defined by: - ​​a confidentiality level (Cb C2, C3) of the enclave;- a type of protection (fixed, maximum) of enclave, said type of protection comprising at least two categories, a first category called fixed protection for which any data of the data flow leaving the enclave is associated with the confidentiality level of the enclave and a second category called maximum protection for which any data of the data flow leaving the enclave is associated with a confidentiality level less than or equal to the confidentiality level of the enclave; - an encryption and decryption capacity of the enclave; - one or more functions depending on the data flow, such as a creation, transit, writing or reading function.;

2. Securing method according to claim 1, in which said method comprises: - a step (El) of calculating integrity control directives, said step making it possible to associate with each enclave a first Boolean variable IC and a second Boolean variable AIC, said first Boolean variable IC being associated with an integrity control of the data of the data flow entering the enclave, the second Boolean variable AIC being associated with a signature control of the data of the data flow entering the enclave.

3. Securing method according to claim 2, wherein said method comprises: - a step (E2) of calculating a global confidentiality level for each enclave.

4. Securing method according to any one of claims 1 to 3 wherein said method comprises: - a step (E3) of calculating encryption and decryption directives for determining an encryption and decryption capacity decryption for each enclave.

5. 5. Securing method according to any one of claims 1 to 4, in which said method comprises: - a step (E4) of producing security rule validation directives and generating control code.

6. 6. Securing method according to any one of claims 1 to 5, in which the organization of the set of data processing operations of the data flow in a plurality of enclaves (ei, e2, e3, ^4) is carried out from design data (EO) obtained via a modeling tool.

7. Security event and information management system for implementing a security method according to any one of claims 1 to 6.

8. 8. Computer program product comprising program code instructions for executing the steps of a method for securing a set of data processing operations intended to be applied to at least one data stream according to any one of claims 1 to 6, when said program is executed by a processor.

Citation Information

Patent Citations

  • Bypassing memory encryption for non-confidential virtual machines in a computing system

    US20230289479A1