<!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>Model-based Design of Reusable Secure Connectors</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Michael Shin</string-name>
          <email>michael.shin@ttu.edu</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Hassan Gomaa</string-name>
          <email>hgomaa@gmu.edu</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Don Pathirage</string-name>
          <email>don.pathirage@ttu.edu</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Department of Computer Science, George Mason University</institution>
          ,
          <addr-line>Fairfax, Virginia</addr-line>
          ,
          <country country="US">USA</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Department of Computer Science, Texas Tech University</institution>
          ,
          <addr-line>Lubbock, Texas</addr-line>
          ,
          <country country="US">USA</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>-This paper describes the integration of security and communication patterns in reusable secure connectors that are incorporated in the model-based design of secure distributed component-based software architectures. The secure connectors are designed separately from application components by reusing the appropriate communication pattern between components as well as the security patterns required by these components. Each secure connector is designed as a composite component that encapsulates both security pattern and communication pattern components. Integration of security patterns and communication patterns within a secure connector is enabled by a security coordinator. The main advantage is that secure connectors can be reused in different secure applications. Index Terms-Reusable secure connector, secure software architecture, component-based software architecture, secure software design, message communication patterns, security patterns, dynamic modeling, model-based design, UML.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>I. INTRODUCTION</title>
      <p>
        A component-based software architecture (CBSA) [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] for
distributed applications is designed by means of components,
which encapsulate the functionality of the application, and
connectors, which encapsulate the details of inter-component
communication, such as asynchronous communication or
synchronous communication with reply. UML 2 provides a
notation for modeling components, ports, provided and
required interfaces in CBSAs [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ]. A CBSA can be developed
using a model-based design method as described in [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ].
      </p>
      <p>Although connectors are typically used in CBSAs to
encapsulate communication mechanisms between components,
this paper describes how security concerns can also be
encapsulated in software connectors, which are referred to as
secure connectors, separately from application components that
contain application logic. To effectively integrate security
concerns with communication concerns, it is necessary to
design secure connectors that are both modular and reusable.</p>
      <p>Each secure connector is designed as a composite
component using CBSA concepts by reusing security pattern
components and communication pattern components, which are
designed separately from each other. Each security pattern
component encapsulates a security pattern, such as symmetric
encryption or digital signature. Each communication pattern
component encapsulates the communication pattern between
application components, such as synchronous or asynchronous
message communication. A secure connector is then
constructed by composing security pattern components and
communication pattern components. Integration of security
patterns and communication patterns within a secure connector
is provided by a security coordinator. Once a secure connector
is constructed, it can then be reused in different secure
applications.</p>
      <p>
        This paper describes the integration of security patterns and
communication patterns within reusable secure connectors that
are used in distributed secure CBSAs using the UML notation.
Each reusable secure connector in previous papers by the
authors [
        <xref ref-type="bibr" rid="ref10 ref11 ref9">9, 10, 11</xref>
        ] was described with one or more security
services accessed by a security coordinator, the template of
which was not addressed. This paper extends the reusable
secure connectors in [
        <xref ref-type="bibr" rid="ref10 ref11 ref9">9, 10, 11</xref>
        ] by describing security patterns
for security services and a pseudocode template for the
highlevel security coordinator that is customized for each secure
connector based on the security pattern(s) selected. A security
pattern addresses a specific security technique that realizes a
security service. Reusable secure connectors make complex
software applications more maintainable by separating security
concerns from application concerns in the software
architectures. Reusable secure connectors described in this
paper are applied to the software architectures for electronic
commerce applications.
      </p>
      <p>In this paper, section II describes related work, section III
describes reusable secure connectors, section IV describes
secure asynchronous message communication connector,
followed by validation of reusable secure connectors in section
V. Section VI concludes the paper.</p>
    </sec>
    <sec id="sec-2">
      <title>II. RELATED WORK</title>
      <p>
        Related work focuses on approaches to designing software
