<!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>Mining Digital Twins of a VPN Server</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Andrea Pferscher</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Benjamin Wunderling</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Bernhard K. Aichernig</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Edi Muškardin</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Institute of Software Technology, Graz University of Technology, Infeldgasse 16b/II</institution>
          ,
          <addr-line>8010 Graz</addr-line>
          ,
          <country country="AT">Austria</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>TU Graz - SAL DES Lab, Silicon Austria Labs</institution>
          ,
          <addr-line>Sandgasse 34, 8010 Graz</addr-line>
          ,
          <country country="AT">Austria</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Virtual private networks (VPNs) are widely used to create a secure communication mode between multiple parties over an insecure channel. A common use case for VPNs is secure access to company networks. Therefore, bugs in VPN software are often severe. The Internet Key Exchange protocol (IKE) is a protocol in the Internet Protocol Security (IPsec) protocol suite used in VPNs. There are two version of IKE, IPsec-IKEv1 and the newer IPsec-IKEv2, with IPsec-IKEv1 still widely used in practice. While IPsec-IKEv2 has been investigated in the context of automata learning, no such work exists for IPsec-IKEv1. This paper closes the gap for the IPsec-IKEv1 protocol and shows the steps taken to learn a digital twin of an IPsec server using automata learning. We present and contrast two learned models of an IPsec server. Using learning, we also found security issues in encryption libraries.</p>
      </abstract>
      <kwd-group>
        <kwd>eol&gt;IPsec</kwd>
        <kwd>VPN</kwd>
        <kwd>active automata learning</kwd>
        <kwd>digital twin</kwd>
        <kwd>model mining</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>the system to gain knowledge about it. In this way, not only a model is created, but also a
stateful testing approach for black-box systems. The learned model represents a digital twin
of the system under learning, which can then be used for other model-based techniques, like
model-based test-case generation or model checking.</p>
      <p>In this paper, we investigate the applicability of automata learning for mining security-critical
components of a VPN. For this, we learn the behavioral model of the Internet Key Exchange
protocol (IKE) protocol which is part of the Internet Protocol Security (IPsec) protocol suite.
IKE is used to share authenticated key material between the involved parties. For learning, we
use a VPN client to query the VPN server instantiation. This allows us to create a digital twin of
the security-critical part of a VPN server without knowing its internals (black-box). The work
is part of LearnTwins, a research project on learning digital twins1.</p>
      <p>The paper is organized as follows. Sect. 2 provides details about the used modeling-formalism,
the learning algorithm, and the system-under-learning. Section 3 provides a comparison with
related work. In Sect. 4, we present our learning setup for mining a digital twin of a VPN. In
Sect. 5 we present our learned models and, finally, in Sect. 6 we draw our conclusions.</p>
    </sec>
    <sec id="sec-2">
      <title>2. Preliminaries</title>
      <sec id="sec-2-1">
        <title>2.1. Mealy Machines</title>
        <p>Mealy machines are a modeling formalism for reactive systems such as communication
protocols. They are finite-state machines in which each transition is labeled with an input and the
corresponding output action. We consider Mealy machines to describe deterministic behavior.
More formally, a Mealy machine is defined as a 6-tuple  = {, 0, , , ,  }, where  is
a finite set of states, 0 ∈  is the initial state,  is a finite set called input alphabet,  is a
ifnite set called output alphabet,  is the state-transition function  :  ×  →  that maps a
state and an element of the input alphabet to another state in  and  is the output function
 :  ×  →  that maps a state-input pair to an output in .</p>
      </sec>
      <sec id="sec-2-2">
        <title>2.2. Automata Learning</title>
        <p>Automata learning algorithms generate a model that describes the behavior of the system under
learning (SUL). We diferentiate between active and passive automata learning. Passive learning
creates a behavioral model based on a given data set, e.g., log files, while active learning directly
queries the SUL. For learning a digital twin, we prefer active learning since active algorithms
can query unusual or rare scenarios, whereas passive learning depends heavily on the provided
data.</p>
        <p>
          Today, many active learning algorithms are based on concepts derived from Angluin’s *
algorithm [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ], which was designed to identify deterministic finite automata formalizing regular
languages. In her seminal work, Angluin introduced the concept of the minimally adequate
teacher (MAT), in which a learner queries a teacher about the SUL to iteratively generate a
behavioral model. The teacher answers membership and equivalence queries posed by the
learner regarding the SUL. Membership queries are used to check whether a word is accepted
by the SUL. The learner then updates their model of the SUL based on the answers to their
queries. Equivalence queries are used to check if a learned model exactly matches the behavior
of the SUL. If the teacher provides a counterexample that represents the behavioral diference
between the learned model and SUL, the learner improves the model by asking more membership
queries. The MAT concept has been extended to facilitate other model formalisms like Mealy
machines [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ], where membership queries are renamed to output queries. Output queries are
used to retrieve outputs to the corresponding input sequences.
        </p>
        <p>
          The MAT concept is also used by other active learning algorithms. Kearns and Vazirani [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ]
