비밀번호 해싱 및 사용자 지원


10

우리는 최근에 더 나은 암호 저장 전략으로 옮겼습니다.

  • bCrypt를 거친 후 비밀번호가 저장됩니다.
  • 주소를 확인하기 위해 계정 생성시 사용자에게 활성화 링크가 전송됩니다
  • 비밀번호 힌트없이 비밀번호를 잊어 버리면 링크가 이메일로 전송됩니다.
  • 링크는 24 시간 후에 만료되며 새 링크를 요청해야합니다.
  • 직원이 계정을 만들면 임의의 강력한 암호가 포함 된 이메일이 전송됩니다. 로그인하면 사용자가 알지 못하는 것으로 재설정해야하며 bCrypt'd입니다.

이제 이것은 "모범 사례"와 일치하지만,이 모든 것을 이해하지 못하는 일반 사용자의 지원 요청이 많이 증가했습니다. 로그인 만하면됩니다.

우리는 종종 다음에 대해 불평하는 사용자로부터 요청을받습니다.

  • 잘못된 비밀번호 (초기화해야하는 비밀번호에서 끝에 공백이있는 경우가 종종 있습니다). 그들은 우리에게 그들이 무엇을 사용하고 있는지 말하지만 우리는 그들에게 실제 암호가 무엇인지 말할 방법이 없습니다.
  • 그들이 보낸 이메일을받지 못했다고 말하면 (활성화, 재설정 등). 많은 문제 해결 후 이메일에서 오타가 발생했거나 올바른 이메일 계정을 확인하지 않았거나 단순히 스팸 폴더로 이동했음을 알았습니다.

물론 암호가 없기 때문에 시도해 볼 수 없습니다. 실패한 시도를 기록하고 있지만 다른 계정에 사용 된 암호 일 가능성이 높고 일반 텍스트 로그 파일에 저장하지 않았기 때문에 사용한 암호도 지 웁니다. 이로 인해 문제를보고 할 때 도움이되지 않습니다.

대부분의 사람들이 이와 같은 문제를 어떻게 처리하는지 궁금합니다.


2
시스템에서 사용자에게 보내는 전자 메일에 대해 좀 더 설명하는 것 외에는 모범 사례를 유지하면서 다르게 수행 할 수있는 작업이 없습니다. 당신이 바보 같은 사용자를 때릴 수 있기를 바랍니다.
Bernard

1
사람들은 어리 석고, 귀하의 사용자이며, 대부분의 사람들보다 더 궁금합니다. 여기서 질문이 보이지 않습니까?

8
Jarrod는 사용자를 모욕하고 있습니다. 여기 바보 같은 사람이 있습니다. 사용자의 컴퓨터 활용 능력 수준을 이해하지 못합니다. 공격자는 없지만 컴퓨터 전문가가 아닌 사람들을 위해 소프트웨어를 작성하고 있습니다. 의심의 여지가 없다면 아마도 모든 유용성 전문가들은 실제로 필요하지 않기 때문에 해고 당할 것입니다. 그것은 "멍청한 사람들"의 문제 일뿐입니다. 그래서 우리는 영리한 개발자가 웹에서 그것들을 금지시키고 문제는 사라질 것입니다.
Slawek

2
@Slawek : 아뇨, 정말로 사람들은 바보입니다.
Bryan Boettcher

@JarrodRoberson, 그의 사용자는 거의 없습니다. 공개 웹 애플리케이션을 다룰 때 일반적으로 얻는 것입니다. 그것은 그렇 싫든 여전히 지원 리소스를 차지하며 매우 유효한 질문입니다.
GrandmasterB

답변:


7

잘못된 비밀번호 (초기화해야하는 비밀번호에서 끝에 공백이있는 경우가 종종 있습니다). 그들은 우리에게 그들이 무엇을 사용하고 있는지 말하지만 우리는 그들에게 실제 암호가 무엇인지 말할 방법이 없습니다.

로그인하고 일회용 비밀번호를 강제로 재설정하는 일회성 GUID 링크를 포함 시켜서 고칠 수 있습니다. 사용자에게 강제로 복사하여 붙여 넣지 마십시오. 또한 양식의 비밀번호 끝에서 공백을 제거하지 마십시오.