architectures for secure applications and patterns for distributed
communication. The authors in [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] proposed SecureUML,
which is a new modeling language based on UML for the
model-driven development of secure systems. Work has also
been proposed to provide an extension of UML called UMLsec
[
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] that helps with the expression of security-relevant
information within design diagrams. In Model-driven security
[
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], a system is modeled with its security requirements and
security infrastructures are generated using the models.
      </p>
      <p>
        Using connectors as the central construct, a distributed
CBSA in [
        <xref ref-type="bibr" rid="ref15 ref5">5, 15</xref>
        ] is composed of a set of components and a set
of connectors that can be used to connect the components. In
[
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], a connector centric approach is used to model, capture, and
enforce security. The security characteristics of a CBSA are
described and enforced using software connectors. Methods in
[
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] propose SecArch to evaluate architectures with significant
security concerns.
      </p>
      <p>
        Security patterns in [
        <xref ref-type="bibr" rid="ref4 ref7">4, 7</xref>
        ] address the broad range of
security issues that should be taken into account in the stages of
software development lifecycle. The authors describe the
problem, context, solution, and implementation of security
patterns in a structured way with a template so that the
presentations are consistent. The security patterns can help
developers to construct secure systems, even though the
developers may not have security expertise.
      </p>
      <p>
        In recent work by the authors [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] described secure
asynchronous and synchronous connectors for modeling the
software architectures for distributed applications and the
design of reusable secure connectors that are structured into
reusable security components and communication components.
The authors in [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] address the design of secure connectors in
terms of maintainability and evolution, which are used in the
design of secure software architectures. One of the authors has
also investigated designing dynamically adaptable and
recoverable connectors [
        <xref ref-type="bibr" rid="ref17 ref18">17, 18</xref>
        ].
      </p>
    </sec>
    <sec id="sec-3">
      <title>III. REUSABLE SECURE CONNECTORS</title>
      <p>
        In a CBSA [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] for concurrent and distributed applications,
components address the functionality of an application whereas
connectors focus on the communication between components.
Thus, each component defines application logic that is
relatively independent of that provided by other components. A
connector acts on behalf of components in terms of
communication between components, encapsulating the details
of inter-component communication.
      </p>
      <p>
        An approach for designing secure software architectures is
to encapsulate security capabilities within connectors
separately from application components [
        <xref ref-type="bibr" rid="ref8 ref9">8, 9</xref>
        ]. The original
role of connectors in the software architecture is to provide the
mechanism for message communication between components
[
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]. However, in this paper, the role of connectors is extended
to become secure connectors by adding security patterns [
        <xref ref-type="bibr" rid="ref4 ref7">4, 7</xref>
        ]
to the connectors.
      </p>
      <p>The secure connectors are designed using component-based
concepts in which a secure connector is designed as a
composite component that contains simple components that
encapsulate the security patterns and the message
communication pattern. One or more security pattern
components are encapsulated in a secure connector to provide
application components with one or more security services.</p>
      <sec id="sec-3-1">
        <title>A. Design of Security Pattern Components</title>
        <p>
          A security service is software functionality for realizing a
security goal, such as authentication, authorization,
confidentiality, integrity, availability or non-repudiation, which
can be implemented by means of different security techniques.
A security service can be realized by means of different
security patterns, each of which addresses a specific security
technique that realizes a security service. For instance, a
confidentiality security service can be realized by means of a
symmetric encryption security pattern [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ] or an asymmetric
encryption security pattern [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ].
        </p>
        <p>
          A security pattern is designed using one or two security
