2013-04-26 2 views
1

비밀번호 분실 페이지를 작성 중입니다. 나는 주변에서 읽었고 많은 소스는 사용자가 자신의 전자 메일 주소를 입력하도록 권장합니다. 그러면 전자 메일 주소가 DB에 토큰을 추가하고 GET 변수로 연결된 토큰이 포함 된 링크를 보냅니다.'비밀번호 찾기'페이지에서 만료되는 토큰을 사용해야하는 이유는 무엇입니까?

토큰이 만료 된 경우 나쁜 의도와 이메일 액세스 권한이있는 사람은 비밀번호 분실 페이지로 바로 돌아가서 이메일을 다시 입력하여 새 비밀번호 재설정을받을 수 있습니다. 링크.

다른 누군가가 귀하의 이메일 주소에 액세스 할 수있는 경우 특정 시점에서 만료되는 토큰이 있다는 사실을 알 수 없습니다. '비밀번호 찾기'페이지에서 만료되는 토큰을 사용해야하는 이유는 무엇입니까?

+0

누군가가 이미 이메일 계정에 액세스 한 경우 다른 신원 확인을 요청할 수 있습니다. 일반적으로 실제 사람 만 대답 할 수있는 '보안 질문'에 대한 답변입니다. – Gumbo

답변

0

악의적 의도를 가진 사람이 example.org의 계정에 액세스하려고한다고 가정하면 사용자의 이메일 계정에 대한 액세스 권한이 없습니다. 또한 example.org의 "암호 찾기 잊음"알고리즘의 토큰이 만료되지 않는 것으로 가정합니다.

이 사람은 적어도 반 스마트 인 경우 example.org에서 가짜 계정을 설정하고 가짜 계정을 설정하고 "암호를 잊어 버렸습니다"버튼을 클릭하여 리셋 링크를 통해 토큰의 모양을 확인합니다 내장 (최소한, 그들이 가지고있는 형식). 그들은 알 - 그럼

당신의 이름의 사람 유형과는 만료되지 않습니다 리셋 링크,하지만 그들은 그것에 대해 걱정하지 않는다 이메일 "비밀번호 찾기"버튼을 클릭했다 리셋 토큰이있는 형식; 그래서 그들은 유효 히트를 찾을 때까지 토큰을 증가시켜 리셋 페이지를 무차별 적으로 강제 할 수 있습니다.

물론이 접근법은 기술적으로 모든 리셋 요청을 발견 할 수 있지만 아직 완료되지는 않았습니다.

토큰이 만료되고 적절한 시간 제한 내에 토큰이 생성되고 만료 될 때까지의 시간은 공격자가 추측 할 수있을 때까지 발생합니다. 물론 항상 추측하기 전에 이메일을 볼 수있는 기회가 있습니다. 그러나 만료 시간을 추가하는 것보다 안전성이 떨어집니다. = P

+0

알겠습니다. 설명 해줘서 고마워. 토큰은 전자 메일 계정이 손상된 사람을 보호하기 위해 아무 것도하지 않습니다. 맞습니까? – zeckdude

+0

@zeckdude Correct. 누군가의 주요 이메일 계정이 유출 된 경우 보안 성이 거의 없습니다. – newfurniturey

+0

누군가는 심지어 128 비트 토큰을 브루투스하려고 시도 할 것인가? (우리 모두는 보통 토큰으로 임의의 md5()를 사용한다)? (개인적으로 리셋 링크도 만료된다 ;-) – zerkms

0

다른 방법으로 질문 할 수 있습니다. 재설정해야하는 이유 -link는 영원히 유효할까요?

비밀번호 재설정 링크를 요청하면 약 1 시간에서 2 시간 이내에 정상적으로 사용하게됩니다. 아무런 이점도 없습니다. 링크를 2 년 후에 클릭하면 아마도 리셋 링크가 존재한다는 것을 기억하지 못할 것입니다. 새로운 링크를 요청하는 것은 쉽습니다.

다른 한편으로 누군가 내 전자 메일 계정에 대한 액세스 권한을 얻거나 어쩌면 내 전자 메일의 백업을 얻는 경우 재설정 링크를 사용할 수 있습니다. 전자 메일을 읽을 수 있다는 것은 반드시 전자 메일 계정에 로그인 할 수 있다는 것을 의미하지는 않습니다. 예를 들어 사무실에 열려있는 전자 메일 클라이언트, 인터넷 카페에서 잊어 버린 로그 아웃, 잃어버린 휴대폰 ...

토큰 자체는 공격자가 새로운 재설정 링크. 사용자 이름, 현재 시간 또는 전자 메일 주소와 같은 매개 변수에 의해 생성 된 코드 대신 임의의 코드를 사용하는 것이 좋습니다.

일반적으로 코딩 작업이 현저히 어렵지 않은 경우 더 강력한 스키마가 필요한 경우 더 약한 스키마를 사용해야하는 이유는 무엇일까요?

관련 문제