“ 자주 인용되는 XKCD 계획 […]이 더 이상 좋은 조언이 아닙니까 ”?

저는 주위를 둘러 보며 Bruce Schneier의 이 에세이 에서 XKCD 암호 체계 는 사실상 죽었습니다.

현대 암호 크래커는 사전과 다른 단어를 결합합니다. : […]

이것이 암호를 생성하기 위해 자주 인용되는 XKCD 체계 인 이유입니다. ” correcthorsebatterystaple “-더 이상 좋은 조언이 아닙니다. 암호 크래커는이 속임수를 사용합니다.

공격자는 암호 생성자에 대해 액세스 할 수있는 모든 개인 정보를 암호 크래커에 제공합니다. 좋은 암호 크래커는 주소록의 이름과 주소, 의미있는 날짜 및 기타 개인 정보를 테스트합니다. […] 당신의 프로그램이 그것을 메모리에 저장했다면,이 프로세스는 그것을 잡을 것입니다.

그의 주장은 사람들이 공격하기 쉬운 방식으로 암호를 구성 할 수 있지만 그 힘은 순전히 지수의 힘에있는 것 같습니다. 나는 그가 단어를 정말로 무작위로 선택하지 않는 사람들을 암시한다고 생각합니다. “내가 모든 부사와 형용사가 아닌”것을 얻기 위해 몇 번을 다시 굴 렸기 때문에 완전히 불명예하지는 않습니다. 그러나 2-10의 요소로 엔트로피를 낮추는 것은 실제로 중요하지 않다고 가정합니다 (단어 목록이 그다지 어렵지 않은 4000으로 두 배가됩니다. 손실은 회복 된 것 이상입니다).

프로그램이 메모리에 저장 한 경우 “에 대한 또 다른 문제입니다. “는 약간 당황 스럽지만 … 모든 비밀번호가 한 번에 또는 저마다 메모리에 저장되지는 않습니까? 약간 지나치게 광범위하게 보여집니다 . 그는 실제로 무엇을 언급하고 있습니까? 에?

댓글

  • 이에 대한 123 개의 댓글이있는 토론은 reddit.com/r/technology/comments/1yxgqo/ …
  • 마우스 오버시 이미지 제목에 ” 정보를 이해하는 모든 사람에게 표시됩니다. 이론과 보안이 있고 그렇지 않은 사람 (대소 문자 혼용 가능성이 있음)과 격분한 논쟁을 벌이고 있습니다. 진심으로 사과드립니다. ” 도움이 될 것입니다 🙂
  • 이 TED 강연에는 xkcd를 포함한 다양한 비밀번호 생성 체계에 대한 흥미로운 연구가 있습니다. ted.com/talks/ …
  • 참고로 : 비밀번호가 실제로 correcthorsebatterystaple이라면 이제 훨씬 안전하지 않습니다!
  • correcthorsebatterystaple와 같은 비밀번호를 사용하는 경우 자동으로 잘리는 시스템에 로그인하지 않도록 ‘주의하십시오! correcth와 같은 비밀번호는 N#y;f8eR보다 추측하기가 더 쉽습니다.

답변

신성한 전쟁

암호를 생성하는 올바른 방법이 각 그룹이 서로 생각하는 성스러운 전쟁을 시작할 수 있다는 것을 알게 될 것입니다. 아주 간단한 수학적 실수 나 요점 누락. 한 방에 10 명의 컴퓨터 보안 전문가를 모아 좋은 암호를 만드는 방법을 물어 보면 11 가지 다른 답을 얻을 수 있습니다.

오해

여러 가지 이유 중 하나입니다. 암호에 대한 일관된 조언은 모두 위협 모델링 문제로 귀결된다는 것입니다. 정확히 무엇을 방어하려고합니까?

예 : 특별히 귀하를 표적으로 삼고 암호 생성 시스템을 알고있는 공격자로부터 보호하려고합니까? 아니면 일부 유출 된 데이터베이스에있는 수백만 명의 사용자 중 한 명입니까? GPU 기반 암호 크래킹 또는 약한 웹 서버로부터 방어하고 있습니까? 멀웨어 [1]에 감염된 호스트에 있습니까?

공격자가 암호를 생성하는 정확한 방법을 알고 있으며 단지 사용자를 표적으로 삼고 있다고 가정해야합니다. [2] xkcd 만화는 두 예에서 세대의 모든 세부 사항이 알려져 있다고 가정합니다.

수학

xkcd 만화의 수학은 정확하며 변경되지 않을 것입니다. .

비밀번호를 입력하고 기억해야하는 경우 진정한 임의의 xkcd 스타일 비밀번호를 생성하는 python 스크립트 를 사용합니다. 2 ^ 11 (2048)의 일반적인 사전, 철자가 쉬운 영어 단어. 공격자에게 전체 소스 코드와 내 단어 목록의 사본을 제공 할 수 있지만 여전히 2 ^ 44 개의 가능한 암호가있을 것입니다.

만화에서 말하는 것처럼 :

1000 Guesses / Sec 취약한 원격 웹 서비스에 대한 타당한 공격. 예, 훔친 해시 크래킹이 더 빠릅니다. 하지만 일반 사용자가 걱정해야하는 것은 아닙니다.

기억하기 쉬운 것과 해독하기 어려운 것 사이에서 좋은 균형을 이룹니다.

더 많은 전력을 시도하면 ?

물론 2 ^ 44는 괜찮지 만 GPU 크래킹은 빠르며 더 빨라질뿐입니다. Hashcat 은 몇 년이 아니라 며칠 안에 그 크기의 약한 해시 [3]를 해독 할 수 있습니다. 또한 기억해야 할 암호가 수백 개 있습니다. xkcd 스타일도 몇 년 후에는 어려워집니다.

여기가 비밀번호 관리자가 들어오는 곳입니다. 저는 KeePass 를 좋아하지만 기본적으로 동일한 것들이 많이 있습니다. 그런 다음 생성 할 수 있습니다. 기억할 수있는 하나의 긴 xkcd 암호문 (예 : 10 단어) 그런 다음 각 계정에 대해 고유 한 128 비트 진정한 임의의 암호를 만듭니다 (16 진수 또는 기본 64가 좋습니다). 128 비트는 편집증이되고 싶다면 256 비트의 16 진수 암호를 생성하는 데 추가 작업이 필요하지 않습니다.


