텍스트 및 일상 도구 · 비밀번호 생성기
Diceware, 1995: 암호 문구에 대한 주사위 굴리기 방법이 어떻게 탄생했나요?
· 배경
비밀번호 암호 문구 출처
Arnold Reinhold의 1995 주사위웨어 제안에 대한 이야기를 들려줍니다. 왜 물리적 주사위인지, 왜 7,776 단어인지, 이 방법이 주류에 도달하기 전에 암호화 전문가들 사이에 확산된 이유와 브라우저 도구가 이를 상속하는 방법을 설명합니다.
PGP 시대의 방법 — 1990년대 중반 암호화 소프트웨어에 대한 강력한 암호를 선택하는 문제
통합 문서는 암호화 소프트웨어에서 주류 사용에 이르기까지 날짜, 사람 및 설명을 제공하지만 이러한 역사적 주장은 비밀번호 생성기 구현으로 입증되지 않습니다. 저장소는 저작권, 라이센스 및 생략된 명령줄 기능과 함께 명명된 커밋에서 xkcdpass 1.30.0의 브라우저 기본 포트인 정확한 소프트웨어 출처를 기록합니다.
이 수정으로 범위는 더 좁지만 감사 가능한 기사가 생성됩니다. 그것은 더 넓은 역사를 부정하지 않습니다. 1차 소스 없이 재구성하는 것을 거부합니다. 독자는 개요를 보관 증거로 취급하는 대신 포트 기록, 현재 모듈 및 재배포된 자산을 직접 따를 수 있습니다.
저장소는 Diceware의 전체 기록이 아닌 xkcdpass 포트를 기록합니다.
물리적 주사위는 관찰 가능한 색인 결과를 제공할 수 있지만 변조 방지 및 역사적 매력과 같은 동기에는 동시 문서화가 필요합니다. 이 모듈의 소스에는 그러한 아카이브가 없습니다. ToolAcre 자체는 독자에게 주사위 굴림을 요청하지 않으며 물리적 굴림 절차를 검증할 수 없습니다.
현재 유용한 평행은 역사적이라기보다는 수학적입니다. 고정 크기 목록에는 각 단어에 대해 균일한 색인이 필요합니다. 브라우저 바이트는 편향 없이 줄어들 때 해당 인덱스를 제공할 수 있습니다. 구현은 이 현재 메커니즘을 증명합니다. 이전 작가들이 왜 선택을 했는지는 증명되지 않습니다.
물리적 주사위 동기는 제공된 소스 외부의 역사적 주장입니다.
ToolAcre는 보존된 원본 Diceware 어휘가 아닌 세 개의 EFF 파일을 제공합니다. 긴 자산에는 7,776 확인된 항목이 있고 두 개의 짧은 자산에는 각각 1,296 항목이 있습니다. 이상한 토큰에 대한 주장이나 나중에 제거된 목록에는 자체 라이센스 및 기록에 따라 소스 버전을 비교해야 하지만 이 기사에서는 시도하지 않습니다.
현재 단어는 커밋된 소문자 텍스트로 검사 가능합니다. 크레딧에 따르면 주사위 열은 제거되었지만 단어와 순서는 변경되지 않았습니다. 이것이 이 저장소가 지원할 수 있는 변환이므로 여기에 문서화되어 있습니다.
원래 Diceware 어휘가 아닌 제공된 EFF 파일은 여기에서 확인할 수 있습니다.
메일링 목록 확산, FAQ 영향 및 보안 커뮤니티의 채택은 도구 소스에 인용된 아카이브가 없는 역사적 주제입니다. 기억에서 확실한 연대기를 추가하는 것은 저작 계약을 위반하는 것입니다. 따라서 이 섹션에서는 출처가 없는 평판 주장으로 공간을 채우는 대신 명시적으로 누락을 기록합니다.
소프트웨어 출처가 다릅니다. 패키지 배럴은 업스트림 버전의 이름을 지정하고 커밋하며 argparse, stdin, stdout 및 대화형 모드와 같이 이식되지 않은 부분을 나열합니다. 검토자는 해당 아티팩트를 직접 비교하여 주장을 재현할 수 있습니다.
지역사회 입양 내역은 인용된 기록 출처 없이 생략됩니다.
EFF 속성, 라이센스 및 워드 파일 출처는 저장소의 제3자 문서에 기록되고 크레딧으로 표시됩니다. 인터페이스는 세 개의 목록에 레이블을 지정하고 빌드는 해당 크기를 확인합니다. 이러한 사실은 오늘날 어떤 자산이 사용되는지를 결정합니다.
목록 뒤에 있는 모든 편집 기준, 데이터 세트 또는 인적 검토 단계를 설정하지는 않습니다. 이러한 맥락은 향후 출처 기록의 EFF 자료에서 인용되어야 합니다. ToolAcre의 계산에는 모든 단어에 대해 재구성된 서술이 아니라 현재 적격 개수와 균일한 선택이 필요합니다.
EFF 출처가 기록됩니다. 편집 이력은 그렇지 않습니다
브라우저 경로는 `getRandomValues`이 형식화된 배열을 채울 때 시작됩니다. `secureRandomInt`은 필요한 가장 작은 바이트 너비를 선택하고 불완전한 꼬리를 거부하며 현재 풀 길이보다 작은 정수를 반환합니다. `secureRandomChoice`는 각 단어에 대해 해당 색인을 독립적으로 사용하고 생성기는 선택한 형식 지정 규칙에 따라 결과를 조인합니다.
물리적 절차에서 변경된 것은 소스 및 축소 구현입니다. 남은 것은 알려진 목록에 대한 균일한 색인에 대한 요구 사항입니다. ToolAcre는 Web Crypto를 사용할 수 없는 경우 생성을 거부하고 결정적인 생산 시드를 노출하지 않습니다.
주사위 같은 인덱스에서 getRandomValues까지: 실제로 존재하는 코드 경로
엔트로피 산술은 엔진과 별도의 게시된 기사에서 다룹니다. 이 역사 중심 브리핑은 비트 타겟을 반복하거나 모든 목적에 안전한 여러 단어를 선언하지 않습니다. 독자가 설정을 감사해야 할 때마다 공식은 실제 목록 크기와 독립적인 그리기 횟수에서 계속 사용할 수 있습니다.
주제를 분리하면 출처가 보안 보증이 되는 것을 방지할 수도 있습니다. 충실한 포트는 손상된 장치에서 계속 실행될 수 있으며, 올바르게 생성된 자격 증명은 여전히 피싱되거나 재사용될 수 있습니다. 계보 문서 구현; 전체 운영 환경을 인증하지는 않습니다.
요점 — 비밀번호 생성기는 주사위가 없는 주사위웨어입니다. 동일한 방법인 EFF 단어가 브라우저에서 실행됩니다.
방어할 수 있는 진술은 ToolAcre가 문서화된 xkcdpass 알고리즘 표면을 포팅하고, 속성이 있는 EFF 단어 자산을 재배포하고, 물리적 인덱싱을 거부 샘플링으로 감소된 브라우저 암호화 그리기로 대체한다는 것입니다. 각 부분에는 저장소 경로가 있습니다.
Diceware의 전체 사회 역사에는 이 코드베이스 이상의 보관 소스가 필요합니다. 확인될 때까지 검사할 수 있는 출처에 근거하여 기사를 보관하세요. 그런 다음 생성기를 새로운 개인 값에만 사용하고, 과거 사례나 재사용된 자격 증명은 사용하지 마세요.