그들이 보낸 이메일을받지 못했다고 말하면 (활성화, 재설정 등). 많은 문제 해결 후 이메일에서 오타가 발생했거나 올바른 이메일 계정을 확인하지 않았거나 단순히 스팸 폴더로 이동했음을 알았습니다.

발신 이메일이 스팸이 아닌지 확인하고 (일부 일반적인 메일 서비스에서 테스트 계정을 설정했을 수 있음) 발생하는 모든 것을 기록하고 새로운 재설정을 요청하려고 할 때 사용자에게보고하십시오 (예 : johndoee @ gmail로 메일 발송) .com 실패, 사용자를 찾을 수 없음, 철자가 정확합니까?) 또한 맞춤법 및 스팸 문제에 대해 사용자에게 명확하게 설명하십시오.

또한 다른 사람들이 말했듯이 OpenID 및 기타 타사 인증도 옵션입니다.


어떤 사람들은 암호에 공백을 넣습니까?
soandos

일부 사람들은 자동 생성 된 암호를 잘라 내지 않고 실수로 시작하거나 끝낼 때 공백을 포함합니다. (질문을 읽으십시오.)
Macke

3

Facebook, OpenID, Google과 같은 타사 인증 방법을 사용한다고 말하고 싶습니다. 그러나 사용자가 비밀번호를 기억하지 못하면 타사 인증 시스템을 사용하지 못할 수 있습니다.

상황에 따라 SSL 클라이언트 인증서와 같은 다른 시스템을 사용할 수 있습니다 (최종 사용자에게는 확실히 설치하기는 어렵지만 회사이고 설치를 자동화 할 수있는 경우), Windows SSO, 모바일 앱 등


클라이언트 인증서는 완벽한 아이디어입니다. 그들은 무언가 잘못되면 원격으로 고치기에 불안하고 악몽입니다. OpenID는 좋은 아이디어 생각이다
톰 종복

인증서는 어떻게 안전하지 않습니까?
Bernard

@bernard 해당 PC 사용자는 인증서를 가지고 있습니다. 바이러스로 쉽게 제거 할 수 있습니다.
Tom Squires

1
나는 그들이 상주하는 기계만큼 안전하다는 데 동의하지만 그것은 전혀 다른 문제입니다.
Bernard

3

당신은 그것을해야합니까? 가장 먼저해야 할 일은 보호 대상과 보호 대상을 결정하는 것입니다. 아마도 모범 사례의 비용이 들지 않을 수도 있고 모범 사례가 공격자를 막지 못할 수도 있습니다.

NSA에 반대하는 사람들이 원하는 것을 원한다면 포기하고 사용자의 삶을 편하게 만드십시오. 신용 카드 번호가 있다면 필요한 보안 수준에 필요한 문제를 해결해야합니다. 나쁜 사람이 있기를 원하고 돈과 시간을 투자하기 때문입니다. 그것은 가족 사진 앨범에 대한 액세스 권한입니다. 모든 보안이 필요합니까?

보안을 이해하기에 좋은 출발점으로 Buce Scheiners 작품 (Secrets and Lies)을 읽어보십시오.


3

가장 먼저 눈에 띄는 것은 이메일이 정크 메일로 전송된다는 것입니다. 실제 이메일로 인식되도록 이메일을 설정하는 것은 쉬운 일이 아닙니다. 이메일이 잘못 표시되는 것을 방지하는 방법을 살펴 보시기 바랍니다 (SO에 대한 별도의 질문이 있습니까?)

두 번째로 추천하는 것은 사용자에게 암호 복구 이메일을 시작하는 원 클릭 웹 사이트 / 앱을 제공하는 것입니다. 이메일 이외의 다른 방법으로 거부하면 안전하지 않으며 선례가 잘못됩니다.


전자 메일이 중요한 정보를 전송하는 특히 안전한 방법은 아닙니다. 일반 사용자 만 GPG 및 ssh 키로 방해받을 수 있다면 ...
tdammers

@ tdammers 나는 그렇게 안전하지 않다는 데 동의합니다. 그러나 그것은 당신의 온라인 정체성의 핵심이되었습니다. 현재 더 나은 대안이 없습니다.
Tom Squires

