A Blockchain based PKI Validation System based on Rare Events Management
Abstract
:1. Introduction
2. Attacks to PKI
3. Existing Solutions
4. A New Approach to X.509 Certificate Management Using Distributed Ledger Technology (DLT)
- A community of independent peers where everyone checks the certificates;
- The results of the checking phase must be shared in the community, by approval;
- The obtained results must be kept unchanged and tamper-proof.
4.1. The Chosen Blockchain Framework
- (a)
- Clients, who, as usual, activate TLS secure connections with a server, receiving the server certificate;
- (b)
- Servers with a domain name;
- (c)
- CAs.
- -
- Client:
- ○
- Certificate validation check to establish a TLS channel with a server.
- -
- Server
- ○
- New certificate issuance when the server publishes a new X.509 certificate;
- ○
- Certificate revocation when the server certificate is revoked.
- -
- For the CA
- ○
- New server certificate issuance: a new server X.509 certificate has been given to a server;
- ○
- New CA certificate issuance: a new CA (sub-ca) X.509 certificate has been issued to the CA itself;
- ○
- Server certificate revocation: a server X.509 certificate has been revoked;
- ○
- CA certificate revocation: a CA X.509 certificate has been revoked.
4.2. The Chosen Consensus Algorithm (CONS)
Details of the CONS Algorithm
- Is already in the ledger with a negative attribute and then is an anomaly;
- Alternatively, another couple (S,C) is in the ledger with a positive attribute, and then (S,C’) has to be rejected;
- Alternatively, there is nothing stored in the ledger, and then a consensus phase has to start.
4.3. The Smart Contract Structure and Its Relationships with the Consensus Algorithm
- (1)
- Check if the certificate is structurally valid and not expired;
- (2)
- Check if the certificate received from the server has been signed (directly or indirectly via a secure chain) by a root CA listed in some locally stored archives (trusted root CA or trusted intermediate CA);
- (3)
- If previous checks are OK, check the revocation against locally stored CLRs or against OCSP or using CA logs, as described in a previous section of this paper.
- (4)
- Alternatively, if one or more of the checks give KO:
- If allowed by the local policies of the browser and the O.S. (operating system), the user is asked, with an alert, if he wants to continue with the insecure server;
- Otherwise, the operation is interrupted, and the connection is closed.
Algorithm 1 Pseudo code of the smart contract procedure used from a client to validate an X.509 certificate received in the starting phase of a TLS connection. It is important to note that the algorithm also manages the case of a new server and a new associated certificate when the CA and the server involved are not in the blockchain. In this case, the agreement comes from a smart contract that checks that many unrelated clients with sparse locations start the TLS connection with the same server using the same certificate and the same IP address |
1. Procedure Validate (certificate, domainName, ipAddress) 2. { //Return values: VALID, REVOKED, EXPIRED, FAKE 3. find value for key=(certificate,domainName,ipAddress) 4. if(found) 5. { 6. If value is in (REVOKED,EXPIRED,FAKE) 7. return value 8. else if (the tuple =(certificate,domainName,ipAddress) is in the blockchain and has been 9. flagged as correct ) 10. return valid 11. else 12. { 13. ok = check the certificate on internet (try to connect to the server) and verify 14. that the certificate sent by the server is identical to the checked certificate 15. if (ok) 16. store key in the blockchain with value=VALID 17. return VALID 18. else 19. store key in the blockchain with value=FAKE 20. return FAKE 21. } 22. } 23. else { 24. ok = check the certificate on internet (try to connect to the server) and verify 25. that the certificate sent by the server is identical to the checked certificate 26. if (ok) 27. store key in the blockchain with value=VALID 28. return VALID 29. else 30. store key in the blockchain with value=FAKE 31. return FAKE 32. } 33. } |
- (0)
- The smart contract checks the tuple, particularly the couple (certificate, domain name), locally, like a browser, to see if the certificate is malformed, if the issuing CA is a trusted CA, and if the other static and structural checks have been done. Validate returns (and appends a simple log to the blockchain to support possible litigations) the status FAKE or EXPIRED or MALFORMED for a negative result in one of these checks. Otherwise, the following steps are done:
- (1)
- The smart contract checks if the tuple (certificate, domain name, IP address) is already in the blockchain. There are five possible cases where the tuple is already in the blockchain:
- (a)
- The CA and/or the server belong to the blockchain and have appended the tuple at the certificate issuing event;
- (b)
- The tuple is marked as revoked or expired (by the issuer CA, by the server that owns it);
- (c)
- The tuple has been checked in the past (validated) with a positive result;
- (d)
- The tuple has been checked in the past (validated) with a negative result;
- (e)
- The tuple (certificate, domain name, IP) is in the blockchain with a different IP address and with a positive validation (Case c).
- (f)
- The tuple (certificate, domain name, IP) is in the blockchain with a different IP address and with a negative validation (Case d).
5. Experimental Results
- First, the distance function uses the IP addresses of peers and then has an upper bound related to the physical structure of the network. Two peers are far each other if randomly selected in the two different subnetworks. The sparsity index grows linearly with M.
- Secondly, network times increase with the growth of network traffic and the cost function. For high network times, growth is exponential.
6. Conclusions
- Releasing and distributing developed codes as open source code; this step will help to check usability and consistency of developed tools in a larger community;
- Testing and validating the developed smart contract on different blockchains issuing interoperability problems;
- Performing a deeper analysis of usability of the proposed solution client side, with an experiment that includes all existing clients in terms of PC, operative systems, and browsers and their configurations;
- Submitting the developed experimental platform to penetration tests.
Author Contributions
Funding
Acknowledgments
Conflicts of Interest
Appendix A
- Step 1
- Generate a subset of M/2 random numbers in the set [1,50,000];
- Step 2
- Get the subset of associated IP in the class 192.168.x.y;
- Step 3
- Generate a subset of M/2 random numbers in the set [1,50,000];
- Step 4
- Get a subset of associated IP in the class 192.169.x.y.
- Step 1: Direct connection to the RLp (the target peer TP knows its IP address).
- Step 2: The RLp selects the previously generated subset of IP addresses (RandIPSet) and asks them to execute the Validate procedure passing the actual parameters (certificate, domain name, IP address), executing the first part of the CONS procedure.
- Step 3: Each selected peer (blockchain node) runs the Validate procedure.
- Step 4: RLp receives M answers and sends the result to the target peer and to the whole blockchain (second part of the CONS procedure).We added functionality to the standard consensus algorithm to speed up the certificate check in our context and particularly, to avoid blockchain sharing time. The RLp first sends the result to the TP (to update its local blockchain) and then shares the same result in the blockchain (following standard blockchain protocol). The TP receives the same result twice, but this is not a problem.
- Step 5: the TP reads the validation of the target certificate from its copy of the blockchain.
M | avg(RelativeSparsityIndex) | Avg(Time) |
---|---|---|
20 | 30,434.78 | 5.66 |
21 | 31,533.55 | 5.65 |
22 | 29,675.02 | 5.92 |
23 | 30,298.61 | 5.93 |
24 | 31,341.9 | 5.94 |
25 | 32,194.41 | 5.99 |
26 | 31,380.52 | 6.01 |
27 | 33,372.6 | 6.1 |
28 | 39,412.3 | 5.98 |
29 | 38,401.43 | 5.8 |
30 | 39,532.11 | 6.04 |
31 | 36,978.64 | 6.16 |
32 | 34,779.43 | 6.12 |
33 | 33,610.2 | 6.13 |
34 | 30,001.11 | 6.81 |
35 | 26,344.21 | 7.14 |
36 | 12,989.01 | 8.4 |
37 | 12,291.99 | 8.72 |
38 | 14,700.12 | 8.33 |
39 | 7288.54 | 9.68 |
40 | 7277.10 | 9.43 |
References
- Cooper, D. Internet X.509 public key infrastructure certificate and certificate revocation list (crl) profile. RFC 2008, 5280, 1–151. [Google Scholar]
- Prins, J.; Cybercrime, B.U. Diginotar certificate authority breach operation black tulip. Fox-IT Interim Rep. 2011. [Google Scholar] [CrossRef]
- Hasan, H.R.; Salah, K. Proof of Delivery of Digital Assets using Blockchain and Smart Contracts. IEEE Access 2018, 6, 65439–65448. [Google Scholar] [CrossRef]
- Pongnumkul, S.; Siripanpornchana, C.; Thajchayapong, S. Performance Analysis of Private Blockchain Platforms in Varying Workloads. In Proceedings of the 2017 26th International Conference on Computer Communication and Networks (ICCCN), Vancouver, BC, Canada, 31 July–3 August 2017. [Google Scholar] [CrossRef]
- Garay, J.A.; Kiayas, A.; Leonardos, N. Bootstrapping the Blockchain with Applications to Consensus and Fast PKI setup. In Public-Key Cryptography—PKC 2018; Springer: Berlin/Heidelberg, Germany, 2018; Volume 10770. [Google Scholar]
- Constantin, L. rustware Admits Issuing Man-in-the-Middle Digital Certificate; Mozilla Debates Punishment. February 2012. Available online: https://www.computerworld.com/article/2501291/trustwave-admits-issuing-man-in-the-middle-digital-certificate--mozilla-debates-punishment.html (accessed on 10 May 2019).
- Langley, A. Enhancing Digital Certificate Security. January 2013. Available online: http://security.blogspot.com/2013/01/enhancing-digital-certificate-security.html (accessed on 10 May 2019).
- Baitha, A.; Vinod, S. Session Hijacking and Prevention Technique. Int. J. Eng. Technol. 2018, 7, 193. [Google Scholar] [CrossRef] [Green Version]
- Certificate Transparency. Available online: https://www.certificate-transparency.org/ (accessed on 10 May 2019).
- Matsumoto, S.; Reischuk, R.M. Ikp: Turning a pki around with blockchains. IACR Cryptol. ePrint Arch. 2016, 2016, 1018. [Google Scholar]
- Wazan, A.S.; Laborde, R.; Barrère, F.; Benzekri, A.; Chadwick, D.W. PKI Interoperability: Still an Issue? A Solution in the X.509 Realm. In Proceedings of the IFIP World Conference on Information Security Education, Bento Gonçalves, Brazil, 27–31 July 2009. [Google Scholar] [CrossRef] [Green Version]
- Androulaki, E.; Barger, A.; Bortnikov, V.; Cachin, C.; Christidis, K.; De Caro, A.; Enyeart, D.; Ferris, C.; Laventman, G.; Manevich, Y.; et al. Hyperledger Fabric: A Distributed Operating System for Permissioned Blockchains. In Proceedings of the EuroSys ‘18, Thirteenth EuroSys Conference, Porto, Portugal, 23–26 April 2018. [Google Scholar]
- Riabi, I.; Ayed, H.K.; Saidane, L.A. A survey on Blockchain based access control for Internet of Things. In Proceedings of the 2019 15th International Wireless Communications & Mobile Computing Conference (IWCMC), Tangier, Morocco, 24–28 June 2019; pp. 502–507. [Google Scholar]
- Yakubov, A.; Shbair, W.; Wallbom, A.; Sanda, D. A Blockchain based PKI Management Framework. In Proceedings of the First IEEE/IFIP International Workshop on Managing and Managed by Blockchain (Man2Block) Colocated with IEEE/IFIP NOMS 2018, Tapei, Tawain, 23–27 April 2018. [Google Scholar]
- Baldi, M.; Chiaraluce, F.; Frontoni, E.; Gottardi, G.; Sciarroni, D.; Spalazzi, L. Certificate Validation through Public Ledgers and Blockchains. In Proceedings of the First Italian Conference on Cybersecurity (ITASEC17), Venice, Italy, 17–20 January 2017. [Google Scholar]
- Al-Bassam, M. SCPKI: A Smart Contract-based PKI and Identity System. In Proceedings of the ACM Workshop on Blockchain, Cryptocurrencies and Contracts, Abu Dhabi, UAE, 2–6 April 2017. [Google Scholar]
- Roozbehani, M.; Povilionis, A.; Schunck, C.H.; Talamo, M. On the Fragility of Network Security Verification in Rare-Observation Regimes. In Proceedings of the IFAC 2017 World Congress, Toulouse, France, 9–14 July 2017. [Google Scholar]
- Wagner, J. Why Performance Matters. Available online: https://developers.google.com/web/fundamentals/performance/why-performance-matters (accessed on 12 February 2020).
- Gilad, Y.; Hemo, R.; Micali, S.; Vlachos, G.; Zeldovich, N. Algorand: Scaling Byzantine Agreements for Cryptocurrencies. In Proceedings of the 26th Symposium on Operating Systems Principles, Shanghai, China, 28 October 2017. [Google Scholar]
- Van Der Aalst, W.; Adriansyah, A.; De Medeiros, A.K.A.; Arcieri, F.; Baier, T.; Blickle, T.; Bose, J.C.; Van Den Brand, P.; Brandtjen, R.; Buijs, J.; et al. Process Mining Manifesto. In Proceedings of the Business Process Management Workshops, Clermont-Ferrand, France, 30 August–2 September 2011. [Google Scholar]
- Ongaro, D.; Ousterhout, J. The Raft Consensus Algorithm. Available online: https://raft.github.io/ (accessed on 10 May 2019).
Class | Attack | Consequence |
---|---|---|
CA side | Fake CA | Issuing and distribution of fake server certificate |
Fake CA in the client store | Man in the middle attack | |
Server side | Certificate/private key stolen with server awareness | Server duplicate/Man in the middle attack |
Certificate/private key stolen without server awareness | Server duplicate/Man in the middle attack | |
CRL/OCSP | Delay in CRL issuing | Fake server |
Fake CRL address in fake server certificate | Fake server |
© 2020 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 (http://creativecommons.org/licenses/by/4.0/).
Share and Cite
Talamo, M.; Arcieri, F.; Dimitri, A.; Schunck, C.H. A Blockchain based PKI Validation System based on Rare Events Management. Future Internet 2020, 12, 40. https://doi.org/10.3390/fi12020040
Talamo M, Arcieri F, Dimitri A, Schunck CH. A Blockchain based PKI Validation System based on Rare Events Management. Future Internet. 2020; 12(2):40. https://doi.org/10.3390/fi12020040
Chicago/Turabian StyleTalamo, Maurizio, Franco Arcieri, Andrea Dimitri, and Christian H. Schunck. 2020. "A Blockchain based PKI Validation System based on Rare Events Management" Future Internet 12, no. 2: 40. https://doi.org/10.3390/fi12020040
APA StyleTalamo, M., Arcieri, F., Dimitri, A., & Schunck, C. H. (2020). A Blockchain based PKI Validation System based on Rare Events Management. Future Internet, 12(2), 40. https://doi.org/10.3390/fi12020040