como funcionam as senhas e por que não funcionam: tentando resolver um problema sem solução
Slides da palestra "como funcionam as senhas e por que não funcionam: tentando resolver um problema sem solução" apresentada na CryptoRave 2024, no dia 11/05/2024.
↪ recebe um valor de entrada com tamanho arbitrário ↪ retorna um valor de saída com tamanho fixo - digest/soma ↪ deve ser rápida de se calcular ↪ não há garantia de que valores de saída iguais correspondam a valores de entrada iguais https://en.wikipedia.org/wiki/Hash_function
alterar a hash de saída 2. determinar o valor de entrada a partir da hash de saída 3. encontrar dois valores de entrada que geram a mesma hash de saída deve ser extremamente difícil de: cryptographic hash function
R 75 75 H 277289179729312395903094935180405519811 R 11 11 H 134349327668835346876933282647662472650 R 50 50 H 256249087116017178292043637459846421514 R 14 rainbow table
R 09 09 H 13957014806325298886391986709069375046 R 46 46 H 289548202804218369273708443831392368399 R 99 99 H 229138548907862643092856609226723050075 R 75 240181530756648252419641605934510424179
132117099947440863086225782187112663809 R 09 09 H 13957014806325298886391986709069375046 R 46 46 H 289548202804218369273708443831392368399 R 99 99 H 229138548907862643092856609226723050075 R 75 240181530756648252419641605934510424179
R 46 46 H 289548202804218369273708443831392368399 R 99 99 H 229138548907862643092856609226723050075 R 75 75 H 277289179729312395903094935180405519811 R 11 240181530756648252419641605934510424179 ☹
R 46 46 H 289548202804218369273708443831392368399 R 99 99 H 229138548907862643092856609226723050075 R 75 75 H 277289179729312395903094935180405519811 R 11 240181530756648252419641605934510424179 ☹
R 46 46 H 289548202804218369273708443831392368399 R 99 99 H 229138548907862643092856609226723050075 R 75 75 H 277289179729312395903094935180405519811 R 11 240181530756648252419641605934510424179 ☹
R 46 46 H 289548202804218369273708443831392368399 R 99 99 H 229138548907862643092856609226723050075 R 75 75 H 277289179729312395903094935180405519811 R 11 240181530756648252419641605934510424179 ☹
r na tabela? ❌ 75 h no caminho? ❌ H 277289179729312395903094935180405519811 R 11 11 h no caminho? ❌ H 134349327668835346876933282647662472650 R 50 50 r na tabela?
r na tabela? ❌ 75 h no caminho? ❌ H 277289179729312395903094935180405519811 R 11 11 h no caminho? ❌ H 134349327668835346876933282647662472650 R 50 50 r na tabela? ✅ 31 50 60 50
R 99 99 H 229138548907862643092856609226723050075 R 75 75 H 277289179729312395903094935180405519811 R 11 11 H 134349327668835346876933282647662472650 R 50 240181530756648252419641605934510424179 ☹
• sua senha deve conter pelo menos 8 caracteres • sua senha deve conter pelo menos uma letra maiúscula (A-Z) e um número (0-9) • sua senha deve conter pelo menos um símbolo (@, !, …) • sua senha não pode conter uma sequência de 3 caracteres iguais
40 50 60 70 80 90 100 110 120 ------------- --------------------------------- 0: 0 @ P ` p 0: ( 2 < F P Z d n x 1: ! 1 A Q a q 1: ) 3 = G Q [ e o y 2: " 2 B R b r 2: * 4 > H R \ f p z 3: # 3 C S c s 3: ! + 5 ? I S ] g q { 4: $ 4 D T d t 4: " , 6 @ J T ^ h r | 5: % 5 E U e u 5: # - 7 A K U _ i s } 6: & 6 F V f v 6: $ . 8 B L V ` j t ~ 7: ' 7 G W g w 7: % / 9 C M W a k u DEL 8: ( 8 H X h x 8: & 0 : D N X b l v 9: ) 9 I Y i y 9: ' 1 ; E O Y c m w A: * : J Z j z B: + ; K [ k { C: , < L \ l | D: - = M ] m } E: . > N ^ n ~ F: / ? O _ o DEL
pin) ↪ algo que você tem (otp, chave de hardware, certificado, sms) ↪ algo que você é (biometria, ip, localização, geofencing) ↪ algo que você faz (profiling, movimentos de mouse)
serviço ⤷ definir limites mínimo e máximo de taxa de transferência de dados ⤷ definir tempo máximo de conexão aberta ⤷ definir limite máximo de requisições a um mesmo serviço
da conta ⤷ relativo à conta, não ao ip ⤷ tempo de bloqueio pode ser fixo ou exponencial ⤷ use rate limits para evitar bloqueios propositais da conta de terceiros