웹사이트 비밀번호 제한이 안전하지 않은 이유

최근 몇 년 동안 계정을 만들었다면, 많은 사이트들이 특정 조건에서 “안전하지 않은“ 비밀번호를 사용했다고 경고하는 것을 보았을 것입니다. 때때로 비밀번호 필드 옆에 약한 비밀번호를 사용하고 있다는 작은 메시지가 나타나기 전에 “등록” 버튼을 누를 필요조차 없습니다.
일부 사이트는 사용자가 약한 비밀번호로 등록하는 것을 완전히 막기도 하지만, 다른 사이트는 경고만 하고 사용자가 원하는 대로 하도록 내버려 둡니다. 어쨌든 이러한 사이트들은 (대부분) 하나의 공통점을 가지고 있습니다: 그들의 “안전한 비밀번호” 기준은 당신을 안전하게 지켜주지 않습니다.
나쁜 습관 만들기

대부분의 웹사이트에서 가장 먼저 눈에 띄는 것은 모두 “강력한” 비밀번호로 간주되는 것에 대해 유사한 기준을 가지고 있다는 것입니다. 대부분의 사이트에서 기준은 다음과 같습니다:
- 최소 6 또는 8자
- 최소 하나의 숫자와 하나의 문자
- 때때로 최소 하나의 대문자.
이 경우, “Ironclad1”과 같은 비밀번호는 아주 훌륭하며 해당 웹사이트의 요구 사항을 충족합니다. 대부분의 사이트가 이러한 요구 사항만 가지고 있기 때문에 사람들은 “Ironclad1”, “Sallyepstein4”, “Michael1985” 등이 좋은 비밀번호라고 생각하게 됩니다. 사이버 보안에 관한 책의 처음 세 페이지를 읽어본 사람이라면 이것이 매우 안전하지 않다는 것을 알지만, 이는 보안이 다섯 줄의 코드로 가치가 있는 사후 생각으로 여겨지는 수백만 개의 웹사이트에 의해 암묵적으로 규범으로 자리잡고 있습니다.
해커는 단순히 사전 공격을 사용하여 당신의 비밀번호를 해킹할 수 있으며, 그게 전부입니다.
일부 웹 서비스(예: Google)는 비밀번호를 생성할 때 기호(예: “!” 또는 “$”)를 사용해야 한다고 요구하기도 합니다. 이는 “ $allyepstein4”와 같은 유효한 비밀번호를 만들어내며, 사전 공격은 수년 동안 더 정교해졌습니다.
좋은 비밀번호 습관이란?

좋은 비밀번호를 만드는 것에 대한 많은 논의가 있지만, 모든 사람이 일반적으로 동의하는 몇 가지 사항을 살펴보겠습니다. 좋은 비밀번호는 다음과 같습니다:
- 대문자, 숫자 및 소문자와 같은 다양한 알파벳 숫자 변형을 포함합니다.
- 예측할 수 없는 위치에 기호가 있습니다(예: “@shley”는 “@$_hley”보다 덜 안전합니다. 왜냐하면 단어의 중간에 밑줄이 있어 사전 공격이 일반적으로 “@”를 “a”로, “$”를 “s”로 대체하는 위치를 스캔하기 때문입니다).
- 공백을 포함합니다(예: “I @te a S4nDw1ch”)
- 합리적인 문자 수의 상한에 도달합니다(예: “ I l0v3 LuC#Y “는 “ Th1S p4ssword sH_oulD b3 h@rd to cr@ck “보다 덜 안전합니다).
- 단어의 비정상적인 철자를 포함합니다(예: “schuld” 대신 “should”, “beffe” 대신 “beef”, “inszteda” 대신 “instead”, “mektekezier” 대신 “maketecheasier” 등).
물론, 당신이 가질 수 있는 최고의 비밀번호 중 하나는 기억하기 쉽지 않습니다(예: “ ifjecBucE083$&&8c ociefjC#&$6c iof0e0($# “). 제공된 예가 모든 위의 규칙을 포함하여 완전한 의미 없는 조합이라는 점에 유의하십시오. 이는 가장 정교한 사전 공격에도 매우 비정상적입니다. 비밀번호의 해시를 저장하는 데이터베이스가 안전하고 암호화 키가 올바르게 관리된다면, 해커가 당신의 계정을 해킹할 가치가 줄어들 것입니다.
물론 모든 서버가 안전한 것은 아니며, 당신이 사용하는 서비스 중 하나가 해킹되어 비밀번호가 유출될 수 있습니다. 그래서 각 서비스마다 다른 비밀번호를 사용하는 것이 중요합니다.
하지만 15개의 비밀번호를 기억하는 것은 쉽지 않으며, 제가 제공한 예시처럼 “가장 좋은 비밀번호 중 하나“를 기억하는 것은 더욱 어렵습니다. 이를 해결하기 위해, 당신은 비밀번호를 관리해주는 매우 안전한 단일 로그인(또는 “아이덴티티 관리”) 서비스를 사용할 수 있습니다. 이러한 서비스는 당신이 비밀번호를 기억할 필요 없이 관리해줍니다. 몇 년 동안 존재해왔지만, 이 개념은 여전히 미지의 영역입니다(적어도 제 전문적인 의견으로는), 따라서 신중하게 접근해야 합니다. 스스로 조사하고 서비스 이름 뒤에 “breach”라는 단어를 구글링하여 해킹된 적이 있는지 확인하세요.
문제 해결 방법

우리가 해결하려고 하는 문제는 웹에서 계정을 생성하는 대규모 사용자들이 비밀번호 생성에 대한 모범 사례를 이해하도록 하는 것입니다. 이는 거대한 작업처럼 들리죠?
사실, 정보를 어딘가에 제공하는 것만큼 쉽습니다. Google은 가이드라인을 통해 이를 잘 수행하고 있지만, 그다지 충분하지는 않습니다.
칭찬에도 불구하고, 비밀번호 필드 옆에 이러한 가이드라인에 대한 링크를 포함하는 것이 가장 좋다고 생각합니다. 이는 사용자가 계정 등록 단계에서 쉽게 접근할 수 있도록 해줍니다. 누군가 이를 무시한다면, 그들의 선택이지만, 그 시점에서 누군가가 이 주제에 대한 교육 자료를 읽을 기회를 얻지 못했다고 말할 수는 없습니다.
이 문제의 유일한 어려운 점은 계정 데이터베이스를 보유한 수백만 개의 웹사이트가 이 관행을 채택하도록 설득하는 것입니다. 그러나 이러한 웹사이트의 대부분이 큰 상자 소프트웨어(예: WordPress 또는 Drupal)를 사용하므로, 이러한 소프트웨어의 개발자에게 연락하여 향후 업데이트에서 이러한 기능을 제공하는 것이 더 나은 아이디어일 것입니다. 웹사이트가 소프트웨어를 업데이트하면 자동으로 등록 페이지에 이러한 가이드라인이 추가됩니다!
좋은 비밀번호에 대한 인식을 확산하기 위해 우리가 할 수 있는 다른 방법은 무엇일까요? 댓글에서 논의해 봅시다!