관리자 비밀번호가 아직 SHA-256일 때, GPU 오프라인 크랙 뒤에 방화벽 밖에 먼저 잠기는 이유

2026년 10월 6일, FBI와 미국 비밀경호국이 FortiBleed 공동 공지를 냈다. 인터넷에 열린 FortiGate 방화벽과 SSL VPN에서, 재사용 비밀번호와 남아 있는 SHA-256 저장이 대규모 검증과 오프라인 크랙에 쓰였다. 일부 조직은 원래 계정의 비밀번호가 바뀌거나 계정이 지워져서 로그인하지 못했다. PBKDF2를 지원한다고 적힌 버전으로 올려도, 그 관리자가 로그인하기 전에는 교체가 자동으로 끝나지 않는다.

먼저 결론만 적습니다. 남아 있는 SHA-256이 답하는 질문은 「해시가 한번 빠져나가면, 추측 한 번이 싼가」입니다. 재사용 비밀번호가 답하는 질문은 「아예 추측할 필요가 있는가」입니다. 방화벽 밖에 잠기는 일은, 침입 뒤에 누군가 원래 계정을 건드렸다는 뜻이지, 알고리즘이 스스로 문을 잠근다는 뜻이 아닙니다. PBKDF2를 지원하는 FortiOS로 올린 뒤에도, 옛 해시는 그 관리자가 로그인에 성공하거나 슈퍼 관리자가 비밀번호를 다시 설정해야 새 방식으로 바뀝니다. 나중에 다운그레이드할 수 있도록, 옛 SHA-256은 기본적으로 숨은 필드에 남습니다.

검색 의도를 한 문장으로 나누기

「FortiBleed」「방화벽 관리자가 밖에 잠김」「SHA-256으로 비밀번호 저장」을 찾는 사람은, 같은 뉴스에 겹쳐 있는 세 가지를 갈라야 합니다. 첫째, 예전에 유출됐거나 인포스틸러 로그에 있던 비밀번호로, 아직 인터넷에 열려 있는 FortiGate SSL VPN에 바로 대입합니다. 둘째, 장비에 제조사가 레거시 SHA-256이라고 부르는 관리자 비밀번호 재료가 남아 있으면, 해시를 가져간 뒤 GPU 클러스터로 오프라인 추측을 할 수 있습니다. 셋째, 들어간 뒤에 상대가 계정을 새로 만들고 원래 관리자를 바꾸거나 지워서, 정당한 사람이 포털을 열지 못합니다.

이 글은 방화벽이나 VPN 계정을 아직 맡고 있는 운영 담당, 그리고 「오늘 밤 관리자 비밀번호를 전부 바꾸라」는 요청을 받은 동료를 위한 글입니다. 비밀번호 생성기의 조작 페이지를 대신하지 않고, 비밀번호 강도 검사가 이 장비가 FortiBleed에 들어갔는지 조회한다고 말하지 않습니다. 가져갈 내용은 이것입니다. 빠른 해시, 느린 키 유도, 비밀번호 재사용, 계정 삭제가 각각 어떤 실패를 막는지, 그리고 설정 백업에서 어느 두 표시를 이 기기에서 대조할 수 있는지입니다.

10월 6일 공지가 실제로 적은 것

FBI와 미국 비밀경호국의 2026년 10월 6일 공동 공지(문서 번호 JCSA-20261006-01, 표시 TLP:CLEAR)는 이 활동을 FortiBleed라고 부릅니다. 대상은 인터넷에 노출된 Fortinet FortiGate 방화벽과 SSL VPN 게이트웨이입니다. 공지는 SOCRadar의 확인 숫자를 인용합니다. 장비 86644대 초과, 194개국. 공격이 이용한 것은 재사용되거나 이미 유출된 비밀번호, 그리고 남아 있는 SHA-256 비밀번호 저장이며, 그 결과 인증 재료를 한꺼번에 가져가 깨뜨렸다고 적습니다. 초기 관찰은 이렇습니다. 공격자는 이전에 확보한 비밀번호로, 인터넷에 노출된 Fortinet 방화벽을 계속 스캔하고 있습니다.