pattern components (SPCs), as depicted in Fig. 1. The
confidentiality security service can be realized using the
symmetric encryption security pattern (Fig. 1a) [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ], which is
composed of the symmetric encryption encryptor and decryptor
SPCs. The integrity security service can be realized with the
hashing security pattern [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ], which is designed with the hashing
signer SPC (Fig. 1d) and hashing verifier SPC (Fig. 1d). The
non-repudiation security service can be realized with the digital
signature pattern [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ], which is designed with the digital
signature signer SPC (Fig. 1e) and digital signature verifier
SPC (Fig. 1e). The authenticator and access control security
patterns are realized respectively with the authenticator SPC
(Fig. 1b) [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ] and the authorization SPC (Fig. 1c) [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ]. Each port
of a component is defined in terms of provided and/or required
interfaces [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ]. Each security pattern component (Fig. 1) has a
provided port through which the component provides security
services to other components. Fig. 2 depicts the interfaces
provided by the ports of the SPCs in Fig. 1.
        </p>
        <p>«secSuyrmitympeatrtitcern» ISEDecryptor</p>
        <p>EEnnccrryyppttioorn PSEDecryptor
a) Symmetric Encryption Security Pattern</p>
        <p>IAuthorization
PAuthorization</p>
        <p>c) Authorization Security Pattern
IHashingVerifier
«security pattern»</p>
        <p>Symmetric
Encryption</p>
        <p>Decryptor
«security pattern»
Authorization
«security pattern»</p>
        <p>Hashing</p>
        <p>Verifier
«security pattern»</p>
        <p>Digital
Signature
Verifier
b) Authenticator Security Pattern
«security pattern»
Authenticator
«security pattern»</p>
        <p>Hashing
Signer</p>
        <p>PHashingVerifier
d) Hashing Security Pattern
«secuDritiygiptaalttern» IDSVerifier</p>
        <p>SiSginganteurre PDSVerifier
e) Digital Signature Security Pattern</p>
        <p>Fig. 1. Security Pattern Components
ISEEncryptor
PSEEncryptor
IAuthenticator
PAuthenticator
IHashingSigner
PHashingSigner</p>
        <p>IDSSigner
PDSSigner
«interface»
ISEEncryptor
«interface»
IAuthenticator
«interface»</p>
        <p>IHashingSigner
authenticate (in credentials, out result)
sign (in message, in key, out
messageDigest)
«interface»</p>
        <p>IDSSigner
sign (in message, in key, out
signedMessage)
encrypt (in message, in key, in
Algorithm, out encryptedMessage)
decrypt (in encryptedMessage, in key, in</p>
        <p>Algorithm, out message)
Fig. 2. Interfaces of Security Pattern Components
«interface»
ISEDecryptor
«interface»</p>
        <p>IAuthorization
authorize (in Identity, in object, out
permission)
«interface»</p>
        <p>IHashingVerifier
verify (in message&amp;messageDigest,
in key, out verification)
«interface»</p>
        <p>IDSVerifier
verify (in message&amp;signature, in key,
out result)</p>
      </sec>
      <sec id="sec-3-2">
        <title>B. Design of Communication Pattern Components</title>
        <p>
          Although there are other types of communications between
distributed components, typical message communication
patterns between the components are synchronous message
communication with reply, synchronous message
communication without reply, asynchronous message
communication, and bidirectional asynchronous message
communication [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ]. Each communication pattern is designed
with a sender communication pattern component (CPC) and a
receiver communication pattern component (CPC), which are
encapsulated in a secure sender connector and a secure receiver
connector respectively.
        </p>
        <p>In asynchronous message communication, an asynchronous
message is sent from a sender component to a receiver
component and is stored in a queue if the receiver is busy. The
sender component can continue to send the next message to the
receiver component as long as the queue is not full. Fig. 3a
depicts the Asynchronous Message Communication (AMC)
Sender CPC and Asynchronous Message Communication
(AMC) Receiver CPC for the secure asynchronous message
communication connector. The AMC Sender CPC (Fig. 3a) has
the provided PAsyncMCSenderService port through which the
Security Sender Coordinator component sends to the AMC
Sender CPC a message being sent to the receiver application
component, whereas it requests a service from the AMC
Receiver CPC via the required RNetwork port. Similarly, the
AMC Receiver CPC (Fig. 3a) has the required
RSecurityService port and provided PNetwork port. Fig. 3b
depicts the interfaces provided by each port of the AMC
Sender and Receiver communication pattern components
(CPCs).</p>
      </sec>
      <sec id="sec-3-3">
        <title>C. Design of Security Coordinators</title>
        <p>
          A secure connector is designed by separately considering
