귀하는 로그인되어 있지 않습니다. 이대로 편집하면 귀하의 IP 주소가 편집 기록에 남게 됩니다.스팸 방지 검사입니다. 이것을 입력하지 마세요!== 공격 방식 == 비밀번호를 노리는 공격은 다양하다. 공격자는 반드시 영화처럼 멋진 화면을 띄우고 해킹하지 않는다. 실제로는 유출된 목록을 자동으로 대입하거나, 사용자가 스스로 입력하도록 속이거나, 이미 감염된 기기에서 입력값을 훔치는 식의 현실적인 공격이 많다. === 무차별 대입 공격 === '''무차별 대입 공격'''({{llang|en|brute-force attack}})은 가능한 모든 조합을 하나씩 시도하는 방식이다. 이론적으로는 모든 비밀번호를 언젠가 맞힐 수 있지만, 길고 복잡한 비밀번호는 가능한 조합이 너무 많아 현실적인 시간 안에 맞히기 어렵다. 다만 실제 공격은 순수한 무차별 대입만으로 이루어지지 않는다. 공격자는 흔한 비밀번호, 사전 단어, 유출된 비밀번호, 사람들의 변형 습관을 먼저 시도한다. 그래서 "문자 종류가 많다"보다 "예측 가능한 패턴을 피한다"가 중요하다. === 사전 공격 === '''사전 공격'''({{llang|en|dictionary attack}})은 사전에 있는 단어, 흔한 문구, 자주 쓰이는 비밀번호 목록을 이용해 시도하는 공격이다. password, qwerty, dragon, football 같은 흔한 단어는 물론, 한국어 이름, 아이돌 이름, 애니메이션 캐릭터 이름, 회사명, 지역명, 학교명도 공격 목록에 들어갈 수 있다. 사전 공격은 단어를 그대로 넣는 것에서 끝나지 않는다. 공격자는 다음과 같은 변형도 시도한다. * 단어 뒤에 숫자 붙이기 * 첫 글자만 대문자로 바꾸기 * a를 @로, o를 0으로 바꾸기 * 끝에 느낌표 붙이기 * 현재 연도 붙이기 * 서비스 이름과 단어를 조합하기 따라서 "단어 하나를 살짝 변형한 비밀번호"는 안전하지 않다. === 크리덴셜 스터핑 === '''크리덴셜 스터핑'''({{llang|en|credential stuffing}})은 이미 유출된 아이디와 비밀번호 조합을 다른 서비스에 자동으로 넣어 보는 공격이다. 비밀번호 재사용이 위험한 가장 큰 이유다. 예를 들어 어떤 커뮤니티에서 이메일과 비밀번호가 유출되면, 공격자는 그 조합으로 쇼핑몰, 포털, 게임, 클라우드, 은행 등에 로그인을 시도한다. 사용자가 같은 비밀번호를 여러 곳에서 썼다면 공격은 성공한다. 이 공격을 막는 가장 좋은 방법은 다음과 같다. * 서비스마다 다른 비밀번호 사용 * 비밀번호 관리자 사용 * 다중 인증 활성화 * 로그인 알림 확인 * 유출 의심 시 즉시 변경 === 피싱 === '''피싱'''({{llang|en|phishing}})은 사용자를 속여 가짜 로그인 페이지에 비밀번호를 입력하게 만드는 공격이다. 비밀번호가 아무리 길고 복잡해도 사용자가 가짜 사이트에 직접 입력하면 공격자는 그대로 가져간다. 피싱은 다음 형태로 나타날 수 있다. * 은행을 사칭한 문자 * 택배 배송 조회를 가장한 링크 * 계정 정지를 알리는 이메일 * 회사 보안 점검을 가장한 로그인 페이지 * 게임 아이템 지급을 미끼로 한 가짜 사이트 * 클라우드 문서 공유 알림을 가장한 로그인 페이지 피싱에 강해지려면 주소창의 도메인을 확인하고, 의심스러운 링크를 누르지 않으며, 중요한 계정에는 패스키나 보안 키 같은 피싱 저항 인증 수단을 쓰는 것이 좋다. NIST는 비밀번호가 피싱 저항 인증 수단이 아니라고 명시한다.<ref name="nist-800-63b" /> === 키로깅 === '''키로깅'''({{llang|en|keylogging}})은 사용자가 키보드로 입력하는 내용을 훔치는 공격이다. 악성코드가 설치된 PC나 스마트폰에서는 사용자가 아무리 강한 비밀번호를 입력해도 그대로 탈취될 수 있다. 공용 PC, PC방, 감염된 기기, 출처 불명의 프로그램을 실행한 환경에서는 중요한 계정에 로그인하지 않는 것이 좋다. 특히 이메일, 금융, 클라우드, 개발자 계정은 신뢰할 수 없는 기기에서 로그인하지 않는 편이 안전하다. === 사회공학 === '''사회공학'''({{llang|en|social engineering}})은 기술적 취약점보다 사람의 심리와 실수를 이용하는 공격이다. 공격자는 사용자를 속여 비밀번호를 말하게 하거나, 복구 코드를 넘기게 하거나, 원격 제어 프로그램을 설치하게 만들 수 있다. 예를 들어 다음과 같은 말은 의심해야 한다. * "보안 점검을 위해 비밀번호를 알려 달라." * "본인 확인을 위해 인증번호를 불러 달라." * "계정이 정지되었으니 아래 링크에서 로그인하라." * "원격으로 도와줄 테니 프로그램을 설치하라." * "회사 관리자이니 임시 비밀번호를 알려 달라." 정상적인 관리자, 은행, 공공기관, 보안 담당자는 사용자의 비밀번호 원문을 요구하지 않는다. === 데이터베이스 유출 === 서비스 자체가 해킹되어 회원 정보 데이터베이스가 유출되는 경우도 있다. 이때 서비스가 비밀번호를 평문으로 저장했다면 피해는 치명적이다. 해시 처리를 했더라도 약한 알고리즘을 썼거나 솔트가 없거나 비용 인자가 낮으면 공격자가 오프라인에서 대량으로 추측할 수 있다. 따라서 사용자는 서비스마다 다른 비밀번호를 사용해야 하고, 개발자는 비밀번호를 안전하게 저장해야 한다. 편집 요약 가온 위키에서의 모든 기여는 크리에이티브 커먼즈 저작자표시-동일조건변경허락 라이선스로 배포된다는 점을 유의해 주세요(자세한 내용에 대해서는 가온 위키:저작권 문서를 읽어주세요). 만약 여기에 동의하지 않는다면 문서를 저장하지 말아 주세요. 또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다. 저작권이 있는 내용을 허가 없이 저장하지 마세요! 취소 편집 도움말 (새 창에서 열림)