문자를 허용하지 않고 암호 길이를 제한하는 유효한 이유가 있습니까?


39

암호가 허용되는 길이를 제한하거나 특정 문자를 허용하지 않는 사이트가 많이 있습니다. 비밀번호의 검색 공간을 넓히고 길게하고 싶기 때문에 제한적입니다. 또한 해싱이 아닐 수도 있다는 불편한 느낌을줍니다.

이 있습니까 좋은 하나가 상위 길이를 설정하거나 암호 문자를 제외한 이유는?


26
확실한! 사람들의 암호를 무차별 적으로 추측하는 것이 더 쉽습니다! : P
FrustratedWithFormsDesigner

4
유효한 "기술적"이유 또는 유효한 "비즈니스"이유를 말하고 있습니까?
Martin York

1
@ 마틴 : 나는 기술적 인 생각을하고 있었지만 어느 쪽이든 생각합니다.
chris

11
@JYelton 왜 원래 비밀번호 길이가 중요합니까? 해시는 항상 같은 크기입니다. 분명히 당신이 그것들을 평문에 저장하지 않기를 바랍니다 ...
Pewpewarrows

답변:


27

아니

좋은 이유 가 없습니다 .

편집 : 나는 부정적인 이유를 증명할 수 없기 때문에 좋은 이유가 없다는 것을 증명할 수 없습니다. 나는 이것에 대한 정당한 이유를 생각할 수 없다-다른 사람들이 지적했듯이 해시는 입력의 크기에 관계없이 같은 크기가 될 것입니다 (질문 컨텍스트에서 유효한 문자를 제거하면 상태 공간이 줄어 듭니다). 그 대답은 분명해 보인다 . 정당한 이유 가 없다 . 좋은 것처럼 들리거나 좋은 것처럼 보이는 많은 이유가있을 수 있지만 그렇지 않습니다. 만약 그렇다면, 누군가 이미 여기에 게시했거나 여기에 없으면 security.stackexchange.com에 확실히 게시했을 것입니다.이 답변은 그렇게 많이지지되지 않았을 것입니다.


3
동의하지만 Kissaki가 인코딩에 대한 의견은 유효합니다. 일부 스택 / 프로그래머는 인코딩을 올바르게 얻을 수없는 것 같습니다 .ASCII로 제한하는 것은 저렴한 해킹이기 때문입니다.
edA-qa mort-ora-y

10
최소한 정교하게 만들려고 할 수 있습니까? 사실에 대해이 사실을 모르거나 일반적인 / 기존의 이유가 유효하지 않다고 믿을만한 이유가 있습니다. 의심의 혜택을보고 후자를 가정하면 이러한 이유가 유효하지 않은지 설명해야 합니다.
Aaronaught

8
-1-암호를 지정된 문자 세트로 제한해야하는 몇 가지 이유가 있습니다. 마찬가지로 터치 톤 전화 비밀번호와 키보드를 통해 입력 한 비밀번호도 지원해야한다는 점도 명심해야합니다.
rjzii 2016 년

9
-1. 정당성, 의견 없음. 담요 명세서를 작성하려면 백업하십시오.
Michael K

4
이것은 현재 메타 토론 사이트에서 논의되고 있습니다 . 한 단어로 된 답변이 왜 인기가 있고 이와 같은 답변의 질을 향상시키기 위해 우리가 할 수있는 일을 이해하는 것이 도움이 될 것입니다.

25

길이를 제한하는 것은 해싱의 실행 시간을 제한하고 대역폭을 제한하는 척도 일 수 있습니다 (둘 다 실제로는 한계가 있습니다). 그 외에는 특히 보안 관점에서 타당한 이유가 없습니다.

“사람들은 더 긴 암호를 더 쉽게 잊어 버릴 것입니다.”라고 말할 수 있습니다. 그러나 이것은 정말 어리석은 말이며 전혀 이해가되지 않습니다.

문자의 경우 향후 데이터 전송 및 / 또는 마이그레이션과 관련된 잠재적 인 인코딩 문제를 알고있는 한 (예 : 2 년 후에 ASCII에서 UTF-8로 전환) 더 많은 문자를 사용하면 암호 강도에만 도움이 될 수 있습니다.


