Cookies
O website necessita de alguns cookies e outros recursos semelhantes para funcionar. Caso o permita, o INESC TEC irá utilizar cookies para recolher dados sobre as suas visitas, contribuindo, assim, para estatísticas agregadas que permitem melhorar o nosso serviço. Ver mais
Aceitar Rejeitar
  • Menu
Sobre

Sobre

Sou Professor Auxiliar no Departamento de Ciência de Computadores da Faculdade de Ciências da Universidade do Porto (DCC-FCUP) e investigador do HASLab/INESC TEC. Os meus interesses de investigação centram-se na Criptografia e Segurança da Informação e na sua intersecção com a Verificação de Programas.

Sou Doutorado em Electrical and Electronic Engineering pela Newcastle University, e licenciado em Engenharia Electrotécnica e de Computadores pela FEUP. Fui investigador visitante na University of Bristol, IT Porto e na École Normale Supérieure.

Trabalho no desenvolvimento de software criptográfico confiável há 10 anos, com o objectivo de estabelecer uma ligação entre a segurança teórica e a segurança de aplicações reais. Interesso-me particularmente pela segurança demonstrável e a sua ligação à verificação formal de provas de segurança e de implementações de software criptográfico.

Para informação sobre a minha investigação, projectos e publicações, por favor consultar a minha página no HASLab.

Para informação sobre as minhas actividades de ensino, por favor consultar a minha página institucional na FCUP.

Tópicos
de interesse
Detalhes

Detalhes

  • Nome

    Manuel Barbosa
  • Cargo

    Investigador Coordenador
  • Desde

    01 novembro 2011
007
Publicações

2023

Rogue key and impersonation attacks on FIDO2: From theory to practice

Autores
Barbosa, M; Cirne, A; Esquível, L;

Publicação
18TH INTERNATIONAL CONFERENCE ON AVAILABILITY, RELIABILITY & SECURITY, ARES 2023

Abstract
FIDO2 is becoming a defacto standard for passwordless authentication. Using FIDO2 and WebAuthn, web applications can enable users to associate cryptographic credentials to their profiles, and then rely on an external authenticator (e.g., a hardware token plugged into the USB port) to perform strong signature-based authentication when accessing their accounts. The security of FIDO2 has been theoretically validated, but these analyses follow the threat model adopted in the FIDO2 design and explicitly exclude some attack vectors as being out of scope. In this paper we show that two of these attacks, which appear to be folklore in the community, are actually straightforward to launch in practice (user PIN extraction, impersonation and rogue key registration). We demonstrate a deployment over vanilla Linux distributions and commercial FIDO2 authenticators. We discuss the potential impact of our results, which we believe will contribute to the improvement of future versions of the protocol.

2023

Kyber terminates

Autores
Barbosa, M; Schwabe, P;

Publicação
IACR Cryptol. ePrint Arch.

Abstract

2023

The security of Kyber's FO-transform

Autores
Barbosa, M; Hülsing, A;

Publicação
IACR Cryptol. ePrint Arch.

Abstract

2023

Machine-Checked Security for rmXMSS as in RFC 8391 and $\mathrm {SPHINCS^{+}} $

Autores
Barbosa, M; Dupressoir, F; Grégoire, B; Hülsing, A; Meijers, M; Strub, PY;

Publicação
Advances in Cryptology - CRYPTO 2023 - 43rd Annual International Cryptology Conference, CRYPTO 2023, Santa Barbara, CA, USA, August 20-24, 2023, Proceedings, Part V

Abstract
This work presents a novel machine-checked tight security proof for XMSS —a stateful hash-based signature scheme that is (1) standardized in RFC 8391 and NIST SP 800-208, and (2) employed as a primary building block of SPHINCS+, one of the signature schemes recently selected for standardization as a result of NIST’s post-quantum competition. In 2020, Kudinov, Kiktenko, and Fedoro pointed out a flaw affecting the tight security proofs of SPHINCS+ and XMSS. For the case of SPHINCS+, this flaw was fixed in a subsequent tight security proof by Hülsing and Kudinov. Unfortunately, employing the fix from this proof to construct an analogous tight security proof for XMSS would merely demonstrate security with respect to an insufficient notion. At the cost of modeling the message-hashing function as a random oracle, we complete the tight security proof for XMSS and formally verify it using the EasyCrypt proof assistant. (Note that this merely extends the use of the random oracle model, as this model is already required in other parts of the security analysis to justify the currently standardized parameter values). As part of this endeavor, we formally verify the crucial step common to the security proofs of SPHINCS+ and XMSS that was found to be flawed before, thereby confirming that the core of the aforementioned security proof by Hülsing and Kudinov is correct. As this is the first work to formally verify proofs for hash-based signature schemes in EasyCrypt, we develop several novel libraries for the fundamental cryptographic concepts underlying such schemes—e.g., hash functions and digital signature schemes—establishing a common starting point for future formal verification efforts. These libraries will be particularly helpful in formally verifying proofs of other hash-based signature schemes such as LMS or SPHINCS+. © 2023, International Association for Cryptologic Research.

2023

Formally verifying Kyber Episode IV: Implementation correctness

Autores
Almeida, JB; Barbosa, M; Barthe, G; Grégoire, B; Laporte, V; Léchenet, JC; Oliveira, T; Pacheco, H; Quaresma, M; Schwabe, P; Séré, A; Strub, PY;

Publicação
IACR Trans. Cryptogr. Hardw. Embed. Syst.

Abstract
In this paper we present the first formally verified implementations of Kyber and, to the best of our knowledge, the first such implementations of any post-quantum cryptosystem. We give a (readable) formal specification of Kyber in the EasyCrypt proof assistant, which is syntactically very close to the pseudocode description of the scheme as given in the most recent version of the NIST submission. We present high-assurance open-source implementations of Kyber written in the Jasmin language, along with machine-checked proofs that they are functionally correct with respect to the EasyCrypt specification. We describe a number of improvements to the EasyCrypt and Jasmin frameworks that were needed for this implementation and verification effort, and we present detailed benchmarks of our implementations, showing that our code achieves performance close to existing hand-optimized implementations in C and assembly.