it-swarm-korea.com

비밀번호 강도 검사기는 얼마나 신뢰할 수 있습니까?

Microsoft에서 제공하는 도구를 테스트했습니다 here 암호 강도를 테스트하고 평가합니다. "오늘 밤에 점심을 먹을 예정입니다"와 같은 암호의 경우 도구는 "BEST"로 강도를 평가하고 "th1 $ .v4l"과 같은 암호의 경우 "Medium"으로 평가합니다.

암호 길이가 얼마나 중요한지 궁금합니다. 이 경우 첫 번째 암호는 도구에 따라 더 좋지만 실제로 더 낫습니까? 사전 단어를 기반으로하며 공백 외에도 숫자와 다른 문자의 조합이 없으며 균열하기가 매우 쉽습니다 (강제력을 고려하지 않음).

그 도구는 실제 강도가 아닌 길이보다 우선합니다.

74
iijj

"무차별 대입을 고려하지 않음"– 바로 이러한 도구가 측정하는 것입니다.
아마도 그들은 사회 공학을 시도하지 않거나 그것이 사용자의 첫 여자 친구의 생일인지를 발견하려고 시도하지 않습니다. 침입자는 그 사실을 알지만 이러한 도구는 알 수 없습니다.

그들이 측정하는 것은 단순히 무차별 도구가 그것을 해독하기가 어렵다는 것입니다. 생성 방법의 특성 인 암호의 엔트로피조차도 정확한 암호를 찾는 데 무차별적인 도구가 소요되는 시간의 추정치입니다.
분명히 엔트로피는 이것에 영향을 주지만, 문자 당 엔트로피가 아닌 total 엔트로피 일뿐입니다. 그렇습니다. 각 문자에 대해 가능한 많은 옵션을 갖는 것이 엔트로피에 추가되지만 길이는 문자 당 엔트로피를 문자별로 더 큰 힘으로 올리면 암호를 해독 할 수 없도록하는 데 더 중요한 역할을 할 수 있습니다 카운트. 이것은 훨씬 더 높은 총 엔트로피를 만듭니다. 이것이 중요한 것입니다.

따라서 귀하의 경우-예, 32 자, 알파 전용 암호는 8 자 문장 부호 암호보다 훨씬 강력합니다.


나는 여기에 약간의 수학을 시도하고 할 것입니다 : (잘못되면 나를 정정하십시오) :

표준 US 스타일 키보드를 가정하면 85 자의 인쇄 가능한 문자가 있습니다 (몇 개 더 긁을 수는 있지만 지금은 이것과 함께 사용할 수 있습니다) : 소문자 + 대문자 + 숫자 + 표준 문장 부호 + 공백.
이것은 문자 당 ~ 6.3 비트의 강도를 부여합니다. 8 자 길이에서 암호는 ~ 50.4 비트 강도를 제공합니다.
참고 매우 강력 함 ... 몇 가지 "특수한"문자를 추가로 사용하더라도 크게 업그레이드하지는 않습니다.

이제 32 자의 알파 전용 암호 문구는 ...
(소문자를 사용하지 않더라도) 소문자와 대문자 만 사용하고 공백 (U + 32)을 가정합니다. 숫자조차도 ...
이 문자는 ~ 5.8 비트 문자 당 54 개의 가능한 문자를 제공합니다. 32 자 길이에서 185 비트 이상의 강도입니다. 실질적으로 더 강합니다. 그리고 숫자가 없어도 "단순한"암호 ​​체계에서도 일반적으로 사용됩니다.


Bruce Schneier는 종종 기억에 남는 긴 암호로 전환하는 것이 짧고 무작위로 이상한 이상한 모양의 암호보다 훨씬 안전한 방법에 대해 이야기합니다.
이제 이유를 알 수 있습니다.

60
AviD

암호는 사전 단어를 사용하기 때문에 무차별 대입해야하는 것보다 해독하기가 더 쉽다는 것이 걱정됩니다.

tl; dr : 이것은 유효한 이론적 걱정이지만, 지금은 실제적인 관심사가 아닙니다.

