it-swarm-korea.com

웹 애플리케이션에서 사용자 액세스 및 비밀번호 처리를위한 사용성 및 보안?

나는 타협하고 싶지 않은 개인 데이터를 처리 할 일반 사용자를 겨냥한 웹 사이트를 만드는 것을보고 있습니다. 사이트를 안전하면서도 사용하려면 어떻게해야합니까?

대부분의 사이트는 사용자 식별자 (이메일 주소가 가장 적합 함)와 비밀번호를 사용하는 것으로 보입니다.

일부 은행 사이트는 표준 식별자에서 PIN 또는 보안 질문을 받거나 비밀번호를 대체하여)이를 넘어서고 있습니다.이 점에서 성공적인 것으로 판명 된 대안에 대해 듣고 싶습니다. .

또한 사용자가 자신의 색 구성표를 선택하거나 사이트가 피싱 계정 세부 정보를 찾기 어려워지는 것으로 확인되면 사이트에 대한 모양과 느낌을 허용 할 수 있다고 들었습니다. 누구든지 이것을 사용하는 사이트와 그것이 얼마나 잘 작동하는지 알고 있습니까?

대부분의 시스템에서 실제 약점은 암호 재설정 기능인 것 같습니다. 사용자는 비밀번호를 항상 잊어 버리기 때문에 여기에 도움이 될만한 것이 필요하지만 도움이되는 것과 끔찍하게 불안한 것 사이의 균형을 맞추는 것은 정말 어려운 것 같습니다. 다시 한 번 사용자 보안 질문 접근 방식이 널리 사용되는 것처럼 보이지만이 두 가지 측면에서 사용자가 설정 한 질문에 대한 답변을 제공했거나 사용자에 대한 불변의 질문이 있습니다.

사용자가 제공 한 질문을 사용하면 아무리 힘들어도 매우 중요 함라고 말하려고해도 "1 + 1이란 무엇인가"라는 질문을해서는 안됩니다.

불변의 질문으로-간단한 사실보다는 사물에 대한 사용자의 의견을 묻는다면 변경 될 가능성이 더 높습니다-실제로 찾기가 쉬운 물건 (부모 이름, 애완 동물)으로 변하는 경향이 있습니다. 공격 대상으로 사용자를 타겟팅하는 경우.

나는 안전하고 사용하기 쉬운 것 사이에 항상 타협이있을 것이라는 것을 알고 있지만, 현재 대부분의 사이트보다 더 잘 할 수 있어야합니다. 사용자 계정 보안에 대한 덜 전통적이지만 안정적인 접근 방식을 제안 할 수 있습니까? 이미지 그리드, 맞춤형 보안 문자 등에 대한 이야기를 들었습니다. 실제로 경험이 있습니까? 이것을 잘 관리하는 사이트가 있습니까? 그리고 어떻게/왜 작동하는지 보여 주십니까?

10
glenatron

좋은 질문.

짧은 버전

대부분의 사이트와 마찬가지로 사용자 이름/이메일/비밀번호를 넘어 여러 옵션이 있습니다. 궁극적 인 보안 문제를 해결할 수는 없지만 교육 할 수 있습니다. 보안 문자에 대한 대안이 있습니다. 보안과 사용의 용이성은 끊임없는 건전한 토론입니다.

