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

A partir da versão 12.1.34, o RM passará a utilizar um novo algoritmo para geração de hashs (Bcrypt). - https://github.com/BcryptNet/bcrypt.net

O Bcrypt foi escolhido pois ele cumpre todas as especificações levantadas para atender as necessidades do RM.

Essa ação visa aumentar o nível de segurança do armazenamento das senhas dos usuários.


Foi necessário atuar em duas ações principais:

1- Aumentar o tamanho do campo SENHA de 8 para 1000

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

#P=False#PT=None#WF=10#HT=SHA256#HA=Bcrypt#V=4.0.2.0#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 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.


Atençã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
  • Sem rótulos