2014.09.05

길고 복잡한 패스워드가 더 이상 필요 없는 이유

Roger A. Grimes | InfoWorld

패스워드 도난과 오용이 너무 흔해져서 수백만 명 정도가 당하는 피해는 뉴스 거리도 되지 못한다. 요즘은 피해자의 수가 최소한 10억 명은 되어야 하는 것 같다.

이런 흥미로운 범죄 활동에 이어 발표되는 기사들은 언제나 그렇듯이 별 효과 없는 해결책을 제시하는 경향이 있다. 바로 “길고 복잡한 패스워드”를 사용하라는 것인데, 물론 필자도 수년 전에 같은 해결책을 추천한 바 있다. 하지만 시대가 변했다.

오늘날의 패스워드 해킹
패스워드 해킹은 우리가 패스워드를 사용하기 시작할 때부터 오랫동안 있어 왔다. 대부분의 경우에 선택된 수단은 패스워드 추측 또는 크랙킹(Cracking), 즉 특정 중간 형태를 평문 형태로 변환하는 것이었다. 하지만 시간이 지나면서 방법이 발전했다.

물론, 지금도 인간 해커(또는 악성 소프트웨어)가 사람들의 패스워드를 추측하고 있으며, 때로는 성공률도 꽤 높은 편이다. 예를 들어, 가장 인기 있는 악성 소프트웨어 프로그램 중 하나인 컨피커(Conficker) 는 약 100개의 하드 코딩된 단순한 패스워드로 수십만 개에서 수백억 개의 드라이브 공유를 성공적으로 해킹했다. 이처럼 패스워드 추측도 여전히 가능하지만, 요즘은 다른 방법을 더 많이 사용하고 있다.

오늘날 발생하는 패스워드 도난의 대부분은 피싱(Phishing) 또는 인증 데이터베이스 해킹을 통해 이루어지고 있다. 피싱은 대부분 이메일 메시지 또는 웹 사이트가 독자로 하여금 실제 인증서를 가짜 로그온 프롬프트에 입력하도록 유도함으로써 이루어진다. 지금은 세상 모든 사람들이 피싱을 가려낼 수 있다고 생각하겠지만, 보고서에 따르면 여전히 기록적인 수치를 나타내고 있다. 분명 많은 성공적인 APT(Advanced Persistent Threat) 공격들이 스피어 피싱(Spear Phishing)으로 시작된다. 소셜 미디어 사이트와 악성 애플리케이션 덕분에 피싱이 그 어느 때보다도 성공적이다.

하지만 해커들이 패스워드를(또는 해시(Hash) 등의 사용할 수 있는 중간 형태)를 성공적으로 훔치는 가장 보편적인 방법은 인증 데이터베이스 절도를 통해서이다. 해커들은 웹 사이트 또는 개인적인 디렉토리 공간에 침입하여 패스워드/해시를 다운로드한다. 이 두 가지 종류의 공격이 오늘날 거의 모든 패스워드 도난 공격을 구성하고 있다. 다른 방법들은 대부분 요란하기만 할 뿐이다. "위험한 게임(WarGames)"의 매튜 보더릭 행세를 하는 인간 공격자들의 시대는 이미 오래 전 이야기이다.

그렇다면 인증서 도난에 대해서 가장 성공적인 방어책은 무엇일까? 어쨌든, 길고 복잡한 패스워드를 사용하는 방법은 분명 아니다. 공격자들은 길고 복잡한 패스워드를 간단하게 훔치고 작별인사와 함께 홀연히 사라질 것이다.

진부한 패스워드
그렇다고 해서 패스워드를 사용하는 것이 나쁘다는 뜻은 아니다. 단지 약간의 도움만 될 뿐이다. 하지만 처음에 수백 번의 시도 동안 바로 추측할 수 없는 패스워드를 선택한다면, 상당한 효과가 있다.

"keylargo"를 패스워드로 사용해도 "Key$Largo14$!"를 패스워드로 사용하는 만큼의 방어 효과가 있다. 더욱 길고 복잡한 패스워드 때문에 패스워드를 추측하는 사람들과 크랙커들은 고생하겠지만 이런 위협의 위험성은 대부분의 환경에서 측정이 불가능하다.

그렇다면 길고 복잡한 패스워드는 필요 없을까? 그렇다. 바로 그 말이다.

이제 전 세계의 많은 보안 전문가들이 필자의 생각이 왜 틀렸는지에 대해 설명하려 들 것이다. 하지만 대부분의 패스워드가 최종 사용자가 입력하는 것 또는 해킹된 인증 데이터베이스에서 직접 도난 당하고 있다면, 더욱 길거나 복잡한 패스워드를 사용한다고 해서 무슨 소용이 있을까?

