ebook img

Alexandre Melo Braga Towards the Safe Development of Cryptographic Software Rumo ao PDF

151 Pages·2017·3.17 MB·English
by  
Save to my drive
Quick download
Download
Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.

Preview Alexandre Melo Braga Towards the Safe Development of Cryptographic Software Rumo ao

Universidade Estadual de Campinas Instituto de Computação INSTITUTODE COMPUTAÇÃO Alexandre Melo Braga Towards the Safe Development of Cryptographic Software Rumo ao Desenvolvimento Seguro de Software Criptográfico CAMPINAS 2017 Alexandre Melo Braga Towards the Safe Development of Cryptographic Software Rumo ao Desenvolvimento Seguro de Software Criptográfico Tese apresentada ao Instituto de Computação da Universidade Estadual de Campinas como parte dos requisitos para a obtenção do título de Doutor em Ciência da Computação. Dissertation presented to the Institute of Computing of the University of Campinas in partial fulfillment of the requirements for the degree of Doctor in Computer Science. Supervisor/Orientador: Prof. Dr. Ricardo Dahab Este exemplar corresponde à versão final da Tese defendida por Alexandre Melo Braga e orientada pelo Prof. Dr. Ricardo Dahab. CAMPINAS 2017 Agência(s) de fomento e nº(s) de processo(s): CNPq, 312642/2015-6 Ficha catalográfica Universidade Estadual de Campinas Biblioteca do Instituto de Matemática, Estatística e Computação Científica Silvania Renata de Jesus Ribeiro - CRB 8/6592 Braga, Alexandre Melo, 1974- B73t BraTowards the safe development of cryptographic software / Alexandre Melo Braga. – Campinas, SP : [s.n.], 2017. BraOrientador: Ricardo Dahab. BraTese (doutorado) – Universidade Estadual de Campinas, Instituto de Computação. Bra1. Criptografia. 2. Engenharia de software. 3. Tecnologia da informação - Segurança. 4. Software - Desenvolvimento - Medidas de segurança. 5. Engenharia de software - Medidas de segurança. I. Dahab, Ricardo, 1957-. II. Universidade Estadual de Campinas. Instituto de Computação. III. Título. Informações para Biblioteca Digital Título em outro idioma: Rumo ao desenvolvimento seguro de software criptográfico Palavras-chave em inglês: Cryptography Software Engineering Information technology - Security Software - Development - Security controls Software engineering - Security controls Área de concentração: Ciência da Computação Titulação: Doutor em Ciência da Computação Banca examinadora: Ricardo Dahab [Orientador] Alessandro Fabricio Garcia Ricardo Felipe Custódio Breno Bernard Nicolau de França Diego de Freitas Aranha Data de defesa: 19-12-2017 Programa de Pós-Graduação: Ciência da Computação Powered by TCPDF (www.tcpdf.org) Universidade Estadual de Campinas Instituto de Computação INSTITUTODE COMPUTAÇÃO Alexandre Melo Braga Towards the Safe Development of Cryptographic Software Rumo ao Desenvolvimento Seguro de Software Criptográfico Banca Examinadora: Prof. Dr. Ricardo Dahab • Instituto de Computação, Universidade Estatual de Campinas Prof. Dr. Alessandro Fabricio Garcia • Pontifícia Universidade Católica do Rio de Janeiro Prof. Dr. Ricardo Felipe Custódio • LaboratóriodeSegurançaEmComputação, UniversidadeFederaldeSantaCatarina Prof. Dr. Breno Bernard Nicolau de França • Instituto de Computação, Universidade Estatual de Campinas Prof. Dr. Diego de Freitas Aranha • Instituto de Computação, Universidade Estatual de Campinas A ata da defesa com as respectivas assinaturas dos membros da banca encontra-se no processo de vida acadêmica do aluno. Campinas, 19 de dezembro de 2017 Dedication To Kelcy, Gustavo, and Leonardo. Follow your bliss and the universe will open doors where there were only walls. (Joseph Campbell) Acknowledgements To my wife. To my parents. To my family. To my advisor and my friend. To my fellows from Coimbra. To my defense’s committee. To my interns. To my bosses. To UNICAMP. To CPqD. I’ve never been alone on this journey. Like an apprentice with many masters. My achievement had the support of each and every one of you. Like a pilgrim with many helpers. Thanks for being part of my adventure. Like a hero with many faces. Resumo A sabedoria popular diz que qualquer sistema é tão seguro quanto o seu elo mais fraco. Com o uso generalizado de bibliotecas criptográficas de boa reputação, baseadas em pa- drões confiáveis de algoritmos de qualidade, implementações inseguras ou falhas na mate- mática subjacente não são os elos fracos mais prováveis. Porém, o comprometimento da criptografia ou da sua implementação são eventos raros de impacto catastrófico. Atualmente,ainvestigaçãosistemáticadeproblemaspráticosassociadosaomauusode criptografia está ganhando força. À medida que a segurança torna-se transparente para os usuários e a criptografia de boa reputação está disponível para todos os desenvolvedores, o elofracomaisprováveldeixadeserainfra-estruturacriptográficaparasetornarosoftware em torno da criptografia, escrito por desenvolvedores não especialistas no assunto. Hoje, o mau uso generalizado da criptografia em software é a fonte mais freqüente de problemas de segurança relacionados à criptografia. O efeito cumulativo desse mau uso generalizado também tem um impacto catastrófico, embora difuso. Esta tese investiga o papel da criptografia na segurança de software e fortalece o surgimento da segurança de software criptográfico como um novo campo de estudo preocupado com o desenvolvimento sistemático de software criptográfico seguro. Esta tese alcançou os seguintes resultados. Primeiramente, uma revisão da literatura sobre programação e verificação de software criptográfico descobriu que apenas um quarto das ferramentas identificadas poderia ser usado por programadores não especialistas em criptografia. Em segundo lugar, uma metodologia para o desenvolvimento de software criptográfico seguro consolidou as práticas casuais empregadas pela segurança de soft- ware na construção de software criptográfico. Adicionalmente, um estudo empírico sobre comunidades on-line para programação descobriu que o mau uso de criptografia é muito freqüente, com padrões recorrentes de mau uso. Em quarto lugar, uma avaliação de fer- ramentas de análise estática descobriu que estas ferramentas detectam pouco mais de um terço dos maus usos criptográficos. Além deste, um estudo longitudinal e retrospectivo sobre o mau uso da criptografia descobriu que desenvolvedores podem aprender a usar APIs criptográficas sem realmente aprender criptografia, enquanto alguns maus usos per- sistem ao longo do tempo. Finalmente, uma classificação dos maus usos da criptografia, voltada para a área de segurança de software, e uma metodologia para o desenvolvimento de software criptográfico compõem o corpo de conhecimento para o seu desenvolvimento seguro. Há uma grande lacuna entre o que os especialistas em criptografia vêem como maus usos de criptografia, os maus usos que as ferramentas de segurança atuais são capazes de detectar e aquilo que os desenvolvedores vêem como uso inseguro da criptografia. O arcabouço conceitual proposto nesta tese contribui para preencher essa lacuna, aplicando a segurança de software criptográfico no desenvolvimento de software seguro. Abstract Conventional wisdom says that any system is only as secure as its weakest link. With the widespread use of good-standing cryptographic libraries, based upon standards of scrutinized algorithms, insecure implementations or flaws in the underlying mathematics arenotthelikelyweakestlinks. Thecompromiseofcryptographyorofitsimplementations are rare events with catastrophic impacts, though. Nowadays, the systematic investigation of real-world issues associated to cryptogra- phy misuse is gaining momentum. As security becomes transparent to end-users and good-standing cryptography is readily available to every developer, the likely weakest link moves from cryptographic infrastructure to the code surrounding cryptography, writ- ten by ordinary developers, non-experts in cryptography. Today, the widespread misuse of cryptography in software is the most frequent source of security issues related to cryp- tography. The cumulative effect of this widespread misuse also has a catastrophic impact, although a diffused one. This thesis investigates the role of cryptography in the discipline of software security and strengthens the emergence of cryptographic software security as a new field concerned with the development of secure cryptographic software. This thesis achieved the following results. First, a literature review about program- ming and verification of secure cryptographic software found that only one quarter of surveyed tools could be used by non-expert developers working above crypto APIs. Sec- ond, a methodology for development of secure cryptographic software captured the casual practices employed by software security when building cryptographic software. Third, an empirical study in online communities for programming found that cryptography misuse is frequent, showing recurring patterns of misuse. Fourth, an experimental evaluation of static analysis tools for cryptography found that evaluated tools detected a little more than one third of crypto misuses. Fifth, a longitudinal and retrospective study on how developers misuse cryptography found that developers can learn how to use crypto APIs without actually learning cryptography, while some misuse persists over time. Sixth, a systematic classification of cryptography misuse for software security and a methodology for developing secure cryptographic software compose a body of knowledge for the field of cryptographic software security. There is a huge gap among what cryptography experts see as cryptography misuse, what current tools are able to detect, and what developers see as insecure use of cryptog- raphy. The conceptual framework in this thesis contributes to bridge this gap by applying cryptographic software security in order to safely use cryptography when developing se- cure software. Contents 1 Introduction 12 1.1 Terminology adopted by this text . . . . . . . . . . . . . . . . . . . . . . . 13 1.2 Structure of this thesis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 1.2.1 Purpose and scope . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 1.2.2 Research methodology and main publications . . . . . . . . . . . . 16 1.2.3 Findings and contributions . . . . . . . . . . . . . . . . . . . . . . . 17 1.2.4 Main conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 1.2.5 Future improvements . . . . . . . . . . . . . . . . . . . . . . . . . . 20 1.2.6 Organization of the text . . . . . . . . . . . . . . . . . . . . . . . . 20 2 Published works 21 2.1 Empirical studies in online communities . . . . . . . . . . . . . . . . . . . 22 2.1.1 Mining Cryptography Misuse in Online Forums . . . . . . . . . . . 23 2.1.2 ALongitudinalandRetrospectiveStudyonHowDevelopersMisuse Cryptography in Online Communities . . . . . . . . . . . . . . . . . 32 2.2 Evaluation of automated tools for cryptography . . . . . . . . . . . . . . . 47 2.2.1 A Survey on Tools and Techniques for Programming and Verifica- tion of Secure Cryptographic Software . . . . . . . . . . . . . . . . 48 2.2.2 Practical Evaluation of Static Analysis Tools for Cryptography . . . 63 2.3 Development methods for secure crypto software . . . . . . . . . . . . . . . 76 2.3.1 Towards a Methodology for the Development of Secure Crypto- graphic Software . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 2.3.2 Understanding the Field of Cryptographic Software Security . . . . 84 3 Discussion 118 3.1 The need for systematic methods in cryptographic software security . . . . 118 3.2 A running example for designing cryptographic software . . . . . . . . . . 121 3.3 Code vulnerability, design flaw, and cryptography misuse . . . . . . . . . . 124 3.4 Cryptographic software security and secure software engineering . . . . . . 126 3.4.1 Secure software engineering and secure cryptographic software . . . 127 3.4.2 Software assurance for cryptographic software security . . . . . . . 128 3.4.3 Risk management for cryptographic software security . . . . . . . . 130 3.5 A systematic approach to cryptography in software security . . . . . . . . . 132 3.5.1 Software requirements for cryptographic software security . . . . . . 132 3.5.2 Software design for cryptographic software security . . . . . . . . . 133 3.5.3 Software construction for cryptographic software security . . . . . . 134 3.5.4 Software testing for cryptographic software security . . . . . . . . . 135 3.6 The case for cryptographic software security . . . . . . . . . . . . . . . . . 137

Description:
[51] S. Harris, CISSP All-in-One Exam Guide, 6th Edition. [52] J. Gajrani, M. Tripathi, V. Laxmi, M. S. Gaur, M. Conti, and M. Rajarajan.
See more

The list of books you might like

Most books are stored in the elastic cloud where traffic is expensive. For this reason, we have a limit on daily download.