회사에서 여전히 암호를 일반 텍스트로 저장하는 이유는 무엇입니까?

최근 일부 기업들이 사용자 비밀번호를 암호화하지 않은 일반 텍스트 형태로 저장하는 사례가 드러나 우려를 자아내고 있습니다. 이는 마치 메모장에 비밀번호를 적어 .txt 파일로 저장하는 것과 같습니다. 보안을 강화하기 위해 비밀번호를 솔트 처리하고 해시해야 함에도 불구하고, 왜 2019년에도 이러한 보안 취약점이 존재하는 걸까요?

비밀번호를 일반 텍스트로 저장하는 것은 왜 위험할까요?

만약 기업이 비밀번호를 일반 텍스트로 저장한다면, 해당 비밀번호 데이터베이스나 파일에 접근 권한이 있는 누구든 쉽게 비밀번호를 알아낼 수 있습니다. 해커가 이러한 파일에 접근할 경우, 모든 사용자의 비밀번호가 노출될 위험에 처하게 됩니다.

비밀번호를 암호화 없이 저장하는 것은 매우 위험한 관행입니다. 기업은 비밀번호를 솔트 처리하고 해시해야 합니다. 이는 비밀번호에 임의의 데이터를 추가하여 복호화가 불가능한 형태로 변환하는 것을 의미합니다. 이렇게 하면 데이터베이스에서 비밀번호가 유출되더라도 해커가 이를 사용할 수 없게 됩니다. 사용자가 로그인할 때, 시스템은 입력된 비밀번호를 해시한 값과 저장된 해시 값을 비교하여 인증하지만, 저장된 해시 값으로부터 원래 비밀번호를 역추적할 수는 없습니다.

그렇다면 왜 기업들은 비밀번호를 평문으로 저장하는 걸까요? 안타깝게도, 때로는 기업들이 보안 문제를 간과하거나, 편의성을 이유로 보안을 희생하는 경우가 있습니다. 어떤 경우에는 비밀번호를 올바르게 저장하지만, 과도한 로깅 기능으로 인해 암호화되지 않은 비밀번호가 기록되기도 합니다.

비밀번호를 부적절하게 저장한 여러 기업 사례

이러한 잘못된 관행은 이미 많은 사용자에게 피해를 입혔습니다. 로빈후드, 구글, 페이스북, 깃허브, 트위터 등 여러 기업에서 비밀번호를 일반 텍스트로 저장한 사례가 있습니다.

구글의 경우 대부분의 사용자 비밀번호는 적절하게 해시 및 솔트 처리되었지만, G Suite Enterprise 계정 비밀번호는 일반 텍스트로 저장되었습니다. 구글 측은 이는 도메인 관리자가 비밀번호를 복구할 수 있는 기능을 제공할 때부터 남아 있던 관행이라고 설명했습니다. 만약 구글이 비밀번호를 올바르게 저장했다면, 복구를 위해 비밀번호 재설정 프로세스만 작동했을 것입니다.

페이스북 역시 비밀번호를 일반 텍스트로 저장한 이유에 대해 명확한 원인을 제시하지 않았습니다. 그러나 후속 업데이트를 통해 문제의 원인을 추론할 수 있었습니다.

… 인스타그램 비밀번호가 읽을 수 있는 형식으로 저장된 추가 로그를 발견했습니다.

일부 기업은 초기에는 비밀번호를 올바르게 저장하지만, 이후에 추가한 새로운 기능으로 인해 문제가 발생하기도 합니다. 페이스북 외에도 로빈후드, 깃허브, 그리고 트위터 역시 실수로 일반 텍스트 비밀번호를 기록한 적이 있습니다.

로깅은 애플리케이션, 하드웨어 및 시스템 코드에서 문제를 찾는 데 유용하지만, 기업이 로깅 기능을 제대로 테스트하지 않으면 해결하는 것보다 더 많은 문제가 발생할 수 있습니다.

페이스북과 로빈후드의 경우, 사용자가 로그인하기 위해 사용자 이름과 비밀번호를 입력하면 로깅 기능이 사용자가 입력한 그대로 보고 기록할 수 있었습니다. 그리고 이러한 로그가 다른 곳에 저장되어, 해당 로그에 접근할 수 있는 사람은 계정을 쉽게 탈취할 수 있게 되었습니다.

드문 경우지만, T-Mobile Australia와 같은 회사는 보안의 중요성을 간과하고 편리함을 우선시하는 경향을 보여주었습니다. 삭제된 트위터 대화에서 T-Mobile 담당자는 회사가 비밀번호를 일반 텍스트로 저장한다고 사용자에게 설명했습니다. 이러한 방식으로 저장된 비밀번호는 고객 서비스 담당자가 확인을 위해 비밀번호의 처음 네 글자를 볼 수 있게 하였습니다. 다른 트위터 사용자들은 일부 사용자들이 이러한 시스템을 통해…