Skip to content

[ACCOUNT-LOCKOUT-WINDOW-SEMANTICS-01] stale-window vs 绝对滑动窗口语义评估 #653

Description

@ghbvf

现状 / 修复方向

stale-window vs 绝对滑动窗口语义评估 — 现状: 实现使用 Keycloak maxDeltaTimeSeconds 风格(last_failed_at > 15min 触发计数器 reset to 1),攻击者理论上可每 14min 尝试 4 次永不触发锁定。修复方向: 引入真实滑动窗口(ring-buffer 记录最近 N 次失败时间戳,窗口内计数超阈值即锁),或保留 stale-window 但将 window 缩短至 < lockout-TTL/threshold。触发条件: 观察到 stale-window-bypass 攻击 / 业务方要求绝对窗口语义

Files

cells/accesscore/internal/accountlockout/service.go

Trigger

观察到 stale-window-bypass 攻击 / 业务方要求绝对窗口语义

Source

PR-618 review F7


Migrated from docs/backlog/20260520/ on 2026-05-20 by scripts/migrate-backlog-to-project.sh.
Priority=P3 Estimate=Cx2 — 设置到 Project v2 fields by admin(需 project scope token)。

Metadata

Metadata

Assignees

No one assigned

    Labels

    area-auth认证 Authn + 授权 AuthzbacklogBacklog item — automation trigger 入 projectcx-2Cx2 改动量:同包 ≤5 文件flag-cond条件延后,trigger 必填pri-p2Priority P2type-arch-opt架构优化

    Projects

    • Status
      Backlog

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions