<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Development of Extended Path-based Role Access Control Model for Web Applications</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Dmitry Kononov</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Sergey Isaev</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Institute of Computational Modeling of SB RAS Akademgorodok 50/44</institution>
          ,
          <addr-line>Krasnoyarsk</addr-line>
          ,
          <country country="RU">Russia</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2016</year>
      </pub-date>
      <fpage>166</fpage>
      <lpage>173</lpage>
      <abstract>
        <p>Web applications security is a complex problem with several aspects. One aspect is access control according to specified security policy. Access control is accomplished by security model restrictions. This research is dedicated to developing security access control model for web applications. This work describes path-based RBAC model, which improves RBAC and allows flexible access control using request path (URI). Authors created guidelines to apply model's elements for real-world web applications. Developing web applications with model described allows reducing security risks.</p>
      </abstract>
      <kwd-group>
        <kwd>security models</kwd>
        <kwd>access control</kwd>
        <kwd>web applications</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        Today modern Web applications and services are affected by several security
issues. Computer security is becoming increasingly important and actual.
According to Symantec security research [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], in spite of security means development
there are high security risks for web applications. Web applications security is
a complex problem with several aspects. One aspect is access control according
to specified security policy. Access control is accomplished by security model
restrictions. Choosing and applying appropriate security model is able to reduce
risks of successful attacks.
      </p>
      <p>
        Widely known security models include discretionary, mandatory, and
rolebased [
        <xref ref-type="bibr" rid="ref2 ref3">2, 3</xref>
        ]. In our work, we research and develop security model built on