사용자만 더 힘들어질 뿐이다. 더욱 강력한 해시와 알고리즘을 통한 "더욱 안전한" 인증 프로토콜을 사용하는 것은 대부분 크게 도움이 되지 않는다. DES에서 B크립트(Bcrypt)로 전환한다고 해도 별로 도움이 되지 않는다. 패스워드 해시에서 케베로스(Kerberos) 티켓으로 바꾼다 해도 마찬가지이다. 왜냐하면 오늘날의 패스워드 공격자들은 프로토콜의 약점을 공격하는 것이 아니기 때문이다. 더욱 강력한 인증 포로토콜을 사용해도 별 이득이 없다.

어떻게 아냐고? 왜냐하면 대부분의 기업이 오늘날 더욱 강력한 프로토콜을 사용하고 있지만, 올해만 하더라도 수십억 개의 패스워드를 도난 당했기 때문이다. 필자는 "우리가 B크립트 또는 케베로스를 사용했더라면 인증 데이터베이스 해킹을 막을 수 있었을 것이다"라고 말하는 보안 전문가를 본 적이 없다. 누구도 이런 이야기를 들을 일은 없을 것이다. 더 이상 그 어떤 해커들도 이런 구식 솔루션을 신경 쓰지 않는다.

효과적인 방법
그렇다고 해서 손 놓고 포기하라는 뜻은 아니다. 여기에서 피싱 공격과 인증 데이터베이스 도난이라는 주요 원인을 해결하는 두 가지 방어책에 대해 알아보도록 하자.

피싱 공격을 방지하기 위해서는 최종 사용자의 인식을 더 높이고(필자는 경각심을 높이기 위해 사용자들을 고의적으로 피싱하는 것도 중요하다고 생각한다), 다양한 피싱 방지 툴을 사용해야 한다. 많은 브라우저에 피싱 방지 툴이 탑재되어 있지만, 이를 사용하는 사람들은 거의 없다. 또한, 사용자가 알려진 피싱 사이트에 접속할 때 경고하는 다양한 서비스들이 존재한다. 이런 서비스들은 백신 스캐닝 소프트웨어와 마찬가지로 정확도 문제가 있기는 하지만, 언제나 그렇듯이 아무것도 없는 것보다는 낫다.




2014.09.05

길고 복잡한 패스워드가 더 이상 필요 없는 이유

Roger A. Grimes | InfoWorld

패스워드 도난과 오용이 너무 흔해져서 수백만 명 정도가 당하는 피해는 뉴스 거리도 되지 못한다. 요즘은 피해자의 수가 최소한 10억 명은 되어야 하는 것 같다.

이런 흥미로운 범죄 활동에 이어 발표되는 기사들은 언제나 그렇듯이 별 효과 없는 해결책을 제시하는 경향이 있다. 바로 “길고 복잡한 패스워드”를 사용하라는 것인데, 물론 필자도 수년 전에 같은 해결책을 추천한 바 있다. 하지만 시대가 변했다.

오늘날의 패스워드 해킹
패스워드 해킹은 우리가 패스워드를 사용하기 시작할 때부터 오랫동안 있어 왔다. 대부분의 경우에 선택된 수단은 패스워드 추측 또는 크랙킹(Cracking), 즉 특정 중간 형태를 평문 형태로 변환하는 것이었다. 하지만 시간이 지나면서 방법이 발전했다.

물론, 지금도 인간 해커(또는 악성 소프트웨어)가 사람들의 패스워드를 추측하고 있으며, 때로는 성공률도 꽤 높은 편이다. 예를 들어, 가장 인기 있는 악성 소프트웨어 프로그램 중 하나인 컨피커(Conficker) 는 약 100개의 하드 코딩된 단순한 패스워드로 수십만 개에서 수백억 개의 드라이브 공유를 성공적으로 해킹했다. 이처럼 패스워드 추측도 여전히 가능하지만, 요즘은 다른 방법을 더 많이 사용하고 있다.

오늘날 발생하는 패스워드 도난의 대부분은 피싱(Phishing) 또는 인증 데이터베이스 해킹을 통해 이루어지고 있다. 피싱은 대부분 이메일 메시지 또는 웹 사이트가 독자로 하여금 실제 인증서를 가짜 로그온 프롬프트에 입력하도록 유도함으로써 이루어진다. 지금은 세상 모든 사람들이 피싱을 가려낼 수 있다고 생각하겠지만, 보고서에 따르면 여전히 기록적인 수치를 나타내고 있다. 분명 많은 성공적인 APT(Advanced Persistent Threat) 공격들이 스피어 피싱(Spear Phishing)으로 시작된다. 소셜 미디어 사이트와 악성 애플리케이션 덕분에 피싱이 그 어느 때보다도 성공적이다.

