Sebastien Rousseau

HSH

Gestão de senhas em bancos corporativos: hashing multi-algoritmo e upgrades com hsh

Como um framework criptográfico puro em Rust permite que bancos atualizem senhas legadas para Argon2id com interlock HSM — e o que isso significa para conformidade com DORA e Basel III.

11 min read
Banner for: Gestão de senhas em bancos corporativos: hashing multi-algoritmo e upgrades com hsh

Resumo executivo. A autenticação bancária construída contra um modelo de ameaças de 2018 já não serve ao regime regulatório de 2026. Quebra acelerada por GPU, densidade ASIC e o horizonte pós-quântico que se aproxima colapsaram a margem de segurança do PBKDF2 e do scrypt de parâmetros iniciais; o Artigo 5 do DORA transformou essa deterioração em responsabilidade prestada ao conselho. O hsh, framework open-source puro em Rust, ataca o problema em três camadas em paralelo: um dispatcher verify_and_upgrade que recalcula uma credencial armazenada para os parâmetros Argon2id atuais a cada login bem-sucedido, sem janela de manutenção; uma camada de peppering com interlock de HSM ou KMS que faz com que uma violação isolada da base de dados não renda nada quebrável; e uma cadeia de suprimentos memory-safe que elimina a superfície de ataque por foreign-function-interface inerente às bibliotecas criptográficas baseadas em C. O resultado é um substrato que satisfaz o DORA, a disciplina de risco operacional do Basel III, a responsabilidade de gestor sênior do SM&CR e o horizonte de migração pós-quântica do NIST IR 8547 — sem o programa de reset em massa historicamente exigido para atualizar um parque de autenticação.

A maior parte da autenticação em bancos corporativos ainda repousa sobre uma camada de senhas endurecida contra um modelo de ameaça de 2018. O hardware que a quebra evoluiu. Conforme as GPU farms ganham escala e os computadores quânticos criptograficamente relevantes (CRQCs) se aproximam, hashing legado — PBKDF2, scrypt inicial — se deteriora a cada hora de compute que os atacantes gastam na fila de quebra offline. A deterioração é silenciosa: nada na base de dados de produção avisa que o hash forte de ontem já não é.

Sob o Digital Operational Resilience Act (DORA), deixar ativos criptográficos legados e não rotacionados em produção deixou de ser dívida técnica. É responsabilidade regulatória nomeada.

O hsh fecha essa lacuna. Framework puro em Rust, ele gerencia múltiplos formatos de hash lado a lado e atualiza credenciais fracas em pleno voo durante sessões de login ativas. A infraestrutura de autenticação se alinha aos mandatos de resiliência de 2026 sem janela de manutenção, sem reset forçado, sem um único segundo de downtime.

01. O problema da deterioração criptográfica em bancos

Para entender a necessidade de um framework como o hsh, é preciso entender o ciclo de vida de um hash de senha. Algoritmos não envelhecem com elegância; eles se deterioram em relação ao hardware disponível para quebrá-los.

A diferença de aceleração ASIC/GPU. Algoritmos como PBKDF2 foram projetados para serem computacionalmente caros em CPUs. Hoje, atacantes usam GPUs altamente paralelizadas para executar ataques de dicionário offline. Um hash legado gerado em 2018 é vastamente mais fraco diante de um adversário de 2026.

O risco de migração big-bang. Quando um CISO decide migrar de PBKDF2 para um algoritmo memory-hard como o Argon2id, não dá para reverter os hashes para recriptografá-los. Soluções tradicionais — forçar resets de senha de milhões de usuários — geram fricção massiva com clientes e risco operacional.

A cadeia de suprimentos de bibliotecas C. Historicamente, middleware bancário depende de bibliotecas como argonautica ou bindings C brutos para hashing. Essas bibliotecas carregam um risco oculto de cadeia de suprimentos: um único buffer overflow no módulo de autenticação pode levar à execução remota de código (RCE) na camada mais privilegiada do stack bancário.

Comparação de algoritmos — resistência a hardware e superfície de ajuste

