# gokey - 저장소 없이 비밀번호를 “계산해서” 만들어내는 경량 패스워드 매니저

> Clean Markdown view of GeekNews topic #24588. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=24588](https://news.hada.io/topic?id=24588)
- GeekNews Markdown: [https://news.hada.io/topic/24588.md](https://news.hada.io/topic/24588.md)
- Type: news
- Author: [xguru](https://news.hada.io/@xguru)
- Published: 2025-11-25T09:31:01+09:00
- Updated: 2025-11-25T09:31:01+09:00
- Original source: [github.com/cloudflare](https://github.com/cloudflare/gokey)
- Points: 25
- Comments: 7

## Summary

비밀번호를 ‘저장’하지 않고 **계산으로 재현**한다는 발상이 흥미롭습니다. Cloudflare의 **Go 기반 CLI 도구 gokey**는 마스터 비밀번호와 realm 문자열만으로 **항상 동일한 비밀번호나 키를 즉석 생성**해, 동기화나 저장소 유출 걱정을 완전히 없앱니다. 단순한 로그인 비밀번호부터 **ECC·RSA·Curve25519 키**까지 생성할 수 있어, 개발자 입장에선 보안 토큰이나 테스트용 키를 빠르게 만들어 쓸 때도 유용합니다. 실제로 사용하기엔 여러 난점이 있을 것 같기는 합니다만, “신뢰할 저장소 대신, 신뢰할 수 있는 수학”을 택한 접근이라 보안 설계 관점에서도 꽤 매력적입니다.

## Topic Body

- **비밀번호 저장소(vault)가 필요 없는 패스워드 매니저**로, **마스터 비밀번호 + realm 문자열**을 조합해 항상 동일한 비밀번호를 **즉석에서 생성**함  
- 어떤 기기에서도 동일한 입력만 있으면 같은 비밀번호를 재현할 수 있어 **백업·동기화·3rd-party 신뢰 문제 자체가 사라짐**  
- 단순 비밀번호뿐 아니라 **ECC/RSA 키·raw 바이트 스트림·seed 파일** 등 다양한 유형의 키 생성 지원  
- 강한 엔트로피가 필요한 경우를 위해 **암호화된 seed 파일**을 만들어 고강도 키 생성에도 활용 가능 (AES-256-GCM으로 암호화)   
- CLI 중심의 도구로 `-p`, `-r`, `-t` 등을 조합해 **URL 기반 로그인 패스워드부터 x25519·ed25519 키까지** 모두 재현 가능  
- 출력은 기본적으로 **stdout**으로 제공되며, `-o` 옵션으로 파일 저장 가능   
- 지원되는 출력 유형  
  - `pass`: 일반 비밀번호 생성  
  - `seed`: 암호화된 시드 파일 생성  
  - `raw`: 32바이트 난수 스트림 생성  
  - `ec256`, `ec384`, `ec521`: **ECC 개인키** 생성  
  - `rsa2048`, `rsa4096`: **RSA 개인키** 생성  
  - `x25519`, `ed25519`: **Curve25519 기반 ECC 키** 생성  
- **2가지 운영 모드**  
  - `Simple mode`: 마스터 비밀번호와 realm 문자열만으로 파생 비밀번호 생성  
    - 각 조합마다 고유한 결과를 생성하며, 별도 저장 불필요  
    - 단, 마스터 비밀번호 강도에 따라 보안 수준 결정  
  - `Seed file mode`: **시드 파일을 엔트로피 소스로 사용**해 더 높은 보안성 확보  
    - 시드 파일은 **AES-256-GCM**으로 암호화되어 외부 저장소(예: Google Drive, Dropbox)에 안전하게 백업 가능  
    - 마스터 비밀번호는 시드 파일 보호용으로만 사용  
- **Go 언어 기반 CLI 유틸리티**로, `go install github.com/cloudflare/gokey/cmd/gokey@latest` 명령으로 설치 가능  
- **Cloudflare**가 개발한 오픈소스

## Comments



### Comment 46772

- Author: sngwn
- Created: 2025-11-25T14:43:18+09:00
- Points: 1

https://pashword.app/  
이것과 아주 비슷하네요.

### Comment 46760

- Author: crawler
- Created: 2025-11-25T11:13:13+09:00
- Points: 1

정말 좋은 아이디어 같지만 다른 서비스들이 저장소를 가지는 건 전부 이유가 있는 거 같습니다.  
이걸 쓰더라도 사이트에서 비번 바꾸라고 할 때마다 횟수든 키든 정보를 수십 개는 기억해야 할 테니...

### Comment 46758

- Author: hided62
- Created: 2025-11-25T10:44:06+09:00
- Points: 1

비밀번호도 일종의 키라고 한다면 키 유도 함수만 적절히 사용하면 못할것도 없겠죠.  
  
pw = kdf(master_key, site_id, {salt})  
  
site_id를 도메인으로 할 것이냐, 아니면 사이트에 고유값으로 할 것이냐 정하면 되고,  
매달마다 바꾸게 시키는 귀찮은 곳이면 salt를 그때마다 바꾸면 되고.

### Comment 46814

- Author: t7vonn
- Created: 2025-11-26T15:04:48+09:00
- Points: 1
- Parent comment: 46758
- Depth: 1

그러면 결국 솔트도 사이트마다 저장해야 되는 것 아닌가요 ㅎㅎ

### Comment 46748

- Author: t7vonn
- Created: 2025-11-25T09:41:23+09:00
- Points: 1

도메인이 바뀌거나 여러개 사용하는 경우는 안되겠군요 ..

### Comment 46747

- Author: howudoin
- Created: 2025-11-25T09:40:36+09:00
- Points: 3

이런 방식이 훨씬 나은데  
비밀번호에 특수문자랑 숫자를 몇개 넣어라 3개월마다 바꿔라 이런 관리질을 해대는 사이트 때문에 개망함.  
실질적인 보안 위협은 보안이 뭔지 모르는 사이트 기획자가 더 유발함

### Comment 46779

- Author: say8425
- Created: 2025-11-25T16:56:54+09:00
- Points: 2
- Parent comment: 46747
- Depth: 1

아.... “실질적인 보안 위협은 보안이 뭔지 모르는 사이트 기획자가 더 유발함” 인정합니다  
 불현듯 몇몇 안좋은 기억들이 스쳐가네요ㅠ