4
최신 프로토콜 길이의 오버 헤드를 감안할 때 특정 공격 / 사소한 소리를 방지하기위한 1K와 같은 상한 이외의 다른 이유는 전혀 없습니다.
edA-qa mort-ora-y

3
해시 실행 시간을 제한하는 것은 일반적으로 좋지 않습니다. 해시를 계산하는 데 시간이 오래 걸릴수록 무차별 대입 시간이 길어집니다.
tdammers 2016 년

맞지만 항상 상충 관계입니다. 항상 가장 오래 걸리는 최고의 해시를 계산하고 싶지는 않습니다. 따라서 VPN 등에서 비대칭 핸드 셰이크 대 대칭 데이터 스트림
Kissaki

17

, 특수 문자에 대한 이유가 있습니다.

특수 문자를 허용하지 않는 것은 보안 관련이 아니라 유용성입니다. 우선 인코딩 문제로 인해 엉망이 될 수 있습니다. 둘째, 항상 동일한 인코딩을 사용한다고 보장하더라도 여전히 입력 장치에 문제가 있습니다. 동일한 키보드 레이아웃으로 전체 키보드 (대부분의 모바일 장치가 필요하지 않음)를 갖추어야합니다. 나중에 언어뿐만 아니라 OS마다 다르므로 Windows, Linux 및 OSX의 레이아웃은 약간 다를 수 있습니다. 따라서 다음과 같은 비밀번호를 허용하지 않는 좋은 이유가 √Ω≈ç∫∞§…¬å∑±있습니다.


3
사용자에게 암호를 제공 하지 않는 한 , 즉 사용자가 암호를 직접 입력 한 경우 이상한 수학 기호를 사용하기로 선택한 경우 실제로 비즈니스입니다. 이제는 인코딩 문제에 동의하지만 특정 문자를 임의로 방지하는 실제 정당한 이유보다 레이더 무능력 아래로 전달하는 것이 더 좋은 이유를 찾으십시오.
Newtopian 2016 년

2
@new : 그들의 사업이 아닙니다. 그들이 발로 스스로 쏴도 여전히 응용 프로그램의 문제로 인식하고 지원을 요청합니다.
vartec

7
@Newtopian : 사용자로서, 무지 ( 이메일 주소에 "+" 를 지정할 수없는 등)로 인해 회피되는 것을 싫어합니다 . 그러나 때로는 사용자에게 매달릴 로프를 많이주지 않는 것이 좋습니다. 나는 이것이 그런 경우라고 생각합니다. 특정 문자를 "임의로"방지하는 것이 아닙니다.
Zano

1
그리스인, 아랍인, 중국인 등이 모두 US-ASCII를 사용한다고 주장합니까?
l0b0

@ l0 : 아니요, 일부 레이아웃에는 없을 수있는 특수 문자가 아닌 일반적으로 일반적으로 사용되는 문자를 언어로 사용한다고 주장합니다.
vartec

13

Chase 고객이 암호가 대소 문자를 구분하지 않는다는 것을 발견 한 몇 년 전 보안 세계에서 약간의 논쟁이있었습니다. 그들의 웹 페이지는 30 년 전의 OS / 400 백엔드 시스템에 대한 프론트 엔드 인 것으로 밝혀졌으며, 이는 기술적 인 한계를 가지고 있었기 때문입니다. 이 문제를 해결하려면 분명히 수백만 달러가들 것입니다.

요점은 특정 길이의 암호를 허용하지 않는 레거시 이유가 비쌀 수 있다는 것입니다.
(나는이 변명을 용납하지 않습니다 ...)


1
이는 아니라 한, 좋은 기본 시스템은 처음부터 이러한 한계를 개최 경우에만 어떤 식 으로든 제한 암호에 대한 이유는 ....
Newtopian 2016 년

8

