Histórico da Página
...
O Bcrypt foi escolhido pois ele cumpre todas as especificações levantadas para atender as necessidades do RM.
...
2- Implementar a abstração, modificando o mínimo possível, visando diminuir os colaterais.
...
Após essa alteração o campo senha terá o seguinte formato, seguindo o padrão PHC (Password Hashing Competition) - https://github.com/P-H-C/phc-string-format/blob/master/phc-sf-spec.md
#Pepper#P=False#PepperTypeFalse#PT=None#WorkFactorNone#WF=10#HashType10#HT=SHA256#HashAlgorithmSHA256#HA=Bcrypt#VersionBcrypt#V=4.0.2.0#Hash0#H=$2a$10$y.SWHIgYl74q1fEKWMU5EObE7b52a3kS2jYxySEIfkbdKqZ1ort4S
Parâmetro / Segurança
Armazenar a senha nesse formato permitirá ao RM modificar os parâmetros, caso seja necessário, para aumentar o nível de complexidade do hash no futuro, além de permitir o uso de outros algoritmos de forma transparente e conjunta.
A imagem abaixo, mostra o fluxo que irá promover a atualização gradativa dos hashs de senhas (a cada novo login ó hash será atualizado):
A classe RMSCriptografia classe RMSCriptografia sofreu algumas alterações, e agora ela é apenas uma fachada para chamada de serviços de Criptografia e Hahs.
O método String GeneratePassword(String text) se tornou obsoleto, por isso, todos os produtos e customizações que fazem uso do mesmo, precisam se adequar a nova lógica.
RMHashAlgorithmName
- RM: Utiliza o algoritmo padrão do RM.
- Bcrypt: Utiliza o algoritmo Bcrypt.
Informações | ||
---|---|---|
| ||
Ao utilizar a opção Bcrypt é muito importante se atentar ao tamanho do campo no banco de dados. Conforme descrito mais acima é necessário aumentar o tamanho do campo de 8 para 1000 |
Análise de impacto:
GeneratePassword | Metodo | RM.Cmp.Api.Service.dll | RM.Cmp.Api.v1.CmpAuthFornecedorApiServer | Metodo | BeforeSave |
GeneratePassword | Metodo | RM.Cmp.Cotacao.Data.dll | RM.Cmp.Cotacao.CmpCotacaoComunicarFornecedoresProc | Metodo | GeraPassWord |
GeneratePassword | Metodo | RM.Cst.CNI_DN.FaseEmpresa.Intf.dll | RM.Cst.CNI_DN.FaseEmpresa.CriptografiaCorpore | Metodo | GeneratePassword |
GeneratePassword | Metodo | RM.Cst.CNI_DR_RS.EJA.Server.dll | RM.Cst.CNI_DR_RS.EJA.CriptografiaCorpore | Metodo | GeneratePassword |
GeneratePassword | Metodo | RM.Cst.ConfiguracaoAcesso.Data.dll | RM.Cst.ConfiguracaoAcesso.CstGeracaoAcessosData | Metodo | AdicionaUsuario |
GeneratePassword | Metodo | RM.Cst.Rabobank.Plugin.dll | RM.Cst.Rabobank.CstSenhaUtils | Metodo | InsereSenhaHistorico |
GeneratePassword | Metodo | RM.Cst.Sebrae.RH.PEP.Intf.dll | RM.Cst.Sebrae.RH.PEP.CriptografiaCorpore | Metodo | GeneratePassword |
GeneratePassword | Metodo | RM.EduPS.Cadastros.Server.dll | RM.EduPS.Cadastros.EduPSUsuarioObj | Metodo | CriptografaCampo |
GeneratePassword | Metodo | RM.EduPS.Formula.Server.dll | RM.Fin.Formula.EduPSBoletoProvider | Metodo | PSGetHashBoleto |
GeneratePassword | Metodo | RM.EduPS.Processos.Data.dll | RM.EduPS.Processos.EduPSCriptSenhaCandidatoData | Metodo | EncryptSenhaCandidatos |
GeneratePassword | Metodo | RM.EduPS.Utils.Server.dll | RM.EduPS.Utils.EduPSStatusCriptografiaUtils | Metodo | CriptografaSenhaSeNecessario |
GeneratePassword | Metodo | RM.Glb.Seguranca.Data.dll | RM.Glb.Seguranca.GlbUsuarioData | Metodo | DoSaveRecord |
GeneratePassword | Metodo | RM.Glb.Seguranca.Server.dll | RM.Glb.Seguranca.GlbSecurityMod | Metodo | SetUsuarioFields |
GeneratePassword | Metodo | RM.Glb.Seguranca.Server.dll | RM.Glb.Seguranca.GlbSecurityMod | Metodo | UpdateSenhaUsuario |
GeneratePassword | Metodo | RM.Lib.Server.dll | RM.Lib.Server.RMSLogin | Metodo | ChangePassword |
GeneratePassword | Metodo | RM.Lib.Server.dll | RM.Lib.Server.RMSRecoverPassBaseServer | Metodo | SendRecoverPassMail |
GeneratePassword | Metodo | RM.Lib.Server.dll | RM.Lib.Server.RMSRecoverPassCorpore | Metodo | UpdatePassword |
GeneratePassword | Metodo | RM.Lib.Server.dll | RM.Lib.Server.RMSSecurityUtilsServer | Metodo | UpdatePassword |
GeneratePassword | Metodo | RM.Rhu.Infra.Server.dll | RM.Rhu.Infra.RhuCriptografia | Metodo | GeneratePassword |