Download as pdf or txt
Download as pdf or txt
You are on page 1of 23

Nonlinear Dyn (2020) 99:3065–3087

https://doi.org/10.1007/s11071-020-05463-3

ORIGINAL PAPER

An authentication protocol based on chaos and zero


knowledge proof
Will Major · William J. Buchanan ·
Jawad Ahmad

Received: 11 July 2019 / Accepted: 1 January 2020 / Published online: 21 January 2020
© The Author(s) 2020

Abstract Port Knocking is a method for authenti- servers, furthering a defence-in-depth approach, and
cating clients through a closed stance firewall, and can conceal the presence of services. It is suited to
authorising their requested actions, enabling severs to defending against attacks directed at servers, ranging
offer services to authenticated clients, without open- from automatic scanning, as part of attack-chain recon-
ing ports on the firewall. Advances in port knocking naissance, to precisely targeted zero-day exploitation.
have resulted in an increase in complexity in design, Port knocking solutions have progressed and changed
preventing port knocking solutions from realising their dramatically, since their conception as a simple tool
potential. This paper proposes a novel port knocking for opening firewall ports. Many modern port knocking
solution, named Crucible, which is a secure method implementations have accumulated layers of complex-
of authentication, with high usability and features of ity in the process of removing specific vulnerabilities
stealth, allowing servers and services to remain hid- from their predecessors. This complexity issue is fur-
den and protected. Crucible is a stateless solution, only ther exacerbated by components in port knocking that
requiring the client memorise a command, the server’s are mutually incompatible: replay protection can result
IP and a chosen password. The solution is forwarded as in desynchronisation problems, and interactive authen-
a method for protecting servers against attacks ranging tication requires the server to forgo its ‘silent’ role. To
from port scans, to zero-day exploitation. To act as a combat this, many modern port knocking implemen-
random oracle for both client and server, cryptographic tations in academic literature take an ad-hoc approach
hashes were generated through chaotic systems. to fixing existing vulnerabilities without considering
a holistic viewpoint, nor the minimalist lineage upon
Keywords ZKP · Chaos hash · Port knocking · which port knocking was founded.
Random beacons · Attack model Port knocking can be considered a stealthy method
of authentication and command execution, allowing a
covert channel to exist between a client and server,
1 Introduction across an untrusted network such as the Internet. When
implemented properly, port knocking should be diffi-
Port knocking, if integrated into a security environ- cult to discover through passive surveillance of net-
ment, can offer an additional layer of authentication for work traffic, or active reconnaissance of the server.
Port knocking allows a server to conceal not only its
W. Major · W. J. Buchanan (B)· J. Ahmad
individual services, but also its role as a server. Num-
Blockpass ID Lab, Edinburgh Napier University,
Edinburgh, UK bers Stations are a Cold War era covert channel using
e-mail: w.buchanan@napier.ac.uk radio broadcasts of spoken number values (amongst

123
3066 W. Major et al.

other methods), suspected to communicate with intel- 2 Related work


ligence assets in the field [1]. In modern day computing,
Meltdown [2] and Spectre [3] are examples of serious Port knocking allows authentication to a host without
vulnerabilities enabling covert channels for exfiltrating requiring open ports, and without requiring modifica-
data from a victim’s machine. tion of the underlying protocol [4]. Furthermore, the
Port knocking can simply be described as a means presence of port knocking can be difficult to detect
for communicating with a machine that is protected by by sniffing traffic, and almost impossible to detect by
a closed stance firewall. This entails a client machine, probing a server [5]. By making services ‘invisible’, a
operated by a user, sending a message—or knock—to a machine’s function as a server can be hidden from an
firewall. The firewall in this instance will be referred to attacker [6], offering a level of anonymity. Port knock-
as the server, for its role in receiving the knock, and the ing disrupts attacker reconnaissance by denying fin-
subsequently authorised actions it performs. This ter- gerprinting efforts against open ports. This prevents
minology further aims to clarify in situations involv- automated and manual scanning efforts, and reduces
ing multiple intermediaries (such as additional fire- “malicious information gathering capabilities” [7]. In
walls) between client and server. The networks across the same vein, vulnerability scanning and discovery
which this transaction can take place could be local, or, are impeded, and thus port knocking can be consid-
as is the common use case, remote. Port knocking is ered one of the few non-reactive defences against zero-
by design aimed at operating over untrusted networks, day attacks [8]. In this manner, port knocking can pro-
such as the Internet, wherein malicious actors of vary- vide protection for legacy and proprietary services with
ing capabilities aim to subvert security measures. Port “insufficient integrated security”, or for services with
knocking methods generally use cryptographic prim- “known unpatched vulnerabilities” [9]. Port knock-
itives such as hash and encryption functions. In the ing also provides an additional layer of security and
proposed port knocking method, we have utilised the authentication, that any malicious actors must over-
Chirkov standard map and absolute chaotic map for come before attacking the hidden service itself [7,9].
the hash that ensures the output knock is different for Port knocking can incur load and performance loss
each session. Additionally, the chaos-based hash func- on networks and systems [5], the latter applying an
tion provides a lightweight secure solution and as a overhead for each connection [4]. In addition, a num-
result, the proposed scheme will not require third-party ber of ports may need to be “allocated for exclusive use
libraries. Moreover, chaos-based port knocking scheme by port knocking” [10]. Port knocking implementations
will have a number of properties such as sensitivity may require user training [4] and client systems need to
to initial conditions, non-periodicity, ergodicity, and implement port knocking, which may require mainte-
attack complexity which strengthen the port knocking nance of dedicated remote client software [7]. Authen-
scheme. tication in port knocking is largely facilitated through
This paper offers three novel port knocking proto- pre-shared keys (or other secrets), meaning secure key
types: zero knowledge proofs and chaos-based cryp- distribution and management become requirements.
tography; a combination of chaos-based cryptography Port knocking also adds an additional layer of com-
and random beacons; and ‘Crucible’ which is com- plexity into the protection of assets [7], and another
bines random beacons and password-based key deriva- attack vector to defend against. The fail-closed stance
tion. Replay protection and NAT compatibility are con- of port knocking may result in inaccessibility of ser-
sidered significant issues in port knocking technology. vices, should the authentication mechanism fail on the
This paper proposes novel approaches for dealing with server [4,10]. Such a failure in this mechanism could
these problems. render the server “unreachable or more easily compro-
The rest of the paper is organised as follows. Related mised” [7].
work is discussed in Sect. 2. Section 3 discusses design
and the proposed methodology. Experimental results
are presented in Sect. 4. The proposed method is eval- 2.1 Mechanics and architecture
uated in Sect. 5. Research findings are concluded in
Sect. 6. One of the main differentials when considering port
knocking solutions is the number of packets that are

123
An authentication protocol based on chaos 3067

required to authenticate the client with the server. Tra- 2.3 Multi-party and multi-channel involvement
ditional port knocking solutions sent a series of packets
(each knock) across the Internet, where the authenticat- More recently, port knocking solutions have been
ing data would be communicated via this collection of forwarded that eschew the traditional client-server
knocks, known as a knock sequence. More recently, dynamic, and opt to include additional parties in the
a single packet has been used to wholly and atomi- protocol. Srivastava et al. [5] sends the client crypto-
cally send authenticating data to the server, in a single graphic information, including a one time key, and a
knock, giving rise to the term “Single Packet Autho- random number, via an out of band, dedicated SMS
risation” [11]. Srivastava et al. [5] raises an immedi- channel. The random number is used to generate a
ate problem with using multiple packets to authenti- client-spoofed IP, for preventing client identification by
cate, in that network and routing issues between the a listening attacker. The one time key is used to encrypt
server and the client, such as latency (from conges- the client’s authenticating data, which is then sent as a
tion [7]) or packet drops, will cause the authenticating port knock to the server. As each knock attempted in
packets to arrive out-of-order. If the knock sequence this way is unique, protection against replay attacks
doesn’t match the server’s expectations, the client likely is provided, with the added bonus of making the port
won’t be authenticated. Sel [12] offers a solution to this knocking traffic difficult for an attacker to identify.
problem by including a sequence number within each Liew et al. [16] use a similar approach, where SMS is
knock’s authenticating data, allowing the knocks to be instead used to deliver information from which IPSec
reassembled after they are received. tunnel keys are derived, and used to setup a secure
channel between the client and server. Popeea et al.
[4] enforce time synchronisation between client and
server by having them issue NTP requests ahead of a
2.2 Non-interactive or interactive server knock, and on startup, respectively. Maintaining accu-
rate timing allows the time-based authentication to be
While traditionally communications in a port knock- more granular, reducing the window of opportunity for
ing implementation would be limited to unidirectional replay attacks.
client to server messaging, some modern variations
conversely include server to client communication.
This could also be described as unilateral or bilat-
eral communication. Sel [13] for example, use client
server conversations to negotiate a session key, which
is then used to authenticate application data after port 2.4 Replay protection
knocking has concluded. Tiwari [14] includes a lengthy
discussion on this topic. Incorporating challenge and A port knock authenticates the client to a server, typ-
response mechanisms into port knocking can be seen ically by proving the client possesses a secret, such
to enable fresh authentication, whereby random chal- as a key or password. In proving this over the wire,
lenges are used to prove the identity of a peer. Sel [12] encryption or hashing are employed to prevent eaves-
also reiterates the advantages of interaction in provid- droppers from learning the secret. An adversary lis-
ing freshness. This approach avoids the drawbacks of tening to communications between the knocking client
other solutions for replay protection, such as requir- and listening server could record a knock and replay it
ing time or state-based synchronisation, as is discussed back to the server in order to repeat its intended effect.
further in Sect. 2.4. Al-Bahadili and Hadi [15] imple- Such attacks have been cited as the main vulnerabil-
ment such a solution, where as proof of identity, the ity affecting basic port knocking implementations [7].
client is sent an encrypted random number, which it These attacks are prevented by ensuring that each time
must decrypt and return, to prove it possesses the asso- a port knock is executed, the authenticating data are
ciated pre-shared key, thus authenticating the client. unique, or fresh, and further ensuring that an attacker
The authors describe this method as mutual authenti- is unable to generate a fresh knock. Many of the tech-
cation, though it is unclear exactly how the server is niques used to achieve freshness carry similarities with
authenticated to the client. one time password (OTP) protocols [17].