같은 문서는 상대의 백엔드 디렉터리가 한때 노출되어 도구 체인이 보였다고 적습니다. 스캔이 FortiGate SSL VPN 포털을 찾은 뒤, 이전 Fortinet 유출 모음과 인포스틸러 로그로 크리덴셜 스터핑과 패스워드 스프레이를 했습니다. 빼낸 비밀번호 해시는 Hashcat과 Hashtopolis로 스케줄된 GPU 클러스터에 들어가 오프라인 크랙을 거쳤습니다. 결과는 걸러지고 검증된 뒤, 방화벽에 관리자 계정이 새로 만들어졌습니다. 공지는 이후 영향을 초기 접근의 재판매로 쓰고, 이 경로가 랜섬웨어 연계 조직에 넘어가는 것이 관찰됐다고 하며 INC/Lynx와 Payload를 이름으로 듭니다. 이 문장들의 증거 등급은 「공지가 그렇게 적었다」입니다. 이 글이 다시 포렌식을 한 것은 아닙니다.

「비밀번호만 바꾸면 끝」과 바로 충돌하는 것은, 문서의 잠김 절입니다. 초기 대응에 따르면, 상대가 원래 계정을 지우거나 원래 계정의 비밀번호를 바꾸면 조직은 Fortinet 장비에 로그인하지 못합니다. 침입 동안 상대는 원래 없던 계정을 만듭니다. 어떤 경우에는 기존 계정을 지우는 목적이, 조직 자신의 접근을 막고 환경 안에서 횡적 이동을 이어 가는 것이었습니다. 그래서 공지는 대응이 통상적인 패치와 비밀번호 재설정을 넘어설 수 있다고 적습니다. 이 단계는 MITRE ATT&CK의 T1531(Account Access Removal, 계정 접근 제거)에 대응됩니다.

이 글은 해시 추출, 사전, 크랙 명령을 제공하지 않고, 공지에 있는 주소와 계정 이름 목록도 옮기지 않습니다. 그 목록은 이미 로그를 대조 중인 방어 쪽을 위한 것입니다. 아래 확인은 관리 권한이 있는 장비와 제조사 공개 문서만 사용합니다. 「뉴스를 검증한다」며 출처가 불명한 열린 디렉터리를 받지 말고, 비밀번호 해시가 들어 있는 설정 백업을 티켓이나 대화창에 붙이지 마세요.

재사용 비밀번호와 오프라인 크랙은 같은 길이 아니다

뉴스 제목은 「비밀번호가 약했다」로 원인을 한 덩어리로 만들기 쉽습니다. 공지 안에는 실패 조건이 다른 길이 적어도 두 개 있습니다. 크리덴셜 스터핑과 패스워드 스프레이는 온라인 로그인에서 일어납니다. 상대가 제출하는 것은 이미 알고 있거나 지금 시험 중인 평문입니다. 이때 장비가 비밀번호를 어떤 알고리즘으로 저장하는지는, 장비가 스스로 비교하는 방식에만 영향을 줍니다. 상대 손에 이미 있는 그 문자열에는 영향을 주지 않습니다. 그 문자열이 아직 유효한 VPN 또는 관리자 계정과 같으면 로그인은 성립합니다.

오프라인 크랙은 해시가 이미 복사된 뒤에 일어납니다. 상대는 포털을 두드리지 않고, 자기 장비에서 추측을 열거한 뒤 추측을 해시로 바꾸고, 가져간 재료와 비교합니다. 이 단계의 비용은 저장 방식이 추측 한 번에 일을 얼마나 시키는지, 그리고 비밀번호 자체의 탐색 공간이 얼마나 큰지에 달립니다. SHA-256은 무결성을 위해 설계된 빠른 해시입니다. 같은 입력은 언제나 같은 출력이 되고, 계산은 한 번이면 끝납니다. 파일 검증에는 맞습니다. 「공격자가 비밀번호를 한 번 추측할 때마다 눈에 띄는 대가를 치르게 하는」 일을 단독으로 맡기기에는 맞지 않습니다. GPU 클러스터를 빌려 하는 일은, 한 번에 끝나는 이 연산을 병렬로 돌리는 것입니다. 공지에서 Hashtopolis의 역할은 크랙 작업을 여러 기계에 나누는 것이지, 새로운 암호 알고리즘이 아닙니다.

