Tip: Choose Save as PDF in the print dialog to download. Use A4 paper size.
Shade in the A or B circle for each question.
Draw a line connecting each item on the left to its match on the right.
| Left column | Right column | |
|---|---|---|
| 1for guess in all_combinations: | AA short password with a common word is still weak. A dictionary attack would guess it quickly, so a long passphrase is better. | |
| 2for word in common_passwords: | BA dictionary attack tries a list of common words and leaked passwords first | |
| 3Account lockout stops an attacker by locking the account after too many failed logins | CA brute-force attack loops through every possible password combination until one works | |
| 4Credential stuffing tries leaked username and password pairs from one site on other sites | Dif failed_attempts >= 5: lock_account() | |
| 5password = "cat123" # strong because it has numbers | EAllowing unlimited tries lets a brute-force attack keep guessing. Lock the account or add delays after several failed attempts. | |
| 6if login_failed: allow_unlimited_tries() | Ffor user, pw in leaked_list: login(user, pw) |
Complete each line of code by filling in the missing parts.
Shade in the letter of the line that contains an error.
brute-force attack — An attack that tries many passwords automatically until one works. A dictionary attack tries common words and leaked passwords first. Long passwords and lockouts slow it down.FOR EACH word IN wordlist
LOGIN(user, word)combinations ← 26 ^ lengthIF attempts >= 5 THEN
LOCK(account)FOR EACH pair IN leaked
LOGIN(site, pair.email, pair.pass)attempts ← 0
WHILE guess ≠ password
attempts ← attempts + 1