최대 암호 제한을 적용하는 대부분의 은행, IT 부서 등은 기술적 이유로 그렇게하지 않습니다. 암호 해싱의 작동 방식과 복잡한 암호 저장 방법을 완벽하게 알고 있습니다. 암호를 잊어 버린 사람들에 대한 지원 요청 횟수가 줄어들 기 때문에 이러한 제한 사항이 적용됩니다. 이것이 그런 종류의 제한을 부과하는 좋은 이유입니까? 결코 아니다. 그럼에도 불구하고 이것이 주된 이유입니다.


1
지원 요청을 줄이는 것은 valid Business reason(개인적으로 상관 관계가 있다고 생각하지 않습니다)
Martin York

2
암호를 재설정하거나 기억하기 쉬운 복잡한 암호를 선택하는 방법을 사용자에게 교육하는 다른 방법이 있습니다. 직장에서 내 마지막 몇 암호는 25자를 초과했으며 기억하는 데 아무런 문제가 없었습니다. 또한 아마도 긴 암호를 기억하는 데 어려움을 겪는 사람들은 더 짧은 암호를 선택하지만 실제로 얼마나 자주 사실인지는 알 수 없습니다. 지원 요청을 줄이는 것은 표면 상 유효한 사업상의 이유처럼 보이지만 여전히 암호 길이를 제한하는 가장 큰 이유입니다.
Greg Jackson

1
내 (그리고 많은 사람들)는 거의 불가능한 결과를 보지 않고 25자를 정확하게 입력 (기억하는 것이 아님)하게 될 것이라고 생각합니다. 이것을 입력하는 동안 지금까지 5 오타를 수정했습니다!
Gerry

글쎄, 기억하는 것은 입력하는 것과 다릅니다. 암호를 선택하는 방법을 알고 있다면 긴 암호를 기억하는 것은 매우 쉽습니다. 이야기 나 연극,시 또는 노래 가사에서 선을 선택하기 만하면됩니다. 하나 또는 두 가지 항목 (의도적 인 맞춤법 오류, 한 단어를 다른 단어로 바꾸거나 같은 단어를 바꾸는 등)을 변경하는 한, 그것은 매우 쉽고 안전합니다. 사실, 타이핑하는 것이 더 어려울 수 있지만 은행이 8/10/12 자 미만을 입력하도록 강요 할 이유는 없습니다.
Greg Jackson

휴대 기기에서 25 글자 암호를 입력 해보십시오
Lie Ryan

7

모든 입력 장치 (하드웨어 방식)에 종종 전체 키보드 또는 그와 유사한 문자가 모두있는 것은 아닙니다. 비밀번호 관리자를 사용하지 않는 경우 비밀번호를 입력하는 데 어려움을 겪을 수 있습니다. 그리고 유니 코드는 여전히 표준과는 거리가 멀다.


1
일반적으로 비밀번호를 입력하는 사람들은 동일한 하드웨어 (또는 하드웨어 클래스)를 사용하여 비밀번호를 작성하고 인증합니다. 문자 세트 또는 길이를 제한하는 데 이것이 어떻게 인수인지 알 수 없습니다. 유니 코드의 경우 서버 측 (인증 부분)을 구축 할 때 크기 나 문자 집합을 제한하는 이유는 무엇입니까? 암호를 입력해야하는 시스템은 시스템에서이 암호를 입력하는 방법을 제어 할 수 있어야하므로 클라이언트에 유니 코드가 필요한 경우 암호를 입력하십시오!
Newtopian 2016 년

@Newtopian 당신은 레거시 시스템이나 컨트롤 외부의 시스템과 인터페이스 할 필요가 없다고 가정합니다.
grahamparks

1
그들은 요청 좋은의 이것은 아니다, 이유가 좋은 이유

2
@Jarrod-비밀번호를 입력 할 수없는 것은 좋은 이유가 아닙니다! 어쨌든, 나는 당신이 더 나은 것을 (또는 전혀) 생각해내는 것을 보지 못했습니다.
Rook

