<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>The system of secured user's credentials transfer ⋆</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Oleksandr Korchenko</string-name>
          <email>agkorchenko@gmail.com</email>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Yevheniia Ivanchenko</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Ihor Ivanchenko</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Yevhenii Pedchenko</string-name>
          <email>pedchenko.ievhenii@npp.nau.edu.ua</email>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Mari Petrovska</string-name>
          <email>pmarisha2004@gmail.com</email>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>CPITS-II 2024: Workshop on Cybersecurity Providing in Information and Telecommunication Systems II</institution>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>National Aviation University</institution>
          ,
          <addr-line>1 Liubomyra Huzara ave., 03058 Kyiv</addr-line>
          ,
          <country country="UA">Ukraine</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>State University of Information and Communication Technologies</institution>
          ,
          <addr-line>7 Solomianska str, 03110 Kyiv</addr-line>
          ,
          <country country="UA">Ukraine</country>
        </aff>
      </contrib-group>
      <fpage>168</fpage>
      <lpage>173</lpage>
      <abstract>
        <p>This paper describes a developed system of secured user credentials transfer from a user's web browser to a web application server. This paper will describe in detail the operation of an advanced 10-level encryption algorithm for user credentials and demonstrate a High-Level Design system that represents the algorithm's step-by-step execution. The basis of this algorithm is the verification of user data to detect illegal (malicious) activity when entering a user's login and password. Based on the presented encryption algorithm, an experimental study of the developed user authorization web page and the processing of the entered credentials, before sending and after receiving the data processed by the web server.</p>
      </abstract>
      <kwd-group>
        <kwd>eol&gt;cybersecurity</kwd>
        <kwd>MITM</kwd>
        <kwd>brute-force</kwd>
        <kwd>frontend</kwd>
        <kwd>backend</kwd>
        <kwd>authorization</kwd>
        <kwd>authentication</kwd>
        <kwd>user protection</kwd>
        <kwd>database protection</kwd>
        <kwd>data privacy</kwd>
        <kwd>credentials 1</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>Nowadays, where most companies work with clients and
web applications, creating and using a personalized user
account requires unique credentials, which are one of the
key targets of attackers. For giant companies with a certain
market share, developing a secure web application is a
common task, as these companies can maintain a full
department of developers who will develop and improve the
web application, but for new companies or SMBs, this task
is very critical, as they are unable to maintain a sufficient
number of developers to cover all the necessary tasks for
developing a web application, including security. Therefore,
these companies either do not use security for their web
applications at all and remain vulnerable to cyber-attacks or
spend a significant portion of the company’s budget on
implementing 3rd party technologies to ensure the secure
operation of web applications, secure user authentication,
and transfer personal data.</p>
      <p>Based on the analysis, Table 1 shows a list of the Top 5
commercial technologies used by companies and a list of
threats that are prevented by these technologies.
2. Problems of transferring user’s
credentials between client and
server
In modern cyberspace, where most of the world’s users are
located in virtual networks when companies migrating their
computing to cloud service providers, and when the number
of Internet users and unique devices is growing every day,
the problem of ensuring secure users’ credentials transfer to
the web-application server remains.</p>
      <p>Most modern web applications have a field for entering
a login and password to gain access to the internal closed
resources of the web application and the stored personal
data of the credential holder. However, some of these web
applications contain partial or do not contain security
checks of the entered user’s login and password, such as:</p>
      <p>Lack of security checks on a large number of
password entries, which leads to a Bruteforce attack.
Lack of security checks of the content of entered
credentials by the user, which leads to a
SQLInjection attack etc.</p>
      <p>In most cases, companies, in order not to modify the
client-server part, which may affect the performance of the
developed web application, use various commercial
solutions to close and prevent potential cyber threats or
cyberattacks, that have targeted the performance of the web
application, leakage of commercial information and
personal data of employees/customers of the company [1].
Therefore, the task of securely transferring user credentials
entered in the form of a web application is relevant today.</p>
      <p>Therefore, the main goal of this paper is to develop an
effective and simple way to verify user input of credentials
(login and password) to access the internal resources of a
web application and prevent Bruteforce and
Man-in-theMiddle (MITM) attacks using improved and built-in web
application tools [2].</p>
      <p>To achieve this goal, the following tasks need to be
completed:
1.</p>
      <p>Analyze existing technologies and web attacks
that cause monetary and reputational losses to
companies.</p>
      <p>Develop an improved HLD (High-Level Design)
system, algorithm, and software solution for
secure transmission and verification of user
credentials (login and password).</p>
      <p>Conduct an experimental study of the developed