123
3068 W. Major et al.

3 Design and methodology knowledge is made by the prover, examples of this are
seen in the previous review of port knocking mechan-
3.1 Zero knowledge ics: preimage resistance of a cryptographic hash could
imply proof of knowledge of the digested secret, proof
A zero knowledge proof (ZKP) is a cryptographic pro- of decryption could be considered proof of knowledge
tocol allowing one to prove they posses information to a of the decryption key. Related is the concept of proof of
verifying party, without revealing any of the underlying identity, where a “person’s identity can be linked to his
information itself [18]. Alternatively defined by [19], ability to do something and in particular to his ability
a ZKP shows “a statement to be true without revealing to prove knowledge of some sort” [20]. Identification is
anything other than the veracity of the statement to be a natural application for proofs of knowledge [23] and
proven”. as such, a proof of knowledge protocol can be used to
As a real-world example (modified from [20]), to authenticate [24]. For example, a user could prove they
prove someone could distinguish between two differ- know a password, without revealing any information
ent types of wine, a number of blind-tests could be about the password itself, to any parties privy to the
performed until the claim was proven or refuted. If conversation.
the claimant identified the wine correctly each time,
the verifier can be reasonably sure of the claimant’s
distinguishing ability, without themselves learning the 3.1.1 Identification protocols
difference between the vintages. In a similar vein, if
after being repeatedly being sent into the labyrinth as a To harness the capabilities of zero knowledge proofs
sacrificial offering for the Minotaur, a single Athenian for the client (or prover) authenticating with the port
continued to escape, one could be reasonably certain knocking server, an identification protocol sets out the
the citizen knew how to escape, though one would not framework for what is required of each party, how
be able to discern the citizen’s method. These are not values are calculated and which values are sent as
perfect examples, but demonstrate the general idea. messages. Identification protocols based around zero
Zero knowledge proofs harness difficult mathemat- knowledge proofs are examined in depth in [18] and
ical problems to provide security against information [22], both works explore the protocols of Feige-Fiat-
leakage from the proof—the ‘zero knowledge’ prop- Shamir, Guillou-Quisquater and Schnorr:
erty. These difficult mathematical problems can be
seen in RSA, for large integer factorisation, and Diffie- – Feige-Fiat-Shamir The protocol uses the difficulty
Hellman, relating to the discrete logarithm problem. of extracting square roots modulo a large compos-
One-way (or trapdoor) functions are the embodiment ite integer [22]. FFS requires a variable number of
of these mathematical problems, a function that is rel- rounds (depending on desired security level), each
atively easy to compute, but computationally infea- requiring 3 messages [18].
sible to reverse [21], also referred to as a quality of – Guillou-Quisquater GQ uses the difficulty of extract-
intractability. ing roots of a higher order [22]. GQ can be run in
Zero knowledge protocols are classically “instances multiple rounds, or a single, and uses 3 messages
of interactive proof systems, wherein a prover and a per round [18]. GQ, at the cost of greater compu-
verifier exchange multiple messages (challenges and tation than FSS, minimises the number of interac-
responses)” [22], though there are a subset of ZKP tions required, and is comprised of short, simple
where this interactivity is removed, reducing the num- mathematical mechanics [18].
ber of rounds needed to establish and verify the proof. – Schnorr The Schnorr Identification Scheme har-
These ‘rounds’ are akin to each wine tasting, or nesses the difficulty of computing discrete logs in a
labyrinth escape, in the previous examples. A non- prime field [22]. Like GQ, Schnorr’s solution uses
interactive zero knowledge proof (NIZKP) allows the simple mechanics (shown in Protocol 1, please see
prover to publish a proof, in a single communication, Appendix). The protocol uses 3 messages and one
that can be openly verified by anyone [18]. round [22]. Schnorr’s has relatively low computa-
In the ‘proof’ component of a ZKP, the prover asserts tional complexity and supports precomputation of
a verifiable claim. One such strategy is where a proof of some values [25].

123
An authentication protocol based on chaos 3069

Table 1 Table comparing chaotic and cryptographic properties, modified from [27]
Chaotic property Cryptographic property Description

Ergodicity Confusion The output has the same


distribution for any input
Sensitivity to initial conditions/ control parameter Diffusion from a small change in A small input deviation can largely
plaintext/key change the output
Mixing property Diffusion from a single plaintext A small local deviation can largely
block change the whole space
Deterministic dynamics Deterministic pseudo-randomness A deterministic process can cause
a random-like behaviour
Structure complexity Algorithmic complexity A simple algorithm has a very high
complexity

The design goal of using only a single packet for 3.2 Chaos
authentication in the port knocking solution is at odds
with the interactivity of the three identification pro- Alvarez and Li [27] draws exact links between proper-
tocols; specifically each requires (at least) three mes- ties of chaotic and cryptographic systems. As seen in
sages. Mao [24] also notes “a large number of inter- Table 1, Shannon’s descriptions of simple operations,
actions means a poor performance in both communi- of sensitivity to initial variable changes, and of a com-
cation and in computation”. Thankfully, a solution to plex output, for strong cryptographic primitives, largely
this problem is outlined in RFC 8235: “Schnorr Non- correspond with behaviours in chaotic systems. The
interactive Zero Knowledge Proof” [26]. This RFC will process for mixing pastry dough used as a metaphor by
form the reference basis for the remainder of this sec- Shannon and Hopf actually forms the basis of a well
tion. studied chaotic system, known as the Baker’s map [28].
To help illustrate the key terms in Table 1, the fol-
3.1.2 RFC 8235 lowing definitions are included:
– diffusion: the spreading out of the influence of the
The Fiat-Shamir Transformation is a method for trans-
function input over many bits of the function out-
forming a three-message zero knowledge proof of iden-
put [29]. For example, a single plaintext bit being
tity into a single message equivalent protocol. This is
distributed over the ciphertext output.
achieved by introducing a cryptographic hash of par-
– confusion: the use of transformations to obscure the
ticular variables, in lieu of the random challenge that
statistical dependencies between function input and
is issued by the verifier (message 2). As outlined in
output [29]
the RFC, this can be used to convert Schnorr’s scheme
into a non-interactive zero knowledge proof, as seen in Lastly, it is important to clarify between some of the
Protocol 2. key terms introduced, particularly to delineate between
the concepts of chaos and randomness. Truly random
3.1.3 Discussion behaviour is non-deterministic, even if a random sys-
tem is fully understood, predicting its outcome at a
Protocol 2 (please see Appendix) will be harnessed as a given future state is impossible [30]. Chaotic behaviour,
method for authentication, used during prototyping in in comparison, is deterministic, and every future state
the following subsection. Considering its actions as a in the system is determined by its prior initialisation
black-box, where randomness, a private key and shared [30]. In applied cryptography, both pseudo-random
parameters are input, the result is a proof which will be and chaotic systems are deterministic, and used for
sent over the wire to be received and validated by the their qualities of being computationally unpredictable,
port knocking server. The protocol requires a secure meaning that guessing the previous state of the system
cryptographic hash and this will form the discussion in (e.g., the inputs to a cryptographic primitive) is com-
the following section. putationally infeasible [29,30]. This is similar to how

123
3070 W. Major et al.

hard mathematical problems were used to hide secret – Second-Preimage Resistance - given a message M1 ,
information in zero knowledge proofs. with hash value H (M1 ), an attacker should never
be able to find M2 such that H (M1 ) = H (M2 ) [33].
3.2.1 Chaotic systems – Collision Resistance - it should be computationally
infeasible to find two (or more) different messages
Chaotic systems are often result from mathematical that hash to the same value [33].
functions, or maps, such as the Ikeda map and the Returning to the components being researched for
Chirikov standard map. Mathematically, Chirikov stan- prototyping, a secure cryptographic hash function
dard map is written as: is required for use in Schnorr’s NIZKP. From the
 design goals, this ideally will be lightweight, sim-
pn+1 = pn + K sin θn mod 2π ple, and should not require the use of third-party
(1)
θn+1 = θn + pn+1 mod 2π libraries.

where K is control parameter, pn and θn are real val- 3.2.3 Absolute-value chaotic hash function
ues between (0, 2π ). Each increment of n reflects an
iteration of the map, much like how a hash function or The chaotic hash function proposed by [35] forms the
ZKP uses a number of rounds [29]. The map represents reference basis for the remainder of this section. This
a dynamical mechanical system, where the dimensions implementation of a chaos-based hash function was
θ and p are used practically to represent position and chosen for a number of reasons:
momentum, though the important note here is that vari-
ables take on new values, on each iteration of the map, – The chaotic map and design of the function is
resulting in a new θ p-coordinate. The constant coeffi- simple, using mostly basic mathematics, and the
cient K influences the degree of chaos exhibited by the authors have provided pseudo-code of the algo-
map. rithms involved.
– The authors have evaluated the hash using both
chaotic metrics, and metrics required of secure
3.2.2 Chaos-based cryptographic hashes
cryptographic hashes. This includes:
Chaotic cryptography is an active research area, pro- – Assurance that sensitivity to initial conditions
ducing real-world applications including cryptographic is reflected in the hashing process.
primitives such as pseudo-random number genera- – Statistical analysis of confusion, diffusion.
tors (PRNG), encryption systems (both symmetric and – Comparative testing of the statistical analysis
asymmetric), and hash functions [31]. Chaotic maps against other hash functions, including other
and hash functions have similar characteristics [32], as proposed chaotic hash functions, and against
explored previously in Table 1, and a number of cryp- popular hash functions MD5 and SHA-1.
tographic hash functions have been created harnessing
The hash function is keyed, meaning it falls into a
chaotic systems.
category of cryptographic hashes that require a key and
For a formal definition, a hash function takes a mes-
a message to produce the digest output. Like regular
sage input, of arbitrary length, and calculates a fixed
hashes, keyed variants can ensure the integrity of a mes-
length output, known as the hash value, or a digest.
sage, though this is extended further to provide authen-
This value is used to identify the input, acting as a
tication (by use of a key) for the message. In Ref. [36],
fingerprint. There are a number of required properties
authors have utilised chaotic map, i.e., Chebyshev for
for a hash function to be considered cryptographically
broadcast authentication and chaos-based hashing. All
secure, including:
broadcast messages were authenticated via chaos maps.
– Preimage Resistance—given a random hash value, A keyed hash has two main requirements to be cryp-
an attacker should never be able to find the preimage tographically secure [34]: an attacker must not be able
associated with the value [33]. This is why hash to forge a valid digest from a message without the key,
functions are considered as one-way functions—a and secondly an attacker must not be able to recover
message cannot be derived from a digest [34]. the key from message digests [34]. The hash function

