Securing Remote Access to Information Systems of Critical Infrastructure Using Two-Factor Authentication
Abstract
:1. Introduction
2. State-of-the-Art in Authentication Methods
3. Proposed 2FA Authentication Method
- The authentication of a remote user should be based on a strong multi-channel out-of-band authentication;
- A procedure of the authentication must be established in a such way that to enable the approvement of a request for remote access by a higher level employee in order to prevent remote access to critical infrastructure’s systems by unauthorized persons;
- A processes for a remote access and authentication should be done over a secure channel (i.e., based on HTTPS protocol and VPN tunnels).
- To provide the account ID and a password, associated with it, that the user receives from the system’s administrator during the creation of the user account. An authentication request will be sent to the user’s mobile device in a case of provided correct data;
- To approve successfully the authentication request, which was sent to the user himself, after that an authorization request will be send to the user’s supervisor or several supervisors (as a higher level employee) asking if the applicant is allowed to connect to a particular system and whether remote access is allowed to him;
- To connect to the critical system if one of the specified supervisors successfully approves the authorization request of a user and allows him a remote access to the secure system.
- Resilient-to-Physical-Observation,
- Resilient-to-Targeted-Impersonation;
- Resilient-to-Throttled-Guessing,
- Resilient-to-Unthrottled-Guessing,
- Resilient-to-Internal-Observation,
- Resilient-to-Leaks-from-Other-Verifiers,
- Resilient-to-Phishing,
- Resilient-to-Theft,
- No-Trusted-Third-Party,
- Requiring-Explicit-Consent,
- Unlinkable.
4. Testing the Usability of Proposed Method
4.1. Testing Scenario
4.2. Testing Setup
- The configuration file specifies how many accounts of the users as well OAuth 2.0 clients and historical authentication requests need to be generated;
- The specified amounts of data are generated and stored in the database when the application is launched;
- When the application is launched, there are two API access points for generating tokens in order to approve the requests for user’s authentication and authorization. These API access points are designed to dynamically generate data generated by a mobile application.
- One db.t3.medium type PostgreSQL 12.2-R1 RDS server;
- One t2.medium (2 vCPU, 2GB RAM) type EC2 server for data generation API application;
- One t2.medium (2 vCPU, 4GB RAM) type EC2 server for authentication API application.
- An infrastructure of a specified configuration was created on the AWS cloud computing platform;
- An authentication API application was installed into EC2 server and runs there;
- A database schema was created on the RDS server;
- A data generation API application was installed on the EC2 server;
- The configuration of the generated data set was specified and the data generation application was launched;
- Conviction that the data set was generated successfully was done by connecting to the RDS;
- JMeter tool was installed and configured on the EC2 server, where a data generation API application was installed;
- JMeter tool was activated with the specified dataset configuration;
- The results of the experiment were collected from the reporting/index.html file upon a successful completion of the tests.
4.3. Results
- The number of database connections did not change during the experimental testing and it was 20. This number was constant, because the authentication API application is configured to use a fixed connection pool of a database;
- Rising volumes of data sets affected the load on CPU of EC2 server—it also increased (i.e., the load of database reached a peak of 70.4% while the load rised up to 66.2% on EC2 server when data set #5 was tested);
- The maximum values in response times were carried out during the experiments with the first API endpoint (Create authentication request);
- The most noticeable changes in response times were between data sets #4 and #5, while other response times increased several times for most access points;
- Testing with data set #4, which was configured for 100 parallel users, the response times for all API endpoints did not exceed the threshold of 300 ms. The results under this perspective confirmed that the rapidity of the proposed method follows arised requirement for the operation of the system with 100 parallel users;
- Testing with the largest data set #5, which was configured for 200 parallel users, the API endpoint with the highest response time processed requests in 462.9 ms. In this case, the same requirement for the operation of the system was met.
5. Experimental Testing of Resilience to Cyber Threats
5.1. Testing Setup
- Entering the data required for the scripts into a database;
- Accessing authentication API endpoints with HTTP requests that are specified in scripts;
- Processing of testing scenarios and presentation of testing results.
5.2. Testing Scenario
- /api/oauth/request—API endpoint for the initiation of the authentication request;
- /api/oauth/request/${requestId}/approve-authentication—API endpoint for the authentication approve;
- /api/oauth/request/${requestId}/approve-authorization—API endpoint for the authorization approve;
- /api/oauth/token—API endpoint for token issuance.
- Scenario Invalid_Signature—Malevolent users could tamper JWT token payload, which would result in an invalid signature part;
- Scenario None_Algorithm—Malevolent users could tamper JWT token by changing its signing algorithm to “None” to bypass signature verification;
- Scenario Tamper_Not_Before—Malevolent users could tamper JWT token by changing its issuing time claim to use it before it becomes valid;
- Scenario Authorization Approve Other_Request—Malevolent users could tamper JWT token by changing the user identifier stored within it to approve requests for other users that were not their subordinates;
- Scenario Authentication Approve Other_Request—Malevolent users could tamper JWT token by changing the user identifier stored within it to approve the request on behalf of the other user;
- Scenario Tamper_Expiration—Malevolent users could try to use a JWT token that had expired;
- Scenario Tamper_Action—Malevolent users could tamper JWT token by changing its action claim to perform an action that they were not authorized to (i.e., to approve authentication);
- Scenario Replay—Malevolent users could perform replay attacks to take advantage of an intercepted valid request;
- Scenario Expired_Session—Malevolent users could submit a valid request after the authentication process session expiration time.
5.3. Results
6. Conclusions
Author Contributions
Funding
Data Availability Statement
Acknowledgments
Conflicts of Interest
References
- Mullane, M.A. Cyber Attacks Targeting Critical Infrastructure. Available online: https://etech.iec.ch/issue/2019-02/cyber-attacks-targeting-critical-infrastructure (accessed on 16 October 2019).
- Adelmeyer, M.; Teuteberg, F. Cloud Computing Adoption in Critical Infrastructures-Status Quo and Elements of a Research Agenda. In Proceedings of the Multikonferenz Wirtschaftsinformatik (MKWI 2018), Lüneburg, Germany, 6–9 March 2018; pp. 1345–1356. [Google Scholar]
- National Intelligence Strategy of the United States of America. Reports and Publications. 2019. Available online: https://www.dni.gov/index.php/newsroom/reports-publications/item/1943-2019-national-intelligence-strategy (accessed on 22 September 2020).
- Kaspersky Lab ICS CERT. Threat landscape for Industrial Automation Systems (Report H1 2020). Available online: https://ics-cert.kaspersky.com/reports/2020/09/24/threat-landscape-for-industrial-automation-systems-h1-2020/ (accessed on 13 November 2020).
- Archana, B.S.; Chandrashekar, A.; Bangi, A.G.; Sanjana, B.M.; Akram, S. Survey on usable and secure two-factor authentication. In Proceedings of the 2017 2nd IEEE International Conference on Recent Trends in Electronics, Information and Communication Technology (RTEICT), Bangalore, India, 19–20 May 2017; pp. 842–846. [Google Scholar]
- Ometov, A.; Bezzateev, S.; Mäkitalo, N.; Andreev, S.; Mikkonen, T.; Koucheryavy, Y. Multi-factor authentication: A survey. Cryptography 2018, 2, 1. [Google Scholar] [CrossRef] [Green Version]
- Ali, F.A.B.H.; Hanza, M.Z.B.M.; Sukri, M.A.B.M. Two Factor Authentication by Using SMS for Web Based Application. Int. J. Inf. Technol. 2020, 9, 21–24. [Google Scholar]
- Drzhzhin, A. SMS-Based Two-Factor Authentication Is Not Safe—Consider These Alternative 2FA Methods Instead. Available online: https://www.kaspersky.com/blog/2fa-practical-guide/24219/ (accessed on 17 January 2019).
- Grassi, P.A.; Fenton, J.L.; Burr, W.E. Digital Identity Guidelines—Authentication and Lifecycle Management: NIST Special Publication 800-63B. Available online: https://pages.nist.gov/800-63-3/sp800-63b.html (accessed on 10 January 2019).
- Markert, P.; Farke, F.; Dürmuth, M. View the email to get hacked: Attacking SMS-based two-factor authentication. In Proceedings of the WAY Conference, Santa Clara, CA, USA, 11 August 2019; pp. 1–6. [Google Scholar]
- Babkin, S.; Epishkina, A. Authentication protocols based on one-time passwords. In Proceedings of the 2019 IEEE Conference of Russian Young Researchers in Electrical and Electronic Engineering (EIConRus), Saint Petersburg and Moscow, Russia, 28–31 January 2019; pp. 1794–1798. [Google Scholar]
- Pernpruner, M.; Carbone, R.; Ranise, S.; Sciarretta, G. The Good, the Bad and the (Not So) Ugly of Out-of-Band Authentication with eID Cards and Push Notifications: Design, Formal and Risk Analysis. In Proceedings of the Tenth ACM Conference on Data and Application Security and Privacy, New Orleans, LA, USA, 16–18 March 2020; pp. 223–234. [Google Scholar]
- Bissada, A.; Olmsted, A. Mobile multi-factor authentication. In Proceedings of the 12th IEEE International Conference for Internet Technology and Secured Transactions (ICITST), Cambridge, UK, 11–14 December 2017; pp. 210–211. [Google Scholar]
- Aldumiji, N.A.; Khan, E.A. Fingerprint and location based multifactor authentication for mobile applications. Int. J. Eng. Technol. 2019, 8, 193–204. [Google Scholar]
- Zhang, F.; Kondoro, A.; Muftic, S. Location-based authentication and authorization using smart phones. In Proceedings of the IEEE 11th International Conference on Trust, Security and Privacy in Computing and Communications, Liverpool, UK, 25–27 June 2012; pp. 1285–1292. [Google Scholar]
- Bhand, A.; Desale, V.; Shirke, S.; Shirke, S.P. Enhancement of password authentication system using graphical images. In Proceedings of the IEEE International Conference on Information Processing (ICIP), Pune, India, 16–19 December 2015; pp. 217–219. [Google Scholar]
- Das, S.; Dingman, A.; Camp, L.J. Why Johnny doesn’t use two factor a two-phase usability study of the FIDO U2F security key. In Financial Cryptography and Data Security; Meiklejohn, S., Sako, K., Eds.; Springer: Berlin/Heidelberg, Germany, 2018; pp. 160–179. [Google Scholar]
- Choi, Y.; Lee, Y.; Moon, J.; Won, D. Security enhanced multi-factor biometric authentication scheme using bio-hash function. PLoS ONE 2017, 12, 1. [Google Scholar] [CrossRef] [PubMed]
- Mahadi, N.A.; Mohamed, M.A.; Mohamad, A.I.; Makhtar, M.; Kadir, M.F.A.; Mamat, M. A survey of machine learning techniques for behavioral-based biometric user authentication. In Recent Advances in Cryptography and Network Security; Mitra, P., Ed.; IntechOpen: London, UK, 2018; pp. 43–54. [Google Scholar]
- Corradini, F.; Ferrari, A.; Fornari, F.; Gnesi, S.; Polini, A.; Re, B.; Spagnolo, G.O. A guidelines framework for understandable BPMN models. Data Knowl. Eng. 2018, 113, 129–154. [Google Scholar] [CrossRef]
- Bonneau, J.; Herley, C.; Van Oorschot, P.C.; Stajano, F. The Quest to Replace Passwords: A Framework for Comparative Evaluation of Web Authentication Schemes. In Proceedings of the IEEE Symposium on Security and Privacy, San Francisco, CA, USA, 20–23 May 2012; pp. 553–567. [Google Scholar]
- Jurgilas, K. Subjekto 2FA skaitmeninio autentifikavimo prie kritinės infrastruktūros informacinės sistemos struktūrizuotas vertinimas. In Proceedings of the conference “Lietuvos magistrantų informatikos ir IT tyrimai”, Vilnius, Lietuva, 14 May 2021; pp. 23–33. [Google Scholar]
- Boonkrong, S. Internet Banking Login with Multi-Factor Authentication. KSII Trans. Internet Inf. Syst. 2017, 11, 511–535. [Google Scholar]
- Hussein, K.W.; Sani, N.F.M.; Mahmod, R.; Abdullah, M.T. Design and Implementation of Multi Factor Mechanism for Secure Authentication System. Int. J. Comput. Sci. Inf. Secur. 2013, 11, 31–37. [Google Scholar]
- Lami, I.A.; Kuseler, T.; Al-Assam, H.; Jassim, S. LocBiometrics: Mobile phone based multi- factor biometric authentication with time and location assurance. In Proceedings of the Telecommunications forum TELFOR, Serbia, Belgrade, 23–25 November 2010; pp. 151–154. [Google Scholar]
- Maciej, B.; Imed, E.F.; Kurkowski, M. Multifactor Authentication Protocol in a Mobile Environment. IEEE Access 2019, 7, 157185–157199. [Google Scholar] [CrossRef]
- Abdellaoui, A.; Khamlichi, Y.I.; Chaoui, Y. A Novel Strong Password Generator for Improving Cloud Authentication. Procedia Comput. Sci. 2016, 85, 293–300. [Google Scholar] [CrossRef] [Green Version]
- Fang, X.; Zhan, J. Online Banking Authentication Using Mobile Phones. In Proceedings of the 5th International Conference on Future Information Technology, Busan, Korea, 21–23 May 2010; pp. 1–5. [Google Scholar]
- Misbahuddin, M.; Roshni, V.; Thomas, A.; Kumar, U. A Unique-ID based Usable Multi-Factor Authentication Scheme for e-Services. In Proceedings of the International Conference for Security and Management, Las Vegas, NV, USA, 27–30 July 2015; pp. 295–301. [Google Scholar]
Testing Phase | Endpoint | Application |
---|---|---|
Create authentication request | /api/oauth/request | Authentication API |
Get authentication approval JWT token | /api/approvals/${username}/authentication | Generation of data API |
Approve authentication | /api/oauth/request/${requestId}/approve-authentication | Authentication API |
Get authorization approval JWT token | /api/approvals/${username}/authorization | Generation of data API |
Approve authorization | /api/oauth/request/${requestId}/approve-authorization | Authentication API |
Get authorization code | /api/oauth/request/${requestId} | Authentication API |
Exchange authorization code | /api/oauth/token | Authentication API |
Renew access token | /api/oauth/token | Authentication API |
Number of | #1 | #2 | #3 | #4 | #5 |
---|---|---|---|---|---|
Parallel users | 10 | 20 | 50 | 100 | 200 |
System users in total | 10 | 100 | 500 | 1000 | 2000 |
OAuth 2.0 clients | 3 | 10 | 25 | 50 | 100 |
Historical authentication requests | 3000 | 30,000 | 150,000 | 300,000 | 600,000 |
Scenario No. | Description of HTTP Requests |
---|---|
(Request Method—POST) | |
Scenario no. 1: Brute Force Password Malevolent users can use a brute-force attack to guess user passwords | Body: { “password”: “password”, “clientId”: “security-test-client-3”, “redirectUrl”: “test-redirect-url”, “codeChallenge”: “ba7816bf8f01cfea414140de5dae2223b 00361a396177a9cb410ff61f20015ad”, “username”: “test-user” } |
Scenario no. 2: Tamper Redirect Url Malevolent users can tamper the „redirectUrl“ parameter and redirect users to malicious websites after successful authentication | Body: { “password”: “password”, “clientId”: “security-test-client-3”, “redirectUrl”: “tampered-redirect-url”, Tampered value “codeChallenge”: “ba7816bf8f01cfea414140de5dae 2223b00361a396177a9cb410ff61f20015ad”,“username”: “test-user” } |
Scenario no. 3: Tamper Client ID Malevolent users can tamper the „clientId“ parameter to gain access to the system which should not be accessed by the user | Body: { “clientId”: “security-test-client-4”, Tampered value “code”:“433182cc-0c7f-4cf0-bdf9-2452a5d47d5e”, “codeVerifier”: “abc”, “clientSecret”:“security-test-client-secret”, “grantType”: “authorization_code” } |
Scenario No. | Description of HTTP Requests |
---|---|
(Request Method—POST) | |
Scenario no. 1: Expired Refresh Token Malevolent users can use an expired refresh token to get a new access token and gain a never-ending session | Body: { “clientId”: ”security-test-client-3”, “clientSecret”:“security-test-client-secret”, “grantType”: “refresh_token”, “refreshToken”:“bb4f451e-a576-4312-97e8-179821a2c2e1” Tampered value} |
Scenario no. 2: Tamper Client ID Malevolent users can tamper the “clientId” parameter to get access tokens to the system which should not be accessed by the user | Body: { “clientId”: “security-test-client-4”, Tampered value “code”:“a2c9959b-a741-4bb4-a907-55301909146e”, “codeVerifier”: “abc”, “clientSecret”: “security-test-client-secret”, “grantType”: “authorization_code”} |
Scenario no. 3: Tamper Client Secret Malevolent users can tamper the “clientSecret” parameter to gain access to the system which should not be accessed by the user | Body: { “clientId”: “security-test-client-3”, “code”: “8536a120-2ab5-4bab-af0c-fed009b1ba0e”, “codeVerifier”: “abc”, “clientSecret”: “invalid-secret”, Tampered value “grantType”: “authorization_code” } |
Scenario no. 4: Tamper Code Verifier Malevolent users can tamper the “codeVerifier” parameter to bypass the Proof Key for Code Exchange verification check | Body: { “clientId”: “security-test-client-3”, “code”: “ee3fec73-bcb3-4dcf-a79e-8a4f8fdd53ff”, “codeVerifier”: “tampered-verifier”,Tampered value “clientSecret”: “security-test-client-secret”, “grantType”: “authorization_code” } |
Scenario no. 5: Tamper Replay Malevolent users can perform replay attacks to take advantage of an intercepted valid request | Body: { “clientId”: “security-test-client-3”, “code”:“610aaddb-b049-4e4e-bfae-00b9eee8d255”, “codeVerifier”: “abc”, “clientSecret”:“security-test-client-secret”, “grantType”: “authorization_code” } |
Description | Body |
---|---|
The JWT token provided in the request is decoded | { “kid”: 3631,Tampered value “alg”: “RS256” } { “action”:“APPROVE_AUTHENTICATION”, “iat”: 1614949467, “sub”: “3631”, “exp”: 1614949647 } |
HTTP response body | { “token”:“eyJraWQiOjM2MzEsImFsZyI6IlJTMjU2In0...” } |
Description | Body |
---|---|
False positive | HTTP/1.1 200 Content-Type: application/json { “status”: “success”, “data”: { “requestStatus”: “PENDING_AUTHORIZATION_APPROVAL”, “requestId”: “7FF10BCA” } } |
After fixing | { “status”: “error”, “data”: { “code”: “error.validation”, “message”: “Failed to verify token” } } |
Description | Body |
---|---|
False positive | HTTP/1.1 200 Content-Type: application/json { “status”: “success”, “data”: { “accessToken”: “eyJraWQiOiIxIiwiYWxnIjoiUlM1MTIifQ... ”, “refreshToken”:“17d0ab1c-a7c3-4309-a002-5abb3ebd0784”} } |
After fixing | { “status”: “error”, “data”: { “code”: “error.validation”, “message”: “Oauth client was not found” } } |
Publisher’s Note: MDPI stays neutral with regard to jurisdictional claims in published maps and institutional affiliations. |
© 2021 by the authors. Licensee MDPI, Basel, Switzerland. This article is an open access article distributed under the terms and conditions of the Creative Commons Attribution (CC BY) license (https://creativecommons.org/licenses/by/4.0/).
Share and Cite
Bruzgiene, R.; Jurgilas, K. Securing Remote Access to Information Systems of Critical Infrastructure Using Two-Factor Authentication. Electronics 2021, 10, 1819. https://doi.org/10.3390/electronics10151819
Bruzgiene R, Jurgilas K. Securing Remote Access to Information Systems of Critical Infrastructure Using Two-Factor Authentication. Electronics. 2021; 10(15):1819. https://doi.org/10.3390/electronics10151819
Chicago/Turabian StyleBruzgiene, Rasa, and Konstantinas Jurgilas. 2021. "Securing Remote Access to Information Systems of Critical Infrastructure Using Two-Factor Authentication" Electronics 10, no. 15: 1819. https://doi.org/10.3390/electronics10151819
APA StyleBruzgiene, R., & Jurgilas, K. (2021). Securing Remote Access to Information Systems of Critical Infrastructure Using Two-Factor Authentication. Electronics, 10(15), 1819. https://doi.org/10.3390/electronics10151819