하지만 해커들이 패스워드를(또는 해시(Hash) 등의 사용할 수 있는 중간 형태)를 성공적으로 훔치는 가장 보편적인 방법은 인증 데이터베이스 절도를 통해서이다. 해커들은 웹 사이트 또는 개인적인 디렉토리 공간에 침입하여 패스워드/해시를 다운로드한다. 이 두 가지 종류의 공격이 오늘날 거의 모든 패스워드 도난 공격을 구성하고 있다. 다른 방법들은 대부분 요란하기만 할 뿐이다. "위험한 게임(WarGames)"의 매튜 보더릭 행세를 하는 인간 공격자들의 시대는 이미 오래 전 이야기이다.

그렇다면 인증서 도난에 대해서 가장 성공적인 방어책은 무엇일까? 어쨌든, 길고 복잡한 패스워드를 사용하는 방법은 분명 아니다. 공격자들은 길고 복잡한 패스워드를 간단하게 훔치고 작별인사와 함께 홀연히 사라질 것이다.

진부한 패스워드
그렇다고 해서 패스워드를 사용하는 것이 나쁘다는 뜻은 아니다. 단지 약간의 도움만 될 뿐이다. 하지만 처음에 수백 번의 시도 동안 바로 추측할 수 없는 패스워드를 선택한다면, 상당한 효과가 있다.

"keylargo"를 패스워드로 사용해도 "Key$Largo14$!"를 패스워드로 사용하는 만큼의 방어 효과가 있다. 더욱 길고 복잡한 패스워드 때문에 패스워드를 추측하는 사람들과 크랙커들은 고생하겠지만 이런 위협의 위험성은 대부분의 환경에서 측정이 불가능하다.

그렇다면 길고 복잡한 패스워드는 필요 없을까? 그렇다. 바로 그 말이다.

이제 전 세계의 많은 보안 전문가들이 필자의 생각이 왜 틀렸는지에 대해 설명하려 들 것이다. 하지만 대부분의 패스워드가 최종 사용자가 입력하는 것 또는 해킹된 인증 데이터베이스에서 직접 도난 당하고 있다면, 더욱 길거나 복잡한 패스워드를 사용한다고 해서 무슨 소용이 있을까?

사용자만 더 힘들어질 뿐이다. 더욱 강력한 해시와 알고리즘을 통한 "더욱 안전한" 인증 프로토콜을 사용하는 것은 대부분 크게 도움이 되지 않는다. DES에서 B크립트(Bcrypt)로 전환한다고 해도 별로 도움이 되지 않는다. 패스워드 해시에서 케베로스(Kerberos) 티켓으로 바꾼다 해도 마찬가지이다. 왜냐하면 오늘날의 패스워드 공격자들은 프로토콜의 약점을 공격하는 것이 아니기 때문이다. 더욱 강력한 인증 포로토콜을 사용해도 별 이득이 없다.

어떻게 아냐고? 왜냐하면 대부분의 기업이 오늘날 더욱 강력한 프로토콜을 사용하고 있지만, 올해만 하더라도 수십억 개의 패스워드를 도난 당했기 때문이다. 필자는 "우리가 B크립트 또는 케베로스를 사용했더라면 인증 데이터베이스 해킹을 막을 수 있었을 것이다"라고 말하는 보안 전문가를 본 적이 없다. 누구도 이런 이야기를 들을 일은 없을 것이다. 더 이상 그 어떤 해커들도 이런 구식 솔루션을 신경 쓰지 않는다.

효과적인 방법
그렇다고 해서 손 놓고 포기하라는 뜻은 아니다. 여기에서 피싱 공격과 인증 데이터베이스 도난이라는 주요 원인을 해결하는 두 가지 방어책에 대해 알아보도록 하자.

피싱 공격을 방지하기 위해서는 최종 사용자의 인식을 더 높이고(필자는 경각심을 높이기 위해 사용자들을 고의적으로 피싱하는 것도 중요하다고 생각한다), 다양한 피싱 방지 툴을 사용해야 한다. 많은 브라우저에 피싱 방지 툴이 탑재되어 있지만, 이를 사용하는 사람들은 거의 없다. 또한, 사용자가 알려진 피싱 사이트에 접속할 때 경고하는 다양한 서비스들이 존재한다. 이런 서비스들은 백신 스캐닝 소프트웨어와 마찬가지로 정확도 문제가 있기는 하지만, 언제나 그렇듯이 아무것도 없는 것보다는 낫다.


X