TIMING ATTACK Nâng cao CA 02 / 11

Đăng nhập VPN: sai username phản hồi NHANH HƠN

Cổng VPN nội bộ doanh nghiệp:

user, err := findUser(username)
if err != nil {
    return errors.New("sai tài khoản")   // trả lỗi NGAY, không hash gì cả
}
ok := bcrypt.CompareHashAndPassword(user.Hash, []byte(password)) == nil // ~100ms

Username không tồn tại → trả lỗi ngay lập tức; username tồn tại nhưng sai mật khẩu → phải chạy hết bcrypt (~100ms) rồi mới trả lỗi. Kẻ tấn công lợi dụng được gì từ chênh lệch thời gian này?