4P by neo 7달전 | favorite | 댓글 1개

이메일 주소는 계정의 '영구적' 식별자로 적합하지 않음

  • 이메일 주소를 계정의 영구적 내부 식별자로 사용하는 것은 문제가 있음. 사람들의 이메일 주소는 조직 내에서조차 변할 수 있으며, 이는 이름이나 로그인 정보가 바뀌는 다양한 이유와 유사함.
  • 조직이 사람들에게 할당된 이메일 주소를 변경하거나 다시 설정하지 않는 것은 법적으로 지속 가능하지 않을 수 있음.
  • 이메일 주소가 재사용되거나 특정 인물에 의해 재할당될 가능성이 있으며, 이는 보안 문제를 야기할 수 있음.

내부 식별자는 의미 없어야 함

  • 계정 복구를 위해 이메일 주소를 기억해야 할지라도, 내부 계정 식별자는 의미 없는 것이어야 함. 이는 장기적으로 시스템 관리를 간소화함.
  • OIDC와 같은 인증 시스템에서는 이메일 주소 대신 고유하고 영구적인 내부 ID를 사용해야 함.
  • 이메일 주소에 너무 많은 의미를 부여하는 것은 보안 문제를 초래할 수 있음.

GN⁺의 의견

  • 이 글에서 가장 중요한 것은 이메일 주소를 영구적인 계정 식별자로 사용하는 것이 여러 가지 문제를 야기할 수 있다는 점임.
  • 이 주제가 흥미로운 이유는 많은 시스템이 사용자 인증을 위해 이메일 주소를 사용하고 있지만, 이 글은 그러한 관행이 잠재적인 보안 위험과 관리상의 문제를 일으킬 수 있음을 지적함.
  • 이 글은 소프트웨어 엔지니어들에게 내부 시스템 설계 시 고려해야 할 중요한 보안 및 관리 측면에 대한 인식을 높이는 데 도움이 될 수 있음.
Hacker News 의견
  • 이메일과 사용자 이름의 한계성

    • 이메일 주소는 변경될 수 있고, 사람들은 이전 이메일에 대한 접근을 잃을 수 있음.
    • 사용자 이름에 대한 불만이 있으며, 사람들은 고유하지 않은 이름을 선택하길 원함. 예를 들어 user53267 같은 이름 대신에.
    • 장치를 잃어버리는 경우도 있으며, 쿠키에 저장된 비밀 UUID나 장치의 패스키만으로는 충분하지 않음.
    • 이메일이나 사용자 이름이 안정적인 사람도 있지만, 같은 주 장치를 수년 이상 사용하는 사람은 거의 없음.
    • 업무용 이메일 계정(first.last@company.com)과 벤더 소프트웨어가 'Google로 로그인'을 사용하는 방식에서 문제가 자주 발생함.
    • 사람들은 결혼하고, 이혼하고, 성별 전환을 하고, 문화를 옮기며 새로운 이름을 선택함. 이름과 이메일 주소는 변함.
    • OIDC와 같은 것들이 사용자 이름과 이메일 주소를 변경할 수 있는 표준 API를 필요로 할 수 있음.
  • 개인적인 대처 방안

    • Gmail은 AI 알고리즘에 의해 임의로 잠길 수 있고, 문제가 생겼을 때 구제받기 어려움.
    • Yahoo는 오래된 이메일로 인증을 요구하여 접근을 잃을 수 있음.
    • Yahoo/AOL/Tutanota/Protonmail 등은 자주 로그인하지 않으면 계정을 자동 삭제할 수 있음.
    • 자체 호스팅은 초기 이메일이 필요하며, 이를 잃으면 호스팅 계정에 대한 접근을 잃을 수 있음.
    • Duo push는 전화기가 고장 났을 때 문제가 될 수 있음.
    • SMS 인증은 전화기 고장, 플랜 접근 상실, 직원의 보안 문제 등으로 인해 위험할 수 있음.
    • 대학교 Gmail 주소를 사용하는 것이 현재로서는 최선의 방법으로 보임. 문제가 생겼을 때 대학교 지원 센터에 도움을 요청할 수 있음.
  • 이메일과 전화번호의 문제점

    • 이메일은 영구적인 식별자로 좋지 않으며, 전화번호를 식별의 일부로 사용하는 것은 더욱 나쁨.
    • 자신의 도메인을 통해 거의 20년 동안 같은 이메일을 사용했지만, 같은 기간 동안 거의 12개의 전화번호를 거쳐감.
    • 해외 거주 중에도 미국 번호를 유지하기 위해 AT&T에 매달 약 $150를 지불하고 있음.
  • 공개 키 이메일 주소에 대한 제안

    • 공개 키 이메일 주소(<pk-12345@gmail.com>)를 지원하는 아이디어 제시.
    • Google이나 Hotmail이 서비스를 중단하더라도 다른 서비스에서 개인 키로 인증하여 동일한 계정에 접근할 수 있음.
    • 이메일 클라이언트가 이러한 주소를 매핑하거나 공개 키로 추적할 수 있도록 함.
    • 이 아이디어는 대규모 지원이 필요하지만, 생각해볼 가치가 있음.
  • UUID의 사용

    • 무작위 UUID가 최선이라는 의견.
    • 사용자의 초기 이메일을 해시하는 것은 솔팅만으로는 충분하지 않을 수 있음.
  • 다중 이메일 주소 연결

    • 계정에 여러 이메일 주소를 연결할 수 있도록 이메일 시스템을 변경 중임.
    • 학생 할인을 제공하기 위해 교육용 이메일을 확인하는 것이 가장 쉬운 방법이지만, 대부분의 사람들은 그 이메일로 가입하고 싶어하지 않음.
    • 여러 이메일을 허용함으로써 두 세계의 장점을 모두 가질 수 있음.
  • 이메일 주소와 물리적 주소의 연결 문제

    • 한 이메일 주소를 여러 물리적 주소에 사용하지 못하게 하는 에너지 공급업체의 예시.
    • 온라인 계정을 설정할 때 동일한 이메일 주소를 사용할 수 없어 문제가 발생함.
  • 클라이언트 측 솔루션

    • 도메인을 지불하여 이메일 별칭을 100% 제어할 수 있음.
    • 현재 제공자(Google)에 문제가 생기더라도 자체 서버에서 메일을 호스팅하여 계정을 검색하고 별칭 소유권을 유지할 수 있음.
  • 식별과 인증의 문제

    • 식별과 인증을 혼합하여 논의하는 문제가 있음.
    • 식별 문제는 이름, 이메일, 신분증 등 인간에게 연결된 고유한 문자열이나 숫자를 통해 사실상 해결됨.
    • 인증 문제는 실제로 누구인지 확인하는 것으로, 현대 기술이 직면한 가장 큰 문제 중 하나임.
    • 비밀번호, 지리적 위치, IP 주소, 이메일, 전화번호, 보안 토큰 및 인증서의 조합을 사용하지만, 이러한 시스템은 정기적으로 침해되며 보안을 강화하면 합법적 사용자에게 부정적인 영향을 미침.
  • 백엔드 문제

    • 사용자에게는 이메일이 ID이지만, 시스템 데이터 내에서는 이메일을 기본 키로 사용해서는 안 됨.
    • 데이터베이스 설계의 기본적인 문제로, 이메일과 같은 식별자를 사용하지 않고 고유한 ID(UUID 또는 시퀀스에서 자동 증가)에 매핑하는 조회 테이블을 가짐.
    • 기사는 이 구분을 명확히 하지 않아 사용자가 이 추상화를 인식해야 한다는 식으로 읽힐 수 있음.