123
An authentication protocol based on chaos 3071

3.3 Random beacons

As discussed in Sect. 2.4, unique knock values are


required to prevent an attacker re-sending a previous
knock, to replay a previously authorised action. As port
knocking solutions typically use cryptographic primi-
tives such as hash and encryption functions, a random
number is often added to the functions’ inputs, ensuring
that the output knock value is different for each session.
This random value can be derived from methods such
as iterative hashing, synchronised time clocks, or using
counters. These methods require that both client and
server have a way of reaching the same random value,
i.e., it is shared between the two. Schnorr’s NIZKP, as
explored in Sect. 3.1.2 does not suffer this problem:
the random value is client generated, and included in
Fig. 1 Plot of Bifurcation diagram showing the chaotic region each knock, and checked by the server on arrival. Set-
for α parameter ting Schnorr’s NIZKP aside for now, the design goals
explicitly prevent using client state, so an alternative
replay prevention mechanism is desired.
harnesses use of an absolute-value chaotic map given Rabin [37] introduced the idea of a random beacon,
by: an online security service emitting a random integer at
regular intervals, for public consumption, with appli-
xn+1 = 1 − AB S(αxn ) (2) cations in cryptographic protocols requiring trusted,
shared random number access. To introduce notation,
Equation 2 produces a series of values that chaot- the beacon broadcasts a nonce value (a number used
ically vary when α is chosen to reside in the interval once), to any satellite clients, who optionally may fur-
1 < α < 2. The bifurcation diagram shown in Fig. 1 ther process the broadcast through extractor functions.
highlights the range of α which can be used as a key Formally, a list of requirements for a beacon service is
parameter for chaotic region. From Fig. 1, it is clear provided by [38]:
why one should use the interval 1 < α < 2 when ran- – unpredictable: an adversary should not be able to
dom data is required. The authors’ provided pseudo- predict any information about the nonce prior to its
code outlines how this chaotic map is converted into broadcast
a hash function, which is summarised in Protocol 3 – unbiased: the nonce should be statistically close to
(please see Appendix). uniform, random information
– universally sampleable: any satellite client should
be able to harvest (or extract) the nonce
3.2.4 Discussion
– universally verifiable: the beacon can be verified to
be unknown to any party prior to its broadcast
To convert Schnorr’s Identification Protocol (Protocol
1, please see Appendix) into a non-interactive zero
knowledge proof, a hash function is required, to act 3.3.1 Sources of randomness
as a random oracle for both client and server. Schnorr’s
NIZKP, in Protocol 2, now has its required hash func- A number of solutions are present in the literature for
tion. Using only mathematical operations, this hash random beacons. Jiwa et al. [39] suggests that Net-
function should require few library imports, and there- work Time Protocol (NTP) can be used as a beacon.
fore should be fairly platform agnostic. It’s keyed mode As an example, the hash of an NTP received time-
of operation will be further used to authenticate mes- stamp (within a safe margin of precision) could pro-
sages from client to server. duce a pseudo-random nonce. This is similar to the port

123
3072 W. Major et al.

knocking implementation explored in Sect. 2.4, where evaluated in a fashion that reduces the likelihood of
clock synchronisation can be considered a shared state tampering. Some of the methods used to tackle dishon-
between client and server. Again, to avoid synchroni- est beacons include:
sation issues between port knocking client and server,
per the design goals, this is not an applicable solution XOR nonces [43]: in this solution each beacon ser-
for the prototype. Furthermore the time-measurements vice is polled, and the resulting nonces are XOR’ed
issued by an NTP service are likely unverifiable. together. If the beacon sources are incapable of
Clark and Hengartner [40] propose using the price influencing each other (perhaps they can’t witness
of publicly listed financial instruments, taken at closing each other’s broadcasts), then this method does
time, as a source of random data. The authors note this reduce the effectiveness of tampering, by making
approach has previously been used in cases including the outcome more unpredictable. However, if the
committee nomination, proof of work cryptographic beacons are capable of influencing each other, the
puzzles, and in two public elections within North Amer- authors note that the last beacon to be polled could
ica. The proposed solution collects closing prices from calculate the penultimate XOR result and alter its
a number of stocks and uses a extractor function (with broadcast accordingly to influence the final out-
elements of a PRNG) to harvest quantifiable entropy come. In such a scenario, the solution is ineffective
results from the financial beacons. Lee et al. [41] also and redundant.
provide an implementation using stock indices as ran-
Round-robin nonces [43]: this solution (also dis-
dom beacons. Their paper details considerations on par-
cussed in [44]) simply rotates which sources are
ticular stocks to harvest, which exchanges to use and
used by using each beacon for a fixed time-period,
associated timezone factors. Both papers note that there
before moving onto the next. Unpredicability of
are historic examples of price manipulation in financial
the outcome is proportional to the ratio of dishon-
markets, a method by which the security of the ran-
est beacons in the pool, meaning if at least one
dom beacon could be adversely affected by a malicious
beacon is honest, then the round-robin approach
actor. Such a scenario would constitute a breach of the
does indeed makes the overall outcome more unpre-
unpredictability property of the random beacon. Lee
dictable. Unfortunately, this would require a shared
et al. [41] suggest a greater problem may be posed by
state between the client and server, namely the posi-
trusting the price reporting website (e.g., Bloomberg)
tion of the round, disagreeing with the design goals.
to accurately reflect market values. Bonneau et al. [38]
highlights that limited market opening hours will result
in lack of beacon availability. Hashing nonces [43]: the collection of nonces from
Lenstra and Wesolowski [42] discusses the newly different beacons could be hashed in some manner,
introduced NIST random beacon, a public service pro- the authors suggest that a hash of the concatenation
viding a 512-bit nonce, every minute, of true-random of each nonce could be taken. The authors then
data, generated using “quantum mechanical phenom- argue, an adversary with a large amount of com-
ena”. This sounds ideally suited for the purpose, how- puting power at their disposal could use bruteforce
ever, the authors note that while the service is exten- techniques to find preimages of the hash function
sively documented, there is no assurance to consumers with certain qualities (e.g., H (m) starts with ’00’)
that the numbers are generated as advertised. Simply resulting in the compromise of the other nonces in
put, again, the beacon is unverifiable. Bonneau et al. the pool. For these reasons, hashing nonces is con-
[38] treats NIST’s reputation as a trusted party in this sidered by the authors as equal or less secure than
context with a heavy dose of scepticism, alluding to the XOR strategy.
the discovery of a backdoor in the NIST-published Delayed evaluation [45]: as discussed previously,
Dual_EC_DRBG cryptographic standard. a dishonest beacon can alter its nonce in an attempt
Relating back to the beacon requirements, these to influence the other nonces it is combined with, to
solutions are all predominantly unverifiable, and as a try and influence the final outcome. Variable delay
result, can’t be provably unpredictable, a desired qual- functions (VDF) are processes designed to strate-
ity. To address this problem, a number of different bea- gically slow down calculation of some task, and
cons can be used, where their results are combined or hence can be used to slow down the process of

123
An authentication protocol based on chaos 3073

evaluating the pool of nonces. If for example, two hash digest must begin with a number of zeroes—a
independent beacons publish nonces in an hourly task requiring millions of hash calculations. If mul-
window, the delay function could be set to pro- tiple chains are broadcast to the Bitcoin network the
long the time it takes to combine these nonces. If longest is chosen, meaning it has been created with the
the delay was set to a long enough period, neither most work, and therefore is the consensus reached by
beacon would have the time to derive a malicious the mining community. This ensures that in order to
nonce, before the hourly window had transpired tamper with the blockchain, an attacker would require
and new nonce values were expected to be broad- computational power surpassing the rest of the mining
cast. Lenstra and Wesolowski [42] contains further community [46].
discussion on VDFs and their applications. The chosen random beacon for the prototype is taken
from [38], which forms the reference source for the
These anti-tampering methods provide options for
remainder of this section. The paper proposes that the
combining multiple random beacons, where the issue
random values resulting from proof of work compu-
with trusting an single-source provider of random data
tations in the Bitcoin network make each new block
appears to largely concern how predictability can be
mined on the network a suitable random beacon (please
avoided, given that solutions are largely unverifiable,
see Protocol 4, Appendix).
and could be tampered with. The proceeding section
covers the random beacon chosen for the prototype,
that is transparent, distributed, an accordingly conveys 4 Experimentation
a higher degree of trust. It is worth noting however, that
preferably if the literature had provided a suitable alter- 4.1 Prototype I: ZKP and chaos
native, applicable to the design goals for the prototype,
the combination of multiple random beacons would be The first prototype introduced here combines the work
the preferred option, as discussed in the evaluation. of Schnorr’s Non-Interactive Zero Knowledge Proof
(NIZKP) and the Chaos-based Keyed Hash Function,
3.3.2 Bitcoin random beacon from 3.1 to 3.2 in the preceding subsection. Prototype
I will display a large amount of the general structure
Blockchains are distributed, immutable ledgers of ahead of its successors.
transactions used to record and authenticate activi-
ties of involved parties. Bitcoin is one such instance 4.1.1 Setup
of blockchain technology known as a cryptocurrency,
offering openly decentralised, self-governed currency The setup of a client and server is the only out-of-band
transactions, backed by secure cryptographic proto- process, used to derive the secrets and configurations
cols. Bitcoin transactions are collected into blocks, required for port knocking operations. The subroutine
where within each block a Merkle Root is calculated achieving this produces a profile JSON file each for
and recorded in the block header. The Merkle Root client and server, housing cryptograhic parameters and
involves hashing each transaction in the block in a configuration settings. The profile contents include:
manner that ensures that the entire contents of the
– Schnorr NIZKP parameters (refer to Sect. 3.1.2)
block, including its ordering, is recorded to protect the
integrity of the block’s contents. Once a block is filled – Group parameters p, q, g are generated using
with transactions, the hash of the previous block on the a call to the openssl library. Specifically this
chain is added into its header, forming the ‘chain’ of uses the dsaparam module, to generate DSA
collections of transactions, where each link ensures the parameters, which are applicable for the NIZKP
integrity of its predecessor [46]. as outlined in [26]. DSA key-length is set to
The job of calculating the latest block on the chain 2048-bit.
is tasked to miners, who are rewarded with Bitcoin – Private key a is randomly selected from the
currency for their efforts. Alongside the aforemen- range [0, q − 1] and is used to derive public
tioned hashing calculations, miners must also solve a key A ≡ g a . Note: the only difference between
proof of work puzzle for each new block—the block’s the client and server profiles generated is the