[1] 여기에 메모가 있습니다. 만약 당신이 잃어버린 타협 된 호스트에 있다면 y 일이 들어옵니다. 공격자가 메모리를 키-로그 / 읽을 수있는 경우 입력하거나 KeePass와 같은 프로그램을 사용하여 복사하고 붙여 넣는 것은 중요하지 않습니다.

[2] 약한 사람보다는 (하지만 가능성이 더 높습니다) 공격자가 ” Top Passw0rdz 4realz 111! “라는 사전을 방금 토렌트했다고 가정합니다.

[3] 물론 우리는 모두 PBKDF2 등을 사용해야하지만 많은 사이트가 여전히 SHA1에 있습니다 (좋은 사이트입니다).

댓글

  • @ Dick99999 최신 GPU는 단일 카드에 6GB의 메모리를 가질 수 있으며 (2 개의 슬롯이 필요함) 수천 단어의 사전을 쉽게 저장할 수 있습니다.
  • @NateKerkhofs 이것은 무섭고 놀랍습니다. 내 첫 번째 (프로그래밍 가능한) 컴퓨터에는 1mhz 및 64kb 램이 있고 6GB 비디오 메모리에 대해 이야기합니다 …
  • ” 128 비트 진정한 임의의 암호 … ” 정말 무작위인가요? ‘ 아직 의사 랜덤인가요?
  • 성스러운 전쟁 부분 외에 다른 이유가 없다면 대답을 받아 들였습니다.
  • @Doorknob 의미있는 조합을 선택하면 대부분의 엔트로피가 사라집니다. 저는 ‘ 당신이 고를 수있는 문장의 수를 추정하려고하지 않았지만 아마도 이것은 2 ^ 44의 1보다 10 억분의 1에 가깝습니다.

답변

Schneier는 다음과 같이 작성합니다.

이유 암호를 생성하기 위해 자주 인용되는 XKCD 체계 ( “correcthorsebatterystaple”과 같은 개별 단어를 함께 연결)는 더 이상 좋은 조언이 아닙니다. 암호 크래커가이 속임수를 사용하고 있습니다.

그러나 그가 실제로 추구하는 것이 무엇인지 이해하는 열쇠는 그의 에세이에서 조금 더 나아갑니다.

아직 작동하는 체계가 하나 있습니다. 2008 년에 저는 “Schneier 체계에 대해 설명 했습니다. “

그게 다입니다. Ole “Bruce는 자신의 계획이 유일무이, 최고, 승자, 궁극적 인 계획이라고 주장하고자합니다. 따라서”경쟁자 “에 대해 비난하는 말을해야합니다. 주장은 과학적으로 건전하거나 그렇지 않습니다.

이 경우 암호 생성 방법이 공격자에게 알려져 있다고 항상 가정 했습니다. 이것이 엔트로피 계산의 요점입니다. ; 분석 을 참조하세요. 공격자가 “이 속임수를 사용”한다는 것은 아무것도 변경하지 않습니다 (공격자가 암호 생성 방법을 알고있을 때 엔트로피 계산은 암호 강도를 정확하게 설명합니다. 무능하고 암호 생성 방법을 알지 못합니다. 암호 강도는 수치화하기 거의 불가능한 양만큼 더 높습니다.

“메모리에있는 암호”에 대한 욕심은 더 일관되지 않은 혼란입니다. 암호를 입력하든 암호 금고에서 복사하여 붙여 넣든간에 암호는 반드시 RAM으로 이동합니다.

내 추측으로는 Bruce가 취한 것 같습니다.

업데이트 : Schneier는 2016 년 8 월 2 일에 발생한 Reddit AMA 에서 자신의 암호 비난에 대해 구체적으로 언급하도록 요청 받았습니다. 그는 계속해서 자신의 암호 생성 시스템을 임의의 단어 암호에 대한 우수한 대안. Schneier는 자신의 계획이 “다른 방법보다 기억할 수있는 문자 당 더 많은 엔트로피를 준다”고 말했는데, 이는 단어를 구성하는 문자와 비교할 때 사실입니다. 그러나 이것은 시스템이 문자가 아닌 단어를 암기하는 데 의존하고 “암호 문구 전체에 대한 적절한”엔트로피 “를 생성 할 수 있도록 충분한 단어를 결합 할 수있는 경우에도 관련이 없습니다.

댓글

  • 예, 그의 말이 그의 전형적인 좋은 조언과는 이상하다고 생각했습니다.그의 권장 계획은 아마도 ‘ 나쁘지는 않지만 ‘ 많은 실제 테스트를 거치지 않았습니다. 암호문 접근 방식은 비교하기가 상당히 쉬우 며 ‘이 방식이 암호 작성자에게 호소력이 있다고 생각합니다. 그가 자연어 암호 해독에 대한 뉴스를 훑어 봤는데 ‘이 암호문과 임의의 단어 암호를 구분하지 못했을 수도 있습니다.
  • 자신의 계획을 설명하자마자 ” 더 좋은 방법은 기억할 수없는 임의의 영숫자 암호 (사이트에서 허용하는 경우 기호 포함)를 사용하는 것입니다. 암호 세이프와 같은 암호 관리자는 암호를 만들고 저장합니다 “.
  • @wfaulk 암호 세이프는 Bruce Schneier입니다. ‘의 창작물이므로 경쟁에 대한 그의 주장은 여전히 유효합니다. 당신의 실패 진술은 실패했습니다;-)
  • @AviD : 나는 그것을 완전히 몰랐습니다. 😳
  • ‘ 당신이 빠진 것은 ” 트릭이 없다는 것입니다. ‘ div id = “a824a77af5”>

에서 ” “를 잡습니다. Diceware의 보안은 이미 공격자가 계획에 대해 알고 있다고 가정하고 실제로 사전 자체가 알려져 있다고 가정합니다. 공격자가 정확한 사전과 단어 수를 가지고 있는지 여부는 ‘ 문제가되지 않습니다. 해가 터지기 전에 어떤 종류의 성공적인 공격을하기에는 너무 많은 조합이 있습니다. ‘ / li>

Answer

[공개 : 저는 1Password를 만든 AgileBits에서 일합니다.]

내가 2011 년에 더 나은 마스터 비밀번호를 향하여 에서 XKCD와 유사한 체계를 옹호 한 이유 중 하나는 바로 그 강도가 어떤 방식을 사용했는지 알고있는 공격자에게 의존하지 마십시오. 내 말을 인용하면