Os três algoritmos que um banco realisticamente encontra em um corpus de migração diferem menos pela escolha de primitiva criptográfica e mais por como envelhecem sob pressão de hardware. A tabela abaixo resume a postura prática.

Algoritmo Memory-hard Resistência a GPU / ASIC Superfície de ajuste Status em 2026
PBKDF2 Não Baixa — vetoriza em GPU; submilissegundo por palpite em hardware comum. Apenas contagem de iterações. Legado. Aceitável somente como fallback do lado da verificação durante a migração.
scrypt Sim (modesto) Média — o custo de memória derrota GPU farms simples; amortizável em ASIC em escala. N (CPU/memória), r (tamanho de bloco), p (paralelismo). Deprecado para greenfield. Ativo em corpora de migração.
Argon2id Sim (alto) Alta — memory- e time-hard; resiste a ataques de canal lateral e TMTO. Custo de memória (m), custo de tempo (t), paralelismo (p), segredo (pepper). Padrão recomendado. OWASP, draft NIST SP 800-63B-4, FedRAMP.

A conclusão para o plano de migração é estreita: PBKDF2 é um estado do lado da verificação, não um destino do lado da escrita. Cada login bem-sucedido em um registro PBKDF2 deve produzir um registro Argon2id na saída.

02. A lente de arquitetura hsh 2026

O framework é estruturado em cinco camadas centrais, cada uma projetada para mitigar uma categoria específica de risco operacional.

Tabela 1: camadas de arquitetura hsh e mitigação de risco

Camada Decisão de design Por que importa Risco se mal-administrada
Primitivas criptográficas Formato PHC String unificado suportando Argon2id, scrypt e PBKDF2 Fornece resistência best-in-class a ataques de GPU, mantendo compatibilidade retroativa. Silos de dados; algoritmos fracos permitindo 100B+ palpites/segundo offline.
Motor de políticas Dispatch verify_and_upgrade Automatiza a transição de políticas legadas para modernas dinamicamente no login. Deterioração de segurança; usuários ativos permanecendo em tipos de hash legados facilmente quebráveis.
Interlock de hardware Capacidades de "peppering" com HSM e Cloud KMS Garante que uma violação isolada da base de dados não exponha candidatos a senha. Ataques de força bruta offline bem-sucedidos após violação por SQL injection.
Higiene de segurança Imposição de deny.toml e Rust puro Bloqueia inteiramente FFI inseguro e dependências externas em C não confiáveis. Ataques catastróficos de cadeia de suprimentos e CVEs de corrupção de memória.

03. O caminho de re-hash com zero downtime

O padrão verify_and_upgrade resolve a migração de dados por meio de um sistema de dispatch inteligente, ciente de estado, que requer zero downtime da base de dados.

Quando um usuário envia suas credenciais, o hsh lê a string Password Hashing Competition (PHC) armazenada. Se ela contém um hash legado (por exemplo, uma configuração desatualizada de PBKDF2), o sistema executa o seguinte fluxo:

  1. Identificação: Faz parse do algoritmo legado e seus parâmetros específicos.
  2. Verificação: Valida a senha candidata contra o hash legado.
  3. Upgrade em tempo real: Após match bem-sucedido, ele pega a senha candidata em texto-claro em memória e imediatamente calcula um novo hash usando a política altamente segura Argon2id.
  4. Persistência: Retorna a nova string PHC para a aplicação bancária, que sobrescreve o registro legado na base de dados.

O processo é inteiramente transparente para o usuário final. Ele migra efetivamente as contas mais ativas para o nível mais alto de segurança no primeiro dia, reduzindo drasticamente a superfície de ataque do banco de forma orgânica ao longo do tempo.

A sequência abaixo mostra o que acontece durante um único evento de login quando o registro armazenado está em um algoritmo legado. O usuário não vê nada mudar; o parque de autenticação do banco se fortalece em um registro.