3
당신은 당신이 그것을하지 않는 장치에서 그들을 선택할 수없는 알고 있다면 당신이 그 문자를 사용해서는 안 @Rook 좋은의 모든 사람을 제한하는 이유는 그것이 만드는 좋은의 이유를 위해 개인적으로 그들을 사용하지.

7

더 긴 길이를 설정하거나 비밀번호에서 문자를 제외해야 할 이유가 있습니까?

나는 추측을 할 것이며 이러한 제한 중 일부는 웹 사이트 ( & < > #)의 문자 필터링으로 인해 해커를 막을 것이라고 말합니다 . 다른 사람들은 뾰족한 머리 보스의위원회에서 나오는 핵심 아이디어입니다.

나는 정말 바보 같은 (내 의견으로는) "보안"결정에 직면했다. 예를 들어, 한 대규모 투자 회사가 저의 IRA 계좌와 연금을 처리합니다. 그러기 위해서는 모든 전화에 비밀번호를 입력하라고 요구 연금과의 접촉을 (그렇지 않으면 그들에 도달 할 수 없습니다). 중개 / IRA 계정은 문자 (대문자 및 소문자)와 구두점을 사용합니다. 전화 번호 패드에는 이러한 문자가 나타나지 않습니다. 전화를 통해 비밀번호로 로그인 할 수없는 경우, 중개 계정의 비밀번호를 전화를 통해 입력 할 수있는 비밀번호로 재설정 할 수 있습니다.

내 급여 시스템 (내가 일하는 컨설팅 회사의 경우)에는 숫자가 필요하며 숫자 만 필요합니다. 이렇게하면 사용자가 전화를 걸거나 (이 작업을 수행 한 적이 없음) 웹 인터페이스를 사용하더라도 (동일한 사용) 동일한 데이터베이스를 사용할 수 있습니다 .

즉, 사무실에서 비밀번호를 변경할 때입니다. 그들은 시스템에 허용되는 암호를 찾는 데 약 반나절이 걸릴 것으로 예상되는 미친 제한이 있습니다 : 적어도 2 개의 대문자, 적어도 2 개의 소문자, 적어도 2 자리 (+/- 1이 될 수 없음) 이전 비밀번호의 경우), 적어도 2 개의 영숫자가 아닌 숫자는 마지막 24 개의 비밀번호와 일치 할 수 없으며 영어 (영문 3 자 이상의 단어) 인 문자열 (앞뒤로)을 포함 할 수 없습니다 ( 또한 내가 알 수없는 몇 가지 다른 언어). 내가 생각하는 최소 길이는 10-11 문자 같다.


그렇다. 나는 목록에없는 인물들을 보았다.
chris

5
간단한 공격 : 아무도 암호를 기억할 수 없으므로 키보드 아래에서 스티커 메모를 찾으십시오.
JeffO

@ Jeff, 맞습니다. 노트북을 집에두면 암호가 너무 복잡하여 로그인 할 수 없습니다. 급여 시스템에서는 사용자 이름과 암호를 책갈피의 일부로 사용합니다.
Tangurena 2016 년

"영어로 된 단어 (3 자 이상) 인 문자열 (앞뒤로)을 포함 할 수 없습니다." 암호 전체 단어 가 포함되어있는 경우 사전 공격은 효과적이지 않지만 전체 암호 전체 단어만으로 구성되는 경우 에는 효과적이지 않습니다 . 기록하지 않고 사용하기에 가장 안전한 암호는 책,시, 노래 가사 등에서 오는 암호입니다. 몇 글자를 숫자로 바꾸고, 철자를 잘못 입력하고, 예기치 않게 대문자를 입력하면 아무도 암호를 해독하지 않습니다.
Greg Jackson

1
문자 필터링은 백그라운드에서 테스트되지 않은 가비지 코드의 확실한 표시입니다. 개발자는 문자열을 피하는 법을 배워야합니다.
l0b0

5

문자를 제한하는 한 가지 이유는 암호가 입력되는 방식 때문입니다.

예를 들어, 인터넷 뱅킹 웹 사이트가있는 여러 은행은 비밀번호로 특정 문자를 요청하고 드롭 다운 상자를 통해 적절한 문자를 선택합니다.