Diceware의 가장 좋은 점은 공격자가 사용하는 시스템을 알고 있다고 가정하더라도 Diceware가 얼마나 안전한지 정확히 알고 있다는 것입니다. 보안은 주사위를 굴리는 진정한 무작위성에서 비롯됩니다. 향후 몇 년 동안 감지 된 암호 크래커의 속도 [1Password 마스터 암호에 대한]

XKCD 만화가 효과적으로 전달하지 못하는 것은 단어 선택이 (균일하게) 무작위 여야한다는 것입니다. 인간에게 단어를 무작위로 선택하도록 요청하면 구체적인 명사에 대한 편견이 큽니다. 이러한 편견은 악용 될 수 있으며 악용 될 수 있습니다.

원하는 강도

완벽한 세상에서 우리는 우리가 보호하는 키만큼 강력한 암호를 원할 것입니다. 그것. 128 비트라고 말하세요. 그러나 이러한 기술에도 불구하고 인간은 그것을 달성하지 못할 것입니다. 따라서 공격과 우리의 작은 두뇌가 할 수있는 일을 현실적으로 살펴 보겠습니다.

7776 개 항목의 원래 Diceware 단어 목록을 사용하여 사용하는 단어 당 약 12.9 비트를 얻습니다. 따라서 암호에 64 비트 이상이 필요하면 다섯 단어가 필요합니다.

암호를 추측하는 것이 키를 추측하는 것보다 느립니다.

이 섹션에서는 매우 대략적인 결과에 도달했습니다. AES 키를 테스트하는 것보다 암호를 테스트하는 것이 2 ^ 13 배 더 느리다는 것이 봉투의 추정치입니다.

비밀번호 테스트는 aES 키를 테스트하는 것보다 훨씬 느립니다. 키. 올바른 종류의 암호 해싱 체계를 사용하면 대부분의 공격자가 초당 100000 개 미만으로 추측 할 수 있습니다. 따라서 50 비트 키를 사용하고 싶지 않을 수도 있지만 50 비트 암호를 사용하는 것이 여전히 의미가있을 수 있습니다.

Arnold Reinhold의 원래 Diceware 체계 를 사용하면 더 긴 단어 목록을 사용할 수 있습니다. Windows 용 1Password의 강력한 암호 생성기는 4-8 자 사이의 17679 개의 영어 단어 목록을 사용합니다 (금기 단어와 아포스트로피 또는 하이픈이 포함 된 단어 제외). 이것은 단어 당 약 14 비트를 제공합니다. 이 중 4 개는 56 비트를 제공하고 5 개는 70 비트를 제공합니다.

다시, 크래킹 속도에주의해야합니다. 1997 년의 Deep Crack 은 초당 920 억 DES 테스트를 실행할 수있었습니다. 고급 특수 PC가 합리적으로 잘 해시 된 암호에 대해 초당 100 만 번의 추측을 수행 할 수 있다고 가정하면 초당 100 만 번의 추측을 수행 할 수 있으며 오늘날의 암호는 1997 년의 DES 키보다 해독하기가 약 16 비트 더 어렵습니다.

그러면 듀얼 코어 3.8GHz 프로세서에 대한 이 Stack Exchange 추정치 를 살펴 보겠습니다 : 초당 6 억 7 천만 키.하드웨어 비용이 5,000 달러라고 가정하면 초당 키 100 억 개를 쉽게 초과 할 수 있습니다. 따라서 비슷한 하드웨어 비용에서 키 크래킹은 여전히 암호 크래킹보다 2 ^ 13 배 이상 빠릅니다.

수정 된 암호 강도 목표

2 ^ 13이라고 추정합니다. AES 키를 테스트하는 것보다 잘 해시 된 암호를 테스트하는 데 시간이 더 많이 소요되므로, 크래킹과 관련하여 실제 엔트로피보다 13 비트 더 강한 것으로 합리적으로 잘 해시 된 암호를 고려해야합니다. 90 비트의 “유효 강도”를 달성하려면 77 비트의 암호 강도를 달성해야합니다. 이는 원래 목록의 6 단어 Diceware 암호 (77.5 비트)와 17679 단어 목록에서 가져온 6 개 단어가 포함 된 84.6 비트로 달성됩니다.

대부분의 사람들은 다음과 같은 암호를 사용하지 않을 것입니다. 사람들이 4 ~ 5 단어 길이의 단어를 사용할 것으로 예상합니다.하지만 NSA가 비밀번호를 쫓는 것이 진정으로 걱정된다면 적절한 비밀번호 해싱 체계를 사용한다고 가정하면 6 단어로 충분합니다.

매우 대략적인 추정치 만

비용과 벤치 마크를 조사하는 데 많은 시간을 소비하지 않았습니다. 내 추정치에는 논란의 여지가 많이 있습니다. 나는 보수적 (내가 옹호하고있는 계획에 대해 비관적)하려고 시도했으며 “잘 해시 된 암호”에 대해서도 모호했습니다. 다시 말하지만, 저는 1Password의 암호 해싱과 관련하여 매우 보수적입니다. (새 데이터 형식의 경우 공격자는 초당 20,000 개의 추측 미만으로 유지되었으며 이전 데이터 형식의 경우 멀티에 대해 초당 300,000 개의 추측에 도달했습니다. -GPU 시스템. 여기 내 추정치에서 “합리적으로 잘 해시 된 암호”에 대해 초당 100 만 건의 추측을 선택했습니다.)

몇 가지 추가 기록

전체 “XKCD와 유사한”비밀번호에 대한 아이디어는 적어도 1980 년대 초의 S / Key 일회용 비밀번호 까지 거슬러 올라갑니다. 이들은 2048 개의 비밀번호 목록을 사용했습니다. 6 개의 단어로 된 S / Key 암호는 66 비트를 얻었습니다. 목록에서 무작위로 선택한 단어를 암호로 사용하는 아이디어가 S / Key보다 이전인지 모르겠습니다.

1995 년 , Arnold Reinhold는 Diceware 를 제안했습니다. 당시 그가 S / Key에 대해 알고 있었는지 여부는 모르겠습니다. Diceware는 PGP 용 암호문을 개발하는 맥락에서 제안되었습니다. 또한 대부분의 컴퓨터가 암호 학적으로 적절한 난수 생성기를 갖기 전 이었기 때문에 실제로 주사위를 굴리는 것과 관련이 있습니다. (내가 사용하는 컴퓨터의 CSPRNG를 신뢰하지만 여전히 “새 암호를 롤업”하는 것을 즐깁니다.)