sequenceDiagram
    actor User
    participant Frontend
    participant Auth as Authentication Service (hsh)
    participant DB as Database
    User->>Frontend: Submit username + password
    Frontend->>Auth: authenticate(user, password)
    Auth->>DB: SELECT password_hash FROM users
    DB-->>Auth: PHC string (legacy: PBKDF2)
    Note over Auth: Detect legacy algorithm prefix
    Auth->>Auth: verify(password, legacy_hash)
    Note over Auth: Re-hash with Argon2id
    Auth->>DB: UPDATE password_hash = new PHC
    DB-->>Auth: write confirmed
    Auth-->>Frontend: 200 OK
    Frontend-->>User: Login successful

Padrão de implementação — dispatch verify_and_upgrade

A superfície de integração dentro de um serviço de autenticação é pequena. O caminho de código legado permanece como fallback; o novo caminho de código é o dispatcher.

use hsh::{Hasher, UpgradeResult};

struct UserRecord {
    username: String,
    password_hash: String, // PHC string
}

async fn authenticate(user: UserRecord, password_attempt: &str) -> Result<bool, AuthError> {
    let hasher = Hasher::new();
    match hasher.verify_and_upgrade(password_attempt, &user.password_hash) {
        Ok(UpgradeResult::Verified(is_valid)) => Ok(is_valid),
        Ok(UpgradeResult::Upgraded(new_hash)) => {
            db::update_user_hash(&user.username, new_hash).await?;
            Ok(true)
        }
        Err(_) => Err(AuthError::InvalidCredentials),
    }
}

Três propriedades importam:

Modos de falha. Se a escrita na base de dados falhar ou o KMS estiver brevemente inalcançável durante a escrita do upgrade, a sessão ainda assim tem sucesso contra o hash legado e o registro permanece no algoritmo antigo. O próximo login bem-sucedido tenta o upgrade novamente. Não há estado meio-migrado e nenhuma falha visível ao usuário — a migração é monotônica entre eventos de login, e o custo por registro de um upgrade falho é exatamente uma tentativa extra no próximo login.

04. Hashes peppered via interlock HSM / KMS

O hashing-padrão de senhas protege contra vazamentos diretos da base de dados, mas se um atacante obtém a base completa (hashes e salts), ele pode executar quebra offline.

O hsh introduz uma camada robusta de segurança "peppered". Ao integrar com Hardware Security Modules (HSMs) ou serviços nativos de nuvem de Key Management Services (KMS), a saída final do Argon2id é envolvida criptograficamente com uma chave de alta entropia que nunca deixa a fronteira do hardware seguro. Se a base de usuários é exfiltrada, o atacante possui apenas blobs criptografados. Ele não consegue começar a quebrar senhas sem também violar a infraestrutura de HSM fisicamente isolada do banco.

O diagrama de arquitetura abaixo traça o caminho do segredo. O pepper nunca chega à base de dados; a base de dados nunca guarda nada endereçável por si só. Os dois repositórios podem falhar de forma independente — o sistema só perde confidencialidade se ambos falharem juntos.

sequenceDiagram
    participant App as Application Server
    participant HSM as HSM (Hardware Security Module)
    participant DB as Database
    Note over HSM: Pepper sealed in hardware<br/>never exits boundary
    App->>HSM: get_secret("production-password-pepper")
    HSM-->>App: pepper (in-memory, request-scoped)
    Note over App: Argon2::new_with_secret(&pepper, ...)
    App->>App: hash(password + salt) consuming pepper
    Note over App: Pepper consumed via secret param<br/>not via string concat
    App->>DB: STORE PHC string (uncrackable blob)
    Note over App: Pepper dropped from memory
    Note over DB,HSM: DB breach alone yields<br/>nothing crackable

Padrão de implementação — Argon2id peppered ancorado em HSM

O pepper é obtido do HSM no momento da requisição, não de um arquivo de configuração. O Argon2::new_with_secret o consome pelo parâmetro de segredo do algoritmo, não via concatenação de strings.

use argon2::{
    Argon2, Algorithm, Version, Params,
    PasswordHasher, PasswordVerifier,
    password_hash::{PasswordHash, SaltString, rand_core::OsRng},
};

