# LLM이 만든 비밀번호가 위험한 이유, 100비트처럼 보이지만 실제론 27비트

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

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=26919](https://news.hada.io/topic?id=26919)
- GeekNews Markdown: [https://news.hada.io/topic/26919.md](https://news.hada.io/topic/26919.md)
- Type: news
- Author: [davespark](https://news.hada.io/@davespark)
- Published: 2026-02-23T12:15:59+09:00
- Updated: 2026-02-23T12:15:59+09:00
- Original source: [irregular.com](https://www.irregular.com/publications/vibe-password-generation)
- Points: 15
- Comments: 7

## Summary

LLM이 만든 비밀번호는 겉보기엔 복잡하지만 실제 무작위성이 극히 낮습니다. **Irregular**의 실험에 따르면 Claude, ChatGPT, Gemini 모두 특정 패턴을 반복하며, 엔트로피가 100비트처럼 보여도 실제로는 27비트 수준에 불과했습니다. 이는 LLM이 ‘가장 그럴듯한 토큰’을 예측하도록 설계된 구조적 한계로, **CSPRNG** 기반 난수 생성과는 본질적으로 다릅니다. 특히 AI 코딩 에이전트가 이런 비밀번호를 코드에 삽입할 경우, 보안 취약점이 자동화된 개발 과정 속에 조용히 확산될 수 있습니다.

## Topic Body

보안 회사 **Irregular**의 연구를 기반으로, **Claude, ChatGPT, Gemini** 같은 최신 LLM(대형 언어 모델)이 생성하는 비밀번호가 겉으로는 매우 강력해 보이지만 실제로는 극도로 취약하다는 점을 지적.  
  
##### 핵심 실험 결과  
- 각 모델에 “비밀번호를 생성해줘” 요청을 50번 반복  
- **Claude Opus 4.6**: 50번 중 **18번**이 똑같은 비밀번호 `G7$kL9#mQ2&xP4!w` (36% 동일), 고유 비밀번호는 30개뿐  
- 모델별 패턴 선호도 뚜렷  
  - Claude → 'G'로 시작 + 두 번째 '7'  
  - ChatGPT → 'v'로 시작  
  - Gemini → 'k' 또는 'K'로 시작  
- 온도(temperature)를 0.0~1.0으로 바꿔도 크게 달라지지 않음 (0.0이면 50번 전부 동일 비밀번호)  
  
##### 엔트로피(무작위성) 착시 현상  
- KeePass 같은 도구에서는 “약 **100비트** 엔트로피, 매우 강력”으로 평가  
  → 슈퍼컴퓨터로도 수십억 년 걸릴 수준처럼 보임  
- 실제 Shannon 엔트로피 계산 결과: Claude 생성 비밀번호는 **27비트** 수준  
  → 일반 컴퓨터로 몇 초 만에 뚫릴 수 있는 약한 비밀번호  
- GPT-5.2 예시: 15번째 자리가 숫자 '2'일 확률 **99.7%** (거의 고정)  
  
##### 왜 LLM은 비밀번호 생성에 부적합한가?  
- 진짜 강력한 비밀번호는 **CSPRNG**(암호학적으로 안전한 난수 생성기)로 모든 문자가 **균등한 확률**로 나와야 함  
- LLM은 반대로 **가장 그럴듯한 다음 토큰**을 예측하도록 훈련됨 → 예측 가능성 극대화  
- → 프롬프트 잘 짜거나 온도 조절해도 근본 해결 불가능 (Irregular 결론)  
  
##### 더 큰 문제: AI 코딩 에이전트의 위험  
- Claude Code, Gemini-CLI, Codex 등이 코드에 **취약한 비밀번호를 하드코딩**  
  예: MariaDB, PostgreSQL, FastAPI API 키 등  
- “비밀번호 생성해줘” → openssl rand 같은 안전한 방법 제안  
  “비밀번호 추천해줘” → LLM이 만든 패턴 비밀번호 바로 삽입  
- GitHub에서 `K7#mP9`, `k9#vL` 같은 패턴 검색하면 실제 저장소 다수 발견됨  
  
##### 결론  
- LLM은 “강해 보이는” 비밀번호는 잘 만들지만, **진짜 보안**은 외형이 아니라 **실제 엔트로피와 무작위성**에 달려 있음.   
- LLM의 예측 중심 설계 때문에 비밀번호 생성 용도로는 구조적으로 부적합하며, 특히 AI 코딩 도구가 이를 코드에 심으면 보안 취약점이 은밀하게 퍼질 수 있음.  
  
https://aisparkup.com/posts/9480

## Comments



### Comment 51646

- Author: click
- Created: 2026-02-23T13:20:25+09:00
- Points: 2

`openssl rand -hex 64` 시키면 잘 할텐데 굳이 LLM이 직접 비밀번호를 생성하게 해야할까요...?  
사람한테 비밀번호 만들라고 해도 본인이 기억하기 쉽게 일정한 패턴이 존재하는 방식으로 만들게 되는데 말이죠.

### Comment 51651

- Author: davespark
- Created: 2026-02-23T13:44:25+09:00
- Points: 2
- Parent comment: 51646
- Depth: 1

개발자들이야 별 문제 없겠지만. 요즘 바이브코딩으로 일반인들도 코딩 많이 하니까 코드 속에 자동으로 묻어 들어가는 기본값들이 더 문제될 거 같아요. 예를 들면 DB 접속 비번 같은..

### Comment 51658

- Author: click
- Created: 2026-02-23T15:07:50+09:00
- Points: 1
- Parent comment: 51651
- Depth: 2

확실히 웹 서비스를 배포해놨는데 .env 같은 민감한 파일들을 외부 네트워크에서 접근 가능하도록 풀어놓은 사례도 많이 봤었던걸 생각해보면...  
멋모르고 OpenClaw로 웹서비스 만들었는데 HTML 소스에다가 key를 그대로 박아놓는 바람에 키 탈취당해서 갑자기 청구서 날아오는 사례도 생길 수 있겠네요

### Comment 52140

- Author: holywork
- Created: 2026-03-01T18:37:00+09:00
- Points: 1

사람도 랜덤하게 고르는 것을 잘 못합니다. 패턴이 없어야 하는데 패턴을 일부러 피하는 것도 패턴으로 볼 수 있기 때문이죠.

### Comment 51856

- Author: roxie
- Created: 2026-02-25T12:37:46+09:00
- Points: 1

> Claude Opus 4.6: 50번 중 18번  
  
저는 왜 Claude code 가 랜덤 문자열 생성을 안했을지가 너무 궁금하네요

### Comment 51679

- Author: mammal
- Created: 2026-02-23T17:06:26+09:00
- Points: 1

아... 공대 1학년한테 미적분 다시 가르치는 교수님들이 왜 그 표정인지 이제 알겠다.

### Comment 51666

- Author: jayhanx
- Created: 2026-02-23T16:04:54+09:00
- Points: 1

ㅜㅜ 이건 좀 심한데
