비밀번호 정책을 설계하세요
규정을 준수하고 안전하며 사용자 친화적인 제품 비밀번호 정책을 수립하는 방법에 대한 통찰력을 얻고, Logto가 인증 프로세스의 안전성을 보장합니다.
당신의 비밀번호가 진정 당신을 보호하고 있나요?
제품에서는 고전적인 인증 방법인 비밀번호에 의존해야 할 가능성이 높습니다. 비밀번호가 완전히 대체되지는 않겠지만, 대안 인증 방법에 비해 공격에 더 취약합니다. 당신의 비밀번호 정책은 진정으로 안전하고 규정을 준수하고 있습니까? 다양한 비밀번호 정책 기법을 알고 있더라도, 이들을 층층이 쌓는 것이 정말 효과적일까요?
우리는 NIST 사양에 대한 심층 연구를 통해 비밀번호 정책 설계 및 구성의 복잡성을 해결하고, 주요 제품 비밀번호 정책을 검토하여 사용자 경험의 균형을 보장합니다. 비밀번호 규정 준수의 중요성을 강조하면서, 비밀번호 전략과 관련된 어려움을 완화하고, 비밀번호와 다른 다중 요소 인증(MFA) 검증 요소의 원활한 통합을 통해 계정 보안을 보장하는 포괄적인 프로세스를 제공합니다.
사용자가 필요로 하는 비밀번호 유형은 무엇일까요?
제품 디자이너는 종종 제품이 충분히 안전한지 여부에 대해 고심하게 되며, 결과적으로 엄격하고 복잡한 비밀번호 정책을 구현하게 됩니다. 예를 들어, 대문자와 소문자, 숫자, 심지어 특수 문자를 조합하도록 요구하거나, 직원들에게 정기적으로 비밀번호를 변경하도록 강요하는 등의 경우입니다.
이러한 비밀번호 요구 사항에 직면하면, 사용자는 즉각적으로 불만을 표명하게 됩니다. "왜 이렇게 복잡한가요? 비밀번호 기억하기가 마치 전일 정규직 일처럼 느껴져요!" 이는 제품 매니저에게 더 복잡한 비밀번호 정책이 반드시 더 나은 것인지에 대한 의문을 남기게 됩니다. 포괄적인 비밀번호 정책의 구성 요소를 분석하여 알아봅시다.
다음 섹션에서는 비밀번호 정책의 세부 사항을 더 깊이 탐구하여 보안과 사용자 편리성 사이의 균형을 맞춥니다. 올바른 비밀번호 요구 사항을 정의하고, 우리의 접근 방식을 뒷받침하는 데이터 기반 통찰력을 제공합니다.
모든 비밀번호 요소의 체크리스트
먼저, 수많은 제품과 NIST 사양을 분석한 후, 비밀번호 요소와 설계 권장 사항의 종합 목록을 작성했습니다.
이 요소들은 대략 세 가지 그룹으로 분류되었습니다:
- 비밀번호 설정 요구 사항: 사용자가 설정한 비밀번호의 최소 요구 사항.
- 비밀번호 보안 모니터링: 비밀번호 위험이 감지될 때 빠른 조치와 피드백 제공.
- 비밀번호 사용자 경험: 비밀번호 생성 및 검증 시 사용자의 입력 경험 향상.
카탈로그 | 요소 | 분석 (https://pages.nist.gov/800-63-3/sp800-63b.html#sec5 참조) |
---|---|---|
비밀번호 설정 요구 사항 | 길이 | 비밀번호 길이를 늘리는 것이 복잡성보다 비밀번호 크래킹을 방지하는 데 더 효과적입니다. NIST는 최소 8자 이상의 길이를 제안하지만, 더 긴 비밀번호도 허용해야 합니다. |
문자 유형 | 비밀번호는 대문자, 소문자, 숫자, 기호 및 유니코드 등 다양한 문자 유형을 지원할 수 있습니다 (공백 문자도 허용해야 합니다). | |
비밀번호 정책은 사용자에게 특정 유형의 정보를 기억하도록 요구해서는 안 됩니다. 이것은 복잡성을 증가시키지만 보안을 효과적으로 향상시키지는 않습니다. https://www.notion.so/General-f14f0fb677af44cb840821776831a021?pvs=21 | ||
낮은 보안 구문 | 사용자가 반복적이거나 순차적인 문자, 일반 단어, 사용자 정보 또는 제품 컨텍스트 정보를 사용하는 경우 쉽게 예측 가능하거나 크랙 가능한 패턴을 사용한 경우 비밀번호를 변경하도록 권장하는 것이 좋습니다. | |
누출된 비밀번호 | 신규 사용자 비밀번호는 유출된 비밀번호 목록에 대해 검사하여 안전하지 않은지 확인해야 합니다. | |
비밀번호 보안 모니터링 | 비밀번호 검증 속도 제한 | 잘못된 비밀번호 시도 횟수를 제한하십시오. 이 한계에 도달하면 다중 요소 인증(MFA) 요구, 푸시 알림 전송, 쿨다운 시간 부과, 계정 일시 정지 등의 보안 조치를 구현합니다. |
강제로 비밀번호 변경 | 비밀번호는 자의적으로 변경할 필요가 없어야 합니다. 그러나 인증자가 손상된 증거가 있는 경우 비밀번호 변경을 강요해야 합니다. | |
비밀번호 기록 | 사용할 수 없는 과거 비밀번호의 기록을 유지하십시오. 비밀번호 재사용에 대한 과도한 제한은 사 용자가 이 규칙을 약간 수정하는 방식으로 우회할 수 있기 때문에 권장되지 않습니다. | |
비밀번호 변경 후 세션 해제 | 사용자가 비밀번호 변경 후 다른 기기에서 로그아웃할지 여부를 선택할 수 있도록 허용합니다. | |
비밀번호 입력 경험 | 비밀번호 강도 계측기 | 사용자가 강력한 기억 비밀번호를 선택하도록 안내합니다. |
비밀번호 프롬프트 | 비밀번호 힌트를 표시하지 마십시오. 이는 비인가 접근 가능성을 증가시킵니다. | |
비밀번호 복사 및 붙여넣기 | "붙여넣기" 기능을 허용하여 비밀번호 관리자를 사용할 수 있도록 합니다. | |
비밀번호 보기 | 입력된 비밀번호를 제출되기 전까지 점 또는 별표 대신 표시할 수 있는 옵션을 제공합니다. |
비밀번호 경험을 구성하는 도구
체크리스트의 모든 항목을 일일이 훑어볼 인내심이 없을 수 있습니다. 이러한 구성 옵션을 모두 포괄하는 강력한 비밀번호 도구를 설계한다면, 이는 개발자에게는 복잡한 비밀번호 정책보다도 더 복잡한 일이 될 수 있습니다. 따라서 비밀번호 요소를 세 가지 단계로 간소화합시다.
단계 1: 불필요한 규칙 폐기
표에서 언급했듯이, 일부 구식 비밀번호 규칙은 보안을 강화하는 것처럼 보일 수 있지만 실제로는 불필요한 일종의 혼란과 사용자에게 혼란을 주는 경우가 많습니다.
- 사용자들이 사용해야 할 문자 조합을 제한하지 마십시오. 문자 유형의 수를 제한하는 것만으로 충분합니다. 예를 들어, Facebook, Discord, Stripe는 특정 문자 유형의 조합을 요구하지 않으며, Google의 비밀번호 정책은 "적어도 두 가지 유형의 글자, 숫자, 기호"를 요구할 뿐입니다.
- 주기적인 비밀번호 변경을 의무화하지 마십시오. 이는 사용자 기억에 불필요한 부담을 줍니다. 대신, 자격 증명 손상의 위험이 있을 때만 비밀번호 변경을 요구하십시오.
- 명확한 최소 비밀번호 요구 사항과 비밀번호 강도 계측기 중 하나만 선택하여 사용자의 오해를 방지하십시오.
- 지나치게 복잡한 규칙을 처음부터 표시하지 말고, 사용자가 발생하지 않을 실수에 대해 읽는 것에 집중하지 않도록 하십시오.
- 가능한 공격자에게 이점을 주지 않도록 비밀번호 힌트를 사용하지 마십시오.
단계 2: 다양한 제품을 위한 맞춤 제공
최소한의 비밀번호 정책을 위한 유연한 구성 옵션을 제공하여 개발자가 학습 곡선을 줄이고 상자에서 꺼낸 것처럼 사용할 수 있는 로그인 경험을 제공합니다. 이러한 옵션에는 다음이 포함됩니다:
- 최소 길이: 기본값 8자, 최소 1자.
- 최소 요구 문자 유형: 제한 권장하지 않음, 즉 4가지 유형 중 1가지로 설정.
- 비밀번호 제한 어휘: 모든 제한을 활성화하는 것을 제안. 사용자는 동일 어휘를 유발하지 않을 수 없지만, 세 가지 이상의 비연속적인 문자를 추가하여 비밀번호 복잡성을 증가시킬 수 있습니다. 이 추가는 비밀번호의 무질서를 증가시킵니다.
- 손상된 비밀번호 금지: 신뢰할 수 있는 유출 비밀번호 데이터베이스를 사용하여 지원, 사용자가 동일한 비밀번호를 사용하여 직접 디렉토리 공격을 피할 수 있도록 방지합니다.
단계 3: 고정 값을 사용해 보안 보장
사용자가 맞춤할 수 없는 매개변수에 대해, 우리는 비밀번호 보안을 보장하기 위해 백업 논리를 구현했습니다. 고객의 맞춤 요구 사항이 있는 경우, 찾을 수 있도록 도와드리겠습니다.
- 비밀번호 검증 속도 제한: 비밀번호 검증의 연속 오류 수를 제한하고 로그인 중단 시간을 설정하여 연속적인 비밀번호 공격을 방지합니다. 추가적으로, 연속되는 실패 비밀번호 검증에 대한 웹훅을 제공하여, 이메일 통보를 전송하거나 계정의 높은 위험을 중단할 수 있습니다.
- 기본적으로, 비밀번호를 변경하고 토큰을 새로 고친 후 다른 기기의 세션을 지우고 있습니다. 이는 계정에 대한 부정 접근을 방지하는 추가 보안 계층을 제공하여 데이터의 기밀성과 보호를 보장합니다.
결론
이 세 가지 간단한 단계로 비밀번호 경험을 구성하는 과정을 간소화하여 보안과 사용자 편리성 사이의 균형을 맞출 수 있습니다. Logto를 사용하면 제품의 안전하고 사용자 친화적인 인증 시스템을 설정할 수 있습니다. 다가오는 MFA 기능에 주목하세요, 그리고 제품의 보안을 더 이상 통제하시기 바랍니다.