"오늘 밤에 점심을 먹을 것입니다"는 영어에서 가장 일반적인 5000 개 중 하나의 단어를 사용하는 5 단어입니다. 순진하게, 그것을 추측하는 것은 5000 글자 알파벳으로 5 글자 암호를 추측하는 것과 동형이며, 이는 3x10 ^ 18 가능성입니다. 대문자와 소문자, 숫자 및 기호를 사용하는 10 자 암호와 거의 같습니다.

물론 똑똑한 충분한 크래킹 프로그램은 이것을 크게 줄일 수 있습니다. 이 문장은 표준 영어 산문이며, 엄격한 규칙에 따라 정보 엔트로피 비율문자 당 1 비트 입니다. 즉, 문구에 33 비트의 엔트로피가 있으므로 5 개의 인쇄 가능한 ASCII 문자)의 완전 임의 암호만큼 복잡합니다.

그렇게 복잡하지 않습니다.

그러나 이러한 복잡성 부족을 악용하려면 GPGPU 처리를 위해 마르코프 체인 모델링과 같은 것을 커널로 최적화 할 수있는 특수한 "영어 암호 구문 크래커"가 필요합니다. 내가 아는 한, 그 당시에는 아직 개발 중이 아닙니다. 따라서 해당 소프트웨어를 만들 수있는 리소스를 가진 사람이 암호를 원치 않는 한, 한동안은 안전해야합니다.

17
user502

엔트로피는 측정하기에 이상한 것입니다.

NIST 특별 발행물 800-63, 전자 인증 지침 암호 강도 추정을위한 지침은 포함하지 않습니다.

엔트로피는 사용자가 암호를 선택했는지 아니면 임의로 생성하는지에 따라 크게 다릅니다. 통계적으로 사용자가 선택한 암호의 첫 문자를 추측하는 것은 어렵지만 두 번째 문자를 추측하는 것이 더 쉽고 세 번째 문자는 아직 더 쉽습니다. NIST 지침은 표준 키보드에서 사용 가능한 94자를 사용할 때 첫 번째 문자에 4 비트 엔트로피를 제공하지만 다음 7 개 문자 각각에 대해 2 비트 만 제공합니다.

임의로 선택된 비밀번호는 패턴을 표시하지 않으므로 각 문자는 약 6.6 비트의 동일한 엔트로피 레벨을 갖습니다.

이것은 사용자가 선택한 8 자리 암호의 엔트로피는 18 비트이고 길이가 같은 임의의 암호는 약 52.7 비트입니다.

즉, 비밀번호의 처음 3자를 결정할 수 있다면

두려움

다음 문자가 s 일 확률은 *보다 훨씬 높습니다.

따라서 암호 문자는 any 문자 일 수 있지만 실제로는 그렇지 않습니다. 대부분의 사람들은 강한 패턴을 가진 단어를 사용하고 다음 문자의 가능한 집합을 암시 적으로 줄여서 엔트로피 (임의)가 낮은 암호를 생성합니다.

15
Jeff Atwood

"오늘 저녁에 점심을 먹으러 갈 것"이 사전에 취약하다는 것을 잘 모르겠습니다. 여기서 "th1 $ .v4l"은 문자 조인이 포함 된 두 단어로, 암호 크래커가 영원히 이후에 처리 한 문자 대체 문자입니다.

몇몇 비밀번호 테스터는 "this.val"비밀번호를 제거하기 위해 작은 룰베이스로 cracklib + ajax와 같은 테스트를 사용합니다.

14
hpavc

