=Paper= {{Paper |id=Vol-1099/paper6 |storemode=property |title=Trust Negotiation for Automated Service Integration |pdfUrl=https://ceur-ws.org/Vol-1099/paper6.pdf |volume=Vol-1099 |dblpUrl=https://dblp.org/rec/conf/aiia/TomaiuoloA13 }} ==Trust Negotiation for Automated Service Integration== https://ceur-ws.org/Vol-1099/paper6.pdf
  Trust Negotiation for Automated Service Integration

                                                Filippo Agazzi, Michele Tomaiuolo
                                             Dipartimento di Ingegneria dell'Informazione
                                                         Università di Parma
                                                              Parma, Italy
                                                    {agazzi, tomamic}@ce.unipr.it



Abstract—This paper presents a generic Trust Negotiation                  This paper is organized as follows: Section II presents an
framework for Web services, based on the WS-Trust standard. It        overview and a literature review of ATN; Section III describes
allows users to create trust incrementally, by disclosing             a generic trust negotiation framework for Web services, based
credentials step by step. This way, services and resources can be     on the WS-Trust standard; Section IV provides details about
shared in an open environment, and access can be realized on the      practical implementation and use of such a framework,
basis of peer-to-peer trust relationships. The paper also describes   including first performance results; finally, some concluding
a practical implementation of the framework, which integrates a       remarks are provided.
modular trust engine and a rule engine, which is used as a policy
checker.
                                                                                               II.   BACKGROUND
   Security; trust; Web services; rule-based systems                      A credential is generally defined as a digital certificate
                                                                      attesting, via a digital signature, the association of one or more
                         I.   INTRODUCTION                            attributes to an entity, identified through its public key. This
                                                                      entity, i.e. the certificate subject, can attest the ownership of the
    The automatic or assisted management of trust relationships       presented credential by demonstrating to possess the
is a fundamental requirement to allow the provision and use of        corresponding private key. Notably, the entity that originally
disparate services in an open environment. At the global scale,       issued and signed the certificate is not necessarily requested to
the assumption that all users are known in advance, or they can       participate directly in the verification process.
be easily managed through a traditional Access Control List, is
not realistic. In fact, the potential user base of an application         Attributes in a credential can be considered sensible or not.
provided on the open Internet is still growing, with the mass         The case of non-sensible attributes does not require any
adoption of social networking tools. Since nowadays contacts          particular care. On the contrary, for the case of sensible
among people may develop fully online, possibly with no body          attributes, it is necessary to build a certain level of trust
of knowledge to associate with a name, more flexible schemes          between negotiating parties via a structured list of release
are needed. Currently, no general solutions are available for the     conditions. Such release conditions are generally known as
problem of identity management, assuming a global database            policies. An access policy for a resource R is a boolean
of names and personal profiles is both unfeasible and                 function, which allows or denies access depending on disclosed
undesirable. Moreover, online interactions may involve human          credentials. It can be written as: fR(C1, C2, … Cn), where each
users together with software agents, possibly with a common           Ci is a credential which may be possessed by the requester. A
understanding of the exchanged messages, on the basis of              credential itself often holds sensitive information, and it needs
Semantic Web technologies [1]. Given such a new way people            to be protected. Thus a credential disclosure policy should be
are using the Internet today, the approach of Automated Trust         defined for revealing a certain credential C. It will be a boolean
Negotiation (ATN) [2][3] is becoming relevant, because it             function of the form: fC(C1, C2, … Cn). Finally, for selecting the
allows unknown users and agents desiring to share any                 credentials to disclose, a client could need to access a service
resource or service, to establish a level of trust in an              policy P. But also this policy can be considered reserved. In
incremental way through the exchange of credentials.                  this case, it should be associated with a policy disclosure
                                                                      policy: fP(C1, C2, … Cn). That is, credentials and policies are to
    In this scenario, the open selection and composition of           be considered as sensitive resources, and thus they need to be
services is made possible, since ATN simplifies the creation          protected by access policies, along other kinds of resources.
and management of trust bounds. In fact, delegation and               Access control can be implemented on the basis of different
workflow composition [4] may only be applied on the basis of          kinds of security credentials, including X.509 certificates and
careful protection of resources and information. This requires a      SAML assertions. Moreover, different languages have been
clear analysis of risks and opportunities associated with local       defined to represent policies [7][8] in an appropriate and
trust bounds, on the basis of their socio-cognitive constituents      expressive way.
[5], including competence, disposition, dependence and
fulfillment. The problem of authorization can thus be solved in           These are the cases where trust negotiation provides its full
a fully distributed way, as access rights can be assigned and         benefits. Digital credentials are exchanged step by step, to
delegated on the basis of the local trust assumptions, in a           increase the level of trust between involved parties, and the
typical Trust Management scheme [6].                                  flow of credentials between two entities through a sequence of
requests and releases is what is actually intended with trust         which credentials are released, when they are released, which
negotiation.                                                          parties are required to unlock the release of another credential
                                                                      and when the negotiation closes, successfully or not. The
    A policy language for Trust Negotiation must allow to             success of a negotiation is not always possible. One of the
specify all these conditions. A policy has to be considered           subjects could not have all the needed credentials, or one of the
satisfied only when the requester discloses all the required          subjects could implement a policy imposing a cyclic
credentials, and this verification requires to use a formal policy    dependency. Therefore, it is worth defining properties that
language, with precise semantics. Another important                   should be expressed, in the best possible way, by a strategy:
consideration is that, to fit the wide Internet, such language has
to be comprehensible and agreed by all involved entities. In the          •    A strategy should bring a negotiation to success, when
last years, scholars and firms have proposed various languages,                such a possibility exists. Strategy having such a
like the IBM Trust Policy Language or the Role-Based Trust                     property are said to be complete.
Management Language (RT). All those languages, however,                   •    Ideally, a strategy should avoid the release of
were related to some particular engines to compute and decide                  information which is not strictly required to bring the
about certain policies. Moreover, a number of languages are                    negotiation to an end.
being proposed by ongoing research works, but with a limited              •    A strategy should truncate a negotiation when it
scope of application, to be shared by some nodes which                         cannot bring to a successful conclusion.
interact using the same framework or the same software
                                                                          •    A strategy should recognize a cyclic dependency
infrastructure, for example in the context of Web Services.
                                                                               among credentials and policies.
    With respect to the management and computation of                     •    The strategy should be reasonably efficient.
policies in a trust negotiation, a particularly important element
is the policy compliance checker. Starting from a policy and a            There is a vast choice of possible negotiation strategies,
set of credentials, the policy compliance checker must be able        each one with its peculiar features. An important distinction
to find the credentials which satisfy the policy, if they are         can be drawn upon the level of prudence in the disclosure of
effectively available as a subset of all disclosed credentials. For   credentials and policies. In [2] and [7], the following strategies
this purpose, it is also necessary to translate each credential       are considered:
from its original format into an assertion of the policy                  Eager Strategy. This strategy is complete and efficient.
language. Considering the example of a client requesting a            Participants release all their credentials as soon as the relevant
service, one of the problems to solve is how the client comes to      policy is satisfied, without waiting the credential to be
know which credentials it is required to present, and how the         requested. This strategy is very simple and brings the
policies protecting the service and the credentials are disclosed.    negotiation to success whenever it is possible. Nevertheless, it
                                                                      reveals more credentials than those strictly needed to create the
A. Negotiation Strategies                                             minimum level of trust.
    From the architectural point of view, each entity                     Parsimonious Strategy. In this strategy, the number of
participating in an Automated Trust Negotiation has a Security        exchanged credentials is minimized. It is reasonably efficient
Agent (SA). The SA has the fundamental responsibility of              and it concludes with success whenever it is possible. At the
managing the negotiation, computing available policies and            beginning, parties exchange credential requests, but not the
credentials, both the local ones and those disclosed by a remote      credentials themselves. All possible release sequences are then
entity, and taking the decision to authorize the disclosure of        explored. The path that brings the negotiation to success with
some credentials and policies at a given phase of a negotiation.      the minimum number of exposed credentials is selected and
These decisions, as well as the exchanged messages and the            followed. Unfortunately, due to the possible limitations in the
disclosure of policies and credentials, can be conducted in a         level of cooperation between two subjects, the global minimum
number of ways, which is essentially unlimited. A negotiation         solution is not guaranteed.
strategy defines the protocol for the modality and decisions.
                                                                          Prudent Strategy. This strategy allows establishing trust
   The main goal of a strategy is to reach a successful               without revealing irrelevant credentials, while remaining
completion of the negotiation protocol, in the respect of certain     reasonably efficient. In [9] the communication complexity is
requirements. A strategy decides when and which credentials           shown to be O(n2), and the computational complexity to be
must be disclosed and inserted into a message to send to the          O(nm), where n is the number of credentials and m is the size of
other party; how much computational load to dedicate to the           the policy regulating the release of credentials.
negotiation (e.g., the maximum number of rounds) and other
decisions about the behaviour to pursue during the negotiation.           In the heterogeneous world of Internet, each entity must be
Moreover, a negotiation is not always possible, since for             free to choose the strategy that is the best compatible with its
example one of the two parties does not possess sufficient            own requisites and objectives. It is quite possible that two
credentials: the strategy has to determine the moment to              unknown entities will choose different strategies. Thus, there is
abandon the negotiation, since it is not possible to conclude it      a problem of how to make such strategies interoperable, and if
with success.                                                         it is possible. In [10], a family of strategies, called DST
                                                                      (Disclosure Tree Strategy), is proposed as a solution to this
    The execution of a negotiation requires some agreement on         problem. A family of strategies is defined as a set of
a common protocol, with the intended agreement that each              reciprocally compatible and interoperable strategies. An
subject is free to apply a possibly different strategy. The           important advantage regards the fact that a Security Agent can
characteristics of a negotiation are defined by the adopted           choose, among a set of strategies belonging to the same family,
strategies. Some of the tasks of such strategies are related to       the closest one to its own requisites. Moreover, this way it can
adopt different strategies, during the different stages of a           can request that a received message proves a set of claims (e.g.
negotiation.                                                           name, key, privileges, etc) or, more commonly, that it carries a
                                                                       security token representing a relation between the sender and
                III.   APPLICATION OF ATN TO WSS                       some other entity, trusted by the service provider. In this
                                                                       context, a service provider can request a client, before
    This section describes a generic trust negotiation protocol        accessing its services, to present a token released by a trusted
for web services. The protocol is designed in conformance to           entity. A new client would probably not possess a proper token
relevant standards for Web services security. Thus, it first           to access the service, in advance. For this reason, WS-Trust
presents an overview of these standards.                               defines a protocol for allowing a client to contact an authority,
                                                                       trusted by the service provider, to request the token. Such an
A. Standard protocols for Web services security                        authority is defined as a Security Token Service (STS). An
                                                                       STS, on his turn, can define the requirements which clients
    SOAP Web services can exploit the SOAP header as an
                                                                       have to satisfy to obtain the release of a token. As a STS is
extensible container for message metadata, which provides
                                                                       responsible for releasing those tokens, it is also known as a
developers with a set of options also covering the most typical
                                                                       “token issuer”.
security issues. The so-called WS-* specifications are designed
in order to be composed with each other. WS-Security supports
the definition of security tokens inside SOAP messages and
uses XML Security specifications to sign or encrypt those
tokens or other parts of a SOAP message. It provides a level of
abstraction which allows different systems, using different
security technologies, to communicate securely using SOAP in
a way which is independent from the underlying transport
protocol. This level of abstraction allows developers to use
existing security infrastructure and established industry
standards for authentication, encryption and signature, but also
to incorporate new security technologies. Other specifications
provide additional SOAP-level security mechanisms.
WS-SecureConversation defines security contexts, which can
be used to secure sessions between two parties. WS-Trust
specifies how security contexts are issued and obtained. It
includes methods to issue, validate, renew and forward security
tokens, to exchange policies and trust relationships between
different parties. WS-Policy allows organizations to specify
various requirements and qualities about the Web services they                           Figure 1. WS-Trust architecture
expose. This specification provides a general purpose model
and the corresponding syntax to describe the requirements and             In Fig.1, arrows represent possible paths of communication
constraints of a Web service as policies, using policy                 among the Requestor (client), the Web service Provider, and
assertions. WS-SecurityPolicy is based on the structure of             the STS. The Requestor contacts the STS for receiving a
WS-Policy and allows an entity to define, through a set of             token. The STS has the duty to verify that the Requestor
policy assertions, its own security constraints and                    possess the necessary attributes for obtaining a token. In the
requirements. Moreover, a set policy subjects can be associated        case if the policy of the STS is satisfied, the STS releases a
with each specified assertion. WS-SecurityPolicy allows a Web          token. At this point, the Requestor can send a message to the
Service to define a set of assertions, and thus its own security       Web service Provider, attaching the obtained token.
requirements, using a standard and interoperable format [8].
                                                                           The security token released by the STS must have some
    Apart from WS-* specifications, additional formats and             features, in particular: (i) being verifiable as effectively
protocols are being defined by OASIS, to provide a higher              released by the STS, and (ii) effectively authorizing the
level of interoperability among services. The eXtensible               requester to the use of some services. These features depend on
Access Control Markup Language (XACML) is a language for               the type of token being released: various technologies may be
specifying Role- or Attribute-Based Access Control policies.           used to implement the token, such as X.509 and SAML. SAML
The Security Assertion Markup Language (SAML), in                      is well fit for this scenario as it provides a secure way to make
particular, is an open XML-based format to convey security             assertions about some subjects and their attributes. Otherwise
information associated with a principal. The generic structure         these features may be guaranteed on the basis of a previous
of a SAML assertion is very similar to what is usually called a        agreement, i.e., a secret, shared between the Web service and
“digital certificate”, i.e., an issuer attests some properties about   the STS bound to the service. In fact, an STS can be a
a subject, defines the validity limit of the claim, and digitally      platform-level Web service, bound to one or more Web
signs the document to prove its authenticity and to avoid              services, for which it plays the role of a trusted authority. A
tampering. SAML itself deals with three different kinds of             Web service may trust the signature of the STS, or it may
assertions: (i) authentication, (ii) attribute, and (iii)              request an STS to validate the token, or validate it in
authorization decision [8].                                            autonomously.
   The WS-Trust standard [11] defines mechanisms for                      A Requestor may be informed about the necessity to use a
mediating trust relations among entities in the context of Web         security token released by an STS, as the needed Web service
Services. It considers a security model in which a Web service         can publish a policy where a certain IssuedToken is requested.
The interaction between a client and an STS occurs through a            In this work, we propose a generic protocol for ATN. We
request-response protocol.                                          decided to use some elements already proposed in [9], when
                                                                    possible. However, we organized the protocol and the content
    In particular, a RequestSecurityToken is used to request a      schemas to better distinguish the two fundamental phases of
token, and a RequestSecurityTokenResponse for responding to         the negotiation: (i) the initialization, and (ii) the real exchange
the request. Each request must be associated with an action         of credentials and policies.
which identifies the possible actions to request to an STS, as
defines in the WS-Trust standard: to release, renew, cancel or          In the initialization phase, the parties use an extensible
validate a token. The requestor can also add claims, expressed      TNInit element in a single turn of messaging. It contains
in a certain “dialect” depending on the application. The            information useful for defining the parameters of the following
requestor may also specify a service which the request applies      negotiation, and for verifying if there is the necessary
to, if the STS is associated with multiple Web services; in this    compatibility, before beginning a real negotiation. A TNInit
case, the exact endpoint reference of the Web service has to be     element can contain: a SignatureMaterial, for proving the
specified.                                                          possession of a private credential; a StrategyFamily, for
                                                                    identifying a supported family of strategies; a TokenFormat, for
    The response may convey a token through a                       specifying the supported type of security token.
RequestedSecurityToken element. Additionally, it may convey
other proofs through an RequestedProofToken element,                    In the negotiation phase, the parties use an extensible
containing data which the Requestor may use to demonstrate to       TNExchange element. It can contain PolicyCollection and
be authorized for using the token. For example, it may contain      TokenCollection elements, for transporting policies and
a secret encrypted with the public key of the Requestor.            credentials, respectively, disclosed to the other party during the
                                                                    negotiation. Moreover, it can contain TokenType,
B. A Generic ATN Protocol for Web Services                          RequestedSecurityToken and OwnershipProof, for conveying
                                                                    the requested token and other associated proofs.
    An STS is normally integrated into a system using a single
round of messages, i.e. a RequestSecurityToken (RST), sent
from the requestor to the STS, followed by a                               IV.   IMPLEMENTATION OF A PRACTICAL STS FRAMEWORK
RequestSecurityTokenResponse (RSTR), sent from the STS to               Following the design of a generic Trust Negotiation
the requestor. However, in some scenarios, more steps may be        protocol for Web services, a practical implementation has been
needed before a token is obtained. In fact, the WS-Trust            realized. At this step, it is mainly an experimentation
standard foresees the extension of this basic mechanism,            framework, for testing both the functionality and performance
named “negotiation and challenge framework”, which is               of the proposed protocol. However, part from prototype
depicted in Fig.2.                                                  services and clients, most of its components are reusable for
                                                                    creating open SOA-based applications, especially in the case of
                                                                    dynamic service selection and composition.
                                                                       The framework is available as part of the open source
                                                                    dDelega project [12], at https://github.com/tomamic/dDelega.
                                                                    dDelega is the result of ongoing work started with the
                                                                    development of a security layer for JADE, one the most
                                                                    widespread FIPA-compliant multi-agent systems [13].
                                                                       In particular, it integrates a trust engine, in compliance to
                                                                    WS-Trust specifications. It also integrates an advanced rule
                                                                    engine for compliance checking against disclosure policies.
                                                                    These engines can be used by parties in a WS environment, by
                                                                    means of translator components that has been realized, in order
                                                                    to complete the integration. At a more basic level, the
                                                                    implementation exploits a number of frameworks developed
                                                                    under the Apache Foundation umbrella, including Axiom,
         Figure 2. WS-Trust - Negotiation and challenge framework   Axis, Rahas, Rampart.
    The message exchange starts with a RST for requesting the       A. Integrating a modular trust engine
token, then an arbitrary number of RSTR messages can be
exchanged between the Requestor, or other entities, and the            The trust engine must be able to evaluate which policies
STS. Those RSTR messages may convey any additional                  and credentials have to be inserted into the message at each
information needed for completing the transaction, before           round of the negotiation, on the basis of current state of
finally transmitting the token. The WS-Trust standard defines       negotiation and policies and credentials received at the
some elements for proposing a “challenge” the other end,            previous round.
including:           SignChallenge,            BinaryExchange,          TrustBuilder2 (TB2) is a framework for trust negotiation,
KeyExchangeToken. However, it does not specify how to use           developed for providing a flexible and extensible tool in the
such elements, or even other arbitrary elements, in a               context of research about this problem area. It is the second
transaction. For example, Policy elements may be used by both       main version of the TrustBuilder tool and it has been developed
parties to exchange their respective policies.                      at the DAIS (Database and Information Systems) Laboratory of
                                                                    the University of Illinois [14].
                                                           Figure 3. System architecture


    TrustBuilder2 has not been realized for usage in the context              After this phase, the main negotiation rounds take place,
of Web services, however his modular structure allows it to be            characterized by the exchange of data structures called
extended for: (i) using different policy languages, (ii)                  TrustMessage, i.e. objects containing policies and credentials
implement different negotiation strategies, (iii) and provide             to exchange during the negotiation.
support for different types of credentials.
                                                                              In this research work TrustBuilder2 is used as a trust engine
    In particular, after a proper translation we defined, it is able      for automated trust negotiation. A mechanism has been realized
to evaluate policies expressed according to the                           for translating “TB2 messages”, i.e. InitBrick and
WS-SecurityPolicy language. Starting from received policies               TrustMessage objects, into “WS-Trust messages”, i.e. RSTR
and credentials, it is able to analyze them and take decisions            messages containing TNInit and TNExchange elements, which
about which credentials and policies to disclose, according to            are exchanged in the context of a “negotiation and challenge
the chosen negotiation strategy. The framework uses a policy              framework”, as defined by WS-Trust.
compliance checker, which has the duty of finding one or more
minimal sets of credentials satisfying a given policy. In TB2,                Policy and credentials are represented as abstract classes
the main components of ATN are represented as interfaces,                 and credentials in TB2, in such a way to make the tool
which can be implemented and extended to add new                          independent from the type of policies and credentials used. The
functionalities. They can be distinguished as:                            authors of TB2 have also implemented the support for X.509
                                                                          credentials; in fact, the implementation of this research work
    •    Strategy module: regarding negotiation strategies.               uses X.509 credentials. In TB2, credentials are organized in
    •    Policy compliance checker: regarding the problem of              chains; i.e. when a credential, released by an authority, is sent,
         finding a set of credentials satisfying a policy.                then the whole chain has also to be sent. In fact, TB2 does not
    •    Query interfaces: used to provide access to resources,           process single credentials, but chains of credentials, through
         including local policies and credentials.                        the CredentialChainMediator component, which uses
                                                                          algorithms to build and validate chains of credentials. This
    •    Credential chain module: used to build and validate
                                                                          allows administrators to create decentralized authorities, valid
         chains of credentials, during the negotiation process.
                                                                          for the different parties participating in a negotiation process;
    TrustBuilder2 is designed according to a model of                     moreover, it allows TB2, when processing a chain, to verify the
negotiation with two main phases. The first phase is                      issuer of a credential released by an entity, starting from the
characterized by the exchange of messages containing data                 verification of the root certificate of the chain.
structures, called InitBrick, for communicating the information
                                                                             Moreover, our implementation requires a user to specify,
needed to initialize a negotiation.
                                                                          though configuration files, information about some
components to be used by a client and a server, with respect to       checker with a much leaner code than the Jess policy checker.
TB2 functionalities. This allows users to customize negotiation       Moreover, the tool is completely open-source, at the contrary
strategies, types of credentials and policy languages to be used      of Jess; it is continuously updated, with the addition of new
in a certain application. The credential loader module can also       features, and it has the attentions of a vast and lively
be customized to load particular credentials into the system; it      community of developers.
has access to a list of available credentials. The profile
manager module uses the same customization to decide which            C. Initial evaluation
class loader to use, according to the type of credentials used by
the PolicyManager. A policy loader contains information for               The ATN process, as described in the previous sections,
the PolicyManager, to decide which policy class loader to use.        was analyzed from the point of view of performance. The
                                                                      evaluation regarded the influence of the various components of
                                                                      the system and the conversions required by those components
B. Using a rule engine as a policy checker                            for communicating. For this tests, a scenario has been realized,
    A fundamental aspect of TB2 is the logic it uses for the          in which:
functioning of its compliance checker component. In TB2, the
problem of finding a set of credentials satisfying a policy is            •    the client requests a token;
reformulated into the so-called “many pattern/many object                 •    the STS sends a policy requesting a chain of
match” problem, i.e., to find the objects matching the given                   credentials;
patterns. Here, credentials are considered as objects and                 •    the client, on the other hand, protects one of the
policies as patterns, in a problem which can be solved using a                 credentials in the chain with a policy, which he
production rule engine. The rules of such engines have a                       discloses to the STS;
standard format, with: an LHS (left hand side), the part of the           •    then, the STS discloses the credentials satisfying the
rule defining the conditions; and an RHS (right hand side), the                client's policy;
part of the rule defining the action to perform in the case when          •    thus, the client discloses the credential chain initially
the conditions of the LHS are satisfied.                                       requested by the STS;
    TB2 includes the Clouseau component, that is an expert                •    finally, the STS sends the requested token.
system using the Jess (Java Expert System Shell) rule engine,             Including the initialization phase, the whole process takes 4
which provides APIs for integration into a Java application.          rounds, in which both the client and the STS send a message to
The rules, representing the policies of a trust negotiation           the other party.
process, define constraints on credentials. Jess implements the
Rete algorithm [15], which allows to solve the “many                   4 rounds, with Enc & Sign                              6.0s
pattern/many object match” problem. Using an engine of this            4 rounds, w/o Enc & Sign                               4.8s
kind in a trust negotiation process requires to introduce rules
for representing policies, which specifies the patterns. The           3 rounds, w/o Enc & Sign                               4.0s
knowledge base, instead, is determined by acquired credentials.        3 rounds, 1 credential requested by STS                3.0s
An inference can be realized by finding a set of credentials           4 rounds, TB2, no WS                                   1.2s
satisfying the policy, which is exactly the duty of the policy                         Table 1. Initial performance results
checker in TB2. Thus, a policy checker is nothing more than an
expert system based on production rules.                                  As shown in Tab.1, the execution times vary around a mean
                                                                      value of 6 seconds, including the signature and encryption of
    Jess does not support natively any object for representing        SOAP messages, and 4.75 seconds without any signature and
credentials or policies. Instead, to use credentials in Jess and to   encryption. Considering instead a minimal negotiation process
insert them into its working memory, it is necessary to define        of three rounds, the execution time is around 4 seconds.
their format explicitly. Then, through JessComplianceChecker          Decreasing the credentials required by the policy from 3 to 1,
class, an assert command must be constructed and executed.            the execution time does not vary proportionally, but it is
This requires quite cumbersome code, for constructing thse            reduced only by around 1 second. This means that a significant
command as an “assert(...)” string, starting from the object          part of the computation load is absorbed by TB2, for the
representing the credential.                                          evaluation of policies, in addition to the basic workload
    Instead, in this work we have customized the                      imposed by the WS-* stack [17][18].
TrustBuilder2, extending it for using a different rule engine as          These qualitative results are in accordance with those
a policy checker. In particular, we used the Drools rule engine       conducted by some authors of TB2 [19], which report that
[16] for the policy checker component instead of Jess,                almost half of the total time of execution is used by the policy
supported by the currently available version of TB2. Drools is        checker. Another significant comparison is with the execution
based on the so-called ReteOO algorithm, i.e., an adaptation of       of a negotiation using only the TB2 tool, in which a TB2Client
the Rete algorithm for object oriented systems. In Drools there       and a TB2Server communicate directly, through a dedicated
are two main storage areas: a Production Memory, where rules          socket, without any conversion, signature or encryption: in the
are stored, and a Working Memory, where known facts are               same scenario with 4 rounds, as described above, the process
stored. For trust negotiation, the Production Memory can be           takes 1.2s in TB2, against the 6s required by the whole Web
used for storing the policies as rules, while the Working             services infrastructure implemented in this work.
Memory can be used for storing the credentials as facts. An
important advantage with respect to Jess is that facts in Drools          It is worth noting that more efforts may be dedicated to the
are represented as Java objects, which can be put directly into       optimization and fine tuning of various components the system.
the Working Memory. This has allowed us to develop a policy           Thus, performance may be improved in many aspects. For
example, the inclusion of policy statements into Drools is now                    [9]  Lee, A. J., & Winslett, M. (2008, June). Towards Standards-Compliant
a process involving various steps and conversions. In future                           Trust Negotiation for Web Services. In Trust Management II:
                                                                                       Proceedings of IFIPTM 2008 (Vol. 263, p. 311). Springer.
releases of the framework, this process will be streamlined,
enabling a more direct inclusion of policies and improving                        [10] Yu, T., Winslett, M., & Seamons, K. E. (2001). Interoperable strategies
                                                                                       in automated trust negotiation. In Proceedings of the 8th ACM
efficiency.                                                                            conference on Computer and Communications Security (pp. 146-155).
                                                                                  [11] Nadalin, A., Goodner, M., Gudgin, M., Barbir, A., & Granqvist, H.
                          V.     CONCLUSIONS                                           (2009). WS-Trust 1.4. OASIS (February 2009).
                                                                                  [12] Tomaiuolo, M. (2013). dDelega: Trust Management for Web Services.
    This paper presented the design and implementation of a                            International Journal of Information Security and Privacy (IJISP), 7(3),
generic Trust Negotiation framework for Web services. It                               53-67. ISSN:1930-1650.
allows users to create trust automatically, by incrementally                      [13] Poggi, A., Tomaiuolo, M., & Vitaglione, G. (2005). A Security
disclosing credentials. Modular applications can integrate                             Infrastructure for Trust Management in Multi-agent Systems. Trusting
services provided in an open environment, on the basis of                              Agents for Trusting Electronic Societies, Theory and Applications in
peer-to-peer trust relationships. Interoperability among such                          HCI and E-Commerce, LNCS, vol. 3577, R. Falcone, S. Barber, and M.
services is guaranteed by the conformance to standard                                  P. Singh, Eds. Berlin, Germany: Springer, 2005, pp. 162-179.
protocols for Web services. The realized ATN system is                            [14] Lee, A. J., Winslett, M., & Perano, K. J. (2009). Trustbuilder2: A
composed of various components and requires various format                             reconfigurable framework for trust negotiation. In Trust Management III
conversions for messages, policies and credentials. For these                          (pp. 176-195). Springer Berlin Heidelberg.
reasons, the complete execution of a negotiation process is                       [15] Forgy, C. L. (1982). Rete: A fast algorithm for the many pattern/many
quite costly and imposes a significant computational overhead.                         object pattern match problem. Artificial intelligence, 19(1), 17-37.
Thus, it is advisable to release tokens which can be used for                     [16] Sottara, D., Mello, P., & Proctor, M. (2010). A Configurable Rete-OO
                                                                                       Engine for Reasoning with Different Types of Imperfect Information.
accessing a number of cohesive services in a given time                                IEEE Transactions on Knowledge and Data Engineering, 22(11),
interval, without repeating the negotiation.                                           1535-1548.
    Besides using the framework in generic Web-based                              [17] Novakouski, M., Simanta, S., Peterson, G., Morris, E., & Lewis, G.
applications, further research work will also investigate the                          (2010). Performance analysis of ws-security mechanisms in soap-based
                                                                                       web services (No. CMU/SEI9-2010-TR-023). Carnegie-Mellon
possibility of using an Automated Trust Negotiation protocol in                        University, Software Engineering Institute.
distributed social platforms [20]. In fact, especially in the case
                                                                                  [18] Rodrigues, D., Pigatto, D. F., Estrella, J. C., & Branco, K. R. (2011).
of location-aware applications, unknown users may need to                              Performance evaluation of security techniques in web services. In Proc.
establish some level of trust before interacting, when meeting                         of the 13th International Conference on Information Integration and
at a certain place or at a certain event.                                              Web-based Applications and Services (pp. 270-277). ACM.
                                                                                  [19] Lee, A. J. (2008). Towards practical and secure decentralized
   In this sense, the framework described in this work will                            attribute-based authorization systems. ProQuest.
provide a solid ground for further analysis in different
                                                                                  [20] Franchi, E., Poggi, A., Tomaiuolo, M. (2013). Supporting Social
application scenarios, above all for its generality and                                Networks with Agent-Based Services. International Journal of Virtual
modularity, which permit to exploit a powerful trust engine and                        Communities and Social Networking (IJVCSN), 5(1), 62-74.
a well known rule engine with very different kinds of protocols                        ISSN:1942-9010.
and credentials.

                               REFERENCES
[1]   A. Poggi. Developing Ontology Based Applications with O3L. WSEAS
      Trans. on Computers 8(8): 1286-1295, 2009.
[2]   Winsborough, W. H., Seamons, K. E., & Jones, V. E. (2000). Automated
      trust negotiation. In DARPA Information Survivability Conference and
      Exposition, 2000. DISCEX'00. Proceedings (Vol. 1, pp. 88-102). IEEE.
[3]   Winslett, M., Yu, T., Seamons, K. E., Hess, A., Jacobson, J., Jarvis, R.,
      & Yu, L. (2002). Negotiating trust in the Web. Internet Computing,
      IEEE, 6(6), 30-37.
[4]   A. Negri, A. Poggi, M. Tomaiuolo, P. Turci. Dynamic Grid Tasks
      Composition and Distribution through Agents. Concurrency and
      Computation: Practice and Experience, 18(8):875-885, 2006.
[5]   Venanzi, M., Piunti, M., Falcone, R., & Castelfranchi, C. (2011, July).
      Facing openness with socio-cognitive trust and categories. In
      Proceedings of the Twenty-Second international joint conference on
      Artificial Intelligence – Vol. One (pp. 400-405). AAAI Press.
[6]   Li, N., Mitchell, J. C., & Winsborough, W. H. (2005). Beyond
      proof-of-compliance: security analysis in trust management. Journal of
      the ACM (JACM), 52(3), 474-514.
[7]   Yu, T., Ma, X., & Winslett, M. (2000, November). PRUNES: an efficient
      and complete strategy for automated trust negotiation over the Internet.
      In Proceedings of the 7th ACM conference on Computer and
      communications security (pp. 210-219). ACM.
[8]   Bertino, E., Martino, L. D., Paci, F., & Squicciarini, A. C. (2010).
      Standards for web services security. In Security for Web Services and
      Service-Oriented Architectures (pp. 45-77). Springer Berlin Heidelberg.