경로 상대가 가진 것 저장을 PBKDF2로 바꾼 뒤
크리덴셜 스터핑 / 패스워드 스프레이 평문, 또는 아주 짧은 흔한 비밀번호 표 평문은 그대로 로그인된다. 느린 유도는 이미 아는 비밀번호를 막지 못한다
오프라인 크랙 장비에서 복사해 간 비밀번호 해시 추측 한 번의 비용이 커진다. 짧은 비밀번호와 재사용 비밀번호는 여전히 맞을 수 있다
밖으로 잠김 이미 들어간 관리 세션 알고리즘을 바꿔도, 상대가 원래 계정을 바꾸거나 지우는 일은 막지 못한다

표의 세 번째 줄은 흔한 오독을 막기 위한 것입니다. 「더 느린 해시로 바꿨다」를 「관리자가 다시는 밖에 잠기지 않는다」로 쓰는 오독입니다. 밖으로 잠기는 일은 인증이 이미 통과한 뒤에 일어납니다. 상대가 설정을 바꿀 수 있느냐에 의존하지, SHA-256이 얼마나 빠른지에 의존하지 않습니다. 반대로 비밀번호만 재설정하고 공개 관리면을 거두지 않으며 피싱에 강한 다요소 인증을 넣지 않으면, 공지가 적은 조치의 일부만 처리한 것입니다. FBI와 비밀경호국은 관리 접근을 조이고, 기존 관리 세션과 VPN 세션을 끝내고, 비밀번호를 재설정하고, 피싱에 강한 다요소 인증을 켜고, 모르는 계정을 대조하고, PBKDF2를 확인하는 일을 같은 완화 묶음에 적었습니다.

SHA-256과 PBKDF2가 각각 증명하는 것

OWASP Password Storage Cheat Sheet는 비밀번호 저장을 「빠른 해시를 한 번 계산하는 일」에서 떼어 냅니다. 고유한 솔트가 있는 느린 키 유도를 써야 합니다. 예는 Argon2id, bcrypt, scrypt, 또는 반복 횟수가 충분한 PBKDF2입니다. 솔트의 역할은, 미리 계산해 둔 대조표가 한 사람에게서 다음 사람으로 그대로 옮겨지지 않게 하는 것입니다. 반복이나 메모리 비용을 키우는 매개변수의 역할은, 추측 한 번마다 많은 일을 반복하게 하는 것입니다. 둘이 답하는 질문은 다릅니다. 솔트만 있고 여전히 SHA-256을 한 번만 계산하면 레인보우 테이블은 무력해지지만, 짧은 비밀번호에 대한 GPU 전수 시도는 여전히 쌉니다. 느리기만 하고 모두가 솔트를 공유하면, 많은 해시가 같은 표 하나로 덮입니다. 공지는 Fortinet의 옛 방식을 「솔트가 전혀 없다」고 쓰지 않았습니다. 이 글도 그 빈칸을 채우지 않습니다. 문장에 넣을 수 있는 것은, 제조사가 나중에 스스로 쓴 대조입니다.

Fortinet의 관리자 비밀번호 해시 기술 설명은 이렇게 적습니다. FortiOS 7.2.11, 7.4.8, 7.6.1부터, 방화벽 관리자 자격 증명을 저장하는 설정 해시가 SHA256에서 PBKDF2로 바뀝니다. 설명은 SH2를 SHA256, PB2를 PBKDF2로 씁니다. 이 기점보다 낮은 버전에서 같은 설명은 해시 함수를 여전히 SHA256으로 표시합니다. 7.2.11 릴리스 노트는 새 방식을 무작위 솔트가 있는 PBKDF2로 쓰고, 로컬 시스템 관리자 비밀번호의 저장 안전을 높인다고 합니다. 이것은 「화면에 암호화됨이라고 적혀 있다」와 같은 문장이 아닙니다. 여기서 SHA-256과 PBKDF2는 모두 단방향 유도입니다. 대칭 키로 비밀번호를 되돌릴 수 있는 암호문으로 감싼 것이 아닙니다. SH2를 보고 「디스크가 평문」이라고 읽으면 안 됩니다. PB2를 보고 「평문이 새어 나가도 상관없다」고 읽어도 안 됩니다.