그렇습니다. 암호화 된 이메일. 나는 그것을 항상 사용하고 있으며, 거대한 회사조차도 민감한 전자 메일에 pubkey 암호화를 제공하지 않아도된다는 것을 짜증나게합니다. 구현하기조차 어렵지 않습니다. 민감한 정보에 대해 SSL을 필수로 만드는 법률 (적어도 네덜란드에서는 여기)이 존재하지만 동시에 일반 SMTP를 통해 동일한 정보를 보내는 것은 허용되는 것으로 간주됩니다.
tdammers

@ tdammers 나는 그것을 스스로 추천하기에 충분하지 않습니다. 그것의 도전적으로 가치가 OP 생각으로 찾고
톰 종복

2

그들이 당신을 불러 내고 당신에게 그들의 비밀번호를 크게 말해 줄 것이라는 사실은이 사용자들에게, 비밀번호와 그것이 보호하는 정보가 그렇게 큰 것이 아니라는 것을 말해줍니다. 나는 은행 암호로 그런 일을 절대하지 않을 것입니다. 그러나 실제로 자격이없는 것들에 대한 암호를 요구하는 사이트가 많이 있습니다. 나는 그들 모두를 위해 사용하는 하나의 표준 비밀번호를 가지고 있으며, "강력한 비밀번호가 아닌 헤이"또는 "비밀번호를 만들고 정기적으로 변경하도록 강요 할 것입니다"등등 그 서비스. 나는 당신의 인생에서 "비즈니스 가치"사람들과 짧은 대화를하면서 실제로 db에 일반 텍스트를 유지하고 요청시 사람들에게 이메일로 보내는 것이 더 나은 방법인지 알 수 있습니다.

실제로 이것이 안전해야한다면, 내 고객 중 하나가 우리가 코딩 한 시스템으로 무엇을했는지 시도 할 수 있습니다. 상대방과 통화하는 동안 DB로 이동하여 이메일 주소를 귀하의 것으로 변경하십시오. 그런 다음 웹으로 이동하여 비밀번호 분실을 클릭하십시오. 이메일을 기다렸다가 로그인하십시오. 웹 사이트를 사용하여 비밀번호를 비밀번호 또는 고객과 구두로 동의하는 다른 비밀번호로 변경하십시오. 이메일 주소를 다시 자신의 주소로 변경하고 "모든 설정이 완료되었습니다. 이제 새 비밀번호가 활성화되었습니다!" 행복한 고객이며 모든 일이 무엇인지 설명 할 필요가 없습니다.


2
직접 데이터베이스 수정은 보안 위반 자체입니다. 즉, 시스템을 사용하는 모든 사용자를 가장 할 수 있습니다.
Bernard

3
내 고객은 Windows 응용 프로그램을 사용하여 모든 사용자의 모든 필드를 편집 할 수 있습니다. 이제 새 전화 번호가 있다고 말하는 팩스가 있는지 확인하십시오. 물론 감사를 받았습니다. 물론이 서면 절차를 지원 데스크 근처의 벽에 녹화 한 것을 보았을 때 나는 행복하지 않았습니다. 그러나 나는 그것을 받아들이게되었고, 누군가가 전화를 걸고 비밀번호가 그들의 동의없이 재설정되었다고 불평 할 때 일어난 일을 보여주는 감사 추적이있다. 문제는 모든 것이 안전해야하는 것은 아닙니다. 그리고 사용자는 이것이 필요하지 않다고 말합니다.
Kate Gregory

1
불행히도 대부분의 사용자는 더 잘 알지 못합니다. 모범 사례를 시행하는 것은 소프트웨어 응용 프로그램 개발자에게 달려 있습니다.
Bernard

4
이것이 큰 보안 허점이라는 데 동의합니다. 그리고 그것이 가장 적절한 해결책 일 있다는 데 동의합니다 . 그러나 고객 지원팀이 일시적으로 고객의 이메일 주소를 변경하여 해당 사용자의 비밀번호를 재설정해야하는 것은 매우 어리석은 것처럼 보입니다. 고객 지원팀이 비밀번호를 재설정하도록하려면 고객이 직접 수행하게하십시오.
존 Bartholomew