암호 강도 검사기의 신뢰성에 대한 질문은 일반적으로 검사기의 보안까지 확장됩니다. 온라인 암호 강도 측정기가 급증하는 것은 무섭습니다. 인터넷의 일부 사이트에 비밀번호를 불필요하게 노출하고 있습니다! 암호 확인을위한 로컬 응용 프로그램조차도 사악 할 수 있습니다. 사이트가 자바 스크립트를 사용하고 인터넷을 통해 비밀번호를 전송하지 않는다는 주장은 신뢰할 수 없습니다. 일부 비밀번호 강도 테스트 사이트는 반드시 블랙 햇으로 운영되며, 이들은 자신에 대해 수집 할 수있는 다른 정보와 함께 사전에 추가합니다. 다른 사이트는 좋은 의도를 가진 사람들이 운영하지만 취약한 서버와 같은 나쁜 구현 또는 https가없는 사람들이 운영합니다. 또한 다른 사람들은 사이트를 강제로 노출시키는 방법을 가진 "기관"에 의한 공격에 취약합니다. 특정 IP 주소 범위에서 제출 한 비밀번호.

이러한 사이트를 사용하는 사람은 실제로 사용하려는 비밀번호를 제출하지 않아야합니다.

8
nealmcb

길이는 거의 무차별 대입 공격을 방어하려고 할 때 모든 것입니다.

기본 암호 크래커조차도 1337 언어 스타일 대체를 허용하므로 예제에서는 7 단어 암호와 2 단어 암호를 효과적으로 비교합니다.

긴 암호 문구가있는 한 (길이의 정확한 정의는 필요에 따라 다를 수 있지만 Rainbow 테이블 공격의 가능성을 최소화하기 위해 최소한 13 자 이상이어야 함) 공격자는 다른 형태의 공격을 시도해야합니다. 사회 공학과 같은; 암호문을 작성한 곳을 찾는 것; 고양이 인질 등을 잡고.

7
Rory Alsop

이론적으로 "암호 강도 측정기"는 작동하지 않습니다 . 이 도구는 암호 생성 프로세스의 결과 만 볼 수 있지만 암호 "강도"는 실제로 프로세스의 속성입니다. 자세한 내용은 이 답변 을 참조한 다음 해답 을 참조하십시오.

암호 강도 측정기 응용 프로그램에서 제공 할 수있는 가장 좋은 방법은 암호를 해독하는 데 걸리는 시간입니다. 즉, 공격자가 정확히 동일한 코드를 실행하고 사용자에 대해 더 이상 아무것도 모른다고 가정합니다. 이것은 실제로 합리적인 가정이 아닙니다. 공격자가 당신을 공격 할 때, 특히 당신을 쫓는 사람입니다. 보안을 위해 암호 측정기를 사용하는 것은 모든 공격자가 무능 해 지길기도하는 것과 같습니다. 일종의 "신념의 도약"입니다.

7
Thomas Pornin

해당 Microsoft 도구의 Javascript를 보면 사전 단어 목록이 제한되어있는 것 같습니다 ( js 파일 의 264 줄 이상 참조) 암호 문구가 예상보다 높은 이유를 설명 할 수 있습니다.

나는 개인적으로 이 비밀번호 강도 테스터 를 추천 할 것입니다. 비밀번호를 구성하는 요소를 잘 분석하고 개선 방법을 알려줍니다. 암호는 "오늘 밤에 점심을 먹을 것"이고 56 %로, 두 번째 암호 "th1 $ .v4l"은 74 %로 평가되어보다 현실적으로 보입니다.

그러나이 도구는 단어 목록을 전혀 사용하지 않습니다. "오늘 밤 점심을 먹을 것입니다!"라는 문구는 모두 소문자로 표시되어 있습니다. 98 %를 얻습니다. % 나이 등급이 얼마나 유용한 지에 대한 자신의 결론을 도출 할 수 있습니다.

크래킹 시간 체크 아웃 길이에 대한 영향 과 관련 하여이 기사 . 그러나 2009 년으로 거슬러 올라 가면서 GPGPU 기반 암호 크래커는 이제 500 달러의 GPU로 단일 게임/워크 스테이션 PC에서 초당 10 ^ 9/초 (이 기사에서 "클래스 F"최고 수준의 공격)를 관리 할 수 ​​있습니다. 카드.

5
Mark Davidson

나는 최근 신문에서 만화를 보았다. 아니면 만화의 온라인 디지털 사본 일 수도 있습니다.

그것은 매우 논쟁의 여지가 있습니다. 그리고 나는 그것이 당신에게 한 요점을 설명 할 것이다 :