PBKDF2에는 전 세계가 합의한 「이미 충분히 느리다」는 반복 횟수가 없습니다. 제조사 문서가 공개한 것은 알고리즘 이름, 솔트, 그리고 설정의 SH2 / PB2 표시입니다. 위 설명에는 티켓에 그대로 옮길 반복 정수가 없습니다. 대조할 때는 「백업에서 이 계정은 이미 PB2」라고 쓰는 편이, 「그러니 GPU로는 못 깬다」보다 문서가 실제로 받쳐 주는 문장에 가깝습니다. 짧은 비밀번호, 예전 유출에서 옮겨 온 비밀번호는 유한한 반복 아래에서도 싼 추측으로 남습니다. 길고 계정마다 다른 무작위 비밀번호가 올리는 것은 탐색 공간입니다. 공개 관리 인터페이스를 닫아 주지는 않습니다.

업그레이드는 로그인 전에 옛 해시를 바꾸지 않는다

기술 설명에서 가장 빠지기 쉬운 문장은 이것입니다. 더 이전 버전에서 올리면, 관리자 비밀번호는 해당 관리자가 새 펌웨어에서 로그인에 성공할 때까지 SHA256으로 저장됩니다. 모든 로컬 관리자를 PBKDF2로 만들려면 각자 적어도 한 번은 로그인해야 합니다. 아직 로그인하지 않은 계정은 super_admin이 비밀번호를 수동으로 갱신합니다. 펌웨어 버전 번호만 변경 티켓에 적는 것으로는, 설정에 SH2가 남아 있지 않다는 증명이 되지 않습니다.

현재 비밀번호 필드가 이미 PBKDF2로 바뀌어도, 옛 해시는 자동으로 사라지지 않습니다. 설명은 이렇게 적습니다. 하위 호환을 위해 이전 SHA256은 기본적으로 숨은 old-password 설정에 남습니다. 일반 로그인 뒤의 관리 화면에서는 이 항목이 보이지 않습니다. super_admin이 내보낸 설정 백업에서는 보입니다. 이 옛 재료가 백업에 남아 있는 한, 오프라인 크랙의 대상도 남아 있습니다. 공격자가 펌웨어 업그레이드가 끝날 때까지 기다릴 필요는 없습니다. 백업 파일 자체가 클라우드 드라이브, 티켓, 채팅 기록에 들어가면 SH2를 한 부 더 복사한 것과 같습니다.

old-password 안의 SH2를 지우는 일은 다른 스위치입니다. 업그레이드의 부작용이 아닙니다. FortiOS 7.2.x와 7.4.x에서 해당 설정은 login-lockout-upon-downgrade입니다. 이후 문서의 다른 이름은 login-lockout-upon-weaker-encryption입니다. 켤 때 확인 경고가 나옵니다. 릴리스 노트는 PBKDF2가 7.2.11, 7.4.8, 7.6.1부터 제공된다고 적습니다. 그 뒤 이 해시를 지원하지 않는 버전으로 내리면 로컬 관리자는 로그인하지 못합니다. 7.2.11에서 7.4.7로 가는 경로처럼 「버전 번호는 더 큰데 PBKDF2는 아직 없는」 경우도 이 잠금에 들어갑니다. LDAP, RADIUS, SAML로 인증하는 관리자는 이 로컬 해시를 쓰지 않으므로 이 다운그레이드 잠금의 영향을 받지 않습니다. 로컬 계정이 SH2 / PB2 표시의 대상입니다.

