2010-07-03 5 views
7

비밀번호에 허용되거나 허용되지 않아야하는 문자에 특별한 것이 있습니까?암호에 문자를 허용하지 않습니까?

나는 암호 해독/염장에 암호를 저장하고 PDO를 사용하여 주사를 방지합니다. 내가 뭘하고 있는거야? 최근에 나는 많은 문자를 허용하지 않는 시스템을 보았고, 그것들 모두를 기억하지 못했다. 그러나 하나는 앰퍼샌드 &이었다. 그들이 안티 데이터베이스 주입 이유 때문에 그것을하고 있었습니까, 아니면 내가 놓친 다른 것이 있습니까? 암호 문자를 특정 문자 집합으로 제한해야합니까, 아니면 필요가 없도록해야합니까?

+2

자리 표시자를 사용하는 경우 문제가되는 문자는 기억이 안나지만 전체 레인저와 다른 언어는 모르지만 잘못되었을 수도 있습니다.하지만 UTF-8을 사용하고 자리 표시자를 사용해야하는 경우 무엇이든 받아들이기에 충분합니다. – Prix

답변

9

암호에 어떤 문자도 허용하지 않는 기술적 인 이유가 없습니다. 당신이 설명하는 경우, 영숫자 문자 만 사용자 측에서 문제를 피할 수 있습니다 (다른 나라의 키보드에서는 사용할 수없는 문자 입력).

많은 공급 업체와 사이트는 사용자에게 최소 번호와 매우 가벼운 비밀번호를 선택하도록 강요합니다. 즉, 무단 입력을 막기 위해 특수 문자가 필요합니다. dictionary attacks.

나는 사람이 복잡한 암호를 선택하는 것이 바람직하다고 생각하지 않습니다. 사람들은 현명한 선택입니다. 기억할 수없는 암호는 어딘가에서 적어 놓을 것이고 실제 생활에서 훨씬 더 큰 보안 위험을 초래할 수 있습니다.

로그인 시스템에서 간단한 속도 제한 (예 : 로그인 시도가 3 번 실패한 후 15 분 동안 액세스를 거부하는 경우)은 무차별 대폭 강화 된 위협을 훨씬 더 우아하게 제거합니다.

100 % 동의 할 필요는 없지만 Microsoft Research의 주제에 대한 흥미로운 주제가 매우 흥미 롭습니다. 추상에서 So Long, And No Thanks for the Externalities: The Rational Rejection of Security Advice by Users

: 종종 사용자가 희망 게으른 및 보안 문제에 무 동기 것을 제안

. 그들은 약한 비밀번호 을 선택하고 보안 경고를 무시하며 인증서 오류에 대해서는 을 알지 못합니다. 우리는 경제적 인 관점에서 사용자가받는 보안 조언 중 을 거부하는 것이 완전히 합리적이라고 주장한다. 이 조언은 에게 공격의 직접 비용으로부터 그들을 보호하지만, 노력의 형태로 훨씬 더 큰 간접 비용으로 부담을 덜어 준다.

+3

강요하지 않기위한 +1. =) –

+5

+1 제한 없음. 암호를 제한 할 필요가 있다고 느끼는 사이트를 불신합니다. 왜 암호를 제한 할 필요성을 느끼고 왜 저장 하는지를 궁금합니다. – Mike

+4

복잡한 암호를 적어도 약하거나 "쉽게 추측 할 수있는"암호를 적어 두지 않을 때의 보안 위험은 없습니다. 대부분의 공격은 원격으로 이루어집니다. 사람들이 귀하의 암호를 적어 둔 책상에 액세스 할 수 있다면, 로그인 상태를 유지하는 쿠키를 사용하여 컴퓨터에 실제로 접근 할 가능성이 있습니다. 이는 귀하가 하드 디스크를 암호화하지 않는 한, 그걸하는 게크. 잠금 시스템이 좋은 생각이라고 생각하지 않습니다. 사용자에 대한 DoS 처리는 너무 쉽습니다. 내가해야 할 일은 너를 잠그기 위해 너의 계좌에서 몇 번 실패한 시도를하는 것이다. –

2

왜 암호의 문자를 제한 하시겠습니까? 어쨌든 일종의 해싱을해야합니다. 내 암호에는 키보드에 포함되지 않은 기호를 포함하여 특수 기호가 포함되는 경우가 많습니다.

제한을 원하면 더 복잡해야하며 보다 작아야합니다.

+2

"키보드에 포함되지 않은 기호를 포함한 특수 기호"는 무엇입니까? 대부분의 키보드에서 –

+1

문자는 나타나지 않습니다 : øøå –

+1

@ Alix 악셀 : chr (c)> 127 인 임의의 유니 코드 문자 또는 사물. 비밀번호가 길어서 무작위로 생성됩니다. 그들은 내 컴퓨터 (KeePassX 구체적으로)에서 암호화 된 데이터베이스에 저장됩니다. –

2

암호에서 허용되지 않거나 제거되는 유일한 것은 공백이며, 다른 것을 포기할 이유가 없습니다. 내가 암호를 입력하면

+3

