Capítulo 12 — Probabilidade e estatística
Mapa da aula
Aula 12 publicada. Mapa, exemplo, EX034.
flowchart TD
N0["12.1 Espaço de adivinhação em bits"]
N1["Laboratório — Bits das políticas de senha"]
N2["12.2 Ler a tabela"]
N3["12.3 Escolhas humanas e política"]
N4["Síntese"]
N0 --> N1 --> N2 --> N3 --> N4
N4 --> EX["Exemplo resolvido"]
EX --> Q["Exercício EX034"]
Desenho lógico
flowchart LR
N0["12.1 Espaço de adivinhação em bits"]
N1["Laboratório — Bits das políticas de senha"]
N2["12.2 Ler a tabela"]
N3["12.3 Escolhas humanas e política"]
N4["Síntese"]
N0 --> N1 --> N2 --> N3 --> N4 --> Q["EX034"]
[12.1 Espaço de adivinhação em bits]
|
v
[Laboratório — Bits das políticas de senha]
|
v
[12.2 Ler a tabela]
|
v
[12.3 Escolhas humanas e política]
|
v
[Síntese]
|
v
[Exemplo resolvido] --> [Exercício EX034]
Objetivos de aprendizagem
Você vai (1) medir a força das senhas em bits; (2) comparar políticas pelo espaço de adivinhação; (3) reconhecer por que as escolhas humanas reduzem a força real.
12.1 Espaço de adivinhação em bits
A força contra a adivinhação é medida pelo número de possibilidades igualmente prováveis, expresso em bits como o logaritmo de base 2. Um segredo escolhido uniformemente entre N possibilidades tem log2(N) bits. Cada bit a mais dobra o trabalho do atacante. Priya calcula isso para as políticas de senha que a Tidewell está considerando. O cálculo supõe que todas as possibilidades são igualmente prováveis, o que vale para segredos gerados por máquina, mas raramente para as escolhas humanas. Ela mantém essa premissa visível em todas as tabelas que produz. Ela também explica os bits à equipe usando lançamentos de moeda.
Laboratório — Bits das políticas de senha
"""Guessing space for password policies, in bits (synthetic policies, uniform choice assumed)."""
import math
POLICIES = [("8 lowercase letters", 26, 8), ("8 mixed + digits", 62, 8),
("4 words from 7776-word list", 7776, 4), ("6 words from 7776-word list", 7776, 6)]
def main():
for name, alpha, n in POLICIES:
print(f"{name:<30} {n * math.log2(alpha):5.1f} bits")
print("human-chosen passwords fall far below these uniform figures")
if __name__ == "__main__":
main()
Execute com python3 lab_entropy.py. Saída verificada:
8 lowercase letters 37.6 bits
8 mixed + digits 47.6 bits
4 words from 7776-word list 51.7 bits
6 words from 7776-word list 77.5 bits
human-chosen passwords fall far below these uniform figures
12.2 Ler a tabela
Oito letras minúsculas aleatórias dão 37,6 bits; oito caracteres aleatórios entre letras e dígitos dão 47,6. Quatro palavras escolhidas ao acaso numa lista de 7.776 palavras dão 51,7 bits, e seis palavras dão 77,5. Uma frase-senha gerada aleatoriamente, portanto, supera uma senha de oito caracteres de aparência complexa e é mais fácil de lembrar. Priya enfatiza a palavra "aleatoriamente": uma frase escolhida por uma pessoa, como o título de um livro favorito, tem muito menos bits efetivos, porque os atacantes tentam primeiro as frases comuns. A última linha do laboratório enuncia esse limite. Grace pede a tabela para o boletim da equipe.
12.3 Escolhas humanas e política
Estudos reais sobre senhas mostram que as pessoas escolhem padrões previsíveis: primeira letra maiúscula, anos e pontos de exclamação. As regras de composição muitas vezes tornam as senhas mais difíceis de lembrar sem torná-las muito mais difíceis de adivinhar. Priya recomenda que a Tidewell permita frases-senha longas, confira as novas senhas contra listas de senhas comuns e vazadas, limite a taxa de tentativas de login e ofereça um gerador de frases-senha. Ela enquadra a recomendação como redução da adivinhabilidade, e não como cumprimento de regras, e anota que o hash lento de senhas do Capítulo 9 acrescenta proteção. Grace leva o plano ao conselho.
Exemplo resolvido
Priya mostra que seis palavras aleatórias dão 77,5 bits contra 47,6 de oito caracteres mistos e recomenda frases-senha longas, verificação contra senhas vazadas e limitação de taxa.
Caso sintético. As políticas são inventadas; os cálculos são padrão.
Erros e limites
Os cálculos em bits só se aplicam a escolhas uniformemente aleatórias. A limitação de taxa protege contra a adivinhação online, e não contra ataques offline a hashes roubados.
Exercícios
-
EX034 — Fórmula dos bits. Quantos bits tem um segredo escolhido uniformemente entre N possibilidades? Rubrica: 3 = log2(N);; 2 = logaritmo;; 1 = N;; 0 = nenhuma.
-
EX035 — Resultado da frase-senha. Compare quatro palavras aleatórias com oito caracteres mistos, a partir do laboratório. Rubrica: 3 = 51,7 bits contra 47,6 bits;; 2 = números;; 1 = invertido;; 0 = nenhuma.
-
EX036 — Frases humanas. Por que uma frase escolhida por uma pessoa tem menos bits efetivos? Rubrica: 3 = os atacantes tentam primeiro as frases comuns; as escolhas não são uniformes;; 2 = previsível;; 1 = igual;; 0 = nenhuma.
Síntese
Medir o espaço de adivinhação em bits mostra por que frases-senha aleatórias superam senhas curtas e complexas, desde que as escolhas sejam realmente aleatórias.
Continue estudando — aula 12 (capítulo 12 de 40)
← Capítulo 11 · Índice das aulas · Capítulo 13 →
Continue para a próxima aula já escrita.