로그인 중 추가 보안 옵션

  • 야후! " sign in seal "개념을 사용합니다. 여기서 텍스트 나 이미지를 선택할 수 있으며 사용자 지정 내용은 쿠키에 저장되어 돌아올 때 로그인 페이지에 표시됩니다. 여기에서 피싱 공격을 방지하는 데 도움이됩니다. 피싱에 대한 기술적 세부 정보를 사용자에게 설명하고 "URL이 https://www.yahoo.com 으로 시작하는지 확인" _ "페이지에서 맞춤 텍스트 또는 이미지를 찾도록 사용자에게 지시합니다. 없는 경우 올바른 사이트에 있지 않으므로 로그인 자격 증명을 제공하지 마십시오.

  • World of Warcraft는 Blizzard Authenticator 를 사용합니다.이 제품은 주문하여 배송 할 수있는 기기 또는 iPhone/Android 앱입니다. 둘 다 매분마다 계정에 연결된 고유 코드를 생성합니다. 로그인시 Battle.net 등록 이메일 주소, 계정 비밀번호 및 해당 Blizzard 인증 자 코드를 제공해야합니다. 게임이지만 월드 오브 워크래프트는 자체 피싱 대륙이지만,이 방법은 피싱을 통해 해킹 된 계정 수를 줄이는 데 매우 효과적입니다 (다른 사람의 이메일 계정에 해킹하여 월드 오브 워크래프트 비밀번호를 검색하거나 변경하더라도) 실제 동기화 된 인증 자 코드가 없으면 로그인 할 수 없습니다. OTP가 이론적으로 해킹 가능하다는 점은 주목할 가치가 있지만 그렇게하려면 더 많은 작업이 필요합니다.

  • myOpenID 는 Yahoo! "개인 아이콘"이라고합니다. OpenID에는 추가적인 보안 관련 사항이 있기 때문에 (예 : OpenID에 액세스하면 해당 OpenID로 사용하는 모든 사이트에 액세스 할 수 있음) 보호 수준을 높이는 옵션은 많은 도움이됩니다. 그러나 대부분의 비 기술적 인 사용자는 OpenID 제공 업체의 OpenID 계정을 가지고 있다고 생각하지 않으므로 이것이 큰 문제는 아닙니다. 그럼에도 불구하고 JanRain은 여분의 마일을냅니다.

사용자가 명확한 보안 질문과 답변을 제공 할 때 수행 할 작업

이것은 해결할 수없는 문제이며 실제로는 귀하의 책임이 아닙니다. 집중해야 할 것은 사용자가주의를 기울여야하는 것에 대해 교육함으로써 사용자의 올바른 행동을 장려하는 것입니다. 보유하고있는 사용자층의 유형에 따라 Yahoo! 블리자드는 매우 적극적이며 위에서 언급 한 것처럼보다 적극적인 보안 지원을 구현합니다.