the message communication pattern and the security patterns
required by application components. A secure connector is a
distributed connector, which consists of a secure sender
connector and a secure receiver connector that communicate
with each other. Each secure connector is labeled with the
UML stereotype «secure connector» to clearly identify its role
in the software architecture. A secure sender or receiver
connector consists of a security coordinator, one or more
security objects, and a communication object [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ].
        </p>
        <p>A security coordinator, which is either a security sender
coordinator or a security receiver coordinator, is designed for
integrating the communication pattern and security patterns
selected for a reusable secure connector. The security sender
and receiver coordinators need to be designed for each reusable
secure connector whenever a CPC and one or more SPCs are
selected for the connector. In addition, a template for the
highlevel security coordinator can be designed for each
communication pattern. The template is customized for each
reusable secure connector based on the security pattern(s)
selected.</p>
        <p>Fig. 4 depicts the interfaces provided by the security sender
coordinator (Fig. 6b) for a secure AMC connector. The
senderSecurityPatternAttribute parameter in sendSecAsync()
specifies the private key or secret key that is needed by security
pattern components to apply security services to a message, or
the algorithm that a security pattern component should select
for a security service. The pseudocode template for the
security sender coordinator is depicted in Fig. 5 in which the
security related code (in italics) is replaced by the pseudocode
for the security patterns selected for a secure AMC connector.
Similarly, the pseudocode template for the Security Receiver
Coordinator can be specified.</p>
        <p>«interface»</p>
        <p>ISecAsyncSenderService
sendSecAsync (in messageName, in
messageContent, in senderSecurityPatternAttribute)
loop
-- Wait for message from sender component;
receive (SenderComponentMessageQ, message);
Extract MessageName, MessageContent and
SenderSecurityPatternAttribute from message;
-- Apply security patterns to message content;
while SecurityPatternsRequiredByMessageContent do</p>
        <p>Apply security pattern to message content;
end while;
-- Send message to AMC Sender CPC;
AsynchronousMCSender.sendSecAsync (in MessageName, in
MessageContent);</p>
        <p>The secure connectors are constructed by reusing SPCs
(Fig. 1 and Fig. 2) and CPCs (Fig. 3) with the security
coordinator (Fig. 6b) being the component that integrates the
selected SPCs with the selected CPCs. Once one or more
security patterns required by an application component are
determined, the corresponding SPCs are selected from the
reusable SPCs (Fig. 1 and Fig. 2). Similarly, the required CPCs
are selected from the reusable CPCs (Fig. 3) in accordance with
the communication pattern to be used between the application
components. Also, for the selected CPCs, the corresponding
security coordinator pseudocode template (Fig. 5) is
customized to create the security coordinator component (Fig.
6) for the selected security pattern component(s). The security
coordinator component integrates the selected SPCs with the
selected CPC by sequencing the interaction with those
components. For the integration, the security coordinator
component has required ports through which it requests
security services from the SPCs and communicates with the
CPC. Also the security coordinator components provide ports
for receiving a service request message from or requesting a
service from an application component.</p>
        <p>IV. SECURE ASYNCHRONOUS MESSAGE COMMUNICATION</p>
        <p>CONNECTOR</p>
      </sec>
      <sec id="sec-3-4">
        <title>A. Design of Secure Asynchronous Message Communication</title>
      </sec>
      <sec id="sec-3-5">
        <title>Connector</title>
        <p>Suppose that a secure AMC connector provides application
components with the Symmetric Encryption and Digital
Signature security patterns between the sender and receiver
application components. This secure AMC connector is
composed of a secure AMC sender connector (Fig. 6a) and a
secure AMC receiver connector. The secure AMC sender
connector (Fig. 6a) is designed as a composite component in
which the Security Sender Coordinator component (Fig. 6b)
integrates the reusable Symmetric Encryption Encryptor and
Digital Signature Signer SPCs (Fig. 1) for the confidentiality
and non-repudiation security with the reusable AMC Sender
CPC (Fig. 3).</p>
        <p>For integrating the components, the Security Sender