키로거가 키 누르기를 감지하지 못하여 암호의 [문자]를 알 수 없도록이를 수행합니다. 나는 그러한 조치들이 우회 될 수있는 다른 많은 방법들이 있다는 것을 알고 있지만, 예를 들어 스크린 캡처; 여전히 키로거에 효과적입니다.

모든 문자를 허용해야하는 경우 드롭 다운 상자의 길이가 번거롭고 비슷한 문자 사이의 혼동을 허용합니다.


1
어쨌든 (기술적 인) 사람들이 그 편지를 썼을까요?
Gerry

@Gerry-절대 표준이 아닌 브라우저 별 동작이며 작동 가능하도록 사용자 지식에 의존합니다.
Jon Hopkins

우리 은행은 비슷한 이유로 키보드의 팝업 애플릿을 사용했습니다. 그러나 사용하기가 너무 어려워서 접근하기 어려운 것에 대해 많은 비판을 받았습니다 (스크린 리더, 대체 입력 등에서는 작동하지 않았습니다)
jqa

1
@Jon-기술 담당자에게 말했지만 표준 Windows 동작이므로 첫 번째 문자 일치를 구현하지 않는 Windows 브라우저는 알지 못합니다. Mac 및 * nix에서는 말할 수 없습니다.
Gerry

1
@Gerry 내 안드로이드 폰의 브라우저는 이것을 허용하지 않습니다. 많은 모바일 장치에서도 마찬가지입니다.
RoundTower

2

tab과 같은 특수 문자를 허용하지 않는 것이 유효합니다. 텍스트 모드에서 탭 문자로 비밀번호를 로그온하거나 변경할 수 있지만 GUI 또는 웹 환경에서는 비밀번호를 사용할 수 없습니다. 백 슬래시 문자는 또한 크로스 플랫폼 문제를 나타냅니다.

btw 긴 암호는 암호가 아니라 암호입니다. 일반 사용자는 2Z8d! % g # x를 기억할 수 없지만 '내 애완 동물의 이름은 개를 불렀다'는 것을 기억할 수 있습니다. 긴 텍스트는 무차별 대입으로 깨지기 어렵고 화면에 첨부 된 메모에 기록 될 가능성이 훨씬 낮습니다.



0

사람들이 타이핑 할 때 "오타"라고하는 실수를합니다. 일반적으로 사람들은 실수를보고 수정합니다. 비밀번호 입력의 경우 일반적으로 입력 한 내용을 볼 수 없으므로 오타를 수정할 수 없습니다. 비밀번호를 모르고 실수를 한 경우 비밀번호를 제출하면 '비밀번호가 유효하지 않습니다'로 다시 표시됩니다. 그런 다음 다시 시도하십시오. 그런 다음 다시 시도하십시오.

당신은 그것을 "약간의 작은 오타 3 개라고 생각하면 무차별 대입 공격과 구별 할 수 없다"고 생각할 수 있습니다. 시스템은 무차별 대입 공격을 어떻게 방어합니까? 명백한 " 너무 많은 시도, 저리가, 당신은 그것을 올바르게 얻는 경우에도 로그인 할 수 없습니다 "응답? 지연 시간이 너무 길면 비밀번호 입력 지연이 기하 급수적으로 증가하여 브라우저 시간이 초과되어 다시 로그인 할 수 없습니까? 접근 방식은 다양하지만 잘 설계된 시스템에는 항상 결과가 있습니다.

"3 개의 작은 오타가 있다고 생각하면 일종의 서비스 거부가 발생합니다."

암호 길이가 길어질수록 오타의 위험이 있으므로 권한있는 사람의 액세스를 거부 할 위험이 높아집니다. 약 20 자 이상의 문자는 자주 잘못 입력됩니다 (사용자가 현명하고 게으르고 암호를 어딘가에 저장하지 않으면 " 비밀번호 "라는 데스크탑의 멋진 일반 텍스트 파일처럼 오타를 걱정하지 않고 "복사하여 붙여 넣기"할 수 있습니다 .txt ").

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.