당신이 할 수있는 것들 :

  • 영숫자 문자뿐만 아니라 고유 한 비밀번호를 사용하도록 사용자에게 상기시킵니다.
  • 존재하지 않는 단어로 비밀번호를 만들어야하며 금형에 맞는 기억에 남는 비밀번호를 만드는 방법을 설명하는 데 도움이됩니다.
  • 사용자가 보안 암호 재설정 질문을 작성하고 다른 사람들이 답을 알지 못하는 사소한 질문을하는 것이 중요하다는 점을 강조하는 흐름 동안 명확한 사본을 사용하십시오.
  • 사람들이 사용할 수있는 질문의 예를 제공하십시오 (do n't 요즘 Facebook을 통해 쉽게 찾을 수있는 "어머니의 처녀 이름"과 같은 예를 제공하십시오)
  • FAQ 계정을 보호하는 방법에 대한 팁을 제공하십시오. 웹 메일은 자주 사용되는 보안 취약점이므로 이메일 계정 보안에 대한 기본 팁과 피싱 시도를 감시하는 방법을 제공하십시오.

책임있는 웹 사이트 소유자가 되십시오. 나는 "소매치기를 조심하십시오"라는 문구가 표시된 역을 훈련시키는 것을 좋아합니다. 지갑을 분명하게 보지 않고 도난 당했을 때 불만을 제기하는 것은 개인의 책임입니다. 그러나 사람들에게 명심하도록 사람들을 상기시키는 것은 역 관리의 좋은 일입니다. 웹상의 문제점은 많은 사람들이 무엇을 찾아야하는지, 위협을 식별하는 방법을 모른다는 것입니다. 우리는 접촉하는 모든 사람들을 지속적으로 지속적으로 교육함으로써 도움을 줄 수 있습니다.

보안 문자 및 대안

보안 문자는 두 가지 이유로 존재합니다. 하나는 사이트에서 DDOS를 얻지 못하도록하고 다른 하나는 해커가 사전 공격을 실행하지 못하도록합니다. 그러나 단점은 대부분의 경우 매우 비우호적이며 " Do n't make me think "이 아니라는 점입니다.

사전 공격을 방지하거나 적어도 설득하려면 로그인 화면에 타이머를 추가하여 모든 시도 (특정 번호 이후)마다 증가하는 것을 고려하십시오. 대부분의 사용자는 5 번의 시도 후에 들어올 것이며 그 이상은 모호한 행동입니다. 일반 사용자가 아닌 가해자에게 문제를 일으켜 사전 공격을 성가 시게하십시오.

보안과 사용 편의성

Jakob Nielsen은 작년에 비밀번호 필드가 유용성 문제를 나타내며 입력 마스킹을 중지해야 함 이라고 밝혔습니다. 그는 입력을 마스킹하면 누군가가 당신 바로 뒤에 서있을 때 보안 누출을 막을 수 있다고 주장했으며, 99 %의 시간이 아니므로 Edge 케이스에만 사용하기가 더 어려운 이유는 무엇입니까? 유용성 전문가는 그와 논쟁하기가 어렵습니다. 보안 전문가 Bruce Schneier도 그와 동의 함 했습니다!

따라서 보안과 사용 편의성은 실제로 해결할 수없는 논란의 여지가있는 문제입니다. 그리고 건전한 주장입니다. 만약 어떤 일이 어느 방향 으로든 너무 멀리 흔들렸다면 최종 사용자에게는 좋지 않습니다. UI 디자이너는 보안 전문가의 주장을 인식하고 사용자 경험을 디자인 할 때이를 고려하는 것이 중요합니다.

9
Rahul

실제로 대부분의 공급자가 로그인 API (일반적으로 Open Auth 기반)를 제공하므로 사용자 로그인/인증 문제를 처리 할 필요조차 없습니다. 사용자가 Facebook, Google, Yahoo, Twitter 등으로 로그인하게하십시오. Google, Microsoft, Yahoo 등 알. 로그인 자격 증명을 보호하고 암호 재설정을 처리하는 것보다 더 나은 작업을 수행합니다. 새로운 자격 증명 세트를 기억할 필요가없고 대부분의 경우 이미 메일에 로그인 한 경우 비밀번호를 다시 입력하지 않아도되므로 이는 사용자에게 가장 적합한 경우입니다. 완벽한 원 클릭 (타이핑 없음) 로그인입니다.

이 작업을 수행하는 데에는 두 가지 작은 문제가 있습니다. (1) 모든 사용자를 이해하지 못하게하려면 비교적 많은 수의 로그인 공급자를 지원해야합니다. (2) 공급자가 자신의 API를 변경하거나 경고없이 유지 관리를 위해 사용자를 효과적으로 차단하기 때문에 사용자가 사이트에서 자신의 계정에 여러 로그인 공급자를 추가 할 수 있도록 계정 연결을 지원하고 권장해야합니다. 귀하의 사이트.

사용자는 전자 메일 주소, 이름, 전화 번호 등과 같은 정보를 입력 할 필요가 없도록 일반적으로 공급자로부터 직접 사용자 매개 변수를 검색 할 수 있습니다.

1
Jonathan

솔직히 말해서, 프로그래머로서, 나는 엄격한 프로그래밍 관점에서 답변이 잘못 입력 될 수 있기 때문에 개인적인 질문/답변 보안 단계를 좋아하지 않습니다. 그들의 대답이 이름이라면 어떻게됩니까? 그러나 전체 이름이나 짧은 이름 또는 주어진 이름을 넣었는지 기억하지 못하거나 아포스트로피를 놓치고 깨닫지 못하는 경우.

반면에 (각종 종류의 보안 문자) 흑백 응답이 필요합니다. 유효하거나 유효하지 않습니다. 즉, 보안 문자의 가독성은 때때로 사용자에게 문제를 제공합니다. 대부분은 읽을 수 있지만 일부는 깨지기 쉽습니다.

암호를 재설정 할 때 전자 메일 확인이 필요한 방법은 항상 안전하다고 생각합니다 .second 시스템 (내 메일 계정)에 대한 로그인 세부 정보를 알아야합니다. 링크를 back 사이트로 연결하여 새 비밀번호를 요청하십시오.

0
Nick Bedford