propose an active learning algorithm that uses an underlying tree-based data structure to
construct a model. We refer to their learning algorithm as KV. KV’s tree-based data structure
can reduce the number of required output queries compared to the table-based technique used
in the * algorithm.
        </p>
      </sec>
      <sec id="sec-2-3">
        <title>2.3. Internet Protocol Security</title>
        <p>
          Internet Protocol Security (IPsec) is a VPN Layer 3 Initiator Responder
protocol suite used to securely communicate over an ISAKMP SA {proposals}
insecure channel. It includes three sub-protocols:
Internet Key Exchange protocol (IKE), the Authentica- ISAKMP SA {proposal} M
tion Header (AH), and the Encapsulating Security Pay- KEY EX {, } ian
lckoaeatyidos.n(E,IKSaPnE)dhptarhosettoswceoocul.vrIeeKresExiocisnhsma,naIgKienElavyn1udasmenddanfIoKargEaevmu2t,ehnwetnitothif- KEY EAXU{TH{ℎ,ℎ}} eodM
IKEv2 being the newer and recommended version [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ]. AUTH {ℎℎ}
Following a successful IKE round, either AH or ESP is IPSEC SA {proposals} Q
AusHedontolyseenndsupraecskthetesisnetceugrreitlyy abnedtwaeuethnepnatirctiiteys.oWfmheilse- IPSEC SA {proposal} ickuM
sages, ESP also ensures their confidentiality through ACK eod
encryption.
        </p>
        <p>
          Compared to other protocols, IPsec ofers a high de- Figure 1: IKEv1 between two parties
gree of customizability, allowing it to be fitted for many
use cases. However, in a cryptographic evaluation of the protocol, Ferguson and Schneier [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ]
criticize the complexity arising from the high degree of customizability as the biggest weakness
of IPsec. To address its main criticism, IPsec-IKEv2 was introduced in RFC 7296 [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ] to replace
IKEv1. Nevertheless, IPsec-IKEv1, RFC 2409 [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ], is still in widespread use to this day, with the
largest router producer in Germany, AVM, still only supporting IKEv1 in their routers [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ]. We
investigate IPsec-IKEv1 with ESP in this paper and focus on the IKE protocol.
        </p>
        <p>The IKEv1 protocol works in two main phases, both relying on the Internet Security
Association and Key Management Protocol (ISAKMP). A typical key exchange between two parties,
an initiator and a responder, can be seen in Fig. 1. In phase one (Main Mode), the initiator
sends a Security Association (SA) to the responder. A SA essentially details important security
attributes for a connection such as the encryption algorithm and key-size to use, as well as the
authentication method and the used hashing algorithm.</p>
        <p>These options are bundled in containers called proposals, with each proposal describing a
possible security configuration. While the initiator can send multiple proposals to give the
responder more options to choose from. In comparison, the responder must answer with only
one proposal, provided it supports one of the suggestions. Subsequently, the two parties perform
a Difie-Hellman key exchange and exchange nonces to generate a shared secret key. This secret
key is used as a seed key for all further session keys. Following a successful key exchange, all
further messages are encrypted. Finally, both parties exchange hashed authentication material
(usually pre-shared keys or certificates). If the hashes can be verified, a secure channel is created
and used for phase two communication.</p>
        <p>The shorter phase two (Quick Mode) begins with another SA exchange. This time, however,
the SA describes the security parameters of the ensuing ESP/AH communication. This is
followed by a single acknowledge message from the initiator to confirm the agreed upon
proposal. After the acknowledgment, all further communication is done via ESP/AH packets.</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>3. Related Work</title>
      <p>
        Model learning became a popular tool for creating behavioral models of various communication