비밀번호가 짧다고해서 "th1 $ .v4l"의 경우처럼 추측하기 쉬운 것은 아닙니다. 그러나 암호가 길다고해서 "오늘 밤 점심을 먹을 것"과 같이 추측하기도 쉽지 않습니다.

문제의 사실은 심각한 인간 해커가 거기에 앉아 암호를 추측하지 않을 것입니다. 그들은 사전 단어를 사용할 수도 있지만, 그 사전에는 가능한 모든 문장이 포함되어 있지 않습니다. 그냥 말이야.

해커가하는 일 (일반적인 WORDS 사전을 소진 한 경우)은 대개 컴퓨터가 가능한 모든 조합을 체계적으로 통과하도록하는 것입니다. 끝나기 시작합니다. 이 경로를 강제로 누르면 암호가 짧을수록 나빠집니다. 길수록 좋습니다. 숫자 나 기호가 있는지 여부에 관계없이 숫자와 기호는 사람을 기억하고 추측하는 사람에게만 중요합니다. 컴퓨터는 1과 0의 순서가 같으며 차이가 없습니다.

호의를 베푸십시오. 길지만 간단하게 유지하십시오. 짧고 복잡한 해커 시간이 소요될 수 있지만 길고 간단한 작업은 동일한 작업을 수행합니다. 문제는 기억하기 쉽거나 기억하기 어려운 비밀번호를 원하십니까?

4

암호 강도는 단독 또는 다른 사람이 암호를 만드는 방법을 알려주는 경우에만 추정 할 수 있습니다. 예를 들어 , 50 자 세트를 사용하는 임의 비밀번호 생성기를 사용하고 비밀번호 길이가 8자인 경우 비밀번호는 약 3.9 × 10 중 1입니다.13 또는 245. 중국어 병음 기반 암호를 사용하고 암호가 4 단어의 구인 경우 각 단어는 2,050 개 중 하나입니다 , 암호는 1.8 x 10 개 중 1 개입니다13. 중국어 문자의 평균 병음 로마자 표기는 길이가 약 3 ~ 4 자이며 "4 워드"비밀번호는 약 16 자입니다. 그러나이 병음 암호는 문자 집합 50에서 생성 된 8 자 암호보다 약합니다.

침입자가 특정 사람이 암호를 생성 한 방법을 알고있는 경우 (몇몇 안전하지 않은 사이트에서 도난 된 일반 텍스트 암호를 검사하여), 무차별 강제 실행의 어려움을 ! 그들은 키보드에서 가능한 모든 문자를 더 이상 사용하지 않는다는 것을 알고 있기 때문에 불가능한 조합을 제거하고 시간을 절약 할 수 있습니다.

