=Paper= {{Paper |id=Vol-2597/paper-11 |storemode=property |title=MuAC: Access Control Language for Mutual Benefits |pdfUrl=https://ceur-ws.org/Vol-2597/paper-11.pdf |volume=Vol-2597 |authors=Lorenzo Ceragioli,Pierpaolo Degano,Letterio Galletta |dblpUrl=https://dblp.org/rec/conf/itasec/CeragioliDG20 }} ==MuAC: Access Control Language for Mutual Benefits== https://ceur-ws.org/Vol-2597/paper-11.pdf
     MuAC: Access Control Language for Mutual Benefits∗
            Lorenzo Ceragioli1 , Pierpaolo Degano1 , and Letterio Galletta2
                                    1
                                    Università di Pisa, Pisa, Italy
                       lorenzo.ceragioli@phd.unipi.it, degano@di.unipi.it
                          2
                            IMT School for Advanced Studies, Lucca, Italy
                                 letterio.galletta@imtlucca.it


                                                Abstract
          In a collaborative distributed environment, users own a set of private resources that
      they possibly share with each other to achieve mutual advantages. The access to resources
      is regulated by a policy defined by each user in isolation, and independently of the others.
      However, typical access control languages allow defining policies that only check the roles
      or the attributes of the requesters and resources. But they do not impose a fair exchange
      of access grants by taking into account what requesters offer to others. Here, we present
      MuAC, a logic-based access control language designed for expressing mutuality. In par-
      ticular, MuAC allows specifying conditions on what requesters must offer in exchange for
      using a particular resource.


1     Introduction
Access control mechanisms selectively restrict accesses to resources, distinguishing between legit
and illicit requests. Here we will focus on the case where the permitted accesses are described
via a policy, expressed in a suitable language (policy-based access control). Different such
languages exist, from low level ones, e.g. those used in firewalls like IPTABLES [13], to high level
ones like XACML [8].
    In a distributed setting each user has a set of his own resources, that are possibly shared
with others. The access policy protecting these resources is naturally defined by each user in
isolation, and independently of the other users. In distributed collaborative contexts, policies
are designed to achieve a fair exchange of access grants, so enhancing mutual advantages. For
example, different hospitals may share anonymized medical data to improve the quality of
statistics. A further example are online social networks where interactions are regulated: Alice
decides on her own how her pictures can be accessed, e.g. by only showing them to who shares
his pictures with her. As a matter of fact, mutuality is the basis of social interactions, and it
affects how resources are managed and shared.
    Traditional access control languages do not express such conditions that foster mutual ben-
efits, but only check the roles or the attributes of the requesters, of the resources and also of
the environment. Typically, the exchange of access rights is negotiated by humans and im-
plemented by hand in the access control policy of each contractor. An automatic tool would
instead help, which takes access control decisions on what requesters offer to others. To the
best of our knowledge, only few papers have investigated the possibility of expressing a limited
form of mutuality in policies, e.g. [12].
   ∗ The first two authors have been partially supported by project PRA 2018 66 DECLware: Declarative

methodologies for designing and deploying applications of the Università di Pisa; the third author by MIUR
project PRIN 2017FTXR7S IT MATTERS (Methods and Tools for Trustworthy Smart Systems).
Copyright c 2020 for this paper by its authors. Use permitted under Creative Commons License Attribution
4.0 International (CC BY 4.0).
MuAC: Access Control Language for Mutual Benefits              L. Ceragioli, P. Degano and L. Galletta


    Here, we start to address the mutuality issue and propose MuAC, a logic-based access control
language. This language not only allows specifying conditions on the resource and users, but
also constraints on what requesters must offer in exchange. We claim that MuAC naturally
expresses situations in which mutuality has involved forms.
    Even though policies are exclusive of each user, they impact on each other. For example,
consider the case of picture sharing mentioned above: Alice needs to be aware of Bob’s policy
for granting him access to her pictures. In general, deciding an access request may require a
complete knowledge of the policies of every user. Here, we assume a centralized evaluation model
where each user separately defines his local policies and sends them to the policy enforcement
point (PEP), responsible for the evaluation of the requests and the interactions among users.
    Mutuality may however induce circularity while evaluating access requests. Consider again
picture sharing and assume that the PEP receives from Bob a request to watch Alice’s pictures.
If Bob unconditionally allows Alice to watch his, then there is no circularity and Bob’s request
is accepted. A circularity instead occurs if Bob allows Alice to watch his picture only if she
shares her pictures with him. Nevertheless, the PEP should grant Bob access to Alice‘s pictures,
and viceversa.
    Unfortunately, classical logic is not fully adequate to express this situations, which are
typical of common contracts. To overcome this limitation, an effective predicative contractual
logic (PCL) was introduced in [2] that extends intuitionistic predicate calculus with the operator
, called contractual implication. The formula A  B intuitively stands for a promise that “B
will be satisfied if A is as well”.
    We therefore exploit PCL to resolve circularity arising in mutual access policies. More in
detail, the PEP translates the policies of the users into a conjunction of PCL formulas, and relies
on teh deductive machinery of [1] to allow or not a given request.

Plan of the paper Section 2 gently introduces MuAC and its features through a running
example. Section 3 briefly reviews the logic PCL. Section 4 presents the syntax and the se-
mantics of MuAC ; discusses its expressive power through a bunch of examples; and describes
the algorithm implementing a centralized PEP for request evaluation. Section 5 compares our
proposal with the literature, and draws some conclusions and future work.


2    Example: Sharing Resources among Research Groups
Consider a computer science department with several research group on different areas. Each
group has a finite amount of resources, some of which may be shared to enhance cooperation
and to optimize their usage. Sharing however is not always for free, and each research group
wants something in return for allowing a fair access to its resources, while avoiding free raiders
and guaranteeing mutuality of the benefits. In other words, each researcher should be enabled
to decide which resources to share and with whom, and which guarantees to require, so giving
rise to an access policy. We here offer a formal language for specifying individual policies,
independently of each other. The task of the automatic access control system we propose is to
combine these policies together and enforce them on all the involved entities.
    We now informally describe the department; then we intuitively present possible individual
policies and their formalization in a simplified form; and finally we discuss how the individual
policies are combined to control accesses.
    There are three research group inside the department: machine learning, consisting of Mark,
Michelle and Morty; networks, including Nick, Nancy and Neil; and security, with Selene and
Sam. Resources are of different kinds, e.g. computational power, data, software, picture.

2
MuAC: Access Control Language for Mutual Benefits              L. Ceragioli, P. Degano and L. Galletta


    Table 1 describes what researchers require (line wants), what they offer (line shares) and
under which conditions (line with). For example, Morty (i) looks for picture and offers in
exchange computational power, provided that who requires it shares something with him,
in this case pictures; moreover, he (ii) offers for free his software. Nick offers pictures
and post, under the condition that the requester is in his group of shares something with its
member, and wants computational power. Selene instead requires both network software
and source code and offers network logs to the members of her group who share something
with her, or also to a member who shares something with someone sharing with her (a sort of
transitive sharing).
    More formally, the case (i) of Morty’s policy is rendered by the following rule

                    computational-power(Resource), Allows(Me, r, Subject)                         (1)

where the first predicate is true when the resource requested is of kind computational power.
The predicate Allow is typical of our policy language and is the key one. It has three arguments:
the first is the individual who decided the policy, here Me is Morty; the second argument is the
resource requested by Morty; and the last one says that r is owned by Subject (note that
the check that the type of r is picture is completely demanded to the access control manager).
Intuitively, Allow evaluates true when Subject permits Me to access r. But this cannot be
established without inspecting the individual policy of Subject.
    The case (ii) of Morty’s policy, i.e. he shares his software with everyone, is easier:

                                        software(Resource)

   As expected, Morty and Nick can share some of their resources. Indeed, the relevant portion
of Nick’s policy is rendered the following formula:

                    pictures(Resource), Allows(s, r, Subject), Networks(s)                        (2)

Note that the third predicate constrains Morty to share something with a member of the
Networks group, here Nick himself. The sharing between Morty and Nick can only take place
if both (1) and (2) hold. This happens when in the rules
 (1) Me stands for Morty; Subject is bound to Nick; and r to a picture P offered by Nick.
 (2) s is bound to Nick; Subject stands for Morty; and r is bound to computational power
     CP offered by Morty.
    As mentioned above, the predicate Allows plays a key role and deserves a non standard
treatment. Indeed, in order to prove that Allows(Morty, P, Nick) holds, we need to show that
Allows(Nick, CP, Morty) holds, and viceversa so leading to a circularity. To break it safely, we
exploit the contractual implication of Propositional Contract Logic [2], through the construction
detailed in the next section.


3    Background: Propositional Contract Logic
Bartoletti e Zunino introduced in [2] the intuitionistic propositional logic of contracts, whose
distinguishing operator is contractual implication . Intuitively, the formula p  q means “q
is granted to be true if p holds as well.” An alternative interpretation is “a promise that q will
be satisfied if also p is.” Consider the social network example of Section 1, if Alice ensures that
Bob can see her pictures if Bob does the same is rendered by Alice-sees-Bob  Bob-sees-Alice.

                                                                                                    3
MuAC: Access Control Language for Mutual Benefits                     L. Ceragioli, P. Degano and L. Galletta


                             Table 1: What researchers require and offer

                                    MACHINE LEARNING GROUP
                                 Mark               Michelle                   Morty
              wants:          source code          network logs                pictures
              shares:     computational power   computational power      computational power
               with:      who shares with him   who shares with her      who shares with him
              shares:           software             software                 software
               with:           everybody            everybody                everybody

                                         NETWORKS GROUP
                                 Nick                 Nancy                     Neil
              wants:      computational power   computational power         networks logs
              shares:           pictures          network software
               with:       group, who shares     group, who shares
                              with group        computational power
                                                     with group
              shares:            posts
               with:       group, who shares
                              with group

                                          SECURITY GROUP
                                        Selena                             Sam
                 wants:             network software,                   source code
                                  computational power
                shares:               network logs                   source code
                 with:      group member sharing with her or    who shares with him or
                               group member sharing with       who shares with someone
                              someone who shares with her        who shares with him


    The main aspect of contract logic is its ability of dealing with the circularity arising when
p is verified if q is as well and vice versa, formally (p  q) ∧ (q  p). In contrast with common
implication, here the result is that both the formulas are verified. This handshake property is
formally stated as
                                     ` (p  q) ∧ (q  p) → p ∧ q
Of course, circularity may involve many steps, rather than the two considered above.
   Contractual implication satisfies transitivity
                                    ` (p  q) ∧ (q  r) → (p  r)
   A further natural property is that promises in contracts can be arbitrarily weakened, while
the precondition can be arbitrarily strengthened. Intuitively: if I am willing to grant you
something in change of something else, then I am also willing to give you less for getting more:
            (p  q) ∧ (q → q 0 ) → (p  q 0 )             (p0 → p) ∧ (p  q) → (p0  q)
   Finally, a contract should be satisfied also when the premise is unconditionally satisfied,
and if a promise q is already true, then it is also true any contract which promises q
                        ` p ∧ (p  q) → q                         ` q → (p  q)
    The propositional intuitionistic logic has been proved decidable. The theorem prover of [1]
implements the PCL entailment, the performance of which is acceptable for common examples,
although in general deduction is PSPACE complete.

4
MuAC: Access Control Language for Mutual Benefits                L. Ceragioli, P. Degano and L. Galletta


4     The MuAC Access Control Language
Our model considers a system hosting a finite set U of users (ranged over by u, u0 , ui ) that
protect and use a finite set R of resources (ranged over by r, r0 , ri ) of various kinds. Each
user chooses how to regulate accesses to his resources by specifying a set of rules, describing
the conditions under which access is granted to another user, called Subject. Although the
specification of access rights is fully demanded to each users, their enforcement results from the
combination of these individual policies and a centralized entity grants or denies access, upon
receiving a request.

Policy specification A rule φ ∈ Φ contains atomic propositions on users and resources,
and possibly the special predicate Allows. We assume a set of user variables u, u0 . . . ; a set of
resource variables r, r0 . . . ; three special variables Me, Subject, Resource that take value when
used (Me indicates the owner of the rule, Subject the requester and Resource has the obvious
meaning); and a set of atomic predicates p, q, p0 , q 0 . . . Let U range over Me, Subject and user
variables; and let R range over Resource and resource variables. Rules are defined as follows

                            φ ::= p(U ) | p(R) | Allows(U, R, U ) | φ, φ

The intended meaning of a rule φ is that Me grants Subject access to Resource if all the
predicates occurring in φ are proved true, possibly involving circularity.
    Atomic predicates express properties of users and resources that are meaningful in the over-
all system. E.g., software(Resource) in Morty’s policy holds true if the requested resource is
a piece of software. The predicate Allows(U, R, U 0 ) states the condition that the user U is
allowed by user U 0 to access resource R. An example is the formula Allows(Me, r, Subject),
occurring in the rule (1) of Morty’s policy. The comma is the standard logical conjunction.
We assume that all the variables are existentially quantified, except for the special ones.
See for instance the discussion at the end of Section 2, where the rule (2) of Nick’s policy
pictures(Resource), Allows(s, r, Subject), Networks(s) was shown to hold for specific values
of the variables s and r.
    Finally, the centralized granting authority collects all the rules in a configuration, i.e. a
mapping from users to sets of rules σ : U → 2Φ .

Expressivity Despite the simplicity of the examples considered, MuAC allows a user to
define involved policies, some of which we discuss below.
    In the simplest kind of rule, its owner, i.e. Me, offers a resource to the requester, i.e. Subject
provided that in exchange it shares some (other) resource. This is the case (of a portion) of
Sam’s policy (3) as intuitively defined in Table 1 speaking both of code, and of Morty’s (4)
where the exchanged resources are of different nature:

                 source-code(Resource), Allows(Me, r, Subject), source-code(r)                      (3)
                 source-code(Resource), Allows(Me, r, Subject), picture(r)                          (4)

Of course, more than one resource can be requested. For example Me offers network logs to
those who are willing to share both network software and computational power:

           network-log(Resource), Allows(Me, r, Subject), Allows(Me, r0 , Subject),
           network-software(r), computational-power(r’)

                                                                                                      5
MuAC: Access Control Language for Mutual Benefits                   L. Ceragioli, P. Degano and L. Galletta


Note that to offer k sorts of resources, one has to write k distinct rules.
    A second kind of rules considers groups of users rather than a single one: Me offers a resource
to a member of a group, provided that (another) member gives something in exchange. The
following example says that Me offers computational power to the security group members if
any of them shares some source code with him

                 computational-power(Resource), Allows(Me, r, u), source-code(r),
                 security(Subject), security(u)

Also the converse is possible, when the shared resource is for a member of the group of Me (see
also the rule 2):

                      computational-power(Resource), Allows(u, r, Subject),
                      networks(u), networks(Me), computational-power(r)

   So far a single Allow occurred in the rules. When there are more, we obtain a sort of
transitivity of offers and requests. A simple example follows where all the resources are code,
r belongs to Subject and r0 to the user u. Intuitively, the rule says that Me grants Subject
access to Resource if Subject offers r to u, who in turn offers r0 to Me:

source-code(Resource), Allows(u, r, Subject), Allows(Me, r0 , u), source-code(r), source-code(r0 )

Of course this form of transitivity may involve arbitrary chains of Allow, as in the rule below,
where the second Allow is only applied to variables:

        source-code(Resource), Allows(u, r, Subject), Allows(u0 , r0 , u), Allows(Me, r00 , u0 ),
        source-code(r), source-code(r0 ), source-code(r00 )                                            (5)

    A special form of (multi-user) cooperation is also expressible, illustrated by the following
rule. Subject is granted access to the picture Resource by Me, if both Me and Subject offer to
u some source code (r0 and r, resp.):

    picture(Resource), Allows(u, r, Subject), Allows(u, r0 , Me), source-code(r), source-code(r0 )

Policy meaning The semantics of our language is defined by giving meaning to configu-
rations. This is done by first translating a configuration to a finite set Γ of contract logic
propositions [2]. Then, the requested access is granted if Γ entails it, according to the proof
system of PCL.
    We assume that PEP knows which are the resources each user handles, R↑u , and those he
wants, R↓u . Also, we assume that this authority can evaluate the atomic predicates appearing
in the rules.
    We associate with a given configuration σ the PCL theory Γ with propositions defined
through the inference rule below, for all s, u ∈ U, r ∈ R, φ ∈ σ(u), θ : (U → U) ∪ (R → R)

                                    φAllow [θ]  Allows(s, r, u) ∈ Γ
                                              if and only if
         φconstraints [θ] ∧ θ(Me) = u ∧ θ(Subject) = s ∧ θ(Resource) = r ∈ R↑u ∩ R↓s ∧
             ∀ predicate Allows(s0 , r0 , u0 ) occurring in φAllow [θ], it is r0 ∈ R↑u0 ∩ R↓s0

6
MuAC: Access Control Language for Mutual Benefits                L. Ceragioli, P. Degano and L. Galletta


where φAllow and φconstraints are the conjunctions of all the instances of the predicate Allows
and of the instances of atomic predicates in φ, resp., and [θ] extends homomorphically θ.
    A few comments are in order. The ground substitution θ binds in all possible ways the
resource and user variables, so to evaluate the atomic predicates in φ, except then the special
one Allow. The predicate φconstraints [θ] holds true whenever θ maps the variables to users and
resources that satisfy the relevant predicates in φ. Furthermore θ is required to bind in the
contractual implication the special variables Me to the actual owner u of the access rule φ, and
Subject, Resource to the user s and the resource r, belonging to u and requested by s. In
addition, all the resources r0 occurring in a predicate Allows(s0 , r0 , u0 ) should belong to u0 and
be wanted by s0 , as well. If all the above holds, φAllow [θ]  Allows(s, r, u) is a formula of Γ.

Policy and request evaluation The Algorithm 1 implements the declarative construction
of a PCL theory of the previous paragraph. It presents the function TRANSLATE-INTO-PCL
that given a configuration σ processes each rule φ therein by computing the legal substitutions
θ such that the instantiated atomic predicates evaluate to true. Finally, it collects the obtained
formulae into the theory Γ.
    The PEP executes Algorithm 2 that receives the policies from the users and builds a con-
figuration σ. Then it translates σ into a PCL theory Γ, using Algorithm 1, and starts serving
requests from the users. When the user s tries to access a resource r, his query asks(s,r) is
transformed into the formula Allows(s, r, u), where u is the owner of r. Finally, the enforcement
and decision point checks if the theory Γ entails this formula, i.e. Γ ` Allows(s, r, u), and replies
accordingly. The proof of the entailment is demanded to the deduction system of PCL [2].
    It is worth noting that the order in which the access rules are specified is immaterial, because
the semantics transforms them in the logical theory Γ. Also, there are neither rules explicitly
denying accesses, nor constraining requests to be denied. Consequently, there are no conflicts,
in logical terms contradictions, and a permission is granted only when Γ entails the query.


5    Conclusion
We have defined MuAC, a control access language for a distributed collaborative environment.
Its main feature concerns expressivity, as it permits to define and handle access requests that
demand mutual agreement between several users. To resolve the circularities that may arise
with this form of mutuality we resorted to the propositional contract logic PCL [2]. Actually, we
have defined a translation from policies and requests to logical formula that are then evaluated
by the (complete) theorem prover of PCL.
    For the time being, MuAC has the grant accept only. We plan to extend the language
with deny rules, which also require to address the resolution of potential conflicts. A further
extension is allowing rules in which a user specifies resources that must not be shared. For
example, Alice permits Bob to access her pictures, provided that Bob does not share anything
with Charlie. This kind of negative requirement is the first step towards the definition of policies
regulating conflicts of interest. Finally, we plan to study the relationship between MuAC and
languages for trust negotiation and the security properties that our language can offer when
some users misbehave.

Related work Access control is a wide sudied field, surveyed by many papers, e.g. [9, 11,
14]. Here we only consider discretionary access control [10] because it is a natural choice in
distributed cooperative setting, where users individually decide the policies for the resources

                                                                                                      7
MuAC: Access Control Language for Mutual Benefits              L. Ceragioli, P. Degano and L. Galletta


Algorithm 1
Input: Configuration σ : U → 2Φ
Output: PCL theory Γ

    function Translate-into-PCL(σ)
       Γ←∅
       for all users u ∈ U and rules φ ∈ σ(u) do
          for all user variable ui appearing in φ do
              Ui ← set of users that verify every atomic predicates p(ui ) in φ
          for all resource variable ri appearing in φ not appearing in any Allows do
              Ri ← set of resources that verify every atomic predicates p(ri ) in φ
          for all users s ∈ U that verify all the predicates over Subject in φ and
            resources r ∈ R↑u ∩ R↓s that verify all the predicates over Resource in φ do
              φ0Allow ← φAllow {Me 7→ u, Subject 7→ s, Resource 7→ r}
              for all u1 ∈ U1 . . . un ∈ Un and r1 ∈ R1 . . . rm ∈ Rm do
                  φ0Allow ← φ0Allow {u1 7→ u1 . . . un 7→ un }
                  φ0Allow ← φ0Allow {r1 7→ r1 . . . rm 7→ rm }
                  for all resource variables r0i such that
                    Allows(us , r0i , uo ) occurs in φ for some us and uo do
                      Ri0 ← subset of R↑uo ∩ R↓us that verify the predicates p(r0i ) in φ
                  for all r10 ∈ R10 . . . rk0 ∈ Rk0 do
                      φ0Allow ← φ0Allow {r01 7→ r10 . . . r0k 7→ rk0 }
                      Γ ← Γ ∪ (φ0Allow  Allow(s, r, u))
       return Γ

Algorithm 2
 for all users u ∈ U do
    σ(u) ← receive-from(u)
 Γ ← Translate-into-PCL(σ)                                                 . through Algorithm 1
 while true do
    asks(s, r) ← receive-from-any(s ∈ U)
    u ← owner(r)
    check ← PCLprover(Γ, Allows(s, r, u))                           . checks if Γ ` Allows(s, r, u)
    if check then send-to(s, Grant)
    else send-to(s, Deny)



they own. In this environment, a main issue is the combination of individual policies. To
the best of our knowledge, no proposals address mutuality, but only focus on the resolution
of conflicts [5, 6, 9]. In the restricted, yet widespread distributed world of social networks,
mutuality plays a prominent role, but is scarcely regulated. A remarkable exception is [12]
that permits defining mutual access control policies. This is done by introducing a new grant,
called mutual, besides the usual accept and deny. Suppose that an access request from user A
to resource r of B evaluates to mutual. Intuitively, the request is served if and only if a request
from B for a similar resource r0 of A will evaluate to accept or mutual. Similarity is fixed once
and for all, and is not user-defined. A first difference with our proposal is that mutuality is
defined through explicit constraints in the body of the rules, so allowing users to define their

8
MuAC: Access Control Language for Mutual Benefits                L. Ceragioli, P. Degano and L. Galletta


own notion of similarity. In addition, mutuality in MuAC may involve many users, as in the
Example (5).
   Mutuality plays a main role also in trust negotiation, a process that permits a safe interaction
between two parties that do not trust each other [7]. The idea is to run a multi-round protocol
where the parties exchange some pieces of private information (credentials) so as to increase
their mutual trust. Also in this setting, each party defines an individual policy specifying the
conditions the other party must satisfy in turn to obtain credentials. The overall goal is to
balance the disclosure of information and the mutual benefit gained by each party. Logical
languages for specifying trust policies have been proposed, e.g. Cassandra [4] and SecPal4P [3].
However, the main difference with the respect to ours is that these are based on classical logic,
and thus circular conditions do not lead to an agreement.


References
 [1] Pcl. http://www.disi.unitn.it/~zunino/PCL.
 [2] Massimo Bartoletti and Roberto Zunino. A calculus of contracting processes. In Proceedings of the
     25th Annual IEEE Symposium on Logic in Computer Science, LICS 2010, pages 332–341. IEEE
     Computer Society, 2010.
 [3] Moritz Y. Becker, Alexander Malkis, and Laurent Bussard. A framework for privacy preferences
     and data-handling policies. Technical Report MSR–TR–2009–128, Microsoft Research, September
     2009.
 [4] Moritz Y. Becker and Peter Sewell. Cassandra: Distributed access control policies with tunable
     expressiveness. In 5th IEEE International Workshop on Policies for Distributed Systems and
     Networks (POLICY 2004), pages 159–168. IEEE Computer Society, 2004.
 [5] Glenn Bruns and Michael Huth. Access control via belnap logic: Intuitive, expressive, and ana-
     lyzable policy composition. ACM Trans. Inf. Syst. Secur., 14(1):9:1–9:27, June 2011.
 [6] Stan Damen, Jerry den Hartog, and Nicola Zannone. Collac: Collaborative access control. In 2014
     International Conference on Collaboration Technologies and Systems (CTS), pages 142–149, May
     2014.
 [7] Martin Kolár, M. Carmen Fernández Gago, and Javier López. Policy languages and their suit-
     ability for trust negotiation. In Florian Kerschbaum and Stefano Paraboschi, editors, Data and
     Applications Security and Privacy XXXII - 32nd Annual IFIP WG 11.3 Conference,Proceedings,
     volume 10980 of LNCS, pages 69–84. Springer, 2018.
 [8] Hal Lochhart, Bill Parducci, and Rich Levinson. OASIS eXtensible Access Control Markup
     Language (XACML) Version 3.0. https://www.oasis-open.org/committees/tc_home.php?wg_
     abbrev=xacml, 2019. Online; last access Dec 2019.
 [9] Federica Paci, Anna Cinzia Squicciarini, and Nicola Zannone. Survey on access control for
     community-centered collaborative systems. ACM Comput. Surv., 51(1):6:1–6:38, 2018.
[10] William Stallings and Lawrie Brown. Computer Security: Principles and Practice. Prentice Hall
     Press, Upper Saddle River, NJ, USA, 3rd edition, 2014.
[11] Vivy Suhendra. A survey on access control deployment. In Tai-hoon Kim, Hojjat Adeli, Wai-chi
     Fang, Javier Garcı́a Villalba, Kirk P. Arnett, and Muhammad Khurram Khan, editors, Security
     Technology, pages 11–20, Berlin, Heidelberg, 2011. Springer Berlin Heidelberg.
[12] Gabriela Suntaxi, Aboubakr Achraf El Ghazi, and Klemens Böhm. Mutual authorizations: Se-
     mantics and integration issues. In Proceedings of the 24th ACM Symposium on Access Control
     Models and Technologies, SACMAT ’19, pages 213–218, New York, NY, USA, 2019. ACM.
[13] The Netfilter Project. Netfilter. https://www.netfilter.org/, 2019. Online; last access Dec
     2019.
[14] Yunpeng Zhang and Xuqing Wu. Access control in internet of things: A survey, 2016.

                                                                                                      9