Coordinator component (Fig. 6b) has a required RSEEncryptor
port to communicate with a provided PSEEncryptor port of the
Symmetric Encryption Encryptor SPC, which encrypts
messages using the sender’s secret key and algorithm selected
by the sender component, and it also has a required RDSSigner
port to communicate with a provided PDSSigner port of the
Digital Signature Signer SPC, which signs a message using the
sender’s private key. The signed and encrypted messages are
sent to the receiver component. The pseudocode for the Secure
Sender Coordinator component is customized from the
pseudocode template (Fig. 5) and is depicted in Fig. 7.</p>
        <p>The Digital Signature Signer SPC depicted in Fig. 8 is a
composite component that is composed of the Signer and
Signature Algorithm security components. The Signer security
component encrypts a message using an application sender
component’s private key by calling the Signature Algorithm
security component to create a signature, and then creates a
signed message that contains the original message and the
signature. The private key is managed by the security sender
coordinator on behalf of an application sender component. The
Signer security component has the provided PDSSigner port to
communicate with the provided PDSSigner port of the Digital
Signature Signer SPC, and it also has the required
RSignatureAlgorithm to communicate with the Signature
Algorithm security component, which generates the signature
of message. Fig. 8c depicts the interfaces for Signer and
Signature Algorithm security components.</p>
        <p>Similarly, the AMC Receiver Connector is designed as a
composite component that encapsulates the Security Receiver
Coordinator component, Symmetric Encryption Decryptor
SPC, Digital Signature Verifier SPC, and AMC Receiver CPC.
loop
end if;</p>
      </sec>
      <sec id="sec-3-6">
        <title>B. Example of Secure Asynchronous Message Communication</title>
      </sec>
      <sec id="sec-3-7">
        <title>Connector</title>
        <p>
          This section describes how a secure AMC connector can be
reused for different applications if the applications require the
same security services and asynchronous message
communication. Fig. 9 depicts the structural view of a reusable
secure AMC connector with Symmetric Encryption security
pattern and Digital Signature security pattern, which can be
applied for confirming a shipment in a business to business
(B2B) electronic commerce application. When a Supplier
component sends a shipment confirmation to a Delivery Order
Server, the shipment confirmation is signed by the Digital
Signature Signer SPC in the secure AMC sender connector
assuming the Supplier Component requires a non-repudiation
security service. The shipment confirmation and signature is
then encrypted by the Symmetric Encryption Encryptor SPC in
the secure AMC sender connector assuming it also requires a
confidentiality security service. The encrypted shipment
confirmation and signature are decrypted by the Symmetric
Encryption Decryptor SPC, and then sent to the Delivery Order
Server via the secure AMC receiver connector, which requests
the sender component’s public key from the Public Key
Repository that is a certificate authority for public key
infrastructure. The signature is verified by the secure AMC
receiver connector with the sender’s public key. The behavioral
view of a reusable secure AMC connector can be depicted
using UML communication or sequence diagrams. An example
is described in [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ] for confidentiality and non-repudiation
security services.
        </p>
        <p>The secure AMC connector (Fig. 9) with Symmetric
Encryption security pattern and Digital Signature security
pattern can be reused for sending a purchase order in the B2C
electronic commerce application as well. The B2C application
is required for sending a purchase request from a customer
component to a supplier component in the B2C electronic
commerce application.</p>
        <p>«security pattern»
DigitalSignature</p>
        <p>Signer
«security»</p>
        <p>Signer
IDSSigner PDSSigner
«security»
Signer</p>
        <p>RSignatureAlgorithm
PDSSigner PSignatureAlgorithm
PDSSinger
a) Digital Signature Signer Security Pattern
RSignatureAlgorithm ISignatureAlgorithm
ISignatureAlgorithm</p>
        <p>PSignatureAlgorithm
«security»
Signature
Algorithm
«security»
Signature</p>
        <p>Algorithm
