6P by davespark 4시간전 | ★ favorite | 댓글 3개

보안 회사 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

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

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

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