async fn authenticate_with_hsm(
    user: UserRecord,
    password_attempt: &str,
) -> Result<bool, AuthError> {
    let pepper = hsm::client::get_secret("production-password-pepper").await?;
    let hasher = Argon2::new_with_secret(
        &pepper,
        Algorithm::Argon2id,
        Version::V0x13,
        Params::default(),
    )
    .map_err(|_| AuthError::Internal)?;

    let parsed = PasswordHash::new(&user.password_hash)
        .map_err(|_| AuthError::InvalidCredentials)?;
    if hasher.verify_password(password_attempt.as_bytes(), &parsed).is_ok() {
        if is_legacy_hash(&user.password_hash) {
            let new_hash = hasher
                .hash_password(
                    password_attempt.as_bytes(),
                    &SaltString::generate(&mut OsRng),
                )
                .map_err(|_| AuthError::Internal)?
                .to_string();
            db::update_user_hash(&user.username, new_hash).await?;
        }
        return Ok(true);
    }
    Err(AuthError::InvalidCredentials)
}

Três consequências alinhadas ao DORA decorrem deste formato:

05. Alinhamento regulatório: DORA, Basel III e SM&CR

Perguntas frequentes

O hsh está pronto para produção em um caminho de autenticação bancária tier-1? A biblioteca é open-source, documentada e exercita Argon2id pela mesma crate argon2 que sustenta o ecossistema de hashing de senhas RustCrypto. A adoção tier-1 segue a due-diligence do próprio banco: revisão de código independente, atestação de build reproduzível, pinagem da árvore de dependências, testes de integração com fornecedores de HSM e sign-off de Risco Operacional. O hsh entrega o substrato; o banco certifica o deployment.

Como o verify_and_upgrade evita o risco de migração em massa? O verificador inspeciona a string PHC no momento do parse, executa o algoritmo legado para validar a senha e — se o algoritmo armazenado ou o conjunto de parâmetros estiver abaixo do piso atual — recalcula o hash do texto-claro sob Argon2id com o pepper HSM vinculado e escreve a nova string PHC de volta atomicamente. O usuário tem um login normal. O parque se fortalece em um registro por autenticação bem-sucedida. Sem campanha de reset, sem janela de manutenção, sem evento de risco operacional.

O que acontece com contas dormentes que nunca fazem login? Registros que nunca se autenticam nunca recalculam o hash. Os bancos endereçam isso com duas políticas complementares: um limiar de dormência documentado (frequentemente 18–24 meses) após o qual a conta é administrativamente rotacionada sob uma campanha controlada de reset, e uma execução sintética de re-hash durante manutenção agendada para contas em cohorts definidas (alto valor, alto privilégio, regulamentadas). Ambas são políticas, não comportamentos da biblioteca; o hsh registra a decisão de dispatch em telemetria de auditoria para que o dono operacional possa provar cobertura.

O pepper HSM introduz um ponto único de falha no caminho de autenticação? O mesmo HSM que assina mensagens de pagamento e rotaciona chaves ancoradas em KMS já está no caminho. O risco é idêntico à postura existente do banco; o hsh o herda em vez de introduzi-lo. As mitigações são padrão: pares HSM em HA, regiões KMS hot-spare, obtenção de pepper escopada à requisição com fallback por circuit-breaker para modo somente-leitura, e runbook operacional explícito para indisponibilidade de HSM. O pepper é o parâmetro de segredo do argon2, consumido em processo e descartado da memória após uso.

Onde o hsh se posiciona em relação à migração pós-quântica? O hsh é um framework de hashing de senhas e segredos, não uma primitiva de key-encapsulation ou assinatura. A transição PQC documentada no NIST IR 8547 foca em estabelecimento de chaves (ML-KEM, FIPS 203) e assinaturas (ML-DSA, FIPS 204; SLH-DSA, FIPS 205). A camada de hashing que o hsh cobre é amplamente ortogonal a essa migração. As duas convergem no nível de substrato — ambas querem uma cadeia de suprimentos criptográfica memory-safe, auditável e de build reproduzível — que é exatamente a postura que o hsh viabiliza hoje.

Conclusão

