Eu sugeriria usar um pouco de matemática que leve em conta sua complexidade mínima de senha, a rapidez com que um invasor poderia adivinhar senhas, o número de contas desbloqueadas que você tem e algumas informações informadas sobre seus riscos.
Espero que você tenha algum tipo de limite de taxa para a adivinhação de senha. Normalmente, isso seria feito por meio de algo que bloqueia temporariamente as contas após um certo número de senhas incorretas.
E esperamos que você tenha algum tipo de requisito de complexidade de senha para que "A" e "senha" não sejam permitidos.
Vamos supor que, após 30 falhas de senha em 10 minutos, você bloqueará uma conta por 20 minutos. Isso limita efetivamente a taxa de estimativa de senhas para 174 por hora, ou 4176 por dia. Mas vamos supor que seja por usuário.
Vamos supor que você precise de senhas com mais de 8 caracteres contendo letras maiúsculas, minúsculas e um número, e que faça algumas verificações de dicionário para garantir que essas senhas sejam razoavelmente aleatórias. Na pior das hipóteses, todos os usuários colocam a parte superior e um número no mesmo local, e o invasor sabe disso, portanto, você tem 10 * 26 ^ 7 (80G) possíveis senhas. O melhor caso é 62 ^ 8 (218T).
Assim, um invasor que esteja tentando todas as senhas possíveis atingiria todas elas dentro de 50.000 anos no pior caso, e quase 600 milhões de milênios no melhor dos casos. Ou, para colocar de outra forma, dado um ano, eles teriam entre 1 em 50.000 e 1 em 52.000.000.000 de adivinhação. Se você tem uma base de usuários de 50.000, é quase certo que na pior das hipóteses eles entrariam em uma conta por ano e teriam 50% de chance de conseguir uma conta a cada 6 meses.
E se você não tivesse limite de taxa e um invasor pudesse adivinhar um bilhão de senhas por dia? Uma chance em 600 de entrar em uma conta em um ano, ou uma garantia virtual de receber cerca de 80 dos seus 50.000 usuários a cada ano.
Trabalhe nessa matemática e descubra onde está seu nível de risco aceitável. E lembre-se de que quanto mais curto você definir, mais difícil será para os usuários lembrarem e mais provavelmente eles serão escritos em algum lugar conveniente para um invasor no local.
Como um bônus adicional: se alguém está testando milhares de senhas por usuário por dia contra seus sistemas, eu realmente espero que você tenha algum tipo de monitoramento que o identifique.
EDITAR:
Esqueci de mencionar: nossa política atual é de 90 dias, mas isso tem tudo a ver com descobertas de auditores de segurança equivocados e nada a ver com a realidade.