123
3074 W. Major et al.

absence of a in the server profile, as the ZKP 4.1.3 Client actions


proves knowledge of a.
– 8-bit command ID - for future development to In Schnorr’s NIZKP, a hash is taken of the public key A,
support multiple commands under a single pro- the random walk V ≡ g v , where v is randomly gener-
file. In the original protocol, these were refered ated by the client, and other, non-essential parameters.
to as UserID, and OtherInfo. The resulting digest c, accompanied by r ≡ v − ac,
form the proof of knowledge, or knock in this case, as
– Private hash key: a float number in the range
the pair of concatenated values c||r , that are then trans-
(−1, 1), with 256-bit precision, for an associated
mitted to the port knocking server in the payload of a
256-bit keyspace. Implemented using the mpmath
UDP datagram.
3rd-party Python library.
UDP was chosen as the transport protocol for send-
– Server port number: randomly generated during
ing the values, as TCP connection-based overhead and
setup, and fixed throughout all exchanges.
interactivity were not deemed necessary nor applica-
– Command: user specified shell command to run
ble, respectively, to minimalist design goals. ICMP
upon successful client authentication.
traffic could be an alternative, though nothing was
On a modern laptop, generation of the profiles was found in the literature to support this approach, whereas
near instantaneous, and each was sized at 3KB. The [12,47,48] provide justifications for choosing UDP.
profiles should be securely transferred and housed on Python’s native socket library was used to send the
the client and server machines. knock packet, where the server IP and destination port
values are both taken from the client profile, the for-
mer being user input from stdin, and the latter being
4.1.2 Chaos-based hash function randomly generated.

The hash digest length was increased to 256-bit, as 4.1.4 Server actions
was required by RFC 8235 [26] for compatability with
the NIZKP: “The bit length of the hash output should The server parses traffic using scapy, a 3rd-party
be at least equal to that of the order q of the consid- Python library that provides an interface to lower-level
ered subgroup.” This level of precision necessitated libpcap functionality. The open-source libpcap
that the mpmath library be used, above the standard library for network traffic capture operates on Linux
float data types that ship with Python. The horsepower systems, allowing packets to be inspected before fire-
required to manage calculations with these floats, with wall rules [7], and is “amongst the most widely used
up to log(2256 )/log(10) ≈ 78 decimal places, had a [APIs] for network packet capture”. Scapy is used to
dramatic affect on the hashing speeds, with the hash continually sniff the server’s network interface. Col-
taking over 20 s to calculate the required digest for the lected traffic is then subjected to conditional rulesets
NIZKP protocol. Issues with chaotic map computations designed to filter out traffic not meeting ZKP criteria:
of floating-point numbers were noted by [32], though
were not expected to be this severe. A large factor in 1. Traffic must be destined for the server port, as setup
the sluggishness of the hash function was the num- in the client profile.
ber of iterations to perform, or in terms of the chaotic 2. Traffic must be UDP, with an integer payload.
map, the time parameter t. From the authors’ paper, 3. The payload is of length equal to the hash digest
little guidance was set for how to select this parameter, length, plus an integer r mod q, padded with
t = 10, 000 was one such baseline used for testing, zeroes to fix this length.
however this proved unachievable in practical time. A
If a packet is sniffed meeting these criteria, then
further factor in this speed is undoubtedly increasing
the Schnorr NIZKP Protocol (see 3.1.2) outlines the
the hash’s bit length. Lastly, as the hash was imple-
mathematical checks performed to validate the proof,
mented in Python, a high-level language, time savings
computationally, this involves:
could further be gained by implementing the final ver-
sion of the port knocking application in a language 1. Calculate c, v, by splitting the packet payload into
closer to the client hardware. their appropriate lengths.

123
An authentication protocol based on chaos 3075

2. Calculate V ≡ gr Ac using values from Step 1, and clients. Alternatively, the server’s sniffer could estab-
the client profile. lish a sort of reputational filter, ignoring the traffic from
3. Check whether the received c is equal to: IPs that have sent invalid knocks, though this could be
H (V ACommandID) circumvented if the attacker spoofed their IP. Hopefully
these scenarios illustrate why both the only precompu-
If the proof is successful, the client is authenticated,
tation and only key-based authentication were included
and their requested shell command is executed. Though
as design goals. Suffice to say, this prototype does not
not implemented, the protocol allows for accompany-
fare well against denial of service attacks. DoS mitiga-
ing the proof with further data, this could be used to
tion could be supplied by network and host monitor-
facilitate multiple command options for a single client,
ing solutions, such as IDPS, though this should not be
and multiple users.
required of a port knocking implementation.

4.1.5 Discussion
4.2 Prototype II: chaos and random beacons
Prototype I uses third-party libraries only for floating-
point computations, and packet sniffing from the wire. The second prototype explored in this subsection for-
Theoretically, a powerful pocket calculator could gen- goes zero knowledge proofs, and instead adopts a ran-
erate the proof required to authenticate, and it could dom beacon service, as described in 3.3. The chaos-
be sent via any number of online services for testing based hash functionality is further retained, though this
network connectivity. It could be argued that reducing time it is used to parse the random beacon. The client
dependencies such as 3rd-party libraries use will reduce and server profiles are setup as previously, though with-
threat vectors from exploitation of those libraries. out the parameters for Schnorr’s NIZKP. Largely, the
The prototype is further well suited for application code is replicated from the previous prototype, with
on devices with limited ability to maintain updated modifications outlined in the following.
libraries. Replay protection is a corollary of mixing
randomly chosen v, and resulting V , in some form,
into c and r , ensuring each time a knock is sent, each 4.2.1 Blockchain-based random beacon
element in the proof is derived from a nonce.
Returning to the design goals, the aim of having the The Bitcoin random beacon protocol, as shown in
server precompute acceptable knock values is entirely Sect. 3.3.2, pulls information from a website provid-
missed. Instead, this prototype requires the server to ing updates on Bitcoin’s blockchain. The Python code
check a potential client proof, requiring two exponen- for implementing this feature is taken from [50], with
tiation operations in the group setting [26], and a hash small changes, including a change of website to the
function execution. This opens a serious attack vector: blockchain API provided by [51], which for this pur-
by sending data to a suspected port knocking service pose requires only a single HTTPS GET request using
port, an attacker can force the server to perform com- the Python native request library, to a URL of the
putations, potentially blocking out valid client knocks. website’s blockchain API. This API replies, offering
As per [49], “processing required to verify the [knock] information on the latest published block in JSON for-
should be minimal and not introduce a [DoS] vec- mat. From there, the block header, and block header
tor.”. Filtering options are limited for preventing such hash, are extracted and combined through a pairwise
attacks, as knock values are pseudo-random, possess- OR. The resulting string is then passed through the
ing no identifiable characteristics other than length, chaos-based keyed hash function, resulting in a 256-bit
contradicting goals from [49]: “unauthorized packets beacon value. Of note, if the hash function used were
should be rejected as early as possible to reduce attack not keyed, then the attacker would be able to recreate
surface and decrease server side processing.” the beacon output. Given that the key used in the hash
To combat this, a traffic rate limiter could be function is only available to client and server, as per
enforced (the scapy sniffer offers such a feature) Protocol I’s setup, this means the beacon values are
though this could in turn enable an attacker to pur- shared, random and private. The keyed hash function
posely trigger the rate limiter to block out legitimate could be used to combine multiple random beacons, for

123
3076 W. Major et al.