Rolebased access control model (RBAC) [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. Role access control represents access
rights control from subjects to objects grouped by some characteristics named
roles. Original Role-based access control model does not take into account web
applications features [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], particularly hierarchic requests. Also assigning
permissions is limited to roles only. This work describes path-based RBAC model, which
improves RBAC and allows flexible access control using request path (URI).
2
      </p>
    </sec>
    <sec id="sec-2">
      <title>Security models</title>
      <p>
        Currently, there are several security access control models. Some of them include
access control accomplished by discretionary matrix, mandatory levels, and
rolebased.
[
        <xref ref-type="bibr" rid="ref8">8</xref>
        ].
      </p>
      <p>
        Discretionary security models are based on access control from subjects to
objects by using access control lists or access matrix. This family include security
model such as Harrison-Ruzzo-Ulman [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], typed access matrix [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], Take-Grant
      </p>
      <p>
        Mandatory access control – access control from subjects to objects based
on assigned confidentiality label for information contained in the objects and
permission entities to access information with such level of confidentiality. An
example of the mandatory model is Bell-LaPadula [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. Classic Bell-LaPadula
model analyzes conditions under which the computer system cannot initiate
information flows from the objects with a high level of confidentiality to objects
with a lower level of confidentiality.
      </p>
      <p>Role-based access control is a further development of the discretionary access
control policy: permissions to system objects are grouped according to certain
characteristics, forming role. Roles are intended to manage access control rules
in a more simple way. These models do not take into account the specifics of web
applications, in particular, the hierarchical organization of requests and links.
The paper describes the adapted role-based security model that eliminates these
problems.
3</p>
    </sec>
    <sec id="sec-3">
      <title>Role-based access control</title>
      <p>
        The original role-based access control model [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] defines a set of elements:
&lt; , , , ,  
( ),  
( ), 
( ), 
( ) &gt;,
where:
 – set of users;
 – set of roles;
 – set of access permissions;
 – set of user sessions;
can be authorized;
 
 


: 
: 
: 
:
      </p>
      <p>→ 2</p>
      <p>→ 2
→ 
→ 2</p>
      <p>(
authorized;</p>
      <p>The model 
hierarchy (RH).
while ∀ ∈ , ∃
 ∈ 
such that  ∈</p>
      <p>( );
– function assigning for each user a variety of roles to which he
– function assigning for each role set of access permissions,
– function defining for each user session, on whose behalf it is
 – function defining for user a variety of roles for which he is
authorized with current session; at the same time ∀ ∈  satisfies the condition
( )).</p>
      <p>1 is defined as</p>
      <p>0, at the same time introducing a role
4</p>
    </sec>
    <sec id="sec-4">
      <title>Adapting the model for web applications</title>
      <p>To existing  1 model elements ”user”, ”role”, ”permission”, ”session” we
added new elements taking into account web application features: ”token”,
”request”.</p>
      <p>Definition 1. Token (Tk) – set of user attributes that allow him to carry out
authentication in a system. Token is a pair &lt;name, password&gt;, or pair &lt;public
key, private key&gt;.</p>
      <p>Definition 2. Request (Rq) – set of information sent by the client to HTTP
server. The request contains a set of headers, a unique resource identifier (URI),
a set of parameters name/value, and a request payload (body).</p>
      <p>A request belongs to the session, one session can handle multiple requests.
Request and permission are tied by many-to-many relationship. On top of
requests  inclusion relation is defined.</p>
      <p>Definition 3. Request A includes a request B (B ≤ A), if the path of
a unique resource identifier (URI) of request A contains the path of the unique
identifier of the resource request B with the initial position in the line within
the same namespace, with len (Bpath) ≤ len (Apath), where len(x) – length of the
string x.</p>
      <p>A
/</p>
      <p>B
/library</p>
      <p>C
/library/category
D
/library/book</p>
      <p>Thus, the inclusion relation on top of requests set  defines non-strict partial
order.</p>
      <p>Next, we define a function  () mapping permissions to multiple requests
RqA:  → 2 .</p>
      <p>Definition 4. Requests hierarchy (RqH) – inclusion relation defined on top
of requests  . For any  ∈  the following condition is true: if ,  ′ ∈  ,
 ∈  ( ), and  ≤  ′, then  ′ ∈  ( ).</p>
      <p>Thus, the definition 4 makes it possible a flexible access control for individual
requests, and all children requests.</p>
      <p>Figure 2 shows a diagram of adapted security model elements. The model
name is path-based role-based access control security model.</p>
      <p>U
Users</p>
      <p>Tk
Tokens</p>
      <p>UA
user</p>
      <sec id="sec-4-1">
        <title>Roles hierarchy</title>
        <p>RH</p>
        <p>R
Roles</p>
        <p>roles</p>
        <p>S
Sessions</p>
        <p>PA
requests
P
Permissions
RqA</p>
        <p>Rq
Requests
RqH</p>
      </sec>
      <sec id="sec-4-2">
        <title>Requests hierarchy</title>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Adapting mandatory access model</title>
      <p>
        In [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] for role-based security model authors describe use of mandatory access
control designed to protect against threats to information confidentiality. Within
defined terminology, we describe mandatory role-based access model to web
applications. In addition to defined above elements, the following elements were
added:

(,
 : 
 : 
– set of requests;
≤) – confidentiality levels lattice;
→  – function of user access levels;
→  – function of confidentiality levels for requests;
A = {read, write} – access types;
 = {  | ∈  } ∪ {  | ∈  } – set of roles;
 = {(,  )| ∈  } ∪ {(,  )| ∈  } – set of permissions.
      </p>
      <p>
        Using the definitions 5.20 and 5.22 [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ], according to requirements of liberal
mandatory access control for set of requests Rq we define a hierarchy on top of
roles R and restriction functions   (),  (), and   ().
      </p>
      <p>As a part of the mandatory access control, information flow is defined.</p>
      <p>Definition 5. We assume that there is an information flow from request
 ∈  to request  ′ ∈  if and only if there are roles ,  ′ ∈  , and session
 ∈  , such that (,  ) ∈   ( ), ( ′,  ) ∈   ( ′), and ,  ′ ∈  ( ).</p>
      <p>Let’s formulate a proposition about the impossibility of forbidden
information flows from the request with a higher confidentiality level to requests with a
lower confidentiality level.</p>
      <p>Proposition 1. If a role-based access model complies with liberal
mandatory access control requirements, then for any requests ,  ′ ∈  , such that
 ( ) &gt;  ( ′), it is impossible to initiate information flow from  to  ′.</p>
      <p>
        The proof is similar to theorem 5.1 [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ].
      </p>
      <p>Thus, the model described is safe in terms of information flows for requests
with different confidentiality levels.
6</p>
    </sec>
    <sec id="sec-6">
      <title>Application of models</title>
      <p>Security models described can be used in a wide range of applications. To apply
these security models the system must meet the following requirements:
– centralized access control – access control is carried out only in a single
module without delegating to other units or systems;
– principle of least privilege – provide the user only minimal set of privileges
necessary for his work;
– separation of duties support – tasks processed in the system may require
multiple users to process one operation;
– possibility of decomposition the system into separate components, which can
be accessed using a variety of URIs, which are unique within the system.</p>
      <p>When the above requirements are met, the system may be divided into
different parts, each of them is uniquely identified by a URI. URI paths are described
as access control elements and used to define a set of requests  . This set
includes all client requests and API calls provided by the system. Using 
request hierarchy is created that reflects the interaction and dependence between
components.</p>
      <p>In order to apply security model it is necessary to create a set of roles  .
The role defines a set of permissions that a user can perform. Examples of roles:
”user”, ”moderator”, ”registrar”, ”administrator”.</p>
      <p>Next, the system should have defined set of permissions  . Permissions define
specific action or operation in the system, for example, ”create new user”, ”delete
the document,” etc. One role can have many permissions. One permission can be
assigned to many roles. Assigning permissions for roles is performed by function
  (). Permissions are non-overlapping and consistent. Elements from
permissions  map to a subset of requests  using function  (). One permission
can have multiple requests. One request can be assigned to many permissions.</p>
      <p>To maintain users a set of users  is created, each of which have assigned
roles from  using mapping function   (). One user can have multiple roles.
One role can be assigned to multiple users. To identify a user the model includes
a set of tokens   . The elements of the set are pairs of &lt;username, password&gt;,
or &lt;public key, private key&gt;. Each user can have multiple tokens. The token
belongs to one user.</p>
      <p>Once authenticated, authorized work of users is carried out by sessions. A
session is a set of authorized user data, including a set of roles to which the user
is authorized. Users can create multiple sessions. A session belongs to one user.
Sessions can have additional data related to authorization or specific operation.</p>
      <p>As an example, we describe application of extended path-based RBAC for
publication system. The system allows users to create articles for public reading.
Registered users can create and edit their articles. Editors have the ability to edit
articles created by users. The administrator has access to all sections, including
user administration. The system has two users, who write articles: Alice and Bob.
John is an editor, and Martin is a system administrator. In addition, Martin can
work as editor. The system provides a special role for anonymous users for public
reading without editing articles.</p>
      <p>Users  : {Anonymous, Alice, Bob, John, Martin}
Roles  : {Viewer, User, Editor, Administrator}</p>
      <p>Permissions  : {”view article”, ”create article”, ”edit own articles”, ”edit all
articles”, ”user management”, ”access control”, ”system maintenance”}
Requests  : {
/articles/list,
/articles/view,
/manage/articles/list,
/manage/articles/create,
/manage/articles/edit,
/manage/users/list,
/manage/users/create,
/manage/users/edit,
/manage/permissions/roles,
/manage/permissions/acl,
/manage/system/settings,
/manage/system/maintenance}
Roles assignment for users:
  (Anonymous) → {Viewer}
  (Alice) → {User}
  (Bob) → {User}
  (John) → {Editor}
  (Martin) → {Editor, Administrator}
Permissions assignment for roles:
  (Viewer) → {”view article”}
  (User) → {”view article”, ”create article”, ”edit own article”}
  (Editor) → {”view article”, ”create article”, ”edit all articles”}
  (Administrator) → {”user management”, ”access control”, ”system
maintenance”}</p>
      <p>Requests assignment for permissions:
 (”view article”) → {/articles/list, /articles/view}
 (”create article”) → {/manage/articles/create}
 (”edit own article”) → {/manage/articles/edit}
 (”edit all article”) → {/manage/articles/edit}
 (”user management”) → {/manage/users}
 (”access control”) → {/manage/permissions}
 (”system maintenance”) → {/manage/system}</p>
      <p>As you can see from the example above, the developed models offer flexibility
and simplicity for access control restriction that can be used in real-world web
applications.
7</p>
    </sec>
    <sec id="sec-7">
      <title>Conclusion</title>
      <p>The paper describes extended path-based role access control model, which takes
into account web applications features. New elements were defined: token,
request, inclusion relation. The model created allows flexible access control for
modern web applications.</p>
      <p>Also extended path-based mandatory role-based access control model was
created with additional sets: requests, security levels lattice, access types, roles,
and permissions. Impossibility of forbidden information flows from higher to
lower security levels was proven.</p>
      <p>
        Authors created guidelines to apply model’s elements for real-world web
applications. Developing web applications according to these guidelines allows
reducing security risks. We use the model developed to enhance security in our
web applications [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ].
      </p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <source>The 2016 Internet Security Threat Report, Symantec Corp</source>
          ,
          <year>2016</year>
          . Available at: https://www.symantec.com/security-center
          <source>/threat-report (Accessed April 13</source>
          ,
          <year>2016</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Bell</surname>
            <given-names>D. E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>LaPadula L. J. Secure</surname>
            Computer Systems: Unified Exposition and
            <given-names>Multics</given-names>
          </string-name>
          <string-name>
            <surname>Interpretation</surname>
          </string-name>
          . - Bedford, Mass.: MITRE Corp.,
          <year>1976</year>
          . - MTR-2997
          <source>Rev. 1.</source>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Bishop</surname>
            <given-names>M.</given-names>
          </string-name>
          ”Introduction to Computer Security”,
          <string-name>
            <surname>Published by</surname>
          </string-name>
          Addison-Wesley,
          <year>2005</year>
          , pp.
          <fpage>27</fpage>
          -
          <lpage>35</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Sandhu</surname>
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Coyne</surname>
            <given-names>E. J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Feinstein</surname>
            <given-names>H. L.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Youman</surname>
            <given-names>C. E.</given-names>
          </string-name>
          <string-name>
            <surname>Role-based Access</surname>
          </string-name>
          Control Models // IEEE Computer (IEEE Press), vol.
          <volume>29</volume>
          , no.
          <issue>2</issue>
          ,
          <year>1996</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>R.</given-names>
            <surname>Bhatti</surname>
          </string-name>
          , E. Bertino,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Ghafoor</surname>
          </string-name>
          .
          <article-title>A Trust-based Context-Aware Access Control Model for Web Services // Distributed and Parallel Databases Archive</article-title>
          , vol.
          <volume>18</volume>
          , no.
          <issue>1</issue>
          ,
          <year>July 2005</year>
          , pp.
          <fpage>83</fpage>
          -
          <lpage>105</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Harrison</surname>
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ruzzo</surname>
            <given-names>W</given-names>
          </string-name>
          . Monotonic protection systems / In DeMillo R.,
          <string-name>
            <surname>Dobkin</surname>
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jones</surname>
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lipton</surname>
            <given-names>R</given-names>
          </string-name>
          ., editors // Foundation of Secure Computation. - New York: Academic Press,
          <year>1978</year>
          , pp.
          <fpage>337</fpage>
          -
          <lpage>365</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Sandhu</surname>
            <given-names>R.</given-names>
          </string-name>
          <article-title>The typed access matrix model //</article-title>
          <source>Proceeding of the IEEE Symposium on Research in Security and Privacy</source>
          . - Oakland, CA, May
          <year>1992</year>
          , pp.
          <fpage>122</fpage>
          -
          <lpage>136</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>R. J.</given-names>
            <surname>Lipton</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Snyder</surname>
          </string-name>
          .
          <article-title>A Linear Time Algorithm for Deciding Subject Security // Journal of the ACM, Published by Addison-Wesley</article-title>
          , vol.
          <volume>24</volume>
          . no.
          <issue>3</issue>
          ,
          <issue>1977</issue>
          , pp.
          <fpage>455</fpage>
          -
          <lpage>464</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Sandhu</surname>
            <given-names>R</given-names>
          </string-name>
          .
          <article-title>Role-based Access Control // Advanced computers</article-title>
          , vol.
          <volume>46</volume>
          ,
          <year>1998</year>
          , pp.
          <fpage>237</fpage>
          -
          <lpage>286</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Devyanin</surname>
            <given-names>P. N.</given-names>
          </string-name>
          <article-title>Security models for computer systems</article-title>
          . - M.: Publishing center ”Academy”,
          <year>2005</year>
          . 144 p.
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Kononov D.D.</surname>
          </string-name>
          ,
          <string-name>
            <surname>Isaev</surname>
            <given-names>S.V.</given-names>
          </string-name>
          <article-title>The security model of cross-platform web services for municipal procurement support // Prikladnaya diskretnaya matematika [</article-title>
          <source>Applied Discrete Mathematics]</source>
          ,
          <year>2011</year>
          , no.
          <issue>4</issue>
          , pp
          <fpage>48</fpage>
          -
          <lpage>50</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>