2011 년 6 월, 더 나은 마스터 비밀번호를 향하여 약간의 추가 수정이있었습니다. 그 결과 15 분 동안 명성을 얻었습니다. XKCD 만화가 나온 후 괴짜 에디션을 제작했습니다. 몇 가지 수학을 살펴 보았습니다.

2011 년 7 월 Randall Monroe는 Diceware와 유사한 계획을 채택하여 지금의 유명한 코믹 . 제가 아이디어의 발명가가 아니기 때문에 코믹에 당황하는 것은 전혀 신경 쓰지 않습니다. 실제로 후속 기사

내가 거의 비 기술적 인 용어로 2000 단어를 말한 Randall Monroe는 만화로 요약 할 수있었습니다. 이것은 수학의 힘을 보여줄뿐입니다 …

하지만 만화가 어떻게 해석되었는지에 대해 걱정되는 한 가지가 있습니다. 확실하게 균일 한 무작위 과정을 통해 단어를 선택해야한다는 계획을 이미 이해 한 저와 사람들에게는 분명합니다. 머리에서 무작위로단어를 선택하는 것은 안정적으로 균일 한 프로세스가 아닙니다 . p>

댓글

  • 역사적인 관점에서 Diceware를 언급하고 동시에 XKCD가 암호를 위해 수행 한 훌륭한 마케팅 작업을 인정하게되어 기쁩니다. 수정 된 체계에 대해 왜 3 자 또는 2 자 단어가 해당 단어 목록에 포함되지 않았는지 설명이 있습니까? blog.agilebits.com/2013/04/16/ … 를 참조하세요. ‘ off ‘ 및 ‘ line 오프라인에서도 1 단어 공격을받을 수 있습니까? Raestloz 게시물에 대한 내 의견을 참조하십시오. 원래 Diceware 목록에는 1, 2, 3 개의 문자 단어가 포함되어 있습니다.
  • 훌륭한 질문입니다! 그 당시 나의 (아마도 잘못된) 생각은 암호문이 최소 길이가되기를 원한다는 것이 었습니다. 누군가가 3 단어 암호문을 사용하는 경우 최소 12 자 길이를 초과하는지 확인하고 싶었습니다. S / Key는 1 자, 2 자, 3 자 단어도 허용합니다.
  • SimThrow 암호 생성기와 테스터가 사용하는 단어 목록을 빠르게 확인했습니다.원래 Diceware 목록에는 ‘ 모든 ‘ ‘ 방법과 같이 이러한 충돌이 1400 개 이상 있습니다. ‘ 및 ‘ 어쨌든 ‘. 구분 기호를 사용하지 않으면 4 단어 문장을 3 단어로 저하시킬 수 있습니다. 목록에는 모든 문자와 2 개의 문자 조합이 포함되어 있으므로 ‘ 높은 충돌 번호입니다. 그래서 두 글자를 포함하지 않기로 올바른 선택을 한 것 같습니다. Diceware는 최소 17 개의 문장 길이를 권장합니다. 내 생성기는 짧은 암호 (20) 만 허용하는 사이트에 대처하기 위해 단어 및 문자 기반 복구 시간을 모두 추정합니다.
  • 다음 단어 목록도 확인했습니다. S / 키 : > 93 번 충돌, 확장 된 디셀리스트 미국 : > 190 및 네덜란드 목록 : > 750.이를 처리하는 방법은 구분 문자를 포함하는 것입니다. 구의 단어 사이.
  • 주사위를 굴리는 것은 완벽하게 무작위가 아닙니다. forbes.com/sites/davidewalt/2012/09/06/ … insidescience.org/blog/2012/09/12/ …

답변

XKCD 암호 체계는 그 어느 때보 다 좋습니다. 보안은 알려지지 않은 것이 아니라 큰 검색 공간에서 기억에 남는 암호를 생성하는 좋은 방법이라는 점에서 비롯됩니다. 단어를 무작위로 생성하지 않고 사용할 단어를 선택하면이 이점을 잃게됩니다. 메모리에 대한 정보는 잘 알려져 있지 않지만 문제가 있습니다 . 암호 도용 멀웨어가 컴퓨터에 침입하면 RAM과 하드 드라이브에서 텍스트와 같은 모든 것을 쓸어내어 계정에 대한 직접 공격에 사용합니다.

댓글

  • +1 I don ‘ XKCD 기술이 죽었다고 생각하지 않습니다. ‘ ‘ 속임수 iv 크래커 ‘가 ‘에 참여하고있는 id = “6e65ee70d3”>