b) Signer and Signature Algorithm Security Components
«IiDntSeSrfiagcnee»r ISign«aintutererfAaclgeo»rithm
ssiiggnne(dinMmesessasgaeg)e, in key, out seingcnraytputre(i)n message, in key, out</p>
        <p>c) Interfaces for Signer and SignatureAlgorithm Security Components
Fig. 8. Signer and Signature Algorithm Security Components in Digital
Signature Signer Security Pattern Component and their Interfaces</p>
        <p>V. VALIDATION OF REUSABLE SECURE CONNECTORS</p>
      </sec>
      <sec id="sec-3-8">
        <title>A. Reusability of Secure Connectors</title>
        <p>The reusable secure connectors have been implemented
using object-oriented programming in Java. The secure AMC
connector was implemented with four threads for each of
security sender coordinator component, AMC sender
communication pattern component, security receiver
coordinator component, and AMC receiver communication
pattern component. A sender component and a receiver
component for the secure AMC were implemented using each
separate thread. Also, a message queue was implemented and
placed between threads (for example, a message queue between
the sender component thread and security sender coordinator
component thread, and a message queue between the security
sender coordinator component thread and the AMC sender
communication pattern component thread). The secure AMC
communication was implemented with 6 threads and 5 message
buffers. Similarly, the secure synchronous message
communication with reply (SMCWR) connector was
implemented.</p>
        <p>The implementation of the secure AMC connector and the
secure SMCWR connector were applied to different
applications. The secure asynchronous message
communication connector was implemented and reused for
Confirm Shipment (B2B) and Purchase Order (B2C) use cases.
The secure SMCWR connector was implemented and reused
for the ATM, B2B, and B2C applications, in particular to
implement use cases such as PIN validation (ATM), Browse
Catalog and Place Requisition (B2B), and Pay Product (B2C).</p>
      </sec>
      <sec id="sec-3-9">
        <title>B. Performance Overhead of Reusable Secure Connectors</title>
        <p>This section describes the performance analysis of secure
applications using the secure connectors and compares them
with secure applications executing the same message
communication patterns but using other approaches for
providing or not providing security. The three approaches
compared in this section are the (1) with secure connector
approach, for secure applications that use the approach
described in this paper; (2) without security pattern approach,
for applications that do not provide any security; (3) without
secure connector approach, for secure applications in which
security patterns are mingled with the application logic. The
underlying difference between the with secure connector and
without secure connector approaches is that the security
patterns in the without secure connector approach are
implemented within application components along with
application logic, whereas the with secure connector approach
has separated the security patterns from application
components and implemented them as secure connectors. The
without security pattern approach implements the application
logic without any security patterns.</p>
        <p>Table 1 shows the average time of multiple message
communications and a comparison between the with secure
connector approach, without security pattern approach, and
without secure connector approach. For the with secure
connector approach, the second column of Table 1 shows that
the average communication time is 46.7 milliseconds (ms) for
secure synchronous message communication with reply, and 57
ms for secure asynchronous message communication. Secure
AMC takes more time than secure SMCWR because it
consumes processing time for generating/verifying digital
signatures in a public key infrastructure. The third and fourth
columns of Table 1 show the average communication times for
the corresponding patterns using the without security pattern
approach and without secure connector approach respectively.
The fifth column of Table 1 indicates that the time difference
between the with secure connector approach and the without
security pattern approach is highly significant. This is because
with secure connector approach provides application
components with security patterns such as confidentiality and
non-repudiation. The security patterns in the with secure
connector approach consume processing time for
encrypting/decrypting messages and/or generating/verifying
digital signatures, whereas the without security pattern
approach is much faster due to it providing no security. Thus,
the additional processing time taken by the with secure
connector approach is to make applications secure in
comparison to insecure applications developed using the
without security pattern approach.</p>
        <p>Comparing the performance of the without secure
