Autenticação e 2FA¶
Não existe credencial padrão. No primeiro acesso o PEART exige que você crie o administrador, incluindo a inscrição do segundo fator, então uma instalação nunca fica alcançável com uma senha de fábrica.
Senhas¶
As senhas são hasheadas com Argon2id, usando os parâmetros do Password Storage Cheat Sheet do OWASP,
e guardadas no formato de string PHC padrão, que carrega os parâmetros e um sal aleatório por senha junto
com o hash. O docs/security.md enuncia a regra pelo nome: nunca um SHA de qualquer variante, nunca um
sal compartilhado.
Autenticação de dois fatores¶
As duas superfícies tratam o segundo fator de forma diferente, por desenho.
Para contas internas, o TOTP (RFC 6238) é obrigatório, e a exigência vive no schema do banco, não só no código: uma conta interna ativa sem TOTP habilitado é recusada pelo banco, então nenhuma CLI, migração ou script administrativo consegue criar uma. Os segredos TOTP internos são cifrados em repouso com a identidade mestra da instalação, que a superfície interna já detém.
Para contas de portal (cliente), o segundo fator é opcional e habilitado pelo usuário. Um deploy comum fica atrás de uma borda que já impõe um segundo fator (por exemplo o Cloudflare Access), então o TOTP no app é uma conveniência para deploys sem essa borda, não a trava principal. Os segredos TOTP do portal ficam em texto claro, pela mesma razão arquitetural do banco: o portal nunca detém a identidade mestra, e cifrar um segredo que a superfície verificadora não consegue decifrar tornaria o segundo fator irrecuperável em vez de mais seguro. O controle compensatório é a mesma fronteira de LUKS no host que cobre o banco, e uma conta de cliente é, por definição, de menor valor: ela lê um relatório entregue, sem campos internos e sem passo a passo de exploração.
Recuperação e limite de taxa¶
Códigos de recuperação são guardados apenas como hash e invalidados no uso. A verificação é limitada em taxa por conta. Um dispositivo interno perdido é recuperado pelos códigos de recuperação ou por um reset de administrador; como o TOTP interno é obrigatório, esse reset reinscreve o fator em vez de largá-lo.
Sessões¶
As sessões têm a mesma forma nas duas superfícies, com um timeout de inatividade e um timeout absoluto. Os padrões são uma hora de inatividade e doze horas absolutas; ambos são configuráveis dentro de limites, e o timeout de inatividade não pode passar de um máximo fixo.