그래서 「옛 해시를 지우는 스위치를 켠다」와 「오늘 밤에 펌웨어를 되돌려야 할 수도 있다」는 서로 부딪힙니다. 사고 당일에 펌웨어를 PBKDF2를 지원하는 어느 버전에 둘지 아직 정하지 않았다면, SH2를 없애려고 이 잠금을 먼저 켜지 마세요. 장비에 들어갈 수 있는 경로를 먼저 남기고, 되돌리지 않기로 확인한 뒤에 옛 재료를 지우세요. 공지가 말하는 「PBKDF2를 확인하고 더 약한 레거시 해시를 제거하라」는 바로 이 제조사 설명을 가리킵니다. 포털에서 비밀번호를 한 번 바꾸는 일의 다른 이름이 아닙니다.

밖에 잠기는 일은 로그인 성공 뒤에 일어난다

뉴스를 접한 첫 반응은 흔히 이렇습니다. 관리자 비밀번호를 전부 한 번씩 재설정한다. 재설정은 「상대가 아직 쓰지 못한」 옛 평문을 무효로 만들 수 있고, 아직 들어갈 수 있는 상태라면 저장이 SH2에서 PB2로 옮겨 가게 할 수도 있습니다. 그것이 처리하지 못하는 것은 「상대가 이미 그 계정으로 들어가, 계정 자체를 바꿔 버린」 경우입니다. 공지가 적은 것은 원래 계정을 지우거나 비밀번호를 바꿔 정당한 관리자가 로그인하지 못하게 하는 일입니다. 동시에 원래 없던 계정을 만들어 자기 접근을 유지합니다. VPN 포털에서 보는 인증 실패는, 이때 「이 자격 증명을 장비가 더 이상 받지 않는다」는 것만 증명합니다. 「상대에게 새 계정이 없다」는 증명은 아닙니다.

그래서 티켓은 두 열로 나누는 편이 맞습니다. 한 열은 비밀번호와 해시입니다. 로컬 관리자 각각이 지금 SH2인지 PB2인지, 백업에 old-password가 남아 있는지, 새 비밀번호가 메일·클라우드 콘솔·다른 VPN과 재사용되는지. 다른 한 열은 계정 목록입니다. 공지 이전에 없던 로컬 관리자가 있는지, 기존 세션이 모두 끝났는지, 공개 관리 인터페이스가 아무 주소에나 열려 있는지. 피싱에 강한 다요소 인증은 「비밀번호만으로는」 원격 관리와 VPN이 열리지 않게 합니다. 이미 설정에 적힌 새 계정을 지워 주지는 않고, 이미 복사된 옛 해시를 상대의 GPU 대기열에서 회수하지도 않습니다.

랜섬웨어 문장도 앞질러 읽지 마세요. 공지가 말하는 것은 초기 접근이 넘어갔다는 것이지, 「SHA-256을 아직 쓰는 방화벽이 오늘 모두 암호화된다」는 것이 아닙니다. 이미 로그인하지 못하는 장비는 무결성을 확인할 수 없는 장비로 다룹니다. 격리하고, 설정과 계정을 대조한 뒤에 복구를 이야기합니다. 아직 로그인되는 장비는 공개 관리면을 먼저 거두고, 세션을 끝내고, 아직 SH2인 로컬 관리자를 PB2로 옮기고, 새 비밀번호를 따로 보관합니다. 둘 다 「같은 새 비밀번호를 단체 공지에 적는」 방식으로 하지 마세요.

그 자리에서 확인: 백업 표시를 보고, 크랙은 돌리지 않는다