입니다. 기술을 자세히 알아볼 수 있지만 그렇지 않습니다. ‘ 충분히 무작위 일 경우 더 이상 크래킹되지 않도록 ‘

  • @PiTheNumber if you ‘ 단어가 충분하지 않거나 작은 사전을 사용하고 있는데 ‘ xkcd 기술을 전혀 적용하지 않습니다. 하지만 아니요, xkcd 만화에서도 ‘ 모두에게 말하면 이점을 잃지 않습니다 명백하게 ‘ div id = “a824a77af5”> 저는 ‘ 올바른 horsebatterystaple 스타일 비밀번호를 사용하고 있습니다 “-확인 / 엔트로피의 양 방법을 알고 있더라도 비트는 대부분의 일반 비밀번호보다 높습니다.
  • XKCD를 사용하지 않는 경우 ‘ ‘의 난수 생성기 (‘ 링크를 얻지 못했습니다. 모두가 알고 있습니다).
  • @PiTheNumber ‘ 11 글자의 진정한 임의의 암호 ‘는 암호에 대한 합리적인 대안이 아니기 때문에 관련이 없습니다. 암호는 기억할 수있는 암호의 대안이며 xkcd가 설명하는 것처럼 정확히 약합니다. 물론 비밀번호 관리자에 저장된 비밀번호를 사용하는 경우 완전히 임의의 비밀번호가 적합하지만이 경우에는 ‘ 본질적으로 ‘ div가 아닙니다. 사용자 가 사용하거나 볼 수있는 암호 대신 ‘ ‘ 자동 생성 된 임의 키 token ‘ ssh 키와 유사합니다.
  • @PiTheNumber 단어는 사람이 선택한 것이 아니라 무작위로 선택됩니다. 단어가 선택되는 사전은 그 자체로 인간이 선택한 것이지만 그것은 다른 문제입니다. xkcd 만화의 수학이 정확합니다.
  • 답변

    다른 사람과 마찬가지로 Bruce Schneier가 설명하는 공격은 사용자가 도구를 사용하지 않고 자신이 여러 단어를 선택할 때 효과적입니다. Schneier는 일반적으로 일반 대중에게 글을 씁니다. 이는 스스로 선택한 “무작위”단어와 프로그램에서 선택한 무작위 단어의 차이를 이해하기 어렵습니다.

    대본을 사용하거나 사전에서 단어를 무작위로 선택하는 다른 도구 인 첫 번째 시퀀스를 사용해야합니다 . 결정하면 ” 저는 “그것이 마음에 들지 않습니다”. 마음에들 때까지 다시 실행합니다. 더 이상 임의의 암호가 아니며 사람이 선택한 것입니다.

    또한 스크립트를 사용하고 여러 시퀀스 중에서 좋아하는 시퀀스를 선택하여 임의성을 손상시키지 않더라도 공격자가 PRNG (의사 랜덤)를 악용 할 가능성이 있습니다. 공격자가 암호를 생성 한시기와 사용한 PRNG 및 PRNG를 사용하여 생성 된 네트워크 트래픽과 같은 PRNG에 대한 기타 정보를 알아낼 수있는 경우 임의의 암호입니다.

    아마 약간 난해하지만 PRNG를 악용 할 수있는 경우 2 ^ 44 수치는 완전히 실현되지 않습니다. ( “누구도 내 PRNG를 악용하지 않을 것”이라고 가정하면 진정으로 안전한 암호를 사용하는 이유는 무엇입니까?)

    댓글

    • +1 흥미로운 각도. PRNG를 활용하는 것은 암호화의 맥락에서 분명합니다. 키-‘ 여기서는 사실상 나중에 고려한 것 같다는 점이 흥미 롭습니다. 일반적인 비밀번호는 너무 나쁜 것 같습니다. PRNG가 비교적 안전하다고 느낍니다. 아마도 공격자가 해시 된 암호 목록을 훔칠 수 있다면 pwdChangedTime 또는 이와 동등한 것을 찾는 것이 사소한 것일까 요? 암호 노화 관행을 끝내야하는 또 다른 이유는 무엇입니까?
    • 빨리 봉투를 사용하십시오. 생성 후 1 분 이내에 암호를 업데이트하고 PRNG에서 엔트로피의 유일한 소스가 시스템 시간 인 경우 나노초 해상도를 위해 2 ^ 35까지 줄일 수 있습니다. 합리적으로 들리나요?
    • 제가 단어를 좋아하지 않아서 ‘ 구문을 거부한다고 가정 해 보겠습니다. 그런 다음 사전을 1000 단어 줄였습니다. 축소 된 사전의 선택이 여전히 무작위입니까? 그래도 그렇다면 7776 단어 Diceware 사전의 4 단어 문장은 여전히 (7776-1000) ^ 4 = 2.1E15 / 50.9 가능성 / 엔트로피 비트를 제공하며, 전체에 대해 3.7E15 / 51.7 가능성 / 엔트로피 비트가 감소했습니다. 사전. 랜덤 발생기의 영향을 판단 할 수 없습니다. 나는 www.random.org에서 가져온 것을 사용합니다.
    • @ Dick99999 나는 ‘ 정말로 ‘ 하나의 비밀번호를 선택할 때 제외하는 제안 된 선택의 수에 대해. ‘ 제시된 경우 제외 할 문구의 패턴 에 대한 것입니다. 공격자는 사용자가 더 짧은 단어, QWERTY 키보드에서 입력하기 쉬운 단어, 대문자 나 구두점이없는 단어를 선호 할 것이라고 추측 할 수 있습니다. 이 전략은 탐색 할 암호의 공간을 크게 줄일 수 있습니다. 기본적으로 ‘ 좋아하는 스포츠 팀, 생일 및 어린이 이름을 추측하는 것과 같은 문제입니다 ‘.
    • @wberry 저는 ‘ 수학이 그 문제를 해결한다고 생각하지 않습니다. 원하는 암호를 찾기 전에 1000 개의 암호를 거부한다고 가정합니다. 그런 다음 ‘ 가능한 비밀번호 공간의 1/1000 만 마음에 드는 합리적인 추정치입니다. 이제 공격자가 1/1000의 공간이 가장 좋아하는 공간을 완전히 추측 할 수 있다고 가정합니다. 이는 가능성의 수를 2 ^ 44에서 2 ^ 34로 줄입니다. 이는 중요하지만 추가 단어가 할 수있는 정도는 아닙니다. ‘ 손실을 채우지 마십시오. 또한 거부를 제한하는 경우에도 필요하지 않습니다.

    답변

    상황에 따라 다릅니다. 이해해야 할 한 가지는 이것이 모호한 보안이 아니라는 것입니다. 만화에 사용 된 엔트로피 값은 공격자가 이미 “이 방법을 사용하고 있음 을 알고 있다고 가정합니다. 공격자가 암호를 생성하는 방법을”모르는 경우 “엔트로피 XKCD 방법의 트릭은 실제로 난수 생성기와 좋은 단어 목록을 사용해야한다는 것입니다. 단어를 선택하지 마십시오. “무작위로” (인간이 실제로 무작위로 물건을 고르는 데 정말 나쁘기 때문에 따옴표로 묶어서 그렇게하면 안됩니다). Diceware 에는이를 수행하는 데 도움이되는 도구가 있으며 일반 주사위를 사용하여 컴퓨터의 손이 닿지 않는 임의의 요소도 제거합니다.

    광범위한 기반 공격 (공격자가 웹 사이트에서 암호 목록을 가져오고 “목록에있는 암호에 대해 전혀 알지 못하는 종류”에 대한 공격은 그 어느 때보 다 강력합니다. 말씀하신 바와 같이 지수의 힘 (그리고 좋은 단어 목록)에서 비롯됩니다.

    Schneier의 공격은 작동 할 수 있지만 완전히 다른 맥락에서만 가능합니다. 그의 공격은 귀하에 대해 이미 많은 것을 알고있는 공격자에 의해 특정 표적이 된 것으로 가정합니다 .고정 관념적인 단호한 공격자는 화면 뒤의 정보 요원이고 우리 대부분은 이것에 대해 그다지 걱정할 필요가 없기 때문에 처음에는 특별히 걱정스럽지 않은 것처럼 보일 수 있습니다. 많은 사람들을 돌볼 여유가 있습니다.하지만 정교한 맬웨어의 출현 덕분에 처음에는 생각했던 것보다 더 많은 문제가 발생했습니다. 악성 코드 설치는 공격자가 그렇지 않더라도 당신을 돌볼 여유가 있으므로 여전히 극도로 단호한 공격자와 마주하게됩니다. 실제로는 창의적이지는 않지만 인간보다 결단력이 더 높습니다.

    당신에 대한 정보를 수집하는 멀웨어는 당신에게 중요해 보이는 단어를 단어 목록에서 매우 높은 우선 순위에 놓을 것입니다. 대부분의 사람들이 “무작위”단어를 직접 선택하기 때문에 이렇게합니다.하지만 그렇게함으로써 실제로는 그들에게 가장 중요한 단어에 상당히 강하게 편향됩니다. 여전히 무작위로 “느껴질”수 있지만 일부 단어는 훨씬 더 가능성이 높습니다. 다른 사람보다 올라옵니다. 따라서 이러한 단어에 높은 우선 순위를 부여하면 상대적으로 빠른 히트가 발생하는 경우가 많으며 이것이 Schneier가 말하는 “속임수”입니다.

    그러나, 실제 임의성을 사용하여 Schneier의 공격을 막을 수 있습니다. 문제는 규율이 필요하다는 것입니다. 암호에 사용할 단어에 대한 모든 결정 (좋은 단어를 선택하는 것 제외) 목록)을 완전히 제거해야합니다. 여기에서 Diceware와 같은 것이 도움이 될 수 있습니다.

    댓글

    • @Gilles : 공격자가 암호의 전체 구조를 변경하는 방법을 알고 있으면 엔트로피가 다운됩니다. 방법을 모르는 경우 ‘ ” 올바른 말 배터리 스테이플 “은 2 개의 기호 알파벳에서 216 개의 기호처럼 보입니다. 즉, 216 비트입니다. 알고있는 경우 ‘의 4 개의 영어 단어 (그리고 XKCD

    의 단어 목록), 2048 기호 알파벳에서 4 개의 기호처럼 보입니다. 2048 ^ 4는 크지 만 ‘ 2 ^ 216보다 작습니다. 이는 해당 길이의 진정한 임의의 비트 문자열이 갖는 엔트로피의 바이트 수입니다. 그러나 XKCD ‘의 주장은 이미 2048 ^ 4 = 2 ^ 44를 설명합니다.

  • 공격자들은 암호가 균일 한 배포를 따르는 비트 문자열이라고 믿고 있다고 가정합니다. 완전히 비현실적인 공격자 모델입니다. 방법을 아는 것은 몇 비트의 엔트로피만을 설명합니다.
  • 엔트로피는 문자열에 정의되지 않고 문자열을 생성하는 방법에 정의됩니다. XKCD는 44 비트의 엔트로피를 가진 문자열을 생성하는 방법을 설명합니다. 해당 메서드의 도메인에는 27 자 길이의 문자열과 다른 길이의 문자열이 포함되어 있습니다.하지만 보안 관점에서 문자열의 길이는 ‘별로 흥미롭지 않습니다. 사용성 관점.
  • 왜 암호의 길이를 알고 있지만 영어 단어가 평균보다 암호에 나타날 가능성이 더 높다는 사실이 아닙니까? 다시 말하지만, 공격자 모델은 완전히 비현실적입니다. 공격자들은 ‘“이봐, 나는 ‘ 가능한 모든 27 자 비밀번호를 생성 할 것입니다.”하지 않습니다. “이봐, 나는 ‘ 가능성이 낮은 순서로 가능한 모든 비밀번호를 생성 할 것입니다”와 비슷합니다.
  • @Giles 실제로 문자열과 메소드는 모두 관련이 있습니다 . The Spooniest ‘의 여는 문단이 잘못되었다고 주장하면서 다시 언급하는 것처럼 보이는 주장을합니다. 비밀번호가 어떻게 생성되는지 ‘ 모르면 엔트로피가 크게 올라갑니다. 27 자 (위, 아래, 숫자, 구두점)에 대해 ~ 166 비트입니다. 당신이 말하는 것은 공격자가 이것을 줄이기 위해 암호가 생성되는 방법에 대한 지식을 사용할 수 있다는 것입니다. 당신이 반대편에서 같은 것을 주장하는 것 같습니다. 또한 길이를 모르면 엔트로피가 증가 됩니다.
  • 답변

    강도 (사전의 단어 수) ^ (문장의 단어 수), 공격자가 사전에있는 단어의 수를 알고 있다고 가정하면 단어 선택이 무작위로 이루어지면 수학은 매우 간단합니다. 따라서 공격자가 알고있는 ( !) 7776 단어 Diceware 사전을 사용하는 5 단어 구문 : has 7776 ^ 5 = 2.8E19 또는 64 비트의 엔트로피.

    구성표에 언급되지 않은 항목이 하나 있습니다. 전체 구문의 임의의 위치에 1 (무작위) 문자 만 추가하면 강도가 약 10 비트 올라갑니다. , Diceware, Optional stuff 를 참조하세요.

    위의 수학은 또한 단어 사이의 구분 기호를 고려하지 않습니다. 5 비트를 더 추가 할 수 있습니다.

    댓글

    • XKCD 만화의 요점 (또는 그 중 하나 이상)은 임의의 장소에 임의의 캐릭터 하나를 추가하면 난이도가 증가한다는 것입니다. 암호를 더 많이 암기하면 크래킹의 어려움이 증가합니다.
    • 일반적으로 암기하는 경우에는 맞지만 볼트의 마스터 암호에는 맞지 않습니다. ‘ 입력하기 쉬운 ‘가 주요 장점이라고 생각합니다. 비밀번호 관리자가 비밀번호 (앱, WifI 게스트 네트워크)를 입력 할 수없고 입력해야하는 상황이 점점 더 많이 발생합니다.
    • @Mark-추가 임의의 (또는 사전이 아닌) 문자를 사용할 수 있습니다. 모든 비밀번호에서 동일해야 ‘ 잊을 수 없습니다. ‘ 적어도 다른 여러 암호가 손상 될 때까지 추가 엔트로피를 얻을 수 있습니다. 이때 암호는 여전히 xkcd-strength입니다 …
    • @imsotiredicantsleep-매우 흥미로운 제안입니다. 이 강화 기술을 더 쉽게 사용할 수있는 해결책을 항상 찾았습니다. 공격자가 임의의 캐릭터와 위치에 대한 지식을 활용할 수 있기 때문에이를 모호함으로 보안이라고 할 수 있습니다. 사용의 용이성과 보안 사이에 약간의 상충 관계가 있다고 생각합니다.
    • @ Dick99999 절대적으로 ‘는 상충 관계입니다. 그러나 상수 구성 요소가 손상 될 때까지 사전 공격이 ï없고 더 정교한 공격은 상당히 느려집니다. ‘ ‘이 기술을 사용하고 있음을 알 수 있기 때문에 모호한 보안에 ‘ 동의하지 않습니다. 가능한 값 이 제공하는 엔트로피를 잃지 않고. 가장 큰 약점은 일단 일정한 부분이 알려지면 무작위로 추출 될 수있는 비밀번호 부동산을 희생 한다는 것입니다.

    답변

    답변도 추가하고 싶습니다. 다른 이유. 길이 제한 때문에 [일반적으로] 좋은 조언이 아닙니다.

    • Skype, ING, eBay와 같은 사이트와 우리나라 Binckbank 및 KPN은 비밀번호를 20 자로 제한합니다. (이 은행 한도는 15 개이지만 2 단계 인증을 사용했습니다.)
    • 단어 3000-8000 단어 사전에 평균 4.5 자 / 단어 길이로 3-4 단어 구문 만 사용할 수 있습니다.
    • 큰 사전을 사용하는 경우 평균은 6-7 일 수 있습니다. 3 단어 만 사용할 수 있습니다.
    • 사이트에서 암호에 기호와 숫자를 사용해야하는 경우에는 18 자만 사용할 수 있습니다.

    이러한 길이는 온라인 공격으로부터 만 보호합니다. 오프라인 공격의 경우 3-4 단어 문구가 충분한 보호를 제공하는지 여부에 관계없이 키 유도 및 해시 기능, 반복 횟수 및 앱 사이트에서 사용하는 하드웨어 크래킹에 따라 다릅니다.

    댓글

    • 비밀번호 길이를 제한하는 사이트는 종종 비밀번호 저장 시스템이 매우 안전하지 않음을 나타내는 훌륭한 지표입니다. 도망쳐. 대체로 암호 강도 요구 사항은 도움이되는 것보다 더 해로운 경향이 있습니다. IMO (보안 및 기억력 모두)
    • 15 자로 제한된 암호 목록에 Suntrust를 추가하십시오. 그 업계에 무슨 일이 일어나고 있는지 궁금합니다.
    • 반면에 ‘ ‘ 올바른 horsebatterystaple ‘ 스마트 폰에서 소문자, 대문자, 숫자 및 구두점 사이를 계속 전환합니다.
    • 낮은 비밀번호 한도 사용 ‘ 안전하지 않은 암호 저장 방법을 의미하는 것이 아니라 암호가 일반 텍스트로 저장되거나 암호화 (해시되지 않음)됨을 의미합니다. @ Á ngel 모든 Microsoft 관련 계정의 암호가 그보다 길기 때문에 BS에 전화합니다. 오래 전 NTLM 이전에는 Windows 암호가 16 자 (iirc)로 제한되었습니다. XP 이전이며 거의 관련이 없습니다.
    • @Zenexer Microsoft 계정 관련 : Microsoft 온라인 계정 (live.com, Office 365 등)은 16 자로 제한됩니다 (문자, 숫자 및 일부 기호 허용). ).

    답변

    올바른 컨텍스트를 갖는 것이 중요합니다. xkcd comic 는 가정 된 28 비트 엔트로피에서 Tr0ub4dor&3를 비교합니다 (하지만 계산 it as 34.6) to correcthorsebatterystaple 및 44 비트의 엔트로피 (4 워드 diceware 코드는 51.7 비트) …하지만 그 단어 중 하나는 “다이스웨어가 아닙니다. 간단한 100k 단어 철자 사전을 사용하여 66.4 비트로 계산합니다.”

    먼저 이해하기 쉽게 만들어 보겠습니다. 94 개가 있습니다. 인쇄 가능한 문자입니다. 한 문자 암호에는 log₂(94) = 6.55 비트의 엔트로피가 있습니다. 두 문자에는 log₂(94²) = 13.10 비트의 엔트로피가 있습니다.암호 체계의 최종 엔트로피를 6.55로 나누어 문자 단위로 측정 한 순전히 임의의 암호와 동등한 복잡성을 결정할 수 있습니다.

    따라서

    • 28 비트 엔트로피 ≈ 4.3 자 암호 (매우 나쁨!)
    • 44 비트 엔트로피 ≈ 6.7 자 암호 (또한 나쁨)
    • 66.4 비트 엔트로피 ≈ 10.1 자 암호 (2016 년에도 괜찮음)

    xkcd “의 숫자를 믿으면 Schneier가 우려한 이유를 알 수 있습니다. 대부분의 공격자는 10 자 정도의 문자를 입력해도 여전히 포기하므로 약간 과장된 것 같습니다. [인용 필요] — 큰 클러스터가 10 자로 된 MD5 해시 암호를 해독하는 데 몇 년이 걸립니다. 비록 좋은 공격자가 여러분의 스키마를 알고 있다면 절대 문자 길이는 문제가되지 않습니다.

    체계의 총 복잡성이 가장 중요합니다. 최악의 경우를 가정해야합니다 (공격자가 정확한 체계를 알고 있음). . 추가로 비밀번호가 11 자 이상 ( 허용되는 경우 )인지 확인하는 것이 좋습니다. 그러나 이는 2 차 우선 순위입니다 (패스 프레이즈와 함께 무료로 제공됨). ).

     

    4 단어와 암호로 암호문 만들기

    암호 생성 방법은 다음과 같습니다. (엔트로피 추정치 포함) :

    • 각각 4 자 이상 (100,000⁴)의 4 개 이상의 단어로 무의미한 문장을 만듭니다.
    • 이 단어 중 어느 것도 연결될 수 없습니다. 나 또는 서로간에 어떤 방식 으로든
    • 사용 사례, 공백, 최소 2 개의 기호 또는 구두점 (32²)
    • 최소 한 단어 맞춤법 검사에 실패해야합니다 (예 : leetspeak, 외국어, 각 64 개)
    • 하나 이상의 다른 “오류”(맞춤법 / 문법 / 구문, 알 수없는 엔트로피)를 포함합니다.
    • 두 단어 사이에 기존의 “무작위”7 자 이상의 암호 (92⁷)를 추가합니다.

    이것은 최소한 log₂(100000⁴ × 32 × 3 × 64 × 92⁵) = 112 비트의 엔트로피 여야합니다 (매우 강력하고 ≈17 자). 대문자 (첫 번째 문자 만 대문자라고 가정)와 하나의 기호 (., ! 또는 ?, 두 번째 기호의 복잡성은 3)이고 “무작위”가 “무작위”가 아니라고 가정하고 코드를 5 자에 해당하는 것으로 계산했습니다 (위의 내용을 엄격히 준수). 수식은 ≈20 자에서 128 비트 이상의 엔트로피를 제공합니다.

     

    이 마지막 요점은 반복 할 가치가 있습니다.

    p>

    인간은 임의성을 생성하는 데 매우 나쁩니다.

    진정한 임의성을 접근 하더라도 인간이 생성 한 “무작위”문자 암호는 거의 없습니다. 코드에 패턴이있을 것입니다. 사람의 키보드, 좋아하는 숫자 및 / 또는 특정 모호한 단어는 추측 할 수 없다는 가정에 영향을줍니다.

    나는이 체계가 사람들의 본질적인 임의성 부족에 대해 견고하게 설계되었습니다. 제한된 어휘를 가정합니다. ( Basi에서 2600 단어를 말하십시오. c 영어 ), 관련 단어 사용 (단어 세 단어 만 계산하여 처벌), 6 개의 영숫자 엔트로피로만 제한되는 암호, log₂(2600³ × 62⁶) 자체는 여전히 강력합니다. 70 비트 (≈10.6 자).

    이 암호문을 내버려 두지 마십시오! 이 섹션은이 체계가 인간의 제한된 엔트로피에 약간의 저항을 가지고 있음을 보여주기 위해 존재합니다. 잘못된 선택을 장려하는 것이 아니라 선택입니다.

    유일한 문제는 인용문이나 가사를 네 단어로 사용하는 사람들에게서 발생합니다. 이 암호문은 인용문이나 가사를 추측 할 수 있거나 (예 : Facebook 좋아요를 확인하여) 추측 할 수 있거나 30 초 (MD5) ~ 17 일 (PBKDF2)의 크랙 타임에 약 6 개의 임의 문자의 엔트로피가있는 경우 사소한 패배입니다. .

     

    내 엔트로피 테이블 을 사용하여 암호 체계의 엔트로피를 계산합니다.

    ( 암호가 잠시 기억에 남는 사실에 신경 쓰지 마십시오. 개발자입니다)

    댓글

    • 또한 ASCII 캐릭터는 은색 총알과 같아서 대부분의 공격을 자동으로 물리칩니다. ••••••••• (9 개의 글 머리 기호 문자)의 비밀번호는 길이와 모호함으로 인해 당황 스러울 정도로 안전합니다 (마스크되지 않은 것과 동일하게 마스킹 된 것처럼 보입니다!).하지만 ‘이 사실에 실제로 의존하는 것은 끔찍한 아이디어입니다. 비 ASCII 문자를 암호 + 4word에 넣으면 복잡성이 급증합니다 (계산하려면 유니 코드 값 사용), 아마도 이동성을 희생 할 수 있습니다 (만약 ‘ 친구 ‘의 스마트 폰을 사용하고 있습니까?)

    답변

    아니요, 그렇게 생각하지 않습니다.

    xkcd 만화의 실제 조언은 기억하기 쉬운 니모닉을 사용하라는 것입니다 기억할 수있는 한 비밀번호를 생성합니다 . 이것들은 어디에서나 기본적인 암호 조언이며 항상 사실입니다 (인용 된 Schneier의 방법도이 두 가지 기본 사실을 사용합니다). 실제로 만화는 일반적인 영어 단어를 사용하지만 여러분의 구현은 그럴 필요도없고 그렇지도 않습니다. 만화는 당신이해야한다는 것을 의미합니다.

    물론 가장 안전한 비밀번호는 MD5 문자열처럼 완전히 임의의 문자열이며 비밀번호 관리자를 사용하여 모든 비밀번호를 저장할 수 있지만 해당 관리자에게 어떤 비밀번호를 사용 하시겠습니까? ¯ \ (ツ) / ¯

    댓글

    • ” 물론 가장 안전한 비밀번호는 완전히 임의의 문자열입니다. ” 아니요, 비교 참조 en.wikipedia.org/wiki/Password_strength#Random_passwords
    • 아니요, 저것 ‘는 xkcd가 권장하는 내용이 아닙니다. 다시 읽어 보시기 바랍니다. 여기에서 관련 질문 (위 링크 참조)의 분석을 읽어 보시기 바랍니다.
    • 귀하의 서명 ” ¯ \ (ツ) / ¯ “는 뛰어난 암호입니다. 짧고 쉬움 기억하기, 정말 깨지기 어렵고, 암호로 감지하기 어렵습니다. 로그입니다.
    • @Daniel Azuelos, … 일반적으로 사용되는 문자열 목록에 추가하는 것은 사소합니다 …
    • @Raestloz 언어를 사용하는 사람 ‘ ASCII 범위에있는 문자를 사용하지 않는 것은 ‘ ASCII 암호를 사용하지 않습니다. 아시아 지역의 모든 사람들이 매일 입력하는 키보드와 암호를위한 키보드를 사용한다고 생각하십니까? DOS와 같은 30 년 된 운영 체제와 달리 모든 최신 OS ‘는 유니 코드 및 기타 문자 세트 / 페이지를 잘 처리하며 모든 웹 사이트에서이를 지원해야합니다 ( 개발자는 ‘ 매번 임의의 문자 집합을 사용하여 양식을 인코딩하거나 브라우저가 선택하도록하지 않습니다. 암호는 사람에게 의미가있는 비트 일뿐입니다.

    답글 남기기

    이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다