문제

서명할 때는 최대한의 새로운 계정을 웹 앱은 자주 요청에 대한 답변을 보안 문제',즉강아지의 이름,등등.

내가 가고 싶을 통해 우리의 데이터베이스 및 보스턴스는 사용자가 단 으깬 키보드 제공하는 대신 정당한 대답-이 고의 표시 학대/사기 계정이다.

"어머니의 이름?" lakdsjflkaj

어떤 제안을 어떻게 가야 하기에 관하여 이?

참고:나는 하지만 정규 표현식을 사용하여 이러한'보안 질문이 있'

는'응답'이 될 수 있습니다:

  1. 에서 선택 db 를 사용하여 몇 가지 기본적인 sql 정규표현식

  2. 분석이 필요한만큼 사용하는 파이썬의 정규표현식

  3. 비교/정리/을 얻었으로 필요

이것은 기술적 질문,하지 철학 중 하나 ;-)

감사합니다!

도움이 되었습니까?

해결책

언어 탐지와 유사하게 N- 그램 분포를 분석하는 것이 좋습니다.

이 코드 트리 그램을 사용한 언어 탐지의 예입니다. 내 생각에 키보드 스매싱 트리 그램은 매우 독특하고 정상적인 언어로 나타나지 않습니다.

다른 팁

내가 이것을 하지 않을-내 생각에 이러한 질문을안을 약화시키므로 사용자가 제공하는 또 다른 세미 비밀번호에 대한 답변으로 당신을 위해-그것은 다음과 같 으깬.만,그것은이는 으깬,그러나 그것은 정확하게 무슨 이야기를 준비했습니다.

Btw.나는 확실하지 않다는 사실에 대해,쿼리할 수 있는 답변입니다.이후 그들은 극복하기 위해 귀하의 비밀번호 보호들을 처리해야한 암호와 같은=로 저장되 해시!

편집:
읽을 때 이 문서 나는 즉시 기억되 이 질문;-)

보안 문제의 전체 접근 방식은 상당히 결함이 있습니다.

나는 항상 발견했다 사람들은 보안 응답을 사용하는 암호보다 약한 상태를 약화시킵니다..
보안 질문은 보안 체인에서 하나의 링크 일뿐입니다 - 약한 링크!

IMO, 더 나은 방법은 사용자가 등록 된 이메일 ID로 전송 된 새 패스 워드를 요청하도록 허용. 이것은 두 가지 장점이 있습니다.

  1. Brute-Force 시도는 우선 전자 메일 서비스를 먼저 찾아서 파악해야합니다 (그리고 그곳에서 도움을주지 않을 것입니다. 등록 이메일 ID를 매우 보호합니다)
    • 서비스 사용자는 누군가가 무차별 대입을 시도 할 때 항상 표시를 얻습니다 (비밀번호를 재생하려고 시도하는 메일을받습니다).

비밀 질문이 있어야하는 경우, 재생 된 (사용자의 암호를 보내지 말고, 임시, 바람직한 일회성 강제) 비밀번호를 등록한 이메일 ID에 재생하는 것을 트리거하십시오. 조금도.

또 다른 속임수는 비밀 질문 자체를 등록 된 이메일 ID를 만드십시오.
그들이 올바르게 넣으면, 당신은 a를 보냅니다 재생성 해당 이메일 ID에 대한 임시 비밀번호.

정규식 으로이 작업을 수행 할 방법이 없습니다. 사실, 나는 이것을 전혀 할 수있는 합리적인 방법을 생각할 수 없다. 나는 종종 난독 화 된 답변으로 보안 질문에 종종 대답합니다. 결국, 어머니의 처녀 이름은 가장 어렵지 않습니다.

영어로 문자 쌍 확률 목록을 찾을 수 있다면 목록에없는 최소한의 쌍과 쌍을 사용하여 "실제"영어 단어가 아닌 단어에 대한 대략적인 확률을 구성 할 수 있습니다. 불행히도, 이름이나 다른 "비 단어"가 있다면 영어 단어가되도록 강요 할 수 없습니다.

어쩌면 당신은 풍부한 자음을 확인할 수 있습니다. 예를 들어, 예에서 lakdsjflkaj 2 개의 모음 (a)과 9 개의 자음이 있습니다. 일반적으로 무작위로 누르는 키가 자음을 치는 것보다 훨씬 낮을 때 모음을 때릴 확률은 훨씬 낮습니다.

Dejunk 영감을 얻을 수있는 루비 도서관입니다. 다른 답변에서 몇 가지 제안을 구현합니다. 입력을 입력하면 입력을 키보드 매싱으로 간주합니다.

  • 실제 텍스트로 표시되지는 않지만 키보드에 가까운 문자 Bigram이 포함되어 있습니다. (도서관에는 그러한 Bigrams 목록이 포함되어 있습니다.)
  • 예상치 못한 구두점으로 시작합니다.
  • 너무 짧은 단어가 너무 많습니다.
  • 모음이 없습니다.
  • 불합리한 숫자를 반복하는 캐릭터가 있습니다.

처음에는 대문자를 확인할 수 있습니다 .... 그것은 당신에게 확실히 잘못된 긍정적 인 것을 얻을 것입니다.

빠른 Google이 저에게주었습니다 이것, 해당 목록의 이름과 비교할 수 있습니다.

분명히 당신이 언급 한 보안 질문에만 효과가 있습니다.

당신은 또한 이것을 보았습니까 :

트위터 공격의 해부학

다음에 보안 질문을 구현할 때 열심히 생각할 것입니다.

당신의 질문이 실제 인간의 이름과 관련이 있다면, 이것은 불가능합니다. 로마 문자로 입력 한 아시아 이름을 고려하십시오. 그들은 당신이 나오는 필터를 잘 여행 할 수 있지만 여전히 완벽하게 합법적입니다.

음성으로 이해가되지 않는 패턴을 찾을 수 있습니다. 와 같은:

'Q'는 'u'가 뒤 따릅니다.

ASDF

QWER

ZXCV

asdlasd

기본적으로 자신의 키보드를 으깨고 얻는 것을보고 필터에 연결하십시오. 또한 다양한 문법 규칙을 연결하십시오. 그러나, 당신이 다루고있는 이름이기 때문에, 당신은 항상 거짓 긍정적 인 것을 일으킬 이상한 이름으로 '그 남자'를 얻을 것입니다.

정규 표현 대신 알려진 좋은 가치 목록과 비교해 보는 것이 어떻습니까? 예를 들어, 어머니의 처녀 이름을 인구 조사 데이터와 비교하거나 애완 동물 이름을 온라인에서 찾을 수있는 애완 동물 이름 목록과 비교하십시오. 훨씬 간단한 버전의 경우, 입력 한 내용을 Google 검색하기 만하면됩니다. 합법적 인 이름은 많은 결과를 가져야하는 반면 키보드 매싱은 거의 발생하지 않아야합니다.

다른 방법과 마찬가지로 여전히 잘못된 긍정적 인 것을 처리해야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top