음, 나는 당신이 제공하는 서비스의 대상 고객에 달려 있다고 말하고 싶습니다. 그들이 여행자라면, 나는 신중할 것이다. 로컬 Umlaut (내 케이스의 äöüß)를 키보드에서 사용할 수없는 나라에서 휴가 중이라고 가정 해보십시오. 대부분의 사람들은 Alt + xyz 코드를 알지 못합니다. 이 경우 잘못된 암호를 선택하는 것은 잘못이 아니지만 모든 사람이 실수로이를 막을 수 있습니다. –

+3

포르투갈에서는 모든 단어에 대해 움라우트를 사용하지는 않지만 모든 키보드에는 cúmë를 사용합니다. 그래도 사람들은 어리석은 사람이 아닙니다. Umlaut와 함께 암호를 선택하는 경우 암호를 입력하는 방법을 알아야합니다 (화면 키보드 또는 문자표를 사용하는 등). 암호를 영문자 숫자 대시로 제한하는 웹 사이트가 싫어서 더 넓고 국제화 된 문자 집합을 연구 할 수는 있지만 모든 사람이 받아 들일/기억할 수 있을지는 의문입니다. –

+2

포르투갈어 키보드 레이아웃에 대한 흥미로운 내용! 그럼에도 불구하고 다른 곳에서는 사용할 수없는 많은 움라우트가 있습니다. 필자는 독일 사용자가 'ß'가 포함 된 비밀번호를 선택하고 Mallorca의 인터넷 카페에서 이메일에 로그인 할 수 없음을 쉽게 알 수 있습니다. 대부분의 사용자는 문자지도를 얻는 방법을 모릅니다. 사이트에서 Logon에 키보드를 제공해야합니다 .... 길이를 제한하고 대문자를 허용하지 않는 것은 평범하지 않습니다. –

2

, 나는 일반적으로 내가 대신 P "퍼센트 &/K1 등으로 기억할 수있는 긴 문장을 쓰는 것을 좋아합니다.

을 이렇게 만들 당신은 사용자가 암호 이상 쓸 수 있는지 항상 더 기억에 남을 안전한 암호가 아닌 특수 문자로 짧은 암호를 입력해야 할 때마다 항상 좌절감을 느낍니다.

+3

당신은 이것을 믿지 않을 것이지만 우리나라의 주요 ISP 중 하나는 암호를 6 ~ 8 0-9a-z 문자로 제한합니다. 그들은 심지어 대문자를 허용하지 않는다, 나는 그들의 어리 석음에 의해 blaffed하게된다. –

0

표준 키보드에서는 입력 할 수없는 문자 만 허용하지 않습니다. 사용자가 26 개의 대문자, 소문자, 10 개의 숫자 및 20 개의 기호로 보안 암호를 선택할 수있는 이유는 없습니다.

공용 사이트에 로그인 시스템을 사용하는 경우 사용자가 보안 암호를 선택하도록 강요하는 대신 OpenID를 사용하는 것이 좋습니다. 그렇게하면 사용자는 사이트에 대해 기억하기 힘든 새로운 암호를 기억할 필요가 없습니다.

0

사용자 비밀번호를 혼동하지 마십시오.

암호 처리의 모든 단계에서 일관된 인코딩과 규칙을 사용하고 있는지 확인하십시오. 염분을 저장할 때 인코딩이 문제가되지 않아야합니다.

예를 들어 암호가 4 자리 (!!!)로 제한되고, 영문자 (az)로만 제한되며, 일부 학술 웹 사이트에서는 등록시 암호를 10 자로 자르고 그 다음에는 실패 할 때와 같은 어리석은 규칙이 있습니다. 긴 암호로 로그인하려고했습니다.

+0

나는 이미 받아 들인 대답으로 1 주일 된 질문에 어떻게 대답 했습니까? – asr

0

약간의 연구를하면서이 질문에 비틀 거리며 나는 기여해야한다고 생각했습니다.

사실, 암호는 이 아니어야합니다.은 모든 문자를 허용해야합니다. 이 문제는 표준 ASCII 테이블에 포함되지 않은 문자가있을 수 있습니다.

테이크는, 예를 들어, 문자 ü (움라우트와 소문자 U) : 확장 된 ASCII에서

  • 은, 그 문자를 0x81입니다.
  • ISO-8859-1 (서양 국가에서 매우 일반적 임)에서는 0xFC입니다. UTF-8에서 ü
  • 는 코드 포인트 U + 00FC 있고, 따라서 캐릭터는 비록 정규화되지 않을 수도 UTF-8 0xC3BC
  • 으로서 표현 될 수있다. 따라서 움라우트 문자 (단지 ¨)와 u으로 구성 될 수 있습니다. 결과는 또 다른 바이트 시퀀스입니다.

암호 해시 위의 모든 경우에서 로그인이 실패합니다.

유니 코드 문자를 허용하는 가능한 해결책은 전체 페이지에서 모든 곳에서 UTF-8을 사용하고 해시하기 전에 (예 : NFC 모드로) 암호를 정규화하는 것입니다.
그러나이 시점에서 표준 ASCII 테이블에 포함되지 않은 문자 (바이트 0x00-0x7F)를 허용하지 않는 것이 더 쉬울 수 있습니다 (제어 문자를 제거하는 것이 더 좋고 표현할 수없는 문자와 개행을하지 않는 문자가 더 좋음) 0x20-0x7E.

관련 문제