Hashing de senhas no estilo "deploy-and-forget" acabou. O DORA moveu a passividade criptográfica de dívida técnica para responsabilidade regulatória nomeada, e a curva do hardware fica mais íngreme a cada ano. A contribuição do hsh não é um algoritmo mais forte — o Argon2id já está disponível há anos. A contribuição é a maquinaria operacional para migrar para ele sem agendar downtime, sem forçar resets de usuário e sem confiar em shims FFI baseados em C no caminho de autenticação do banco.

O código-fonte do hsh está disponível sob licença dupla MIT e Apache 2.0.

Referências

Basel Committee on Banking Supervision (2011). Basel III: A global regulatory framework for more resilient banks and banking systems. Bank for International Settlements. Disponível em: https://www.bis.org/publ/bcbs189.pdf

Biryukov, A., Dinu, D., Khovratovich, D., e Josefsson, S. (2021). RFC 9106: Argon2 Memory-Hard Function for Password Hashing and Proof-of-Work Applications. Internet Engineering Task Force. Disponível em: https://datatracker.ietf.org/doc/html/rfc9106

Parlamento Europeu e Conselho (2022). Regulamento (UE) 2022/2554 sobre resiliência operacional digital para o setor financeiro (DORA). Disponível em: https://eur-lex.europa.eu/eli/reg/2022/2554/oj

Financial Conduct Authority (2015). Senior Managers and Certification Regime (SM&CR). Disponível em: https://www.fca.org.uk/firms/senior-managers-certification-regime

National Institute of Standards and Technology (2024). Initial Public Draft — Transition to Post-Quantum Cryptography Standards (NIST IR 8547). Disponível em: https://csrc.nist.gov/pubs/ir/8547/ipd

OWASP Foundation (2024). Password Storage Cheat Sheet. Disponível em: https://cheatsheetseries.owasp.org/cheatsheets/Password_Storage_Cheat_Sheet.html

Última revisão .

Última revisão .

Syndicate this article

Format for Medium

# Gestão de senhas em bancos corporativos: hashing multi-algoritmo e upgrades com hsh — Sebastien Rousseau