improved version of the user credentials input
verification.</p>
      <p>The novelty of this paper is the improvement of the user
authentication system on web applications by applying
procedures for security verifying the input of credentials
and contents to detect malicious code, which will allow
companies to protect the transfer of credentials and
personal data of users at the initial stage of the company’s
growth and protects company’s services from leakage,
hacking and disruption without the use of third-party
technologies [3].</p>
      <p>Based on the analysis, Table 1 shows a list of the Top 5
commercial technologies used by companies and a list of
threats that are prevented by these technologies:
3. Developing of high-level design
system
To present the principle of operation of the encryption
methods used to transfer the login and password to the web
application server, a High-Level Design (system) was
developed that visually demonstrates the step-by-step
processing of the input data by the user and their sequential
transmission to the web application server.</p>
      <p>This approach is based on the 10-level principle (each of
these levels will be described below) of transferring login
and password to authenticate the user and ensure the
authorization of a legitimate user to the internal resources
of the web application, as shown in Fig. 1.</p>
      <p>
        Level 0. This level is used to establish an encrypted
connection between the client and the server, in this case
between the client’s browser and the server side of the
website using the SSL protocol, which contains a set of
ciphers and protocols not lower than TLS 1.2 or TLS 1.3 [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ],
and the size of the encryption key is not lower than 4096
bits. The use of this encrypted connection is necessary to
avoid MITM attacks and to prevent a legitimate user from
joining the session.
      </p>
      <p>Level 1. At the first level, after successfully establishing
a connection with the web server, the user is displayed the
web application login page, where the user is prompted to
enter the login and password of the user registered in the
web application.</p>
      <p>
        Level 2. After the user enters the login and password, a
Hash function is generated for the login using the SHA-256
encryption algorithm [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] to make it impossible to decrypt
the encrypted data and transfer it to the web application
server for further processing.
      </p>
      <p>Level 3: After the web application server receives the
encrypted user login, three additional protection and
verification modules are enabled to prevent the use of the
Bruteforce attack.</p>
      <p>

</p>
      <p>The first stage is the store of the client’s IP address.
In the second stage, the number of unsuccessful
attempts to authorize the client is counted.</p>
      <p>In the third stage, the received content is checked
for embedded injections that may affect the
functionality of the web server and the web
application database.</p>
      <p>After successful verification by the built-in security
modules and a verdict that the session is from a legitimate
user, the main module is connected, which downloads all
possible Hash functions of all users’ logins to the web
server’s RAM, and searches this list for the received Hash
login from the user.</p>
      <p>
        Level 4. After finding an identical unique user, a
onetime “Salt” (token) [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] is created on the web server side,
which is recorded in the database and transferred to the
user. This token is valid only once and the next time the user
logs in, the “Salt” will be changeLevel 5. When the client
receives a one-time token, the password encryption process
starts. To transfer the password, we use our own developed
encryption algorithm consisting of three steps:
Creating a Hash function of the password entered by the
user.
      </p>
      <p>Adding a one-time “Salt” (token) to the created Hash
function of the password.</p>
      <p>Creating a Hash function for the data string obtained in
the second step.</p>
      <p>As a result, we get an encrypted password that cannot
be decrypted back, since a one-way encryption method is
used.</p>
      <p>Also, it is important to note that the encrypted password
string will be different for each authorization, so this helps
to avoid MITM attacks and prevent the reuse of the
encrypted password string for authorization on the web
application.</p>
      <p>Level 6. After encrypting the user’s password at Level
5, the encrypted login and password are transmitted to the
web application server via the created SSL channel.</p>
      <p>Level 7. After the web application server receives the
encrypted login and password from the user, the procedure
described in Level 3 is repeated, and the user’s login is
compared by the Hash function, which allows you to get a
one-time token (Salt) and password in the form of a Hash
function from the database, and a similar operation is
performed as described in Level 5 for the received encrypted
data. After all the necessary calculations are performed, the
generated encrypted password is compared with the
onetime token and the encrypted password received from the
client.</p>
      <p>It is important to note that before comparing the data,
the data received from the user is checked for injections to
prevent database hacking and disruption of the web server.</p>
      <p>Level 8. At this almost final level, in case of successful
comparison of the login Hash function and the encrypted
password received from the user, a final one-time access
token is generated for the user, which entitles the user to
access the internal resources of the web application and
receive a link to the main page. Accordingly, the new
onetime token is also stored in the database.</p>
      <p>
        Level 9. After successfully passing all of the above
