Have I Been Pwned 2.0
(troyhunt.com)- 데이터 유출 확인 서비스 Have I Been Pwned가 완전히 새롭게 리뉴얼됨
- 새로운 디자인과 함께 주요 웹 페이지의 기능이 대폭 변경 및 개선됨
- 검색 기능이 더욱 직관적으로 변하고, 계정 확인 방법과 데이터 브리치 각종 사례 안내가 강화됨
- 사용자 대시보드, 도메인 검색, API 문서 등 다양한 신규·개선 기능이 추가됨
- 웹 성능과 보안이 최신 클라우드 인프라 위에 구현되어 빠르고 안전한 사용자 경험 제공됨
소개 및 배경
- Have I Been Pwned(이하 HIBP) 2.0은 오랜 기간의 개발 끝에 완전히 새롭게 공개됨
- 2023년 2월에 첫 커밋, 2024년 3월에 소프트 런칭 및 오픈 소스화 과정을 거쳐, 전면 재구축 및 새로운 브랜드 정체성이 적용된 사이트로 오픈됨
- 전체 사이트 구조와 기능이 개편되었고, 새로운 기능들과 함께 머천다이즈 스토어도 오픈됨
검색 기능
- HIBP의 대표 기능인 대문 검색창이 더욱 직관적이고 신선한 연출(컨페티 애니메이션)로 개선됨
- 유저 경험을 부담스럽지 않게 만들기 위해 무겁고 부정적인 분위기를 지양, 사용자에게 사실 기반의 실용적 정보를 제공하는 데 집중함
- 유저네임 및 전화번호 검색은 웹사이트에서 제거됨(단, API에서는 기존 방식 유지)
- 이메일 주소 기반 검색이 파싱, 알림, 서비스 일관성 측면에서 더 적합함
- 전화번호, 유저네임은 데이터 처리 부담이 높고, 실제 거의 사용되지 않아 혼선을 줄이기 위해 제외 결정함
데이터 브리치 케이스 페이지
- 모든 브리치(유출) 건마다 전용 상세 페이지가 새롭게 제공됨
- 기존보다 한층 직관적이고 보기 좋은 레이아웃으로 피해 상황, 대응 방안 등 구체적이고 실행 가능한 맞춤 조언을 안내함
- 타 기관(예: NCSC)과의 협력으로 지역별 맞춤 정보 등 추가 예정
- 앞으로 2FA, 패스키 등 지원 여부, 사용자 맞춤 가이드 등 세부 정보가 추가될 계획임
대시보드
- 기존 여러 기능(민감 브리치 확인, 도메인 관리, 구독 관리 등)을 통합 대시보드로 일원화함
- 대시보드는 이메일 인증 기반으로 접근, 앞으로는 패스키 등 새로운 인증 방식도 추가될 예정임
- 가족 계정 알림 등 향후 확장 가능한 플랫폼으로 발전 가능성 제공
도메인 검색 기능
- 도메인 검증/검색 기능이 전면 재설계되어, 더욱 깔끔한 UI와 다양한 필터 지원(예: 최신 유출만 보기) 추가
- 완전한 싱글 페이지 앱(SPA) 구조에, 검색 결과는 API를 통해 JSON으로 신속하게 제공됨
- 도메인 소유권 확인 프로세스도 새롭게 단순화됨
- 이메일 외 인증 방식은 별도 개선 예정
API
- 이번 업데이트에서 API 자체의 변화나 중단은 전혀 없음
- API 문서화는 OpenAPI 기반 Scalar 도구 도입을 준비 중이나, 현재는 기존 문서를 유지하면서 새로운 스타일로 통일됨
- 추후 Scalar 기반 최신 문서로 전환 예정
머천다이즈·스티커
- HIBP 브랜딩 굿즈샵이 공식 오픈되어 티셔츠 등 상품 판매 시작(Teespring 기반, 마진 없음)
- 스티커는 Sticker Mule 스토어에서 계속 운영, 아트워크는 오픈소스로 자유롭게 사용 가능
기술 및 인프라
- 사이트 백엔드는 Microsoft Azure 기반으로, App Service, Functions, Hyperscale SQL, Storage 등 사용
- 주요 웹 앱은 C#과 .NET 9.0, ASP.NET MVC(.NET Core)로 작성됨
- Cloudflare가 WAF, 캐싱, Turnstile(anti-bot), R2 스토리지 등 요긴하게 쓰임
- 프론트엔드에서는 최신 Bootstrap, SASS, TypeScript를 기반으로 현대적 인터페이스를 구현
- Iceland 기반 개발자 Ingiber 등 핵심 멤버들의 기여로 높은 완성도와 미려한 UI 달성함
- 웹 페이지 용량과 요청 수를 각각 28%, 31% 가량 절감해, 11년 전보다 효과적으로 최적화됨
- 트래킹, 광고데이터 등 불필요한 요소는 완전 배제, 유저 프라이버시 중시
AI 활용
- 이번 사이트 리빌드 과정에서 Chat GPT를 CSS, 아이콘 추천, Cloudflare 설정, .NET Core 특이점 등 다양한 개발 문제 해결에 적극 활용함
- AI의 빠른 제안과 코드 자동화로 생산성 대폭 향상 경험
- 신속한 마이그레이션, 작업 자동화 등에 있어 높은 정확도와 유용성 확인
개발 여정과 결론
- 법률 문서 갱신 등 보이지 않는 다양한 작업들이 오랜 시간, 비용을 소요함
- 론칭 전후로 수 차례 긴급 수정과 반복 릴리즈로 빠른 문제 해결 진행
- 초심을 잃지 않고 서비스 전문성, 확장성, 쾌적성을 지키며 재출발을 완료함
- HIBP는 2013년부터 4분의 1 인생을 쏟은 열정의 결과물이며, 이번 2.0으로 커뮤니티 서비스로서 새 도약 기대
Hacker News 의견
- 법률 회사와 파트너십을 맺어서, 과실로 인한 모든 데이터 유출(사실상 거의 모든 경우)에 대해 집단 소송 추진 희망사항 공유 후, 결제 은행 서비스와 연계해서 합의금 지급 시 수백만 명에게 직접 송금하고, 그렇게 되면 현대판 영웅이 될 수 있을 거라는 상상 공유 실제로 과실이 있는 기업에 뼈아픈 판결을 내리게 만들만한 변호사들과 협력하는 중요성 강조, 단순한 소규모 합의금은 무책임한 경영을 지속하게 만들 위험성 경고 선택적으로, 소송 임박 데이터를 투자사에 판매 가능성 언급, 궁극적으로는 데이터 유출 뉴스만으로도 해당 기업 주가가 타격받는 당연한 사회 분위기 조성 바람
- 합의금이 발생할 때마다 소액을 바로 좋은 곳에 기부할 수 있으면, 집단 소송에 참여할 의욕이 더 생길 것 같다는 바람 전달
- 해당 은행 서비스에 대해, 그런 시스템에 보관된 데이터 자체가 또 유출되는 건 얼마나 오래 걸릴지 불안함 농담
- 이런 시스템은 오히려 역효과 가능성 우려 기업이 유출 사실을 공개하는 것 자체가 이미 어려운 상황에서, 이런 구조는 리스크만 키워 공개 회피만 늘릴 것이라 걱정 내 정보가 유출되었는지 알고 비번을 바꾸는 게 낫다는 의견
- 내 개인 정보가 Google에 팔린 것 때문에 Blue Shield에서 보상받을 날을 여전히 기다리고 있다는 불만과 함께 서비스 의향 의사 표현
- 불과 최근 10년 사이에 LinkedIn처럼 거대한 사이트가 솔트를 적용하지 않은 비밀번호를 저장했다는 사실이 놀라움, 현대에 어떻게 이런 실수를 할 수 있냐는 의문
- 의도치 않게 이런 일이 생각보다 쉽게 발생할 수 있다는 사실 설명 중간 미들웨어 입장에서 보면, JSON 데이터 내 password 필드는 단지 또 하나의 필드로 인식될 수 있고, API나 로깅 시스템이 요청 본문 전체를 로그로 남기게 되면 실제 문제 발생 가능성 솔트 없는 비밀번호를 비밀번호 저장소에 직접 저장하는 일은 드물겠지만, 예를 들어 안드로이드 앱의 API 게이트웨이에서 ‘비밀번호 찾기’ 같은 플로우가 민감 정보임을 누락하면 비슷한 문제가 생긴다 경험 공유
- 이런 실수가 생기는 건 엔지니어링 면접에서 Leetcode Hard 문제를 충분히 안 냈기 때문이라는 농담성 의견
- AI Slop(인공지능 기반 품질 저하) 얘기는 많이 하는데, 실제로 오랜 기간 Outsourced Slop(외주 개발의 품질 저하) 문제도 심각하게 존재했다는 지적 LinkedIn도 외주 프로그래머 산출물이 주요 원인일 가능성 높다는 경험 기반 지적 강력하고 유능한 관리자가 품질 기준을 세우고 검증해야지만 외관상 멀쩡하고 속은 허술한 제품을 피할 수 있다는 주장
- 이런 실수가 일어나는 건 과거에 구축한 오래된 레거시 메인프레임 등, 아무도 관리나 마이그레이션에 시간·예산을 투자하지 못해 방치된 시스템 때문일 가능성 대기업일수록 중요 시스템의 관성(ossification)이 너무 강해져 1시간 정도만 중단돼도 수백만 원 이상의 ‘손실’로 여겨 정비가 더욱 불가능해지는 구조 문제점 지적
- 많은 일반인이 Have I Been Pwned를 자주 사용하고 1Password로 유입되는 것도 최고의 선택지라고 생각 실제로 1Password와의 프로모션은 훌륭하게 어울리는 협업 언급 해당 배너 문구를 "강력히 추천"처럼 눈에 더 띄게 바꿨으면 좋겠다는 제언 공유 소셜 계정 해킹 피해의 대부분이 비밀번호 재사용 때문이고, 이런 경험에서 안전한 비밀번호 사용 교육과 패스워드 매니저 유입이 매우 긍정적이라고 강조 지난 1년간 약 20건 넘게 실제로 문제 해결 지원했던 경험 공유하며 리뉴얼 축하
- 모든 데이터 유출 내역을 로고와 소개 문구와 함께 세로 스크롤 형태로 보여줘서 무섭지만 놀라운 기능 감상
- 데이터 유출을 볼 때 무력함을 느끼고, 신용동결 외에는 할 수 있는 조치가 거의 없다는 자조
- 최고의 데이터 유출 기록 보유자는 누구일지 궁금 내 메인 이메일은 지금까지 40건의 유출에 등장했고, 제일 오래된 건 2011년 6월(HackForums, 기억도 없음), 최근은 2024년 9월(FrenchCitizens, 프랑스와 관련 없음)이라는 경험 공유
- 한 명이 그 기록을 1개 차이로 넘었다고 답변
- john@yahoo.com 이메일이 무려 322건의 유출에 올랐다는 놀라운 기록 공유
- 좀 더 프라이버시를 원한다면, 해당 서비스 내에서 내 이메일 검색 결과를 숨기는 opt-out 기능이 있다는 팁 제공
- 여러 개의 이메일 별칭을 쓰기 때문에 하나하나 검색이 불가능해, 도메인으로 한번에 검색하는 기능이 있으면 좋겠다는 바람
- "The Domain Search Feature" 안내 아래에서 도메인 소유권 인증 후 한 번에 결과를 볼 수 있다는 방법 안내
- 정말 멋진 사이트라는 감상과 함께, 이런 문제를 정부가 더 진지하게 받아들이길 바라는 소망 신분 도용, 계정 탈취 등은 결국 데이터 유출에서 시작되고, 오늘날에는 실제 집에 도둑이 드는 것보다 디지털 계정이 털리는 게 더 심각한 재난임을 강조 물리적 침입의 경우 911 등 신고와 추적 등이 분명히 존재하지만, 디지털 침해는 연락처도 없고, 해결과정도 별로 존재하지 않는다면서 사회적 대응이 바뀌길 촉구
- 리뉴얼 디자인을 매우 긍정적으로 평가하며, Troy의 업데이트를 따라가는 것도 즐거움이지만 때로는 블랙 유머처럼 느껴지는 흥미로움 언급 타임라인이 가장 오래된 유출부터 최근으로 정렬된 것 같지만, 날짜 표기가 데이터가 유출된 시점이 아니라 유출 사실이 공개된 시점이라는 혼란 경험 해결책으로 정렬·표기 모두 ‘공개일 기준’으로, 카드 내에서 실제 유출 날짜를 기준 형식으로 표기하는 것이 더 명확할 것이라는 제언