버전 번호, 뉴스 제목, 「업그레이드했다」는 말만으로는 이 설정의 해시 표시를 대신하지 못합니다. 아래 네 단계는 이 장비의 권한 있는 관리자라는 전제입니다. 신뢰하지 않는 컴퓨터에서 백업을 열지 말고, 「SH2가 있는지 봐 달라」며 백업을 생성형 대화에 올리지 마세요.

  1. 펌웨어 버전을 세 기점과 대조합니다. 7.2.11, 7.4.8, 7.6.1. 해당 분기의 기점보다 낮으면, 제조사 설명은 로컬 관리자 해시를 여전히 SHA256으로 표시합니다. 버전이 기점보다 높다는 것은 「새 로그인이 PB2로 기록될 기회가 있다」는 뜻이지, 옛 계정이 이미 기록됐다는 뜻이 아닙니다.
  2. super_admin으로 설정 백업을 하나 내보내고, 이 기기에서 SH2, PB2, old-password를 검색합니다. 어떤 계정이 PB2만 있고 old-password가 없을 때에야 「이 백업에서는 옛 SHA-256이 보이지 않는다」를 기록에 쓸 수 있습니다. 화면에서 숨은 필드가 안 보인다고 옛 해시가 삭제된 것은 아닙니다.
  3. 로컬 관리자를 나열하고, 업그레이드 이후 한 번도 로그인하지 않았고 슈퍼 관리자가 비밀번호를 재설정하지도 않은 계정을 표시합니다. 설명은 이 계정들이 로그인이나 재설정이 있을 때까지 SHA256에 머문다고 적습니다. 원격 인증 계정을 이 로컬 해시와 같은 결론에 섞지 마세요.
  4. login-lockout-upon-downgrade(또는 문서의 login-lockout-upon-weaker-encryption)를 켤지 본다면, 먼저 릴리스 노트의 다운그레이드 잠금 경고를 읽고, 단기간에 PBKDF2를 지원하지 않는 버전으로 되돌리지 않을지 확인합니다. 켠 뒤에는 PBKDF2만 남은 로컬 관리자가 그런 되돌림에서 로그인하지 못합니다.

이 네 단계가 답하는 것은 「이 설정이 지금 관리자 비밀번호를 어느 방식으로 저장하는가」입니다. 「상대의 GPU 대기열에 더 이른 사본이 있는가」는 답하지 않습니다. 해시가 일단 장비를 떠나면, 이 기기에서 저장 방식을 바꿔도 이미 복사된 그 한 부는 무효가 되지 않습니다. 무효로 만드는 방법은 비밀번호 자체를 바꾸고, 새 비밀번호에 대응하는 재료가 old-password 안에 SH2로 남지 않았는지 확인하는 것입니다. 공개 관리면이 닫혔는지는 인터페이스 정책을 봐야 합니다. 해시 접두어를 봐서는 알 수 없습니다.

공지를 너무 멀리 읽는 네 가지

첫째, 「펌웨어가 이미 7.2.11 이상」을 「설정에 SHA-256이 없다」로 읽는 경우입니다. 설명은 변환을 그 관리자의 로그인 성공 또는 비밀번호 재설정에 묶고, 옛 해시를 기본적으로 숨은 필드에 남깁니다. 버전 번호는 기점일 뿐, 완료 표시가 아닙니다.

둘째, PBKDF2를 「재사용 비밀번호가 무효가 됐다」로 읽는 경우입니다. 느린 유도가 올리는 것은 오프라인 추측의 단가입니다. 다른 사이트, 예전 유출, 인포스틸러 로그에서 이미 확보한 평문은 로그인할 때 그대로 제출하면 됩니다. 곳곳에 다른 비밀번호를 쓰는 일이 막는 것은 이 경로입니다. 관리 인터페이스를 거두는 일을 대신하지는 않습니다.

셋째, 「비밀번호를 바꿨다」를 「밖에 잠기지 않는다」 또는 「이미 잠겼어도 같은 재설정으로 풀린다」로 읽는 경우입니다. 비밀번호를 바꾸는 전제는 그 변경을 아직 제출할 수 있다는 것입니다. 상대가 계정을 지웠거나 비밀번호를 바꿨다면, 포털의 실패는 옛 자격 증명이 받아들여지지 않는다는 뜻일 뿐입니다. 새 비밀번호가 상대가 만든 관리자를 자동으로 지우지도 않습니다.