4
나는 또한 (모두에서 일반 텍스트로 암호를 저장하는 사실) 사용자가 설정 한 것을 일반 텍스트 암호를 공개하는 것은, 내 생각에, 떨어져 있음을 알아 것 상당히 직접적으로 고객 지원에게 기능을 제공보다 더 나쁜 변경 사용자 암호.
존 Bartholomew

2

과거에 문맹이 많은 사용자가있는 시스템에서 사용한 마지막 방법은 전화 번호와 확인 번호가 제공된 화면으로 사용자를 안내하는 것이 었습니다. 그들은 전화 번호로 전화를 걸어 수동 수단을 통해 신원을 확인한 다음 확인을 읽었습니다. 지원 담당자가 별도의 시스템에 로그인하여 번호를 입력 한 후 클라이언트에게 다시 보낼 두 번째 번호를 얻었습니다. 클라이언트는 두 번째 코드를 사용하여 비밀번호 재설정 페이지로 계속 진행합니다. 지원 담당자의 서브넷에서 클라이언트 버전의 페이지를 실행할 수없고 클라이언트에서 지원 화면을 실행할 수 없습니다.

지원 담당자가 VPN을 사용하여 한 위치에서 양쪽 끝을 실행할 수 있기 때문에 방탄하지는 않지만 지원 계정이 활동에 대한 책임으로 기록되었으므로 감사하기에 충분했습니다.


-5

INSANE가 아닌 보안 규칙을 구현하여 가능합니다. 이렇게하면 시스템 사용이 너무 어려워서 클라이언트가 사용자와 친구에게 암호를 해독하여 작동하게하기 때문에 보안 수준이 떨어집니다.

당신은 그들에게 NORMAL 링크를 보낸 다음 아래 암호를 보낼 수 없습니다. 이메일 클라이언트에 의해 링크가 끊어지면 "활성화 코드"... "이메일에 포함 된 활성화 코드 유형"... 5 자리로 양식을 표시하십시오. 숫자는 신용 카드에 적합하며 간단한 로그인을 위해 복잡한 정책이 필요하십니까? 코드가 작동하지 않으면 TRIMmed 문자열로 검사를 반복 하시겠습니까? 덜 안전하지 않을 것 같아요? :)

나에게도 자주 발생합니다 ... 암호를 두 번 클릭하면 끝 공간이 복사됩니다. 왜 점검이 실패했을 때 종료 흰색 문자를 제거하고 프로세스를 반복하여 peple이 알아낼 수 없습니까? 그런 다음 실수로 CL을 누르지 않았는지 확인하기 위해 TOGGLE 레터 케이스를 확인하십시오.

당신은 그것을 너무 심하게 복잡하게 만들었습니다. "비밀번호 재설정"및 "초기 비밀번호"는 아니지만 "확인 코드"및 "확인 번호를 입력하여 이메일로 보내드립니다", "이메일이 없으십니까? xxx@yyy.com으로 전송되었습니다. 확인하십시오." 스팸 메일이 아직 없으십니까? 확인 이메일을 다시 보내십시오 ". HTML 본문에서 링크입니다. http://xxx.com/conf-12345-mymail-gmail-com.html . 어떤 메일 클라이언트도이 문제를 해결하지 않습니다.


5
그가 언급 한 보안 정책은 "INSANE"뿐만 아니라 모든 "SANE"응용 프로그램의 요구 사항이어야합니다. 이메일을 통해 전송 된 이와 같은 링크는 비밀번호가 재설정되는 것을 방지하기 위해 잠시 후에 만료되어야합니다 (링크의 도둑이 직접 또는 컴퓨터 지원 알고리즘을 통해 비밀번호를 우회하여). 암호는 유효성 검사 전에 다듬어야합니다. 사용자는 바보입니다. 법입니다. 이에 대한 답변은 보안 조치를 줄이는 것이 아니라 사용자가 올바른 절차를 이해하도록 돕기위한 사전 조치를 취하는 것입니다.
Dalin Seivewright

7
-1. 이것은 대부분의 사이트에서 사용하는 정상적인 방법입니다. 사이트에서 "비밀번호를 잊어 버렸습니다"를 발행하고 일반 텍스트로 비밀번호가 포함 된 이메일을 받으면 계정을 해지합니다.
매트 그란데
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.