2012-05-26 2 views
1

사람들이 내 웹 사이트에서 사용자 계정을 해킹하지 못하도록 조치를 취하고 싶습니다. 기억하기 위해 몇 가지 암호 만 입력해야하는 고객에게 짜증나지 않으면 서이 과정에서 가장 좋은 과정은 무엇일까요?암호 크래킹을 차단하는 시스템을 어떻게 구현해야합니까?

두 번 실패한 시도 후에 Google에 captcha 이미지가 표시됩니다. 나는 열심히 노력한 적은 없지만, 꽤 많은 시도 후에 그들은 반드시 당신을 막아야한다고 확신합니다.

누군가가 계정에 접근하기 위해 무차별 대입 방식을 시도하지 않도록하는 것이 가장 좋습니다.

captcha? IP 주소 차단 (공유 IP에있는 경우 작동합니까?)

+4

공유 IP를 차단하면 해당 IP를 사용하는 모든 사용자를 차단합니다. 가정용 브로드밴드 주소라면 큰 문제가 아니며 AOL의 프록시 중 하나라면 좋지 않습니다. –

+0

일종의 허니팟에 걸린 IP 주소에 대해 IP 차단을 사용합니다 (예 : phpMyAdmin을 사용하지 않는 경우 차단 시도에 액세스하려고 시도합니다. 정상적인 사용자는 아무도 자신의 코를 찌르지 않아야 함). 그). –

답변

1

가장 좋은 방법은 일정 기간 동안 가능한 많은 시도 (예 : 롤링 30 분 (예 : 30 분))를 사용하여 사용자 이름별로 잠금 (10 분, 15 분 등 ...) 창문). 시도 횟수를 3 또는 5보다 높게 설정하면 일반 사용자는 잠금을 해제하기 전에 비밀번호를 포기하거나 비밀번호 재설정을 시도합니다.

일반 사용자 동작과 무차별 공격 시도 간의 동작 차이를 이해하기 위해 실패한 시도 데이터 (IP, 사용자 이름, 타임 스탬프, 등) 로깅을 고려할 수 있습니다. 이렇게하면 시간이 지남에 따라 정책을 수정할 수 있습니다.

강력한 암호 정책 (최소 8 자 이상으로 숫자 하나 이상 포함)도 고려하십시오.

다중 요소 인증을 고려해 볼 수도 있습니다. captcha에 대해 언급했지만 유용한 다른 기술들이 많이 있습니다. 내가 작업하는 한 사이트는 사용자의 IP 주소를 인식하지 못하고 사용자가 새 IP 주소에서 액세스 할 수있게하려면 토큰을 제시해야만 사용자의 전자 메일 주소로 토큰을 전자 메일로 보냅니다.

+0

강력한 암호 정책이란 "강력한"암호 정책을 의미합니까? 에서와 같이 실제로 암호의 엔트로피 비트 수가 실제로 무엇인지는 알지 못합니까? –

+0

이것은 특히 IP보다는 사용자 이름으로 접근하는 합리적인 방법처럼 들립니다. 고마워! –

1

특정 시도 횟수 후에 사용자를 잠그거나 추가 로그인 시도가 다시 받아 들여지는 시간을 연장하는 방식은 확실히 좋은 생각입니다. CAPTCHA (괴롭히는 것 말고는) : 그러나 내 생각에은 강한 하드웨어 지원이있는 경우에만 의미가 있습니다.

난 당신이 그렇게 할 수있는 자원을 가지고있을 경우에만 시도해야한다고 생각하는 이유는 당신이 그와 같은 계획이 최근 잠재적 모든 위해 만든 시도를 기억 당신을 요구 것을 명심해야한다는 것입니다

사용자가 시스템에 있어야합니다. 물론 메모리 내 캐시, 데이터베이스 등 정보를 유지하는 데는 여러 가지 방법이 있습니다.

그러나 이러한 메커니즘을 사용하면 응용 프로그램에 추가로드가 발생하며 단점이 있습니다. 침입자가 귀하의 앱에 지루하거나 짜증을내는 경우, 그들은 서비스 거부 공격으로이를 퇴치하려고 시도 할 수도 있습니다. 많은 정보를 유지해야하는 복잡한 로그인 구성표는 목표를 달성하는 데 많은 도움이됩니다.

이러한 기능을 적용하기로 결정한 경우 실험실에서 먼저 "많이 걸릴 수 있음"에 대한 느낌을 갖도록 스트레스 테스트를 해 보는 것이 좋습니다. 이렇게하면 필요한 경우 알아낼 수 있습니다. 하드웨어 업그레이드 :

지속성이 필요없는 쉬운 방법은 PBKDF2, bcrypt 또는 scrypt와 같은 암호 해시를 적용하는 것입니다. 이러한 인위적으로 느린 공격자는 가능한 한 어렵게 만듭니다.그러나 이것들 역시 응용 프로그램에 계산상의 부담을 가중시킵니다 (앞서 언급 한 측정치보다 아마도 적을지라도). 그래서 다시 몇 가지 스트레스 테스트를 먼저 수행 할 것입니다.

관련 문제