넷째, 「이 문자열이 이 기기의 취약 비밀번호 목록에 없다」를 「FortiBleed 해시 대기열에 없다」 또는 「이 방화벽은 이미 PBKDF2다」로 읽는 경우입니다. 목록 대조는 브라우저 탭에서 일어나고, 장비의 해시 표시는 설정 백업에서 일어납니다. 두 증거는 서로 도장을 찍어 주지 않습니다. 목록에 없어도 재사용된 긴 비밀번호일 수 있습니다. 목록에 맞으면 너무 흔하다는 뜻일 뿐, 그 사실만으로 이 FortiGate가 침해됐다고 증명되지는 않습니다.

자주 묻는 질문

FortiOS 7.2.11로 올린 뒤, SHA-256은 바로 사라지나요?

아닙니다. 제조사 설명은 7.2.11, 7.4.8, 7.6.1부터 로컬 관리자 비밀번호가 PBKDF2로 바뀐다고 적지만, 업그레이드 직후에는 해당 관리자가 로그인에 성공하거나 super_admin이 그 비밀번호를 다시 설정할 때까지 SHA256으로 남습니다. 옛 해시는 기본적으로 숨은 old-password에 있습니다. super_admin의 설정 백업에서는 보이고, 일반 관리 화면에서는 보이지 않습니다. 옛 해시를 지우려면 다운그레이드 잠금 같은 정책을 따로 켜야 하며, PBKDF2를 지원하지 않는 버전으로 내리면 로컬 관리자는 로그인하지 못합니다.

PBKDF2로 바꾼 뒤에도, 이미 훔친 평문 비밀번호는 쓸 수 있나요?

쓸 수 있습니다. PBKDF2가 올리는 비용은 「해시만 있고, 한 번씩 추측해야 하는」 경우입니다. 상대가 예전 유출이나 인포스틸러 로그에서 평문을 이미 갖고 있으면, 로그인할 때 그 문자열을 그대로 내면 되고 해시를 다시 깰 필요가 없습니다. 메일, VPN, 관리자 계정 사이에서 비밀번호를 재사용하면, 느린 유도가 그 평문을 틀린 문자열로 바꿔 주지는 않습니다.

이미 밖에 잠겼다면, 비밀번호를 한 번 더 바꾸면 되나요?

포털에서 비밀번호를 바꾸는 전제는 아직 로그인할 수 있다는 것입니다. 공지는 상대가 원래 계정을 지우거나 비밀번호를 바꿔 정당한 관리자가 들어가지 못하게 하고, 동시에 원래 없던 계정을 만든다고 적습니다. 이 경우는 장비에 들어가지 못하는 상태로 보고 격리와 설정 대조를 해야 합니다. 「비밀번호 재설정을 한 번 더 하면 끝」으로 읽으면 안 됩니다. 비밀번호를 바꿔도, 펌웨어가 아직 변환하지 않았거나 old-password에 남아 있는 옛 해시는 교체되지 않습니다.

이 기기의 취약 비밀번호 목록으로, 이 방화벽 해시가 깨지지 않았다는 것을 증명할 수 있나요?

없습니다. 로컬 목록이 답하는 것은, 이 문자열이 지금 연 탭의 공개 고빈도 목록과 그 소수 변형에 맞는지입니다. FortiBleed를 조회하지 않고, 방화벽 설정도 읽지 않습니다. 미적중은 이 비밀번호가 한 번도 유출되지 않았다는 증명이 아니고, 장비의 해시가 이미 PBKDF2로 바뀌었다는 증명도 아닙니다. 적중은 이 문자열이 너무 흔하니 바꾸고, 계속 재사용하지 말라는 뜻일 뿐입니다.

새 비밀번호는 이 기기에 두고, 단체 공지에는 적지 않기

저장이 SH2에서 PB2로 바뀐 뒤에도, 다른 곳에서 쓴 적 없는 관리자 비밀번호가 하나 필요합니다. 이 단계는 FastPwd 비밀번호 생성기로 지금 연 탭에서 끝낼 수 있습니다. 가입은 필요 없고, 사이트에는 비밀번호 보관함도 없습니다. 무작위 모드는 crypto.getRandomValues를 쓰고, 길이는 6–128자, 기본값은 16자입니다. 8자 미만이면 보안이 낮다고 알려 줍니다. 생성 결과는 기본적으로 업로드하지 않습니다. 방화벽에 로그인하지 않고, SH2를 PB2로 바꾸지 않으며, 공개 관리 인터페이스를 닫지도 않습니다. 제공하는 것은 「관리자 / 회사 이름 / 계절」에서 즉석으로 짓지 않아도 되는 문자열이고, 아직 들어갈 수 있는 그 로컬 계정을 바꾸는 데 씁니다.