protocols, e.g., TLS [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], TCP [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ], SSL [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], MQTT [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], 802.11 4-Way Handshake of Wi-Fi [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ], or
BLE [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. The learned models reveal diferences in the specification or provide a useful extension
to the unspecified properties. In addition, the learned models serve as a basis for further
techniques like model-checking or model-based security testing. In the VPN domain, Daniel et
al. [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] learned a model of two OpenVPN implementations. The challenges of implementing
a learning setup for OpenVPN were discussed by Novickis [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ]. In contrast to our technique,
they learned a more abstract model of the entire OpenVPN session, where details about the key
exchange were abstracted in the learned model. Closely related to our work, Guo et al. [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ]
learned a model of the IPsec-IKEv2 protocol. The authors stress that IPsec-IKEv1 is more
complicated to configure securely, which highlights the need to test the configuration of the
older version as well, since it is still widely used [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. With our work, we complete the learning
approaches for all IKE versions.
      </p>
    </sec>
    <sec id="sec-4">
      <title>4. Method</title>
      <p>Environment Setup. As our SUL, we used a Linux Strongswan2 US.9.5/K5.15.0-25-generic.
Learning was done using two VirtualBox 6.1 virtual machines (VMs) running standard Ubuntu
22.04 LTS distributions. Both VMs were allotted 4 GB of memory and one CPU core. All
communication took place in an isolated virtual network to eliminate external influences.
During learning, all power-saving options and similar potential causes of disruptions were
disabled. The IPsec server was restarted before the start of each learning procedure to ensure
identical conditions. We designated one VM as the initiator and one as the responder to
create a typical client-server setup. The open-source IPsec implementation was installed on the
responder VM and set to listen for incoming connections from the initiator VM. The Strongswan
server was configured to use pre-shared keys for authentication and default recommended</p>
      <sec id="sec-4-1">
        <title>Learning</title>
      </sec>
      <sec id="sec-4-2">
        <title>Algorithm</title>
        <p>abstract
input
abstract
output</p>
      </sec>
      <sec id="sec-4-3">
        <title>Mapper</title>
        <p>concrete
input
concrete
output</p>
      </sec>
      <sec id="sec-4-4">
        <title>Interface</title>
        <p>(Initiator)</p>
        <p>UDP</p>
        <p>
          SUL
(Responder)
security settings. Additionally, it was set up to allow unencrypted notification messages, which
we used to reset the connection during the learning process. For learning, we used the Python
library AALpy [
          <xref ref-type="bibr" rid="ref19">19</xref>
          ] version 1.2.9 in conjunction with the packet manipulation library Scapy [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ],
version 2.4.5. Significant efort was invested into expanding the ISAKMP Scapy module to
support all packets required for IPsec.
        </p>
        <p>
          Learning Setup. Figure 2 gives an overview of the learning setup, adapted from Tappler
et al. [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ]. The learning algorithm sends abstract inputs chosen from the input alphabet to the
mapper, which converts them to concrete inputs. The concrete inputs, which are actual IPsec
packets, are then sent to the SUL, by means of a UDP communication interface. The interface
represents the initiator whereas the SUL is the responder represented by a Strongswan server
instance. This separation between abstract and concrete inputs and outputs allows us to learn a
generic model in a reasonable amount of time.
        </p>
        <p>
          The abstract inputs consist of the initiator-to-responder messages: isakmp_sa, key_ex, auth,
ipsec_sa and ack. The responder-to-initiator outputs from Fig. 1 were extended by NONE
and ERROR, where NONE signifies a lack of response from the SUL and ERROR is used as a
collection of received error notifications. We use the KV [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ] algorithm for learning with the
improved counterexample-processing of Rivest and Schapire [
          <xref ref-type="bibr" rid="ref21">21</xref>
          ]. Since a perfect equivalence
oracle cannot be assumed in practice, we substitute the equivalence oracle with model-based
conformance testing between the intermediate learned model and the SUL. The conformance
tests provide state-coverage combined with randomness.
        </p>
        <p>
          Our mapper implements translation methods for each communication step in a typical
IPsecIKEv1 exchange, as described in Sect. 2. We use the Python library Scapy to construct IKEv1
packets. This approach allows us to change the fields and values of generated packets at will,
opening up the possibility of fuzz testing these fields in future work as shown by Pferscher and
Aichernig [
          <xref ref-type="bibr" rid="ref22">22</xref>
          ]. Parsing was made more dificult by the fact that Scapy does not support all the
packets required by IPsec-IKEv1. To solve this problem, we implemented the missing packets in
the Scapy ISAKMP class and used this modified version.
        </p>
        <p>The IPsec packets generated by the mapper are then passed on to our interface for the SUL
that handles all incoming and outgoing UDP packets. Additionally, it converts responses from
the SUL into valid Scapy packets and passes them on to the mapper. The mapper class then
parses the responses received from the interface and returns an abstract output representing the
received data to the learning algorithm. Since part of communication is encrypted, we require a
framework that correctly handles the en/decryption of messages. For each request, we store
the base key and the responses for use in the next message, and update afected key material
as needed. Most notably, the initialization vectors (IVs) are updated in almost every request
and difer between messages. Informational requests also handle their IVs separately. For each
request that we send, if available, we try to parse the response, decrypting it if necessary and
resetting or adjusting internal variables as required to match the server.</p>
        <p>Automata learning requires that the SUL can be reset to an initial state after each query.
We implement this using a combination of the ISAKMP delete request and general ISAKMP
informational error messages. While delete works for established connections in phase two of
IKE, we require informational error messages to trigger a reset in phase one. Implementation
was hindered at times by unclear RFC specifications, but this was overcome by manually
comparing packet dumps and Strongswan logs to fix encryption errors.</p>
        <p>Combating Non-determinism. During learning, the server occasionally exhibited
nondeterministic behavior. For this, we implemented two methods of counteracting it. In our first
method, we simply repeat the output query if we observe non-deterministic behavior. In this
case, we select the output that occurs most often. Additionally, using timed waits after each
input also helped to further decrease the number of non-determinism errors. However, learning
still failed occasionally with these mitigation mechanisms for non-deterministic behavior.</p>
        <p>A closer examination of the remaining non-deterministic behavior led to the discovery that
it is caused by so-called retransmissions. Essentially, the IKE specification allows for previous
messages to be retransmitted if deemed useful by the server. A possible trigger could be the
ifnal message of an IKE exchange being skipped/lost. For example, if instead of an AUTH
message, the server receives a phase two IPSEC SA message, the server would not know if it
missed a message or if there was an error on the other party’s side. In this case, the Strongswan
server reacts by retransmitting the previous message, prior to the missing one in an attempt
to signal to the other party, that they should resend the missing message. To counteract this
behavior, we implemented checks in our mapper to allow for the ignoring of retransmissions. If
a repeated message ID is found, it is flagged as a retransmission. With this addition, the IPsec
server behaved deterministically. The downside of this method is that it completely ignores the
retransmissions, which could be a good source of information for fingerprinting diferent IPsec
servers.</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>5. Evaluation</title>
      <p>
        In our evaluation, we used two diferent learning setups to learn a model of the Linux Strongswan
server. The first setup considers retransmitted messages from the server as outputs, whereas the
second setup filters out any retransmitted messages. We included the model with retransmitted
messages in the Appendix A, see Fig. 4. The model without retransmission is shown in Fig. 3.
To enhance the readability of the models, we simplified the depicted models. The complete
models are available as supplementary material [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ].
      </p>
      <p>
        For learning the models, we compared the active automata learning algorithms: * and KV.
Both algorithms use an improved counterexample processing following Rivest and Schapire [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ].
We prefer the usage of KV since it required fewer queries and less time to learn a model. Learning
with KV was about one-fifth faster than * and required less than half the output queries. The
s0
isakmp_sa/ERROR
key_ex_req/ERROR
+/
      </p>
      <sec id="sec-5-1">
        <title>NONE</title>
        <p>s2
auth/
AUTH s3
+/NONE
isakmp_sa/ s1</p>
      </sec>
      <sec id="sec-5-2">
        <title>ISAKMP_SA</title>
        <p>key_ex/ +/NONE
KEY_EX
isakmp_sa/</p>
      </sec>
      <sec id="sec-5-3">
        <title>ISAKMP_SA</title>
        <p>ipsec_sa/</p>
      </sec>
      <sec id="sec-5-4">
        <title>IPSEC_SA</title>
        <p>+/NONE ack/NONE
isakmp_sa/ISAKMP_SA
ack/ERROR
ipsec_sa/</p>
      </sec>
      <sec id="sec-5-5">
        <title>IPSEC_SA</title>
        <p>s4
s5
model with retransmission (Fig. 4) has 13 states, whereas the model without retransmissions
(Fig. 3) has only six states. For readability, we group together several diferent error messages in
the output ERROR. The models also include NONE responses, which were used in cases where
the input misses sensible information to establish an encrypted communication. While observing
the behavior of the server when exposed to completely non-sensible input is interesting from
a security testing standpoint, as all specifications state that the encryption requires a prior
keying procedure, we decided to ignore those few cases. However, for future work in the field
of fuzzing, these edge-cases should be considered as well.</p>
        <p>We state the learning results of learning without retransmissions, since learning was more
reliable in this case. We repeated each experiment five times and averaged the results. KV
required approximately 38 minutes (2296 seconds) to learn, 79 output queries and 60 conformance
tests were performed in 753 and 991 steps respectively. Learning performed four equivalences
queries. The learning results for the other model can be found in the Appendix A.</p>
        <p>Examining both models, especially Fig. 4, we can clearly see the separation between the two
phases of the IKEv1 protocol. Phase one (Main Mode) completes in state 3, and phase two
(Quick Mode) begins right thereafter in state 4. Comparing the models, we see that for the
states 0 to 3 both models are identical. This is likely due to the fact, that most diferences
were caused by retransmissions which only occur in phase two. The model depicted in Fig. 3
shows streamlined behavior that fits our reference IKE exchange (see Fig. 1) almost perfectly.
The clean automaton makes it easy to see, that after a connection has been established, we can
still create new connections or restablish existing ones by sending another IPSEC SA message
and then acknowledging the response.</p>
        <p>The synthesis of a digital twin from the Linux Strongswan server not only provides interesting
insight into the behavioral aspects of the implementation, especially regarding unexpected
retransmitted messages. It also helped to test the general environment that is used to establish a
VPN. A notable finding was the discovery of a very niche bug in a used Python Difie-Hellman
(DH) key exchange library3. The bug was very elusive and only found thanks to the exhaustive
number of packets sent by the learning algorithm. It turns out there was a very niche bug in
the library where, if the most significant byte (MSB) was a zero, it would be omitted from the
response, causing the local result to be one byte shorter than the value calculated by the SUL.
Regardless, it could compromise the security of afected systems and therefore the maintainer
3https://github.com/TOPDapp/py-difie-hellman
of the library has been notified of the problem. Due to the elusive nature of this bug, it would
very likely not have been noticed without the exhaustive communication done by the model
learning process and without seeing the resulting non-deterministic behavior of the SUL due to
the truncated message.</p>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>6. Conclusion</title>
      <p>Summary. We presented an automata learning framework that automates the generation of
a digital twin of a VPN server. More precisely, the learned digital twin represents a behavioral
model of the security-critical key-exchange procedure. We established a learning interface
that enables active interaction with a VPN server. We found that the investigated VPN server
occasionally retransmits previously sent messages, which violated our assumption about
deterministic behavior. To deal with this problem, we adapted the learning interface to filter these
retransmitted messages. With this adaption, we could reliably mine a new digital twin within
less than one hour.</p>
      <p>Discussion. Digital twins should adequately simulate the behavior of their twinned systems.
When mining digital twins this property becomes critical. Compared to passive automata
learning that simply uses given data, active approaches enforce checking behavioral conformance
by testing for behavioral equivalence. Even though this equivalence check is limited by the
exhaustiveness of the applied model-based testing technique, we can at least state that the
system conforms according to the test suite. However, applying active learning techniques
requires the establishment of an interface that enables the interaction with the SUL. Albeit
creating a learning interface for a VPN server was not straightforward, the interface has to be
created only once.</p>
      <p>This paper presented a methodology for learning digital twins of software components. Even
though the twinned system does not represent a physical twin in the classical sense, digital
twins of software systems still have many application areas. First, the learned behavioral model
creates a common understanding of the system. This can be especially useful if access to the
twinned system is limited, e.g., third-party components. Secondly, the model can be used for
further testing and verification purposes. In our case study, already the learning procedure of
the digital twin revealed security issues in the libraries used to establish a secure VPN. Finally,
the twin models can be used to simulate VPN components in a network infrastructure. This can
be useful if we want to simulate diferences in behavior between distinct VPN servers. Instead
of setting up each VPN server individually, the mined models can be used.</p>
      <p>Future Work. In this paper, we discussed how digital twins can be automatically learned
from a black-box system. In future work, we intend to use the digital twin to simulate behavior
of the twinned system so that components in the network can be replaced by their twin model.
In addition, we want to use the twin for model-based verification and testing purposes like
stateful fuzz testing or model checking.</p>
    </sec>
    <sec id="sec-7">
      <title>Acknowledgments</title>
      <p>This work is supported by the LearnTwins project funded by FFG (Österreichische
Forschungsförderungsgesellschaft) under grant 880852, and the “University SAL Labs” initiative of Silicon
Austria Labs (SAL) and its Austrian partner universities for applied fundamental research for
electronic based systems.</p>
      <p>sa_main/INVALID-PAYLOAD-TYPE key_ex_main/INVALID-PAYLOAD-TYPE
authenticate/ISAKMP_AUTH
sa_quick/IPSEC_SA
sa_main/None
authenticate/None</p>
      <p>sa_quick/IPSEC_SA
key_ex_main/IPSEC_SA authenticate/IPSEC_SA
authenticate/IPSEC_SA</p>
      <p>sa_main/IPSEC_SA key_ex_main/IPSEC_SA
ack_quick/None</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>A.</given-names>
            <surname>Feldmann</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Gasser</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Lichtblau</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Pujol</surname>
          </string-name>
          , I. Poese,
          <string-name>
            <given-names>C.</given-names>
            <surname>Dietzel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Wagner</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Wichtlhuber</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Tapiador</surname>
          </string-name>
          ,
          <string-name>
            <given-names>N.</given-names>
            <surname>Vallina-Rodriguez</surname>
          </string-name>
          ,
          <string-name>
            <given-names>O.</given-names>
            <surname>Hohlfeld</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Smaragdakis</surname>
          </string-name>
          ,
          <article-title>A year in lockdown: How the waves of COVID-19 impact internet trafic</article-title>
          ,
          <source>Commun. ACM</source>
          <volume>64</volume>
          (
          <year>2021</year>
          )
          <fpage>101</fpage>
          -
          <lpage>108</lpage>
          . doi:
          <volume>10</volume>
          .1145/3465212.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>A.</given-names>
            <surname>Pferscher</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B. K.</given-names>
            <surname>Aichernig</surname>
          </string-name>
          ,
          <article-title>Fingerprinting Bluetooth Low Energy devices via active automata learning</article-title>
          , in: M.
          <string-name>
            <surname>Huisman</surname>
            ,
            <given-names>C. S.</given-names>
          </string-name>
          <string-name>
            <surname>Pasareanu</surname>
          </string-name>
          , N. Zhan (Eds.),
          <source>Formal Methods - 24th International Symposium, FM</source>
          <year>2021</year>
          ,
          <string-name>
            <given-names>Virtual</given-names>
            <surname>Event</surname>
          </string-name>
          ,
          <source>November 20-26</source>
          ,
          <year>2021</year>
          , Proceedings, volume
          <volume>13047</volume>
          of Lecture Notes in Computer Science, Springer,
          <year>2021</year>
          , pp.
          <fpage>524</fpage>
          -
          <lpage>542</lpage>
          . doi:
          <volume>10</volume>
          . 1007/978-3-
          <fpage>030</fpage>
          -90870-6_
          <fpage>28</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <surname>J. de Ruiter</surname>
          </string-name>
          , E. Poll,
          <article-title>Protocol state fuzzing of TLS implementations</article-title>
          , in: J.
          <string-name>
            <surname>Jung</surname>
          </string-name>
          , T. Holz (Eds.),
          <source>24th USENIX Security Symposium, USENIX Security 15</source>
          ,
          <string-name>
            <surname>Washington</surname>
            ,
            <given-names>D.C.</given-names>
          </string-name>
          , USA,
          <year>August</year>
          12-
          <issue>14</issue>
          ,
          <year>2015</year>
          ,
          <string-name>
            <given-names>USENIX</given-names>
            <surname>Association</surname>
          </string-name>
          ,
          <year>2015</year>
          , pp.
          <fpage>193</fpage>
          -
          <lpage>206</lpage>
          . URL: https://www.usenix.org/ conference/usenixsecurity15/technical-sessions/presentation/de-ruiter.
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>P.</given-names>
            <surname>Fiterau-Brostean</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Lenaerts</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Poll</surname>
          </string-name>
          , J. de Ruiter,
          <string-name>
            <given-names>F. W.</given-names>
            <surname>Vaandrager</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Verleg</surname>
          </string-name>
          ,
          <article-title>Model learning and model checking of SSH implementations</article-title>
          , in: H.
          <string-name>
            <surname>Erdogmus</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          Havelund (Eds.),
          <source>Proceedings of the 24th ACM SIGSOFT International SPIN Symposium on Model Checking of Software</source>
          , Santa Barbara, CA, USA, July
          <volume>10</volume>
          -
          <issue>14</issue>
          ,
          <year>2017</year>
          , ACM,
          <year>2017</year>
          , pp.
          <fpage>142</fpage>
          -
          <lpage>151</lpage>
          . doi:
          <volume>10</volume>
          .1145/3092282.3092289.
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>M.</given-names>
            <surname>Tappler</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B. K.</given-names>
            <surname>Aichernig</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Bloem</surname>
          </string-name>
          ,
          <article-title>Model-based testing IoT communication via active automata learning</article-title>
          ,
          <source>in: 2017 IEEE International Conference on Software Testing, Verification and Validation</source>
          ,
          <string-name>
            <surname>ICST</surname>
          </string-name>
          <year>2017</year>
          , Tokyo, Japan, March
          <volume>13</volume>
          -17,
          <year>2017</year>
          , IEEE Computer Society,
          <year>2017</year>
          , pp.
          <fpage>276</fpage>
          -
          <lpage>287</lpage>
          . doi:
          <volume>10</volume>
          .1109/ICST.
          <year>2017</year>
          .
          <volume>32</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>D.</given-names>
            <surname>Angluin</surname>
          </string-name>
          ,
          <article-title>Learning regular sets from queries and counterexamples</article-title>
          ,
          <source>Information and Computation</source>
          <volume>75</volume>
          (
          <year>1987</year>
          )
          <fpage>87</fpage>
          -
          <lpage>106</lpage>
          . doi:
          <volume>10</volume>
          .1016/
          <fpage>0890</fpage>
          -
          <lpage>5401</lpage>
          (
          <issue>87</issue>
          )
          <fpage>90052</fpage>
          -
          <lpage>6</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>M.</given-names>
            <surname>Shahbaz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Groz</surname>
          </string-name>
          , Inferring Mealy machines, in: A.
          <string-name>
            <surname>Cavalcanti</surname>
          </string-name>
          , D. Dams (Eds.), FM 2009:
          <article-title>Formal Methods</article-title>
          , Second World Congress, Eindhoven,
          <source>The Netherlands, November 2-6</source>
          ,
          <year>2009</year>
          . Proceedings, volume
          <volume>5850</volume>
          of Lecture Notes in Computer Science, Springer,
          <year>2009</year>
          , pp.
          <fpage>207</fpage>
          -
          <lpage>222</lpage>
          . doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>642</fpage>
          -05089-3_
          <fpage>14</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>M. J.</given-names>
            <surname>Kearns</surname>
          </string-name>
          ,
          <string-name>
            <given-names>U. V.</given-names>
            <surname>Vazirani</surname>
          </string-name>
          ,
          <article-title>An Introduction to Computational Learning Theory</article-title>
          , MIT Press,
          <year>1994</year>
          . URL: https://mitpress.mit.edu/books/introduction-computational
          <article-title>-learning-theory.</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>E.</given-names>
            <surname>Barker</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Q.</given-names>
            <surname>Dang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Frankel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Scarfone</surname>
          </string-name>
          ,
          <string-name>
            <given-names>P.</given-names>
            <surname>Wouters</surname>
          </string-name>
          , Guide to IPsec VPNs,
          <year>2020</year>
          . doi:
          <volume>10</volume>
          . 6028/NIST.SP.
          <fpage>800</fpage>
          -
          <lpage>77r1</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>N.</given-names>
            <surname>Ferguson</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Schneier</surname>
          </string-name>
          ,
          <article-title>A cryptographic evaluation of IPsec (</article-title>
          <year>1999</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <surname>C. Kaufman</surname>
            , P. Hofman,
            <given-names>Y.</given-names>
          </string-name>
          <string-name>
            <surname>Nir</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          <string-name>
            <surname>Eronen</surname>
          </string-name>
          , T. Kivinen,
          <source>Internet Key Exchange Protocol Version</source>
          <volume>2</volume>
          (
          <issue>IKEv2</issue>
          ),
          <source>RFC 7298</source>
          , RFC Editor,
          <year>2014</year>
          . URL: https://www.rfc-editor.
          <source>org/rfc/rfc7296. txt.</source>
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>D.</given-names>
            <surname>Harkins</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Carrel</surname>
          </string-name>
          ,
          <article-title>The Internet Key Exchange (IKE), RFC 2409</article-title>
          , RFC Editor,
          <year>1998</year>
          . URL: https://www.rfc-editor.
          <source>org/rfc/rfc2409.txt.</source>
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <surname>A. C.</surname>
          </string-name>
          <article-title>V. GmbH, Connecting the FRITZ!Box with a company's VPN,</article-title>
          <year>2023</year>
          . URL: https: //en.avm.de/service/vpn/connecting
          <article-title>-the-fritzbox-with-a-companys-vpn-ipsec/</article-title>
          , accessed:
          <fpage>2023</fpage>
          -03-03.
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>P.</given-names>
            <surname>Fiterau-Brostean</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Janssen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F. W.</given-names>
            <surname>Vaandrager</surname>
          </string-name>
          ,
          <article-title>Combining model learning and model checking to analyze TCP implementations</article-title>
          , in: S. Chaudhuri,
          <string-name>
            <surname>A</surname>
          </string-name>
          . Farzan (Eds.),
          <source>Computer Aided Verification - 28th International Conference, CAV 2016</source>
          , Toronto, ON, Canada,
          <source>July 17-23</source>
          ,
          <year>2016</year>
          , Proceedings,
          <string-name>
            <surname>Part</surname>
            <given-names>II</given-names>
          </string-name>
          , volume
          <volume>9780</volume>
          of Lecture Notes in Computer Science, Springer,
          <year>2016</year>
          , pp.
          <fpage>454</fpage>
          -
          <lpage>471</lpage>
          . doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>319</fpage>
          -41540-6_
          <fpage>25</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <surname>C. M. Stone</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          <string-name>
            <surname>Chothia</surname>
          </string-name>
          , J. de Ruiter,
          <source>Extending automated protocol state learning for the 802</source>
          .11 4
          <article-title>-way handshake</article-title>
          , in: J.
          <string-name>
            <surname>López</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Zhou</surname>
          </string-name>
          , M. Soriano (Eds.),
          <source>Computer Security - 23rd European Symposium on Research in Computer Security, ESORICS</source>
          <year>2018</year>
          , Barcelona, Spain, September 3-
          <issue>7</issue>
          ,
          <year>2018</year>
          , Proceedings,
          <string-name>
            <surname>Part</surname>
            <given-names>I</given-names>
          </string-name>
          , volume
          <volume>11098</volume>
          of Lecture Notes in Computer Science, Springer,
          <year>2018</year>
          , pp.
          <fpage>325</fpage>
          -
          <lpage>345</lpage>
          . doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>319</fpage>
          -99073-6_
          <fpage>16</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>L.-A.</given-names>
            <surname>Daniel</surname>
          </string-name>
          , E. Poll, J. de Ruiter,
          <article-title>Inferring OpenVPN state machines using protocol state fuzzing</article-title>
          ,
          <source>in: 2018 IEEE European Symposium On Security And Privacy Workshops (Euros&amp;PW)</source>
          , IEEE,
          <year>2018</year>
          , pp.
          <fpage>11</fpage>
          -
          <lpage>19</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <given-names>T.</given-names>
            <surname>Novickis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Poll</surname>
          </string-name>
          ,
          <string-name>
            <given-names>K.</given-names>
            <surname>Altan</surname>
          </string-name>
          ,
          <article-title>Protocol state fuzzing of an OpenVPN, Ph</article-title>
          .D. thesis,
          <source>PhD thesis</source>
          . MS thesis,
          <source>Fac. Sci. Master Kerckhofs Comput. Secur</source>
          ., Radboud Univ,
          <year>2016</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <given-names>J.</given-names>
            <surname>Guo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Gu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Chen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Wei</surname>
          </string-name>
          ,
          <article-title>Model learning and model checking of ipsec implementations for internet of things</article-title>
          ,
          <source>IEEE Access 7</source>
          (
          <year>2019</year>
          )
          <fpage>171322</fpage>
          -
          <lpage>171332</lpage>
          . doi:
          <volume>10</volume>
          .1109/ACCESS.
          <year>2019</year>
          .
          <volume>2956062</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <given-names>E.</given-names>
            <surname>Muskardin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B. K.</given-names>
            <surname>Aichernig</surname>
          </string-name>
          ,
          <string-name>
            <surname>I. Pill</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Pferscher</surname>
          </string-name>
          , M. Tappler,
          <article-title>AALpy: an active automata learning library</article-title>
          ,
          <source>Innov. Syst. Softw. Eng</source>
          .
          <volume>18</volume>
          (
          <year>2022</year>
          )
          <fpage>417</fpage>
          -
          <lpage>426</lpage>
          . doi:
          <volume>10</volume>
          .1007/ s11334-022-00449-3.
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <surname>R. R. S</surname>
          </string-name>
          ,
          <string-name>
            <surname>R. R</surname>
          </string-name>
          , M. Moharir,
          <string-name>
            <surname>S. G</surname>
          </string-name>
          , Scapy
          <article-title>- a powerful interactive packet manipulation program</article-title>
          ,
          <source>in: 2018 International Conference on Networking, Embedded and Wireless Systems (ICNEWS)</source>
          ,
          <year>2018</year>
          , pp.
          <fpage>1</fpage>
          -
          <lpage>5</lpage>
          . doi:
          <volume>10</volume>
          .1109/ICNEWS.
          <year>2018</year>
          .
          <volume>8903954</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <given-names>R. L.</given-names>
            <surname>Rivest</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R. E.</given-names>
            <surname>Schapire</surname>
          </string-name>
          ,
          <article-title>Inference of finite automata using homing sequences</article-title>
          ,
          <source>Inf. Comput</source>
          .
          <volume>103</volume>
          (
          <year>1993</year>
          )
          <fpage>299</fpage>
          -
          <lpage>347</lpage>
          . doi:
          <volume>10</volume>
          .1006/inco.
          <year>1993</year>
          .
          <volume>1021</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <given-names>A.</given-names>
            <surname>Pferscher</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B. K.</given-names>
            <surname>Aichernig</surname>
          </string-name>
          ,
          <article-title>Stateful black-box fuzzing of Bluetooth devices using automata learning</article-title>
          , in: J. V.
          <string-name>
            <surname>Deshmukh</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          <string-name>
            <surname>Havelund</surname>
          </string-name>
          , I. Perez (Eds.),
          <source>NASA Formal Methods - 14th International Symposium, NFM</source>
          <year>2022</year>
          , Pasadena, CA, USA, May
          <volume>24</volume>
          -27,
          <year>2022</year>
          , Proceedings, volume
          <volume>13260</volume>
          of Lecture Notes in Computer Science, Springer,
          <year>2022</year>
          , pp.
          <fpage>373</fpage>
          -
          <lpage>392</lpage>
          . doi:
          <volume>10</volume>
          .1007/978-3-
          <fpage>031</fpage>
          -06773-0_
          <fpage>20</fpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <given-names>A.</given-names>
            <surname>Pferscher</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Wunderling</surname>
          </string-name>
          ,
          <article-title>Supplemental material “Mining Digital Twins of a VPN Server”</article-title>
          ,
          <year>2023</year>
          . doi:
          <volume>10</volume>
          .6084/m9.figshare.
          <volume>21953222</volume>
          .v1, accessed:
          <fpage>2023</fpage>
          -01-25.
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>