levels, the user successfully authenticates to the web
application and follows the link received from the web
application, which gives the user the right to use the
capabilities of the web application within the limits of the
authorized access rights and the configured role-based
access model (RBAC) [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ].
The algorithm described above, presented as an HLD
system, will allow companies developing web applications
to provide comprehensive verification and secure transfer
of user credentials to the webserver to avoid the possibility
of MITM and Bruteforce attacks and prevent the need to
purchase commercial solutions (types of which are
presented in Table 1) at the early stages of company and
web application development.
4. Experimental investigation of the
developed algorithm processing
for secure transmission of user’s
credentials
Based on the third section of this paper, which presents the
algorithm of the developed approach to securely transfer
user credentials to the web application server, the practical
application of this algorithm will be presented.
Demonstrations of the developed algorithm will be
presented below in this section.
      </p>
      <p>For example, it will be used in the web application under
development—“Enco Console”, which contains a user login
and password field to access the internal capabilities and
data of the web application (Fig. 2). For testing, we used the
next test credentials: root (login) and qwerty12345
(password).
When you enter the user credentials and click the “Login”
button, the algorithm described in the third section of this
paper is executed. To provide a visual view of how user data
is being processed at each stage of execution, a function was
added that displays an intermediate result.</p>
      <p>At level 2 of the developed algorithm, after entering the
login and password, a hash function of the user’s login is
created and the processed data is sent to the web server
(Fig. 3), as shown in the image below.</p>
      <p>After successfully transferring the user’s login Hash
function to the web application server and performing the
necessary checks on the server side, the user receives a
onetime token that will be valid only until the user is
rerequested to log in (Fig. 4).
After the successful receipt of a one-time token on the client
side, the process of encrypting the user’s password takes
place, which must be transferred to the webserver to gain
access to the internal resources of the web application
(Fig. 5). There are three main operations involved in
encrypting a user’s password:
1.
2.
3.</p>
      <p>Creating a Hash function for the entered user
password makes it impossible to decrypt this line
of code.</p>
      <p>
        Adding the received one-time token (Salt) to the
created password Hash function and forming a
single 128-character expression [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ].
      </p>
      <p>Create a Hash function for the single expression
created in step 2.
After the web application server has successfully verified
the received function, the user is sent a session key that will
be valid only for one user session and, at the next login, both
the one-time token and the one-time session key will be
changed. Along with receiving the session key, the user
receives a link to a page that provides access to the internal
resources of the web application (Fig. 6).
As you can see, the developed algorithm has 10 levels of
verification, where each level launches and executes a
different set of procedures that check each field entered by
the user and the data transmitted to the web application
server. That’s why, thanks to the implementation of this
algorithm, businesses in the early stages of development
have the opportunity to protect their resources from two
types of attacks: MITM and Bruteforce since to prevent
MITM attacks, it is assumed that it will not be possible to
resend the token, since when the authorization page
reloads, the token will already be updated and, at the same
time, the data received from the user does not interact with
the database directly, but only through the server side of the
web application. To prevent a Bruteforce attack, the server
side, when receiving hash functions, logs the number of
successful/failed authorization attempts by the user, where
it is established that after 3 unsuccessful password attempts,
the user’s account and IP address are blocked for up to 30
minutes.</p>
    </sec>
    <sec id="sec-2">
      <title>5. Conclusions</title>
      <p>The analysis conducted at the beginning of this paper has