개발자 도구의 Network를 열고 로그 보존을 켠 뒤, 새 비밀번호 전체로 요청 줄과 요청 본문을 검색하세요. 업무 요청에는 이 문자열이 없어야 합니다. 이 단계가 증명하는 것은 「이번엔 HTTP 본문으로 탭을 떠나지 않았다」입니다. 그 뒤에 메신저에 붙여 넣지 않았다는 증명까지는 아닙니다. 브라우저가 비밀번호 저장을 물으면 저장하지 마세요. 브라우저에 저장된 비밀번호 목록은 다른 문이고, FortiOS의 PB2와는 관계가 없습니다. 대소문자, 숫자, 기호에서 뽑은 기본 16자 무작위 비밀번호의 탐색 공간은, 스프레이에 흔히 쓰이는 짧은 단어보다 훨씬 큽니다. 이 문장을 「그러니 SHA-256으로는 절대 계산되지 않는다」 또는 「그러니 관리 인터페이스를 인터넷에 계속 열어도 된다」로 다시 쓰지 마세요.

이 문자열이 공개 고빈도 목록의 취약 비밀번호처럼 보이는지만 보고 싶다면, 버릴 수 있는 다른 테스트 문자열을 비밀번호 강도 검사에 넣으세요. 검사할 비밀번호는 업로드하지 않습니다. 대조 대상은 페이지와 함께 내려받는 공개 목록이지, Have I Been Pwned도 아니고 FortiBleed 해시 모음도 아닙니다. 미적중은 웹 전체에서 본 적 없다는 증명이 아닙니다. 막 쓰려는 방화벽 비밀번호를 검사 칸에 붙이지 말고, 설정 백업을 검사에 넣지도 마세요.

새 비밀번호를 당직 동료 한 명에게 한 번만 넘겨야 한다면, 서버에 남는 단체 메시지나 티켓 본문에 적지 마세요. 일회용 링크로 넘기세요. 서버는 암호문만 잠시 보관하고, 키는 링크의 # 뒤에 두며, 만들기와 읽기 모두 계정이 필요 없습니다. 링크 형태는 s.html?id={id}#{key}입니다. 이 통로가 답하는 것은 「한 번 어떻게 넘기느냐」이지, 「방화벽을 어떻게 고치느냐」가 아닙니다. 설정 백업에 SH2나 old-password가 있으면, 파일 전체를 일회용 링크나 클라우드 드라이브에 넣지 마세요. 백업은 이미 신뢰하는 기기에 두고, 끝난 뒤에는 조직의 설정 보관 규칙대로 처리하세요. 상대가 스크린샷을 찍거나 링크 전체를 전달하면, 그 사본은 「읽은 뒤 삭제」가 덮지 못합니다.

더 읽기

로컬 취약 비밀번호 목록이 흔한 약한 비밀번호는 잡을 수 있어도, 전 웹 조회나 특정 사건의 해시 모음으로 쓰면 안 되는 이유는 로컬 취약 비밀번호 목록이 증명할 수 있는 것과, 전 웹 조회가 아닌 이유에 있습니다. 비밀번호를 만들 때는 암호학적으로 안전한 난수를 써야 하고, Math.random은 그 난수가 아닙니다. Math.random으로 만든 비밀번호는 겉보기에 충분히 섞여 있어도, 왜 암호학적으로 안전한 난수가 아닐까를 보세요. 일회용 키를 링크의 해시 뒤에 두면 서버가 기본적으로 그 조각을 받지 못하는 이유와, 그 보호가 깨지는 때는 URL 해시 뒤에 키를 두는 이유, 그리고 그 보호가 깨질 때에 있습니다.