Páginas filhas
  • Alteração do algoritmo de Hash do RM (Bcrypt)

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

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

Image Added


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
titleAtenção

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:

GeneratePasswordMetodoRM.Cmp.Api.Service.dllRM.Cmp.Api.v1.CmpAuthFornecedorApiServerMetodoBeforeSave
GeneratePasswordMetodoRM.Cmp.Cotacao.Data.dllRM.Cmp.Cotacao.CmpCotacaoComunicarFornecedoresProcMetodoGeraPassWord
GeneratePasswordMetodoRM.Cst.CNI_DN.FaseEmpresa.Intf.dllRM.Cst.CNI_DN.FaseEmpresa.CriptografiaCorporeMetodoGeneratePassword
GeneratePasswordMetodoRM.Cst.CNI_DR_RS.EJA.Server.dllRM.Cst.CNI_DR_RS.EJA.CriptografiaCorporeMetodoGeneratePassword
GeneratePasswordMetodoRM.Cst.ConfiguracaoAcesso.Data.dllRM.Cst.ConfiguracaoAcesso.CstGeracaoAcessosDataMetodoAdicionaUsuario
GeneratePasswordMetodoRM.Cst.Rabobank.Plugin.dllRM.Cst.Rabobank.CstSenhaUtilsMetodoInsereSenhaHistorico
GeneratePasswordMetodoRM.Cst.Sebrae.RH.PEP.Intf.dllRM.Cst.Sebrae.RH.PEP.CriptografiaCorporeMetodoGeneratePassword
GeneratePasswordMetodoRM.EduPS.Cadastros.Server.dllRM.EduPS.Cadastros.EduPSUsuarioObjMetodoCriptografaCampo
GeneratePasswordMetodoRM.EduPS.Formula.Server.dllRM.Fin.Formula.EduPSBoletoProviderMetodoPSGetHashBoleto
GeneratePasswordMetodoRM.EduPS.Processos.Data.dllRM.EduPS.Processos.EduPSCriptSenhaCandidatoDataMetodoEncryptSenhaCandidatos
GeneratePasswordMetodoRM.EduPS.Utils.Server.dllRM.EduPS.Utils.EduPSStatusCriptografiaUtilsMetodoCriptografaSenhaSeNecessario
GeneratePasswordMetodoRM.Glb.Seguranca.Data.dllRM.Glb.Seguranca.GlbUsuarioDataMetodoDoSaveRecord
GeneratePasswordMetodoRM.Glb.Seguranca.Server.dllRM.Glb.Seguranca.GlbSecurityModMetodoSetUsuarioFields
GeneratePasswordMetodoRM.Glb.Seguranca.Server.dllRM.Glb.Seguranca.GlbSecurityModMetodoUpdateSenhaUsuario
GeneratePasswordMetodoRM.Lib.Server.dllRM.Lib.Server.RMSLoginMetodoChangePassword
GeneratePasswordMetodoRM.Lib.Server.dllRM.Lib.Server.RMSRecoverPassBaseServerMetodoSendRecoverPassMail
GeneratePasswordMetodoRM.Lib.Server.dllRM.Lib.Server.RMSRecoverPassCorporeMetodoUpdatePassword
GeneratePasswordMetodoRM.Lib.Server.dllRM.Lib.Server.RMSSecurityUtilsServerMetodoUpdatePassword
GeneratePasswordMetodoRM.Rhu.Infra.Server.dllRM.Rhu.Infra.RhuCriptografiaMetodoGeneratePassword