connector and with secure connector approaches shows that
there is no significant difference in the runtime performance of
the two approaches. The time difference between the two
approaches (sixth column in Table 1) ranges from less than 0.6
ms to 1 ms. Both approaches provide applications with security
patterns, but the with secure connector approach separates
security patterns from application logic, so that it leads to
secure software architectures that are more maintainable and
evolvable than the without secure connector approach.</p>
        <p>A secure connector can be reused in different applications if
it matches the security and communication patterns required
between application components. Reusable secure connectors
are designed as composite components using model-based
CBSA concepts, which are designed by reusing security pattern
components providing security services required by application
components as well as communication pattern components for
transmission of secure messages and responses between
components. Integration of security and communication
patterns within secure connectors is provided by security
coordinators. In particular, this paper contributes to the
reusable secure connectors by providing security patterns for
security services, integrating security patterns and
communication patterns within secure connectors, and by
providing a pseudocode template for the high-level security
coordinator that can be customized for each secure connector.
To validate this approach, secure connectors were implemented
for two electronic commerce applications and an ATM
application. A performance evaluation was also carried out
comparing approaches with and without secure connectors.</p>
        <p>
          This paragraph describes future research for secure
connectors. Component-based secure connectors might be
mapped to aspect-oriented secure connectors [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ] by considering
the relationships between the ports/interfaces of components
and the pointcuts/advices of aspects. Future work also includes
extending the reusable secure connector approach to
incorporate additional communication and security patterns.
        </p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>ACKNOWLEDGMENT</title>
      <p>Gomaa’s research is supported by the Air Force Office of
