abox.tools

언어: 한국어

온라인 비밀번호 생성기를 써도 안전할까?

당신의 의심은 옳으니 버리지 마십시오. 비밀번호를 만드는 페이지야말로 그것을 기억해서는 안 되는 바로 그 페이지입니다. 좋은 소식은 이것이 확인 가능하다는 점입니다 — 난수는 당신의 기계에서 만들어지고, 전송은 눈에 보이며, 만든 것을 갖고 있는 생성기는 현행범으로 잡을 수 있습니다.

Markdown으로 보기

짧은 답

이 질문 뒤에 있는 의심은 정확히 옳은 의심이니, 간직하십시오. 비밀번호를 만드는 페이지는 받을 민감한 것은 하나도 없으면서 가질 민감한 것은 전부인, 웹에서 유일한 페이지입니다. 그 출력물이 곧 비밀이고, 만든 것을 전송하는 생성기는 약한 도구가 아니라 비밀번호 수집소일 것입니다. 질문은 생성기 페이지가 믿음직해 보이느냐가 결코 아닙니다. 마음만 먹으면 비밀번호를 가질 수 있느냐입니다 — 그리고 그것은, 드물게도, 확인할 수 있습니다.

세 가지가 결정합니다. 난수가 어디서 오는가, 결과물이 페이지를 떠날 수 있는가, 결과물의 무엇이라도 예측 가능한가. 셋 다 방문자가 직접 검증할 수 있는 정직한 답을 갖고 있습니다 — 아무도 들여다볼 수 없는 창 안에서 생성하는 다운로드 앱에 대해 말할 수 있는 것보다 많습니다.

브라우저 난수는 어디서 오는가

브라우저 안의 진지한 생성기는 모두 한 우물에서 퍼 올립니다. crypto.getRandomValues — 브라우저의 암호학적 난수 생성기로, 운영 체제가 하드웨어 잡음에서 씨를 뿌리고 계속 다시 뿌립니다. 브라우저가 TLS 키를 퍼 올리는 바로 그 원천입니다 — 당신의 은행 접속이 달리는 그 암호화 말입니다. 데스크톱 프로그램이 웹페이지보다 나은 난수에 접근한다는 말이 성립할 쓸모 있는 의미는 존재하지 않습니다. 둘 다 같은 운영 체제의 우물에서 끝납니다.

페이지가 쓰면 안 되는 것은 Math.random(), 주사위나 굴리는 일용 함수입니다. 브라우저들은 이것을 빠른 생성기로 구현하는데, 그 내부 상태는 연속된 출력 몇 개만 보면 재구성할 수 있습니다 — 그 위에 지은 비밀번호는 무작위처럼 보이지만, 하나라도 본 사람이라면 계산할 수 있다는 뜻입니다. 이건 이론이 아닙니다. 실제 배포된 생성기들을 상대로 한 번 이상 실증됐습니다. 게다가 밖에서는 보이지 않는데, 그것이 코드를 읽을 수 있는 생성기를 미는 가장 강한 논거입니다. 두 함수의 차이는 소스의 한 단어니까요.

그 너머에 더 섬세한 단계의 조심성이 있습니다. 무작위 32비트 단어에서 단순 나머지로 “26 미만의 수”를 만들면 앞쪽 글자들 쪽으로 아주 살짝 기웁니다. 꼼꼼한 생성기는 나머지를 취하는 대신 다시 뽑습니다. 여기의 생성기가 그렇게 합니다 — 피해 가는 치우침은 약 1억 6500만분의 1로, 쓰는 동안엔 보이지 않지만, 일을 위해 지어진 도구와 게시판에서 붙여 온 코드 조각을 가르는 것이 바로 이런 종류의 세부입니다.

나쁜 생성기 페이지가 할 수 있는 일

실패의 형태를 똑바로 이름 붙여 둡니다. 하나하나 확인할 수 있기 때문입니다.

이 사이트의 비밀번호·패스프레이즈 생성기는 네 가지 모두에 대해 구조적으로 지어져 있습니다. crypto.getRandomValues뿐, 생성은 페이지 안에서, 어떤 종류의 저장도 없고, 이력도 없으며, 당신의 설정으로 몇 가지 결과가 가능했는지 정확히 세어 알려 주는 강도 줄이 있습니다. 패스프레이즈용 단어 목록은 EFF의 다이스웨어 목록으로, 도구 자신의 폴더에 무수정으로 실려 있습니다.

어느 생성기든 검사하는 법, 이것 포함

방법 전문은 업로드 가이드에 있고, 무엇보다 먼저 적용해 볼 페이지가 바로 이 페이지입니다.

정직한 단서 하나가 끝자리에 어울립니다. 검사는 당신이 보는 동안 페이지가 무엇을 했는지 말해 줍니다. 공개되어 있고 읽을 수 있는 형태로 제공되는 코드는 — 이 사이트의 전부가 그렇듯 — 페이지가 일반적으로 무엇을 하는지 말해 줍니다. 남는 것은 기계 자체입니다. 어떤 웹페이지도 장악된 브라우저나 키 입력을 훔치는 악성코드로부터 비밀번호를 지켜 줄 수 없고, 생성기도 예외가 아닙니다. 검사가 사 주는 것은 더 작고, 진짜입니다 — 어느 서버도 본 적 없는 비밀번호, 읽어 보도록 허락된 산수가 만든 비밀번호.