> Originally published at [https://sebastienrousseau.com/pt-br/2026-06-22-hsh-zero-downtime-cryptographic-stewardship-rust-banking-2026/](https://sebastienrousseau.com/pt-br/2026-06-22-hsh-zero-downtime-cryptographic-stewardship-rust-banking-2026/)

hsh é um framework criptográfico puro em Rust que permite a bancos tier-1 migrar hashes de senhas legados para Argon2id com zero downtime, integrando peppering via HSM e eliminando vulnerabilidades de memória em FFI baseado em C para atender ao DORA.

Read the full article on sebastienrousseau.com: https://sebastienrousseau.com/pt-br/2026-06-22-hsh-zero-downtime-cryptographic-stewardship-rust-banking-2026/

Format for Mastodon

Gestão de senhas em bancos corporativos: hashing multi-algoritmo e upgrades com hsh — Sebastien Rousseau

hsh é um framework criptográfico puro em Rust que permite a bancos tier-1 migrar hashes de senhas legados para Argon2id com zero downtime, integrando peppering via HSM e eliminando vulnerabilidades de memória em FFI baseado em C para atender ao DORA.

https://sebastienrousseau.com/pt-br/2026-06-22-hsh-zero-downtime-cryptographic-stewardship-rust-banking-2026/

Copy formatted for LinkedIn

Gestão de senhas em bancos corporativos: hashing multi-algoritmo e upgrades com hsh — Sebastien Rousseau

hsh é um framework criptográfico puro em Rust que permite a bancos tier-1 migrar hashes de senhas legados para Argon2id com zero downtime, integrando peppering via HSM e eliminando vulnerabilidades de memória em FFI baseado em C para atender ao DORA.

Here are the key strategic takeaways:

- 01. O problema da deterioração criptográfica em bancos. Para entender a necessidade de um framework como o hsh, é preciso entender o ciclo de vida de um hash de senha.
- 02. A lente de arquitetura hsh 2026. O framework é estruturado em cinco camadas centrais, cada uma projetada para mitigar uma categoria específica de risco operacional.
- 03. O caminho de re-hash com zero downtime. O padrão verify_and_upgrade resolve a migração de dados por meio de um sistema de dispatch inteligente, ciente de estado, que requer zero downtime da base de dados.
- 04. Hashes peppered via interlock HSM / KMS. O hashing-padrão de senhas protege contra vazamentos diretos da base de dados, mas se um atacante obtém a base completa (hashes e salts), ele pode executar quebra offline.

What is your organisation's approach to the challenges outlined in this piece?

→ https://sebastienrousseau.com/pt-br/2026-06-22-hsh-zero-downtime-cryptographic-stewardship-rust-banking-2026/

#Hsh #CriptografiaEmRust #HashingDeSenhas #Argon2id #SegurançaBancária

Sebastien Rousseau | CC-BY-4.0
Cite this article

Gestão de senhas em bancos corporativos: hashing multi-algoritmo e upgrades com hsh — Sebastien Rousseau

hsh é um framework criptográfico puro em Rust que permite a bancos tier-1 migrar hashes de senhas legados para Argon2id com zero downtime, integrando peppering via HSM e eliminando vulnerabilidades de memória em FFI baseado em C para atender ao DORA.

BibTeX

@online{rousseau2026gestão,
  author  = {Rousseau, Sebastien},
  title   = {{Gestão de senhas em bancos corporativos: hashing multi-algoritmo e upgrades com hsh — Sebastien Rousseau}},
  year    = {2026},
  url     = {https://sebastienrousseau.com/pt-br/2026-06-22-hsh-zero-downtime-cryptographic-stewardship-rust-banking-2026/},
  urldate = {2026}
}

RIS

TY  - GEN
AU  - Rousseau, Sebastien
TI  - Gestão de senhas em bancos corporativos: hashing multi-algoritmo e upgrades com hsh — Sebastien Rousseau
PY  - 2026
UR  - https://sebastienrousseau.com/pt-br/2026-06-22-hsh-zero-downtime-cryptographic-stewardship-rust-banking-2026/
ER  -

Vancouver

Rousseau S. Gestão de senhas em bancos corporativos: hashing multi-algoritmo e upgrades com hsh — Sebastien Rousseau. sebastienrousseau.com. 2026 Jun 22. Available from: https://sebastienrousseau.com/pt-br/2026-06-22-hsh-zero-downtime-cryptographic-stewardship-rust-banking-2026/

Chicago

Rousseau, Sebastien. "Gestão de senhas em bancos corporativos: hashing multi-algoritmo e upgrades com hsh — Sebastien Rousseau." sebastienrousseau.com. June 22, 2026. https://sebastienrousseau.com/pt-br/2026-06-22-hsh-zero-downtime-cryptographic-stewardship-rust-banking-2026/.

APA

Rousseau, S. (2026, June 22). Gestão de senhas em bancos corporativos: hashing multi-algoritmo e upgrades com hsh — Sebastien Rousseau. sebastienrousseau.com. https://sebastienrousseau.com/pt-br/2026-06-22-hsh-zero-downtime-cryptographic-stewardship-rust-banking-2026/

Republish this article

Gestão de senhas em bancos corporativos: hashing multi-algoritmo e upgrades com hsh — Sebastien Rousseau

hsh é um framework criptográfico puro em Rust que permite a bancos tier-1 migrar hashes de senhas legados para Argon2id com zero downtime, integrando peppering via HSM e eliminando vulnerabilidades de memória em FFI baseado em C para atender ao DORA.

This article is licensed under Creative Commons Attribution 4.0 International. Republication requires attribution to the canonical URL.

Gestão de senhas em bancos corporativos: hashing multi-algoritmo e upgrades com hsh — Sebastien Rousseau

hsh é um framework criptográfico puro em Rust que permite a bancos tier-1 migrar hashes de senhas legados para Argon2id com zero downtime, integrando peppering via HSM e eliminando vulnerabilidades de memória em FFI baseado em C para atender ao DORA.

Originally published at https://sebastienrousseau.com/pt-br/2026-06-22-hsh-zero-downtime-cryptographic-stewardship-rust-banking-2026/ by Sebastien Rousseau.
Licensed under CC-BY-4.0.