Scientific Research under grant number FA9550-16-1-0030.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <surname>Al-Azzani</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bahsoon</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <year>2012</year>
          .
          <article-title>SecArch: Architecture-level Evaluation and Testing for Security</article-title>
          ,
          <source>Software Architecture (WICSA) and European Conference on Software Architecture (ECSA)</source>
          , Joint Working IEEE/IFIP Conference on,
          <year>August</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <surname>Baker</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Shin</surname>
            <given-names>M.</given-names>
          </string-name>
          ,
          <year>2014</year>
          .
          <article-title>Aspect-Oriented Secure Connectors for Implementation of Secure Software Architecture</article-title>
          ,
          <source>International Conference on Software Engineering and Knowledge</source>
          Engineering (SEKE'
          <year>2014</year>
          ), Vancouver, Canada, July 1-3.
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <surname>Basin</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Clavel</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Egea</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <year>2011</year>
          .
          <article-title>A Decade of ModelDriven Security, 16th ACM symposium on Access control models and technologies</article-title>
          , Innsbruck, Austria, June 15-17.
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <surname>Fernandez</surname>
            ,
            <given-names>E. B.</given-names>
          </string-name>
          ,
          <year>2013</year>
          . Security Patterns in Practice, Wiley.
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <surname>Gomaa</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <year>2011</year>
          .
          <source>Software Modeling and Design: UML</source>
          ,
          <string-name>
            <surname>Use</surname>
            <given-names>Cases</given-names>
          </string-name>
          , Patterns, and Software Architectures, Cambridge University Press.
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <surname>Ren</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Taylor</surname>
          </string-name>
          , R.,
          <string-name>
            <surname>Dourish</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Redmiles</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <year>2005</year>
          .
          <article-title>Towards An Architectural Treatment of Software Security: A ConnectorCentric Approach</article-title>
          ,
          <source>Proceedings of the Workshop on Software Engineering for Secure Systems</source>
          , St. Louis, MI, USA, May .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <surname>Schumacher</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fernandez</surname>
            ,
            <given-names>E. B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hybertson</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Buschmann</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sommerlad</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <year>2006</year>
          . Security Patterns, Wiley.
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <surname>Shin</surname>
            ,
            <given-names>M. E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gomaa</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <year>2007</year>
          .
          <article-title>Software Modeling of Evolution to a Secure Application: From Requirements Model to Software Architecture</article-title>
          ,
          <source>Science of Computer Programming</source>
          , Volume
          <volume>66</volume>
          , Issue 1, pp.
          <fpage>60</fpage>
          -
          <lpage>70</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <surname>Shin</surname>
            ,
            <given-names>M. E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Malhotra</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gomaa</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kang</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <year>2012</year>
          .
          <article-title>Connectors for Secure Software Architectures, 24th International Conference on Software Engineering and Knowledge Engineering (SEKE'</article-title>
          <year>2012</year>
          ), San Francisco, July 1-3.
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <surname>Shin</surname>
            ,
            <given-names>M. E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gomaa</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pathirage</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <year>2016</year>
          .
          <article-title>Reusable Secure Connectors for Secure Software Architecture</article-title>
          ,
          <source>15th International Conference on Software Reuse</source>
          ,
          <year>June 2016</year>
          , Limassol, Cyprus.
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <surname>Shin</surname>
            ,
            <given-names>M. E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gomaa</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pathirage</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Baker</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Malhotra</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <year>2016</year>
          .
          <article-title>Design of Secure Software Architectures with Secure Connectors</article-title>
          ,
          <source>International Journal of Software Engineering and Knowledge Engineering</source>
          , Vol.
          <volume>26</volume>
          , No.
          <issue>5</issue>
          , pp
          <fpage>769</fpage>
          -
          <lpage>805</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <surname>Taylor</surname>
            ,
            <given-names>R. N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Medvidovic</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dashofy</surname>
            ,
            <given-names>E. M.</given-names>
          </string-name>
          ,
          <year>2010</year>
          . Software Architecture: Foundations, Theory, and Practice, Wiley &amp; Sons.
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <surname>Lodderstedt</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Basin</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Doser</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <year>2002</year>
          .
          <article-title>SecureUML: A UML-Based Modeling Language for Model-Driven Security</article-title>
          ,
          <source>Intl. Conf. on the Unified Modeling Language</source>
          , London, UK.
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <surname>Jürjens</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <year>2002</year>
          .
          <article-title>UMLsec: Extending UML for Secure Systems Development</article-title>
          ,
          <source>Fifth International Conference on the Unified Modeling Language</source>
          , London, UK.
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <surname>Gomaa</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Menasce</surname>
            ,
            <given-names>D. A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Shin</surname>
            ,
            <given-names>M. E.</given-names>
          </string-name>
          ,
          <year>2001</year>
          .
          <article-title>Reusable Component Patterns for Distributed Software Architectures</article-title>
          ,
          <source>Proceedings of ACM Symposium on Software Reusability, ACM Press, Pages 69-77</source>
          , Toronto, Canada, May.
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <surname>Rumbaugh</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Booch</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jacobson</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <year>2004</year>
          .
          <string-name>
            <given-names>The</given-names>
            <surname>Unified Modeling Language Reference Manual</surname>
          </string-name>
          , Addison-Wesley.
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>H.</given-names>
            <surname>Gomaa</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Hashimoto</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Kim</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Malek</surname>
          </string-name>
          , and
          <string-name>
            <given-names>D. A.</given-names>
            <surname>Menascé</surname>
          </string-name>
          , “
          <article-title>Software Adaptation Patterns for Service-oriented Architectures,”</article-title>
          <source>Proceedings ACM Symposium on Applied Computing</source>
          , Sierre, Switzerland,
          <year>March 2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>E.</given-names>
            <surname>Albassam</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Gomaa</surname>
          </string-name>
          , and
          <string-name>
            <given-names>D. A.</given-names>
            <surname>Menascé</surname>
          </string-name>
          , “
          <article-title>Model-based Recovery Connectors for Self-adaptation and Self-healing: Design and Experimentation,” in Software Technologies</article-title>
          ,
          <source>Revised Selected Papers from the 11th International Joint Conference, ICSOFT 2016</source>
          , Lisbon, Portugal, July,
          <year>2016</year>
          ; Published by Springer, CCIS
          <volume>743</volume>
          pp.
          <fpage>108</fpage>
          -
          <lpage>131</lpage>
          ,
          <year>2017</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>