identified the key needs and threats that require the
purchase of commercial web application security products.
For enterprise-level companies, these solutions are
available, as well as the engineering resources that will be
involved in supporting their operation, but for small SMB
companies or new companies that are just starting, the
purchase of the described set of solutions is unaffordable.
That is why it was decided to improve the existing
algorithms, which will allow new companies or SMBs to
protect the credentials of users or customers of a web
application from attacks such as Man-in-the-Middle and
Bruteforce. To build a secure data transmission channel
between the client and the server, an algorithm consisting
of 10 levels was proposed, which describes the interaction
between the client’s web browser and the web application
server and describes the step-by-step operation of the
encryption algorithm. Also, while using and implementing
this algorithm on the authorization page, it is worth
considering subprocesses that are connected at two levels
on the server side and provide additional verification of user
activity when entering a login and password on the
authorization page. Also, for visualization, the last section
provides a practical application and display of the algorithm
at each stage of the transmission and receipt of encrypted
data between the client’s web browser and the web
application server, which allows you to clearly understand
what data is being processed and at what time. Through the
use of one-time tokens, the company can avoid reusing
tokens and compromising data in the database by gaining
unauthorized access to the data in the database. Also, it is
worth noting that this algorithm works in such a way that
the data sent to the web server is not transferred to the
database in any way, and the data is processed on an
intermediate server that interacts with both the client and
the database, which prevents SQL-Injection attacks and the
use of any other injection that relates specifically to the
corruption of data in the database.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          <string-name>
            <given-names>Y.</given-names>
            <surname>Shcheblanin</surname>
          </string-name>
          , et al.,
          <source>Research of Authentication Methods in Mobile Applications, in: Cybersecurity Providing in Information and Telecommunication Systems</source>
          Vol.
          <volume>3421</volume>
          . (
          <year>2023</year>
          )
          <fpage>266</fpage>
          -
          <lpage>271</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          <string-name>
            <surname>M. TajDini</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          <string-name>
            <surname>Sokolov</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          <string-name>
            <surname>Buriachok</surname>
          </string-name>
          ,
          <article-title>Men-in-theMiddle Attack Simulation on Low Energy Wireless Devices using Software Define Radio</article-title>
          ,
          <source>in: 8th International Conference on "Mathematics.</source>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          <string-name>
            <given-names>Information</given-names>
            <surname>Technologies</surname>
          </string-name>
          .
          <source>Education": Modern Machine Learning Technologies and Data Science</source>
          , vol.
          <volume>2386</volume>
          (
          <year>2019</year>
          )
          <fpage>287</fpage>
          -
          <lpage>296</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          <string-name>
            <given-names>D.</given-names>
            <surname>Shevchuk</surname>
          </string-name>
          , et al.,
          <source>Designing Secured Services for Authentication</source>
          , Authorization, and Accounting of Users,
          <source>in: Cybersecurity Providing in Information and Telecommunication Systems</source>
          II Vol.
          <volume>3550</volume>
          (
          <year>2023</year>
          )
          <fpage>217</fpage>
          -
          <lpage>225</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          <article-title>Akamai's Team, What Is a Web Application Firewall (WAF)? (</article-title>
          <year>2023</year>
          ). URL: https://www.akamai.com/glossary/what-is
          <article-title>-a-waf AWS's Team, What is a DDoS Attack? (</article-title>
          <year>2023</year>
          ). URL: https://aws.amazon.com/shield/ddos-attackprotection/?nc1=h_ls.
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          <article-title>AWS's Team, What is Multi-Factor Authentication (MFA)? (</article-title>
          <year>2023</year>
          ). URL: https://aws.amazon.com/whatis/mfa/?nc1=h_ls.
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <surname>Synopsys's Team</surname>
          </string-name>
          ,
          <source>Static Application Security Testing</source>
          (
          <year>2023</year>
          ). URL: https://www.synopsys.com/glossary/what-is-sast.html
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <surname>Synopsys's Team</surname>
          </string-name>
          ,
          <source>Dynamic Application Security Testing (DAST)</source>
          (
          <year>2023</year>
          ). URL: https://www.synopsys.com/glossary/what-isdast.html
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <surname>Cloudflare's Team</surname>
          </string-name>
          ,
          <source>Why use TLS 1</source>
          .3? (
          <year>2023</year>
          ). URL: https://www.cloudflare.com/learning/ssl/why-use-tls1.3/#:~:text=
          <source>TLS%201.3%20is%20the%20latest,TLS%20h andshakes%2C%20among%20other%20improvements</source>
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <surname>Sectigo</surname>
          </string-name>
          <article-title>'s Team, SHA 256 Algorithm Explained by a Cyber Security Consultant (</article-title>
          <year>2023</year>
          ). URL: https://sectigostore.com/blog/sha-256
          <string-name>
            <surname>-</surname>
          </string-name>
          algorithmexplained
          <article-title>-by-a-cyber-security-consultant/</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <article-title>Auth0's Team, Adding Salt to Hashing: A Better Way to Store Passwords (</article-title>
          <year>2023</year>
          ). URL: https://auth0.com/blog/adding-salt
          <article-title>-to-hashing-abetter-way-to-store-passwords/</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <surname>Imperva's Team</surname>
          </string-name>
          ,
          <source>Role-Based Access Control (RBAC)</source>
          (
          <year>2023</year>
          ). URL: https://www.imperva.com/learn/datasecurity/role
          <article-title>-based-access-control-rbac/</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <surname>ProxyDefense's Team</surname>
          </string-name>
          , What Is Cryptographic Strength: Definition, Examples &amp;
          <string-name>
            <surname>More</surname>
          </string-name>
          (
          <year>2023</year>
          ). URL: https://proxydefense.com/cryptographic-strength/
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>