다음에 암호를 생성 할 때 암호를 생성하는 데 사용하는 알고리즘/방법에 대해 생각하십시오. 비밀번호 안전 을 사용하여 72 자 세트에서 21 자 비밀번호 생성 ([email protected]#$%^&<>/~\?abcdefghijkmnopqrstuvwxyzandABCDEFGHJKLMNPQRTUVWXY346789) 약 1.0 × 1039 가능한 조합 또는 130 비트 보안.

3
Kevin Li

모든 암호 강도 검사기 도구는 무차별 대입 및 사전 공격을 사용하여 암호를 찾는 데 얼마나 많은 노력이 필요한지 확인합니다.

두 비밀번호의 결과를 여기에서 비교하는 것처럼.

http://www.passwordmeter.com/

"th1 $ .v4l"는

74 %의 강력한 비밀번호

"오늘은 점심을 먹을거야"

좋은 비밀번호 56 %

이 암호는 무차별 대입으로 균열하는 데 시간이 덜 걸립니다.

3
mr_eclair

글쎄, 당신이 암호의 강도를 어렵거나 깨질 가능성으로 정의한다면, 거의 반 직관적으로, 암호의 강도는 기억하기 어려운 것보다 길이의 함수입니다.

잠재적 인 공격자가 암호에 대해 아무것도 모르고 무차별 대입 만 사용하여 암호를 해독 할 수있는 경우, 더 긴 암호는 기억하기가 훨씬 쉽습니다.

"오늘 밤에 점심을 먹을거야"

깨는 것보다 더 많은 시간이 걸립니다

"th1 $ .v4l"

단순히 암호를 해독하기 위해 공격자가 정확하게 추측해야하는 문자가 더 많기 때문입니다. 암호가 길수록 검색 공간이 넓어지고 바늘 (암호)에 훨씬 더 큰 haystack 을 제공합니다.

3
Daniel Miladinov

암호 강도 검사기는 원칙적으로 매우 신뢰할 수 없습니다. 그들은 공격자가 only 가능한 모든 문자 조합을 시도하여 암호를 추측하려고 시도하는 지나치게 단순한 계산에 의존하는 경향이 있습니다. 실제로는 거의 사실이 아닙니다.

실제로, 동기를 부여한 공격자는 암호를 추측하기위한 모든 종류의 다양한 전략을 제시 할 수 있으며,이 중 일부는 암호 강도 검사기가 고려하지 않은 프로그램 일 수 있습니다.

예를 들어, 비밀번호 "! QAZXSW @ # EDC"는 표준 영어 키보드에서 매우 간단한 패턴의 키를 눌러 썼다는 것을 알기 전까지는 무작위로 보일 수 있습니다. 키보드 레이아웃 기반 암호를 추측하도록 설계된 프로그램을 사용하는 공격자는 몇 분 안에 이러한 암호를 쉽게 해독 할 수 있습니다. (실제로 Pwned 's의 Pwned Passwords Checker 는이 정확한 암호가 이미 여러 번 사용되고 사용되었음을 나타냅니다.) 마찬가지로, "오늘 저녁에 점심을 먹을 것입니다"는 귀하의 전형적인 것보다 강하게 보일 수 있습니다 암호 강도 검사기이지만 일반적인 영어 문장을 추측하도록 설계된 프로그램을 사용하여 공격자가 쉽게 해독 할 수 있습니다.

are 다른 것보다 이런 종류의 것이 더 좋은 암호 강도 검사기 ( ZXCVBN 키보드 패턴 기반 암호로 내가 위에서 말했고보다 현실적인 강도 추정치를 제공하지만 궁극적으로 암호 자체를 분석하여 암호의 강도를 알 수있는 것은 아닙니다 . 사용하는 비밀번호 강도 검사기가 비밀번호를 선택하는 데 사용한 방법을 추측 할 수 없기 때문에 공격자가 비밀번호를 추측하려고 시도하지 않는다고 가정하는 것은 안전하지 않습니다. 이러한 가정은 "불명확 한 보안"으로 알려져 있으며 정보 보안 커뮤니티에 의존하는 것은 나쁜 습관으로 간주됩니다.

대신 어떻게해야합니까? 암호는 randomly 선택하십시오. 자연스럽게 인간의 편견으로 약화 될 수없는 주사위와 같은 임의의 소스를 사용하는 것이 좋습니다. 이렇게하면 공격자가 암호를 생성 한 방법을 정확하게 알고 있다고 가정하더라도 암호를 올바르게 추측하기 전에 공격자가 얼마나 많은 추측을 시도해야하는지 쉽게 계산할 수 있습니다.

Diceware 는 이러한 암호 생성 방법의 좋은 예입니다. 4 개의 임의의 Diceware 단어에는 7776이 필요합니다4/ 2 = ~ 1.83 조는 공격자가 사용자가 암호를 선택한 exact 단어 목록을 알고 있더라도 평균적으로 추측합니다. 암호 관리자가 생성 한 암호는 비슷한 이유로 강력합니다.

비밀번호를 안전하게 선택하는 방법에 대한 자세한 내용은 Thomas Pornin의 답변 을 "XKCD # 936 : 짧은 복잡한 비밀번호 또는 긴 사전 비밀번호 문구?"로 추천합니다. 비밀번호 엔트로피 및 계산 방법에 대해 자세히 설명합니다. 임의로 생성 된 비밀번호의 강도.

1
Ajedi32