greater security (see Sect. 3.3.1, though this is beyond Special variables handled by a multiprocessing
the scope of the demonstration here. Manager are shared between the processes, for
After a new beacon has just been received, the bea- instance to signal that the client has successfully
con service sleeps for a fixed number of minutes, which authenticated.
can be changed to preference in accordance with block
production speeds varying roughly around the 1 per 10 4.2.4 Discussion
minutes mark [38]. Following this wait, the beacon will
check more frequently, until the data pulled from the Once a beacon has been harvested and processed, the
API differs, signalling a recalculation of the knock to server is left with a string value to listen for on the net-
expect from a client. work, which if found, signals authentication, and sub-
sequently the user’s command is authorised. To enable
4.2.2 Client operations multiple commands, a new Hk (beacon||command) is
calculated for each, per beacon, and accordingly lis-
For this prototype, the UDP knock payload is defined tened for. In comparison with the first protocol, and in
as Hk (beacon||command), where k and H are the key the context of the design goals, this variant is vastly
and chaos-based hash implemented in the previous pro- more simple, and has managed to eschew the denial
totype. As discussed in the port knocking mechanisms of service attack vectors the latter was vulnerable
literature review, hashes are one-way functions that can to. Where previously the server performed exponen-
provide a proof of identity: the attacker can only gen- tial calculations and hashing operations to verify the
erate this payload if they are privy to the secret key, authenticating data, this prototype need only check
which is securely shared in out of band setup. Replay whether strings are equal. By removing the Schnorr
protection in this instance is provided by the freshness framework, only a single private key is required (for the
derived from the beacon. After processing, the bea- keyed hash), and the openssl library can be forgone.
con’s values are pseudo-random, so the only instance The introduction of a trusted third party (the blockchain
in which the hash function receives two identical mes- API), is an obvious security detractor. Further exami-
sages would be where the blockchain API reports an nation of this aspect will follow later, in the evaluation
identical block and block hash. Therefore, the only section.
instance in which a knock-collision occurs would result
from either this scenario, or a weakness in the hash
function. The security level resulting from a 256-bit 4.3 Prototype III: crucible
keyspace for the chaos-based hash function ensures this
is unlikely. Once constructed, the UDP payload is sent The final prototype introduced by this paper differs
out as previously. largely from the previous iterations. As a consequence
of research leading up to this section, Prototype III,
4.2.3 Server operations henceforth named Crucible (a namesake derived from
its blending of ideas, much like elements in a furnace)
The port knocking server’s operations include peri- draws its motivations from zero knowledge proofs,
odically harvesting random beacon data, converting and chaos-based cryptography, but instead replaces
this data into the knock it expects to see from the both previously implemented components with dedi-
client, and monitoring the network to detect whether cated off-the-shelf, cryptographic alternatives, that are
this knock has been received. These responsibilities already established in practice.
require a degree of concurrency, for example the server For authentication purposes, the previous review
must retain its listening abilities whilst at the same of zero knowledge proofs aimed to lead development
time calculating what the proceeding knock should towards a practical proof of identity scheme which
look like, which uses the overwhelmingly slow chaos- could be used to prove knowledge of a secret key. Cru-
based hash function. To handle these tasks in parallel, cible pursues this line of thinking, but instead uses a
the native Python multiprocessing library is used password-based key derivation function (PBKDF) to
to setup individual processes for traffic monitoring, prove knowledge of a password. In doing so, the server
beacon harvesting, and authorised command handling. does not possess the password itself, only its hash. In

123
An authentication protocol based on chaos 3077

both previous prototypes, the run-time of the chaos- and the command name to execute. In this manner,
based keyed hash severely dampened results, instead, Crucible is stateless, whereby a user can download the
in Crucible, it will be replaced with a modern keyed client application, and perform port knocking, without
hash alternative. needing access to secret keys or other parameters, i.e.,
following installation of a profile on the server, a client
4.3.1 Password-based key derivation profile (as per previous prototypes) is not required.

A key derivation function converts a secret value (such


as a master key, passphrase, or password) into a secure
cryptographic key [34]. Password-based key derivation 4.3.2 Keyed hash
functions (PBKDF) are the family of such solutions
aimed at converting potentially weak user supplied With the client able to derive a key from their cho-
passwords into a keys that are specifically designed sen password, Crucible follows Prototype II in using a
to be resistant to cracking attempts, making them well keyed hash to digest a random beacon. In preference
suited for storing user credentials on a server, whilst of the chaos-based keyed hash already explored previ-
limiting the exposure to users if that server were to be ously, an established hash function is taken from the
compromised [52]. literature.
As from the discussion on what comprises a secure BLAKE2 was chosen to perform the task of hashing
cryptographic hash in Sect. 3.2.2, a PBKDF requires all operations in Crucible, being amongst the fastest secure
the qualities of preimage, second-preimage, and colli- hash functions available, and the most-popular non-
sion resistance. In addition to this, a PBKDF needs NIST standard hash [34]. Unlike alternatives Siphash,
resistance to lookup table attacks (e.g., rainbow tables), and SHA3, BLAKE2 is resistant to side-channel
CPU-optimised cracking, hardware-optimised crack- attacks, where an attacker has access to RAM and reg-
ing (e.g., GPUs, FPGAs and ASICs), amongst other isters [34]. Further, unlike SHA3, BLAKE2 has native
criteria, as established by the 2015 Password Hashing support for keyed mode hashing, without additional
Competition [52]. Argon2 was the winner of this com- construction. More information on BLAKE2 can be
petition, and is selected for purpose in Crucible. Further found in [55].
details on Argon2 can be found in the IETF draft [53] The particular variant BLAKE2b, was chosen for
and design paper [54]. 64-bit optimisation in the test environment. The
The prototype uses Python’s native passlib library, pyblake2 3rd-party Python library [56] was used
updated with installation of the Argon2 package. This for the Python 2.7 implementation (referenced on the
specifically uses the Argon2i variation, recommended authors’ website [57]), however the native hashlib
for password hashing purposes, as opposed to other supports BLAKE2 for later versions.
KDF operations [53]. The hash parameters chosen for
this prototype set Argon2 to use 20 rounds, 256 MB
ram, and 2 threads of parallelism, producing a hash in
under 2 s on a modern laptop. Salt is set to a fixed 4.3.3 Setup
value (explained later in Sect. 5.1.3), and with the cho-
sen parameters is stored alongside the digest, in a single Ahead of port knocking operations, the client must gen-
hash string. These settings should be chosen in imple- erate a profile to leave with the server, used by the server
mentation to maximise computation efforts under the to know which knocks to listen for. The generation pro-
used hardware environment. cess firstly prompts the user for a password, and the
The setup process is similar to the preceding pro- user is then directed to submit a number of commands
totypes, where instead Argon2 replaces key generation for the server to execute on successful authentication.
procedures: the user is asked to input their chosen pass- Each command must be named, and along with the
word (which they are to memorise), the hash of which password and IP of the server, each command name
is then stored only on the port knocking server. In addi- must be memorised. Following this, per the previous
tion to memorising the password, with Crucible the user prototypes, the client profile is serialised in JSON and
needs to know only the IP address on which to knock, saved in a text file, to remain with the server.

123
3078 W. Major et al.

4.3.4 Client operations 4.3.5 Server operations

To execute a command on the port knocking server, The structure for the server operations is largely sim-
a remote user runs the client Python script, and the ilar to Prototype II: there are a number of interrelated
following operations are performed: tasks the server needs to perform concurrently, man-
aged through Python’s multiprocessing library:
1. The client supplied password is run through Argon2
to generate the associated key: – The server periodically checks the blockchain API
key = Argon2b(password). for new values, and stores harvested beacons in
2. The client script pulls down and calculates the most a multiprocessing Manager dictionary, to
recent random beacon from the blockchain API. enable access by other processes. Once a new bea-
3. The beacon and client supplied command are con- con is harvested, a boolean in the dictionary is
catenated, and hashed with BLAKE2, using a keyed flipped, signalling that the traffic sniffing process
mode of operation: needs to update the valid knocks it listens to.
knock = BLAKE2bkey (beacon||command) – Whenever a new beacon is found, for each com-
4. The server’s port number listening to the knocks mand in the client profile a new valid knock string
is derived similarly to the key, though instead the must be calculated (per Client Operation 3). Once
command is replaced with “0”. The first two bytes generated, each knock string is sent to the listening
of the resulting hash are then converted into an inte- process, using scapy. This listening process acts
ger port number, this combined with the IP provide on the port number generated per client Operation.
the destination to which the knock is sent. – The listening process, checks each received UDP
packet, of appropriate length, on the correct port,
The key, beacon, and knock at i are calculated as: against the calculated valid knock values. If a match
is found, the relevant command is sought and exe-
cuted.
key = Argon2i (password) ,
beacon = BLAKE2bkey (blockHeader 4.3.6 Discussion
+ blockHeaderHash) , knocki
= BLAKE2bkey (beacon||commandi ) The random port number derived from the beacon
serves two purposes: firstly, it may make the job of
an attacker listening on the wire slightly more difficult,
where i represents the chosen command for the par- as there is one less defining traffic characteristic to fil-
ticular knock session (the server will listen for all pos- ter by; secondly, it improves usability, as the user no
sible values of i). longer needs to memorise the port number to knock
against. This change from Protocol II is made possible
by the enormous difference in hash run-times.

5 Evaluation

To begin using Crucible, the client must generate a pro-


file and share this with the server. Figure 2 shows this
process, with the generated profile printed out. The key
is derived from the user’s password using Argon2, as
per Sect. 4.3.1.
Figure 3 shows typical usage of Crucible. The client
runs the Python script, passing in the IP, password and
command parameters. There is also an interactive mode
Fig. 2 Crucible setup: generating a client profile alternative for this operation. The client executes three

123
An authentication protocol based on chaos 3079

commands, “cmd1”, “cmd2” and “cmd2”. As the latter require a single packet for authentication and command
command has already been executed by the server, it authorisation. Further, the beacon data collected from
is ignored for replay protection. These commands will the blockchain API is seen to be protected via HTTPS.
become available again when a new random beacon is The knock itself, as seen in Fig. 5, is a single 512-bit
sourced. BLAKE2 hash sent via UDP, both the payload contents
Figure 4 is a traffic capture of traffic emanating from and the destination UDP ports are pseudo-randomly
the client machine as a result of port knocking with derived, the source port is ephemeral and chosen by
Crucible. It can be seen that Crucible does indeed only the client OS.

Fig. 3 Normal client and server operations of Crucible

Fig. 4 Wireshark traffic capture of the client knocking process. retrieval over HTTPS. Packet 26 is the client knock. Packet 27 is
Packets 10–12 show the client’s DNS request for the Blockchain a closed-port ICMP reply, per RFC 792 [58]
API’s IP. Packets 12–24, and 28–29 show the random beacon

123
3080 W. Major et al.

5.1 Attack modelling

In this section a range of potential attacks against the


operations of Crucible are considered, exploring what
capabilities an adversary may have, and what the ram-
ifications of each attack are. Aumasson [34] outlines
the goals of attack modelling, which are paraphrased
as follows:

– To help set requirements for future protocol design.


– To provide users guidelines on whether a protocol
Fig. 5 Wireshark traffic capture of the client knock will be safe to use in their environment.
– To provide clues for analysts keen to find weak-
nesses in the protocol, as part of the security pro-
cess, so they can determine whether a given attack
Figure 6 demonstrates how Crucible avoids the NAT is valid.
problems faced by port knocking solutions. This prob-
lem arises if a port knocking client attempts to authenti-
cate with a server whose IP address has been translated, Unless otherwise specified, the attack assumptions this
for example, by NAT [59], proxies, or a VPN [6]. As a section operates under are that the attacker is positioned
result, the knock packet sent by the client will not reach per Fig. 7. This simple diagram may seem pointless to
the intended destination. In such a scenario, Crucible include, but it helps formalise firstly that all networks
should be installed on each intermediary host, and is Crucible operates across are considered untrusted. Sec-
setup with a command to spawn a new client process, ondly, the diagram highlights the potential extent of
and knock on the next host in the chain, until the com- attacker capabilities under a worst-case scenario – full
mand reaches its final destination. traffic access, and interdiction.

Fig. 6 Routing Crucible commands through intermediary hosts

123
An authentication protocol based on chaos 3081

sideration, which are actively defended against per


Fig. 3.
– “interleaving attack: an impersonation or other
deception involving selective combination of infor-
mation from one or more previous or simultane-
ously ongoing protocol executions.” Interleaving
attacks don’t appear applicable here as the protocol
has little interactivity. Further information on such
attacks can be found in [60].
– “ reflection attack: an interleaving attack involving
sending information from an ongoing protocol exe-
cution back to the originator of such information.”
See interleaving attacks.
– “forced delay”: without a beacon, neither client nor
server can operate port knocking functions. Delay-
Fig. 7 Attacker positioning context ing port knocks from client to server could make
them stale, and therefore unacceptable.
– “chosen-text attack: [...] an adversary strategically
5.1.1 Attacks on identification protocols chooses challenges in an attempt to extract infor-
mation about the claimant’s long-term key.” Imper-
Katz et al. [22] outlines a range of attacks that can be sonating the beacon, an attacker could try to send
mounted against identification protocols, here they are a message to recover the key through examination
reviewed in the context of Crucible: of the resulting knocks, though this would require
subversion of the BLAKE2 hash function, which is
– “impersonation”: an attacker impersonating the both keyed, and invoked twice in the production of a
client will only be able to authenticate against knock value. It is unclear to the author how such an
the server with use of the password. The bea- attack would be approached, and seemingly infea-
con service is open-access, and would not suffer sible.
an attacker imitating the client or server. Imper-
sonating the server, for example in a man-in-the-
middle scenario, could grant an attacker access
to knocks, and could prevent them reaching the From the attacks discussed, most would require
legitimate server. From obtained knocks, there is man-in-the-middle capabilities of an attacker. Imper-
arguably little an attacker could gain, as revers- sonation of the beacon service for use in replay of a
ing the hash functions is intractable by design. If beacon, or chosen-beacon attacks, represent the only
a knock value has already been issued, there is lit- threats substantially different from an attacker with the
tle to be gained from an attacker intercepting and capability to physically tamper with the network cable,
relaying it themselves. Impersonation of the bea- causing delay or loss of service. This sort of imper-
con, owing to HTTPS authentication via public key sonation could be carried out if an attacker had com-
infrastructure, is assumed to be difficult. promised the API’s service, or if the requests made to
– “replay attack”: If a beacon value were replayed to the API via HTTPS were not sufficiently secured. If
the server, an attacker would have the opportunity Bitcoin itself were manipulated, in order to influence
to replay commands the client had already issued. beacon values, this should be considered in the same
If a beacon value was replayed to the client alone, context as an attacker impersonating the beacon ser-
the server would not accept that client’s knocks. vice. Bonneau et al. and Pierrot and Wesolowski [38],
Both scenarios represent threats and illustrate the and [61] provide cost estimates for such an attack in the
trust required in the beacon service, and its secure thousands of dollars. The chosen block outcome would
access. As the server is silent, only replay attacks further need to circumvent double-invocation of keyed
seemingly sent from the client require further con- BLAKE2.

123
3082 W. Major et al.

5.1.2 Online attacks against the listening service ficulty for calculating a hash, making authentication
slightly more slow for users, but dramatically increas-
The scapy interface for lower-level libpcap func- ing the cost to adversaries of mounting bruteforce or
tionality could provide adversaries an attack vector for dictionary attacks.
Crucible. Indeed, the libpcap is not without histori-
cal vulnerabilities [62] and applications of libpcap, 5.1.4 Attacks against dependencies
such as Wireshark, have experienced vulnerabilities
as a result of this [63]. As noted previously, Crucible Library and package dependencies are important in
requires root permissions (for its raw packet access), the context of secure protocol design, because exter-
and an exploitation of libpcap or scapy could have nal code vulnerabilities can result in exploitation of
dire consequences. The listening service itself could the prototype itself. As discussed earlier in Sect. 3.3.1,
also be vulnerable to a denial of service attack, as is the a NIST elliptic curve cryptographic standard was
case for IDPS devices, where an attacker may send large allegedly backdoored. Cimpanu [65] is a more recent
volumes of traffic, sometimes anomalous in nature, “ example of a Python module for handling SSH con-
to attempt to exhaust a sensor’s resources or cause it nections, which surreptitiously harvested and exfil-
to crash” [64]. For Crucible, with its fail-closed stance, trated the user’s SSH credentials. Javascript library
this would prevent client from authenticating until the BrowseAloud was recently compromised, resulting in
service was restarted. infection of websites using the library with cryptojack-
ing software; repurposing their machines as crypto-
5.1.3 Offline attacks against passwords miners [66]. For transparency, Crucible’s dependencies
are included here in Table 2, and their use should be
In Crucible, the Argon2 hash is used as the key for properly reviewed before deployment in a production
BLAKE2, and this hash is retained on the server to environment. Once deployed, the libraries need to be
authenticate clients. Should the server be compro- constantly updated, and periodically checked against
mised, and if its hash values are stolen and cracked vulnerability databases.
(i.e., the passwords were discovered) an attacker could
use these credentials to log into other client accounts, 5.1.5 Reconnaissance and stealth
elsewhere. Password cracking is generally the process
of inverting a given hash Hi , by discovering the pass- Reconnaissance encompasses the methods an adver-
word such that H ( passwor d) = Hi . This involves sary can deploy in information gathering at the start of
generating a great deal of passwords, hashing each, a campaign. The level of stealth a port knocking imple-
and comparing the results against the obtained hash to mentation provides may determine whether or not it is
find a match. detected by an attacker conducting reconnaissance, and
If the password supplied to Argon2 is not of suf- therefore stealth can decrease the likelihood that a port
ficient length, bruteforce attacks are made easier for knocking server is exploited. An attacker performing
an adversary, as there is less keyspace to search. Simi- reconnaissance activities could benefit from the follow-
larly, if the password is weakened by using predictable ing information, all of which could be made possible
values (words, numbers, patterns etc.) then this makes through detection of port knocking:
dictionary attacks easier to mount. Further, the Argon2
– Identification of a host as a client, server, or beacon
hash is derived using a static salt value, meaning if
service.
future development added capability for multiple users,
– Detection of a port knocking service on a server.
then the hashes derived from these passwords would be
– Identification of the services hidden or protected by
vulnerable to rainbow table attacks, whereby a single
port knocking.
H ( passwor d) can be tested against all of the server’s
– Identification of the port knocking implementation,
user hashes. This could be solved by having the user
i.e., Crucible.
remember a salt value (or username = salt), or by
including a client state required for knocking, neither There are a number of characteristics that could indi-
of which are preferable solutions. The key point, noted cate port knocking from captured traffic between client,
in 4.3.1, is that Argon’s settings parametrise the dif- server and beacon. Assuming an attacker had access to

123
An authentication protocol based on chaos 3083

Table 2 Dependencies in the Crucible prototype


socket getpass Argon2 pyblake2 sys Multiprocessing Time os Scapy

Client     
Server      
3rd party?   

Crucible’s documentation and code, passive methods


of traffic analysis could look for indications such as:
– Periodic requests to the beacon service. These could
be cross referenced with the beacon API to match
a new block with a spike in HTTPS data transfer.
If using the default API, an attacker could perform
a reverse lookup to the API’s URL and identify
Crucible traffic this way. Fig. 8 Indication of a Crucible server: promiscuous mode NIC
– UDP packets with 512-bit payloads, where the des-
tination port always differs. Other features of the
knock packet may be identifiable, a number of – No indication of the command executed on the
techniques for passive fingerprinting of traffic are server should be identifiable from the wire, as
explored by [67]. Higher amounts of UDP traffic replay protection is enforced (no command will be
than expected may contradict stealth goals [68]. re-issued), and as the command name is masked
– Identifiable traffic resulting from a port knocking by keyed hashing. The definition of a keyed hash
authorised command. For example, if the command in Sect. 3.2.2 explains why the command is not
was to open a port, an attacker could periodically recoverable from traffic. No client identifiers such
diff open port scans of the server, and identify suc- as IP addresses or usernames are recoverable from
cessful knocking traffic. network traffic, nor are service identifiers such as
the service destination port. Very little information
Sanai [69] explores active methods an attacker can
is leaked: between client and server, the only traf-
use to identify use of promiscuous mode by a NIC on
fic exchanged is a single datagram with a pseudo-
the local network, which is active when Crucible is
random number as its payload.
running. One such method involves crafting an ARP
– A single UDP datagram containing a random num-
packet, which would normally be rejected by the NIC,
ber may look suspicious in a given context, Crucible
however in promiscuous mode the host issues no such
makes no effort to deploy steganography, or other
reply. As seen in Fig. 8, the Nmap sniffer-detect
methods, to appear innocuous to an attacker.
(Nmap is a popular network sniffing tool) script per-
– As a multi-party solution using a random beacon
forms this and other checks, and may allow an attacker
service, Crucible is more easily detected.
to distinguish between Crucible and other port knock-
ing solutions.
Greater discussion on stealth aspects of port knock-
6 Conclusion
ing is reviewed in [6,70] and [71]. In comparison with
other solutions examined in Sect. 2.1 on port knocking
Zero knowledge proofs were introduced for private,
mechanics, Crucible has the following overall advan-
lightweight client-identification. Chaos-based cryptog-
tages and disadvantages in stealth:
raphy was explored for the purpose of minimalist,
– With only a single packet sent to the server for dependency-free cryptographic hashing. Random bea-
the knock, proportionally less traffic on the wire cons were used to secure replay protection while pre-
is attributable to Crucible than other solutions with serving a single-packet knock, and preventing attacker-
more client-server interactivity. chosen computation. This paper has explored novel

123
3084 W. Major et al.

combinations of these topics with regards to port Protocol actions


knocking and has used these ideas to develop Crucible. 1. Prover chooses a number v uniformly at random
Crucible achieves command authorisation using a from [0, q − 1] and computes V = g v mod p and
single packet between client and server, with a payload sends this to the Verifier.
likely indistinguishable from a random number. Cru- 2. Verifier chooses a challenge c uniformly at random
cible’s design is minimalist, secure and stateless. It is from [0, 2t−1 ], where t is the bit length of the chal-
portable, and the user only needs to memorise an IP, a lenge, and sends this to the prover.
password, and a command name in order to authenti- 3. Prover computes r = v −ac mod q and sends this
cate. Crucible does not authenticate post-knock traffic to the Verifier.
(see [11]) and a single command can only be executed 4. Verifier ensures:
once within the period of a random beacon, though an
unlimited number of unique commands can be run in (a) A is within [2, p − 1]
this window. Lastly, trust must be placed in the random (b) Aq = 1 mod p
beacon service, which is a non-trivial consideration. (c) V = gr Ac mod p

Compliance with ethical standards

5. Protocol messages
Ethical statement There are no potential conflicts of interest,
and the research does not include human participants and/or ani-
mals. The work has been undertaken to accepted standards of
Prover → Verifier: V = g v mod p (1)
ethics and of professional standards. Prover ← Verifier: c (2)
Prover → Verifier: r = v − ac mod q (3)
Open Access This article is licensed under a Creative Com- Notes
mons Attribution 4.0 International License, which permits use,
sharing, adaptation, distribution and reproduction in any medium
The protocol proves knowledge of the secret exponent
or format, as long as you give appropriate credit to the original a without revealing any information about it. Setup
author(s) and the source, provide a link to the Creative Com- parameters may be chosen as per DSA choices. Checks
mons licence, and indicate if changes were made. The images or 4(a) and (b) are to avoid invalid public keys. Check 4(c),
other third party material in this article are included in the article’s
Creative Commons licence, unless indicated otherwise in a credit
since:
line to the material. If material is not included in the article’s Cre- gr Ac = (g v−ac )(g a )c = g (v−ac+ac) = g v = V
ative Commons licence and your intended use is not permitted by mod p. This protocol is referenced from [26], Section
statutory regulation or exceeds the permitted use, you will need 2.2.
to obtain permission directly from the copyright holder. To view
a copy of this licence, visit http://creativecommons.org/licenses/
by/4.0/.
Protocol 2 Schnorr Non-interactive Zero-Knowledge
Proof
Appendix
Protocol setup
– Let p and q be two large primes where p − 1 is
Protocol 1 Schnorr Identification Protocol
a multiple of q. Let G q denote the subgroup of
Z∗p of prime order q, and g be a generator for the
Protocol setup
subgroup.
– Let p and q be two large primes where p − 1 is – Let a be the private exponent chosen uniformly at
a multiple of q. Let G q denote the subgroup of random from [0, q − 1]. Let A = g a mod p be
Z∗p of prime order q, and g be a generator for the public key associated with a.
subgroup. – Let H be a secure cryptographic hash function,
– Let a be the private exponent chosen uniformly at UserID a unique identifier for the Prover, and Oth-
random from [0, q − 1].Let A = g a mod p. erInfo optional data. The bit length of the hash out-
– Ahead of execution, both prover and verifier know put should be at least equal to that of the order q of
( p, q, g, G, A). the considered subgroup.

123
An authentication protocol based on chaos 3085

– Ahead of execution, both prover and verifier know Notes In step (3) the α value is equal to 0.0015ωi +
( p, q, g, G, A, H, UserID). 1.8, this is because each ωi is an integer ASCII value
Protocol actions between 32 and 126, so these values are normalised
onto the chosen range of 1.8 ≤ α < 2 for the required
1. Prover chooses a number v uniformly at random chaotic behaviour. This protocol is referenced from
from [0, q − 1] and computes the following: [35] with modification to the α parameter.
(a) V = g v mod p.
(b) c = H (gV AUserIDOtherInfo)
(c) r = v − ac mod q.
2. Prover sends (UserID, OtherInfo, c, r ) to Verifier. Protocol 4 Bitcoin Random Beacon
3. Verifier uses the provided UserID to lookup A.
4. Verifier computes V = gr Ac . Inputs
?
5. Verifier ensures c = H (gV AUserIDOtherInfo). – Secure cryptographic hash function H (m, k), here
the chaos-based keyed hash function from earlier
is used, with key k for message m.
– Block header B H and block header hash B H H of the
Bitcoin network’s most recent block, polled from
Protocol 3 Absolute Value Chaos-based Crypto-
a Bitcoin tracking website (a blockchain API) by
graphic Hash Function
through a HTTPS request.

Inputs Process
– A message string M of arbitrary length. 1. Pull down the block header B H and the hash of the
– A key K used as the initial value of the chaotic block header B H H from the website.
map. Chosen as a long floating number of 128-bit 2. Calculate the binary OR of the header and the block
precision, and associated keyspace. header hash, b = B H + B H H
– A fixed number of map iterations i. 3. Output H (b, k)
– A chosen range for the α coefficient to introduce
chaos into the absolute value map, as seen in Equa- Notes
tion (2). This protocol is referenced from the implementation by
[50] of the Bitcoin Random Beacon proposed in [38],
Process with the following modifications:
1. The message is padded with the ASCII character Check is performed to validate the block header hash
’0’ ASCII appended to the suffix, until the message received from the website, this is to avoid importing
length in bytes is a multiple of 8. libraries for calculating SHA hashes used in Bitcoin.
2. The message M is split into an L-sized array of [50] chose a HMAC construction using SHA-256,
bytes ωi for i = 1 . . . L. Each byte element uses instead the chaotic keyed hash from 3.2.3 is used. The
the ASCII integer value for the associated string block header hash is included to strengthen against
character in M. malicious miners aiming to influence the block header.
3. With key K substituting for ω0 as the initialisation Even if the header were tampered with, the resulting
value, each ωi is iterated through the chaotic map hash value of this header remains unpredictable.
i-times: xn+1 = 1 − AB S((0.0015ωm + 1.8)xn )
4. This is repeated for the next ωm+1 , using the previ-
ous xi as the initialisation value ω0 , until each byte
of the original message has been combined into x L
the last value. References
5. The final value produced by the chaotic map x L is 1. Sorrel-Dejerine, O.: “The spooky world of the ’numbers
normalised into a long number in the range 0 ≤ stations’—BBC News,” Apr (2014). [Online]. Available:
H (M) < 2128 as the message digest. https://www.bbc.co.uk/news/magazine-24910397

123
3086 W. Major et al.

2. Lipp, M., Schwarz, M., Gruss, D., Prescher, T., Haas, W., 22. Katz, J., Menezes, A.J., Van Oorschot, P.C., Vanstone,
Mangard, S., Kocher, P., Genkin, D., Yarom, Y., Ham- S.A.: Handbook of Applied Cryptography. CRC Press, Boca
burg, M.: “Meltdown,” CoRR, vol. abs/1801.01207 (2018). Raton (1996)
[Online]. Available: arXiv:1801.01207 23. Goldreich, O.: Modern Cryptography, Probabilistic Proofs
3. Kocher, P., Horn, J., Fogh, A., Genkin, D., Gruss, D., Haas, and Pseudorandomness, 17th edn. Cambridge University
W., Hamburg, M., Lipp, M., Mangard, S., Prescher, T., et al.: Press, Cambridge (1998)
“Spectre attacks: exploiting speculative execution,” pp. 1–19 24. Mao, W.: Modern Cryptography: Theory and Practice. Pren-
(2019) tice Hall PTR, Upper Saddle River (2003)
4. Popeea, T., Olteanu, V., Gheorghe, L., Rughiniş, R.: Exten- 25. Van Tilborg, H .C., Jajodia, S.: Encyclopedia of Cryptogra-
sion of a port knocking client-server architecture with NTP phy and Security. Springer, Berlin (2014)
synchronization. In: 2011 RoEduNet International Confer- 26. Hao, F., Metere, R., Shahandashti, S.F., Dong, C.: Analyzing
ence 10th Edition: Networking in Education and Research, and patching speke in iso/iec. IEEE Trans. Inf. Forensics
6, pp. 1–5 (2011) Secur. 13(11), 2844–2855 (2018)
5. Srivastava, V., Keshri, A.K., Roy, A.D., Chaurasiya, V.K., 27. Alvarez, G., Li, S.: Some basic cryptographic requirements
Gupta, R.: “Advanced port knocking authentication scheme for chaos-based cryptosystems. Int. J. Bifurc. Chaos 16(08),
with QRC using AES.” In: 2011 International Conference 2129–2151 (2006)
on Emerging Trends in Networks and Computer Communi- 28. Kanso, A., Ghebleh, M.: A fast and efficient chaos-based
cations (ETNCC), 4, pp. 159–163 (2011) keyed hash function. Commun. Nonlinear Sci. Numer.
6. Vasserman, E.Y., Hopper, N., Tyra, J.: Silentknock: Simul. 18(1), 109–123 (2013)
practical, provably undetectable authentication. Int. J. 29. Kocarev, L.: Chaos-based cryptography: a brief overview.
Inf. Secur. 8(2), 121–135 (2009). https://doi.org/10.1007/ IEEE Circuits Syst. Mag. 1(3), 6–21 (2001)
s10207-008-0070-1 30. Li, C., Lin, D., Lü, J., Hao, F.: Cryptanalyzing an image
7. Lunsford, P., Wright, E.C.: Closed port authentication with encryption algorithm based on autoblocking and electrocar-
port knocking. Age 10, 1 (2005) diography. IEEE MultiMed. 25(4), 46–56 (2018)
8. Bou-Harb, E., Debbabi, M., Assi, C.: Cyber scanning: a 31. Zhen, P., Zhao, G., Min, L., Li, X.: “A survey of chaos-based
comprehensive survey. IEEE Commun. Surv. Tutor. 16(3), cryptography.” In: 2014 Ninth International Conference on
1496–1519 (2014) P2P, Parallel, Grid, Cloud and Internet Computing, vol. 11,
9. deGraaf, R., Aycock, J., Jacobson, M.: “Improved port pp. 237–244 (2014)
knocking with strong authentication.” In: 21st Annual Com- 32. Teh, J.S., Samsudin, A., Akhavan, A.: Parallel chaotic hash
puter Security Applications Conference (ACSAC’05), 12 function based on the shuffle-exchange network. Nonlin-
(2005) ear Dyn. 81(3), 1067–1079 (2015). https://doi.org/10.1007/
10. Jha, S.: An object oriented approach for port knocking. s11071-015-2049-6
IJNIET 6(1) (2016) 33. Li, C., Zhang, Y., Xie, E.Y.: When an attacker meets a cipher-
11. Jeanquier, S.: An Analysis of Port Knocking and Single image in 2018: a year in review. J. Inf. Secur. Appl. 48,
Packet Authorization. University of London, Royal Hol- 102361 (2019)
loway (2016) 34. Aumasson, J.: Serious Cryptography: A Practical Introduc-
12. Sel, D.: Authenticated Scalable Port-Knocking. Technical tion to Modern Encryption. No Starch Press, San Francisco
University of Munich, Munich (2016) (2017)
13. Sel, D., Totakura, S.H., Carle, G.: “sKnock: port-knocking 35. San-Um, W., Srichavengsup, W.: “A topologically simple
for masses.” In: 2016 IEEE 35th Symposium on Reli- keyed hash function using a single robust absolute-value
able Distributed Systems Workshops (SRDSW). IEEE 1–6 chaotic map.” In: 2013 IEEE International Conference on
(2016) Communication, Networks and Satellite (COMNETSAT),
14. Tiwari, R.: Port–knocking system using unilateral authenti- vol. 12, pp. 95–99 (2013)
cation algorithm. 9 (2013) 36. Luo, Y., Liu, Y., Liu, J., Ouyang, X., Cao, Y., Ding, X.:
15. Al-Bahadili, H., Hadi, A.H.: Network security using hybrid Ecm-ibs: a chebyshev map-based broadcast authentication
port knocking. IJCSNS 10(8), 8 (2010) for wireless sensor networks. Int. J. Bifurc. Chaos 29(09),
16. Liew, J.-H., Lee, S., Ong, I., Lee, H.-J., Lim, H.: “One- 1950118 (2019)
time knocking framework using SPA and IPsec.” In: 2010 37. Rabin, M.O.: Transaction protection by beacons. J. Comput.
2nd International Conference on Education Technology and Syst. Sci. 27(2), 256–267 (1983)
Computer, vol. 5, 6 (2010) 38. Bonneau, J., Clark, J., Goldfeder, S.: “On Bitcoin as a pub-
17. Worth, D.: COK: cryptographic one-time knocking. (2004) lic randomness source.” Cryptology ePrint Archive, Report
18. Schneier, B.: Applied Cryptography: Protocols, Algorithms, 2015/1015 (2015). [Online]. Available: https://eprint.iacr.
and Source Code in C. Wiley, Hoboken (2007) org/2015/1015
19. Mohr, A.: A survey of zero-knowledge proofs with applica- 39. Jiwa, A., Seberry, J., Zheng, Y.: Beacon based authentica-
tions to cryptography. Southern Illinois University, Carbon- tion. In: Gollmann, D. (ed.) Computer Security—ESORICS
dale, pp. 1–12 (2007) 94, pp. 123–141. Springer, Berlin (1994)
20. Goldreich, O.: Foundations of Cryptography: Volume 2, 40. Clark, J., Hengartner, U.: “On the use of financial data
Basic Applications. Cambridge University Press, Cam- as a random beacon.” Cryptology ePrint Archive, Report
bridge (2009) 2010/361 (2010). [Online]. Available: https://eprint.iacr.
21. Mollin, R.A.: Cryptography and zero knowledge. Int. J. Pure org/2010/361
Appl. Math. 31(3), 345–360 (2006)

123
An authentication protocol based on chaos 3087

41. Lee, H.H., Chang, E.-C., Chan, M.C.: Pervasive random bea- [Online]. Available: http://www.rfc-editor.org/rfc/rfc792.
con in the internet for covert coordination. In: Barni, M., txt
Herrera-Joancomartí, J., Katzenbeisser, S., Pérez-González, 59. Kirsch, J.: “Knock: Practical and secure stealthy servers,”
F. (eds.) Information Hiding, pp. 53–61. Springer, Berlin (2014). [Online]. Available: https://gnunet.org/
(2005) 60. Bird, R., Gopal, I., Herzberg, A., Janson, P., Kutten, S.,
42. Lenstra, A. K., Wesolowski, B.: Trust, and public entropy: Molva, R., Yung, M.: Systematic design of two-party authen-
a unicorn hunt. (2016) tication protocols. In: Feigenbaum, J. (ed.) Advances in
43. Bennett, C.H., Smolin, J.A.: “Trust enhancement by mul- Cryptology—CRYPTO ’91, pp. 44–61. Springer, Berlin
tiple random beacons.” CoRR, vol. cs.CR/0201003 (2002). (1992)
[Online]. Available: arXiv:cs.CR/0201003 61. Pierrot, C., Wesolowski, B.: Malleability of the blockchain’s
44. Ferguson, N., Schneier, B.: Practical Cryptography, vol. 23. entropy. Cryptology ePrint Archive, Report 2016/370,
Wiley, New York (2003) (2016). [Online]. Available: https://eprint.iacr.org/2016/370
45. Boneh, D., Bonneau, J., Bünz, B., Fisch, B.: “Verifi- 62. “CVE-2011-1935,” Available from MITRE, CVE-ID CVE-
able delay functions.” Cryptology ePrint Archive, Report 2011–1935 (2011). [Online]. Available: https://nvd.nist.
2018/601 (2018). [Online]. Available: https://eprint.iacr. gov/vuln/detail/CVE-2011-1935
org/2018/601 63. “CVE-2014-4174, ”Available from MITRE, CVE-ID CVE-
46. Barski, C., Wilmer, C.: Bitcoin for the Befuddled. No Starch 2014–4174 (2014). [Online]. Available: https://nvd.nist.
Press, San Francisco (2014) gov/vuln/detail/CVE-2014-4174
47. Mehran, P., Reza, E. A., Laleh, B.: “SPKT: secure port 64. Scarfone, K., Mell, P.: Guide to intrusion detection and pre-
knock-tunneling, an enhanced port security authentication vention systems (idps). NIST Spec. Publ. 800(2007), 94
mechanism.” In: 2012 IEEE Symposium on Computers (2007)
Informatics (ISCI), 3, pp. 145–149 (2012) 65. Cimpanu, C.: Backdoored Python Library Caught
48. Mahbooba, B., Schukat, M.: “Digital certificate-based port Stealing SSH Credentials 5 (2018). [Online]. Avail-
knocking for connected embedded systems.” In: 2017 28th able: https://www.bleepingcomputer.com/news/security/
Irish Signals and Systems Conference (ISSC), 6, pp. 1–5 backdoored-python-library-caught-stealing-ssh-credentials/
(2017) 66. NCSC, NCSC advice: malicious software used to
49. Koch, W., Bestavros, A.: “PROVIDE: hiding from auto- illegally mine cryptocurrency 2 (2018). [Online].
mated network scans with proofs of identity.” In: 2016 Available: https://www.ncsc.gov.uk/guidance/
Fourth IEEE Workshop on Hot Topics in Web Systems and ncsc-advice-malicious-software-used-illegally-mine-cryptocurrency
Technologies (HotWeb), 10, pp. 66–71 (2016) 67. Zalewski, M.: Silence on the Wire: a Field Guide to Passive
50. Lee, C.: “Bitcoin beacon: using the blockchain to gen- Reconnaissance and Indirect Attacks. No Starch Press, San
erate random bits.” 7 (2017). [Online]. Available: http:// Francisco (2005)
charlesjlee.com/post/20170716-bitcoin-beacon/ 68. Manzanares, A .I., Márquez, J .T., Estevez-Tapiador, J .M.,
51. BTC.com.: “API Documentation—BTC.com.” (2018). Castro, J .C .H.: Attacks on port knocking authentication
[Online]. Available: https://btc.com/api-doc mechanism. In: Gervasi, O., Gavrilova, M .L., Kumar, V.,
52. Wetzels, J.: “Open sesame: the password hashing com- Laganá, A., Lee, H .P., Mun, Y., Taniar, D., Tan, C .J .K.
petition and Argon2.” Cryptology ePrint Archive, Report (eds.) Computational Science and Its Applications—ICCSA
2016/104 (2016). [Online]. Available: https://eprint.iacr. 2005, pp. 1292–1300. Springer, Berlin (2005)
org/2016/104 69. Sanai, D.: Detection of Promiscuous Nodes Using ARP
53. Biryukov, A., Dinu, D., Khovratovich, D., Josefsson, Packets (2001). [Online]. Available: www.securityfriday.
S.: “The memory-hard Argon2 password hash and com/promiscuous_detection_01.pdf
proof-of-work function.” Working Draft, IETF Secre- 70. Mileva, A., Panajotov, B.: Covert channels in TCP/IP pro-
tariat, Internet-Draft draft-irtf-cfrg-argon2-03, 8 (2017). tocol stack. Cent. Eur. J. Comput. Sci. 4(2), 45–66 (2014).
[Online]. Available: http://www.ietf.org/internet-drafts/ https://doi.org/10.2478/s13537-014-0205-6
draft-irtf-cfrg-argon2-03.txt 71. Wendzel, S., Keller, J.: Hidden and under control. Ann.
54. Biryukov, A., Dinu, D., Khovratovich, D.: “Argon2: new Telecommun. Ann. des Télécommun. 69(7), 417–430
generation of memory-hard functions for password hashing (2014). https://doi.org/10.1007/s12243-014-0423-x
and other applications.” In: 2016 IEEE European Sympo-
sium on Security and Privacy (EuroS P), 3, pp. 292–302
(2016) Publisher’s Note Springer Nature remains neutral with regard
55. Saarinen, M.-J., Aumasson, J.: The BLAKE2 cryptographic to jurisdictional claims in published maps and institutional affil-
hash and message authentication code (MAC). Internet iations.
Requests for Comments RFC Editor RFC 7693, 11 (2015)
56. Sokolovskiy, A.: “pyblake2—BLAKE2 hash function for
Python.” (2013). [Online]. Available: https://pythonhosted.
org/pyblake2/
57. Aumasson, J., Neves, S., Wilcox-O’Hearn, Z., Winner-
lein, C.: “Fast secure hashing.” (2017). [Online]. Available:
https://blake2.net/
58. Postel, J.: “Internet control message protocol.” Internet
requests for comments, RFC Editor, STD 5, 9 (1981).

123

You might also like