Cargando…

Transport Layer Security 1.0 handshake protocol formal verification case study: How to use a proof script generator for existing large proof scores

The Transport Layer Security (TLS) 1.0 protocol has been formally verified with CafeInMaude Proof Generator (CiMPG) and Proof Assistant (CiMPA), where CafeInMaude is the second major implementation of CafeOBJ, a direct successor of OBJ3, a canonical algebraic specification language. The properties c...

Descripción completa

Detalles Bibliográficos
Autores principales: Tran, Duong Dinh, Wai Mon, Thet, Ogata, Kazuhiro
Formato: Online Artículo Texto
Lenguaje:English
Publicado: PeerJ Inc. 2023
Materias:
Acceso en línea:https://www.ncbi.nlm.nih.gov/pmc/articles/PMC10280648/
https://www.ncbi.nlm.nih.gov/pubmed/37346581
http://dx.doi.org/10.7717/peerj-cs.1284
_version_ 1785060843825659904
author Tran, Duong Dinh
Wai Mon, Thet
Ogata, Kazuhiro
author_facet Tran, Duong Dinh
Wai Mon, Thet
Ogata, Kazuhiro
author_sort Tran, Duong Dinh
collection PubMed
description The Transport Layer Security (TLS) 1.0 protocol has been formally verified with CafeInMaude Proof Generator (CiMPG) and Proof Assistant (CiMPA), where CafeInMaude is the second major implementation of CafeOBJ, a direct successor of OBJ3, a canonical algebraic specification language. The properties concerned are the secrecy property of pre-master secrets and the correspondence (or authentication) property from both server and client points of view. We need to use several lemmas to formally verify that TLS 1.0 enjoys the properties. CiMPG takes proof scores written in CafeOBJ and infers proof scripts that can be checked by CiMPA. Proof scores are prone to human errors and CiMPG can be regarded as a proof score checker in that if the proof scripts inferred by CiMPG from proof scores are successfully executed with CiMPA, it is guaranteed that no human error is lurking in the proof scores. We have used the existing proof scores to show that TLS 1.0 enjoys the two properties. We needed to revise the proof scores so that CiMPG can handle them. Through the revision process, we discovered that one additional lemma is required for the revised proof scores. There are about 20 proof scores and each proof score is large. It is not reasonable to handle all proof scores at the same time with CiMPG. Thus, we handled each proof score one by one with CiMPG. There is one proof score that it took a long time to handle with CiMPG. For that proof score, we handled each induction case one by one to reduce the time taken. We describe how to revise the existing proof scores, how to find the new lemma, the lemma, how to handle each proof score one by one, and how to handle each induction case one by one as tips on checking existing large proof scores with CiMPG and CiMPA.
format Online
Article
Text
id pubmed-10280648
institution National Center for Biotechnology Information
language English
publishDate 2023
publisher PeerJ Inc.
record_format MEDLINE/PubMed
spelling pubmed-102806482023-06-21 Transport Layer Security 1.0 handshake protocol formal verification case study: How to use a proof script generator for existing large proof scores Tran, Duong Dinh Wai Mon, Thet Ogata, Kazuhiro PeerJ Comput Sci Cryptography The Transport Layer Security (TLS) 1.0 protocol has been formally verified with CafeInMaude Proof Generator (CiMPG) and Proof Assistant (CiMPA), where CafeInMaude is the second major implementation of CafeOBJ, a direct successor of OBJ3, a canonical algebraic specification language. The properties concerned are the secrecy property of pre-master secrets and the correspondence (or authentication) property from both server and client points of view. We need to use several lemmas to formally verify that TLS 1.0 enjoys the properties. CiMPG takes proof scores written in CafeOBJ and infers proof scripts that can be checked by CiMPA. Proof scores are prone to human errors and CiMPG can be regarded as a proof score checker in that if the proof scripts inferred by CiMPG from proof scores are successfully executed with CiMPA, it is guaranteed that no human error is lurking in the proof scores. We have used the existing proof scores to show that TLS 1.0 enjoys the two properties. We needed to revise the proof scores so that CiMPG can handle them. Through the revision process, we discovered that one additional lemma is required for the revised proof scores. There are about 20 proof scores and each proof score is large. It is not reasonable to handle all proof scores at the same time with CiMPG. Thus, we handled each proof score one by one with CiMPG. There is one proof score that it took a long time to handle with CiMPG. For that proof score, we handled each induction case one by one to reduce the time taken. We describe how to revise the existing proof scores, how to find the new lemma, the lemma, how to handle each proof score one by one, and how to handle each induction case one by one as tips on checking existing large proof scores with CiMPG and CiMPA. PeerJ Inc. 2023-03-31 /pmc/articles/PMC10280648/ /pubmed/37346581 http://dx.doi.org/10.7717/peerj-cs.1284 Text en © 2023 Tran et al. https://creativecommons.org/licenses/by/4.0/This is an open access article distributed under the terms of the Creative Commons Attribution License (https://creativecommons.org/licenses/by/4.0/) , which permits unrestricted use, distribution, reproduction and adaptation in any medium and for any purpose provided that it is properly attributed. For attribution, the original author(s), title, publication source (PeerJ Computer Science) and either DOI or URL of the article must be cited.
spellingShingle Cryptography
Tran, Duong Dinh
Wai Mon, Thet
Ogata, Kazuhiro
Transport Layer Security 1.0 handshake protocol formal verification case study: How to use a proof script generator for existing large proof scores
title Transport Layer Security 1.0 handshake protocol formal verification case study: How to use a proof script generator for existing large proof scores
title_full Transport Layer Security 1.0 handshake protocol formal verification case study: How to use a proof script generator for existing large proof scores
title_fullStr Transport Layer Security 1.0 handshake protocol formal verification case study: How to use a proof script generator for existing large proof scores
title_full_unstemmed Transport Layer Security 1.0 handshake protocol formal verification case study: How to use a proof script generator for existing large proof scores
title_short Transport Layer Security 1.0 handshake protocol formal verification case study: How to use a proof script generator for existing large proof scores
title_sort transport layer security 1.0 handshake protocol formal verification case study: how to use a proof script generator for existing large proof scores
topic Cryptography
url https://www.ncbi.nlm.nih.gov/pmc/articles/PMC10280648/
https://www.ncbi.nlm.nih.gov/pubmed/37346581
http://dx.doi.org/10.7717/peerj-cs.1284
work_keys_str_mv AT tranduongdinh transportlayersecurity10handshakeprotocolformalverificationcasestudyhowtouseaproofscriptgeneratorforexistinglargeproofscores
AT waimonthet transportlayersecurity10handshakeprotocolformalverificationcasestudyhowtouseaproofscriptgeneratorforexistinglargeproofscores
AT ogatakazuhiro transportlayersecurity10handshakeprotocolformalverificationcasestudyhowtouseaproofscriptgeneratorforexistinglargeproofscores