Towards the safe development of cryptographic software [recurso eletrônico] = Rumo ao desenvolvimento seguro de software criptográfico
TESE
Inglês
T/UNICAMP B73t
[Rumo ao desenvolvimento seguro de software criptográfico]
Campinas, SP : [s.n.], 2017.
1 recurso online (151 p.) : il., digital, arquivo PDF.
Orientador: Ricardo Dahab
Tese (doutorado) - Universidade Estadual de Campinas, Instituto de Computação
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 padrões confiáveis de algoritmos de qualidade, implementações inseguras ou falhas na matemática subjacente não são os elos...
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 padrões confiáveis de algoritmos de qualidade, implementações inseguras ou falhas na matemá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, a investigação sistemática de problemas práticos associados ao mau uso de 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 elo fraco mais provável deixa de ser a infra-estrutura criptográfica para se tornar o software 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 software 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 ferramentas 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 persistem 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 are not the likely weakest...
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 are not the likely weakest links. The compromise of cryptography or of its implementations are rare events with catastrophic impacts, though. Nowadays, the systematic investigation of real-world issues associated to cryptography 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, written 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 cryptography. 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 programming 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. Second, 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 persist 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 cryptography. The conceptual framework in this thesis contributes to bridge this gap by applying cryptographic software security in order to safely use cryptography when developing secure software
Requisitos do sistema: Software para leitura de arquivo em PDF