본문으로 건너뛰기

암호화폐 보안: 비밀번호와 인증

안드레아스 안토노풀로스(Andreas Antonopoulos)가 비밀번호 관리, 인증 방법, 디지털 자산 및 개인 키 보호를 위한 모범 사례를 중심으로 필수적인 암호화폐 보안 관행을 다룹니다.

Date published: 2019년 5월 19일

이 라이브 스트림은 비밀번호 관리의 기본부터 다중 요소 인증에 이르기까지 암호화폐 보유자를 위한 필수 보안 관행을 다룹니다. 안드레아스 안토노풀로스는 보안과 사용 편의성 사이의 균형을 맞추는 원칙을 살펴보고, 비밀번호 관리자가 필수적인 이유를 설명하며, XKCD 패스프레이즈(passphrase) 개념을 소개하고, 이중 인증 방법의 계층 구조를 자세히 설명합니다.

이 트랜스크립트는 aantonop이 게시한 원본 비디오 트랜스크립트 (opens in a new tab)의 접근성 향상 버전입니다. 가독성을 위해 약간의 편집을 거쳤습니다.

보안의 기초와 리스크 균형 맞추기 (3:05)

(삐 소리) - 여러분 안녕하세요, 이번 토요일 라이브 스트림에 오신 것을 환영합니다. 이번 보너스 라이브 스트림의 주제는 비밀번호, 비밀번호 관리자, 인증, 다중 인증(MFA) 등 여러분의 계정 보안과 관련된 모든 것입니다. 현재 대기열에 많은 질문이 쌓여 있지만, 이번에는 반드시 질문 위주로만 진행하지는 않을 것입니다. 왜냐하면 몇 가지 어려운 주제들을 설명하고 싶기 때문입니다. 평소보다 특정 주제에 대해 조금 더 길게, 혹은 조금 더 짧게 이야기하면서 저만의 방식으로 이 주제들을 풀어나가는 것이 더 나을 수도 있습니다. 이 주제들은 꽤 까다롭습니다. 보안은 까다로운 주제입니다. 그래서 완벽한 질문을 찾으려고 애쓰기보다는, 그러지 않을 수도 있습니다. 반면에, 시작하기에 아주 좋은 질문들도 몇 가지 준비되어 있습니다. 우선, 참여해 주신 모든 분들께 감사드립니다. 항상 그렇듯이

제 토요일 아침을 여러분과 함께 비트코인과 개방형 블록체인에 관련된 새롭고 흥미로운 주제를 다루며 보낼 수 있게 되어 기쁩니다. 그렇다면 비밀번호와 다중 인증이 비트코인 및 개방형 블록체인과 무슨 관련이 있을까요? 아시다시피, 암호화폐의 보안을 유지하려면 모든 계정의 보안을 유지해야 합니다. 암호화폐와 관련해 매우 흥미로운 점은, 많은 사람들이 처음으로 자신의 온라인 신원과 온라인 기기의 보안에 대해 신중하게 고민하게 되었다는 것입니다. 이제 그곳에 돈이 보관되어 있고, 이로 인해 훨씬 더 매력적인 표적이 되기 때문입니다. 과거에는 사람들이 자신의 보안을 지키려는 동기가 크지 않았습니다. 프라이버시를 잃거나 정보가 해킹당하더라도 당장 피부로 와닿지 않기 때문입니다. 물론 많은 악영향이 따르지만, 그러한 결과들이 직접적으로

눈에 보이거나 즉각적으로 느껴지지 않기 때문입니다. 하지만 누군가 침입해서 여러분의 디지털 기기에서 수백 달러, 수천 달러, 심지어 수만 달러를 훔쳐간다면, 여러분은 그것을 즉시 체감하게 됩니다. 그리고 이를 보안과 실질적으로, 더 정확히 말하자면 무형적이지만 매우 뚜렷하게 연관 지을 수 있습니다. 안타깝게도 이는 고통스러운 경험을 통해서만 진정으로 배울 수 있는 교훈 중 하나입니다. 그래서 저는 초보자들에게 계정을 어떻게, 그리고 왜 안전하게 보호해야 하는지 설명하는 데 많은 시간을 할애할 수 있습니다. 하지만 그들이 자신의 기기 중 하나에 암호화폐 핫 월렛을 설치하고 그 핫 월렛에 있는 돈을 잃어버리기 전까지는, 제가 하는 말을 이해하거나 동기를 부여받기가 매우 어렵습니다. 자, 이 전체 대화에서 이해해야 할 또 다른 정말 중요한 점은 보안이란

균형이라는 것입니다. 모든 것은 균형에 달려 있습니다. 바로 리스크 관리입니다. 100% 보안이라는 것은 존재하지 않습니다. 완벽한 보안이란 없습니다. 그리고 모든 위협으로부터 보호할 수는 없습니다. 여러분이 어떤 위협에 직면해 있는지 파악해야 합니다. 실제로 보호하려는 대상이 무엇인지에 따라, 그 위협 중 얼마나 많은 것을 실제로 방어할 수 있는지, 그리고 그 위협을 방어하는 데 얼마나 많은 노력을 기울일 것인지 결정해야 합니다. 또한 여러분이 구축하는 솔루션이나 사용하는 시스템이 너무 복잡해져서 그 자체로 보안 리스크가 되는 시점이 언제인지도 알아내야 합니다. 특히 암호화폐 분야에서 초보자들이 지나치게 복잡한 솔루션을 만드는 것을 자주 보게 됩니다. 그러다 보면 결국 보안과 회복력의 균형에서 잘못된 방향으로 빠지게 됩니다. 암호화폐를 보호하기 위한 메커니즘이 너무 복잡한 나머지, 사실상 여러분은 결국

비표준적인 방식을 사용했기 때문에, 비밀번호를 잊어버렸기 때문에, 혹은 여러분이 정확히 무엇을 했는지 아무도 모르고 여러분이 그들을 도울 수 없는 상황이기 때문에 자산을 잃게 됩니다. 따라서 보안은 100% 달성할 수 없으며, 모든 것은 균형의 문제입니다. 그리고 단순함은 종종 보안의 핵심 요소가 됩니다. 여러분의 기술적 역량 내에서 적용할 수 있고, 일관되게 적용할 수 있으며, 문제가 발생했을 때 복구할 수 있는 단순한 보안 솔루션이 훨씬 낫습니다. 여러분의 기술 수준을 넘어서도록 강요하고, 미지의 영역으로 몰아넣으며, 실수할 가능성을 높이는 복잡한 보안 솔루션보다 말입니다. 이 부분에 대해서는 종종 잘못된 조언을 많이 듣게 됩니다. 사람들은 매우 복잡해 보이는 보안 체계를 구현하라고 조언할 것입니다. 그리고 그것이 너무 복잡하기 때문에 안전하다고 느낍니다. 마치 무언가

보안을 단순하게 유지하기 (8:40)

많은 일들이 벌어지고 있으니, 매우 정교하고 진지해야 할 것입니다. 그리고 많은 경우, 여러분은 자신의 기술적 역량을 넘어서게 되어 결국 돈을 잃게 될 것입니다. 이는 도난 때문이 아니라, 자신의 기술 수준을 벗어나 작업하다가 저지른 실수 때문입니다. 그러니 단순하게 유지합시다. 표준을 기반으로 합시다. 모범 사례와 일반적인 도구를 사용하고 이를 일관되게 적용합시다. 그러면 우리는 매우 안전해질 수 있습니다. 바로 첫 번째 질문으로 넘어가겠습니다. 지금까지 스트리밍에 220명이 참여해 주셨습니다. 비디오와 오디오에 대한 피드백을 주셔서 감사합니다. 항상 도움이 됩니다. 참고로, 오늘 일찍 이곳에 약간의 정전이 있었으며, 만약 전기가 끊기면 스트리밍이 멈출 것이기 때문에 여러분도 알게 될 것입니다. 그리고 인터넷 라우터와 와이파이가

재부팅되는 데 최소 5분이 걸립니다. 단 1초의 정전이라 하더라도, 제가 다시 돌아오려면 5분을 기다려야 할 수도 있습니다. 만약 돌아오지 못한다면 채팅으로 알려드리겠습니다. 그러니 인내심을 가져주시기 바라며, 연결이 끊기지 않기를 바랍니다. 하지만 아시다시피 이것이 오늘 우리가 감수해야 할 위험 중 하나입니다. 오늘의 첫 번째 질문으로 넘어가겠습니다. 첫 번째 질문은 익명(anonymous)의 시청자로부터 왔습니다. 질문을 할 때 익명이라는 단어를 선택하는 것은 보안의 첫 번째이자 좋은 메커니즘입니다. 제가 난독증이 있고 긴 비밀번호를 잘 기억하지 못한다면, 고유하고 강력한 여러 비밀번호를 관리하는 가장 좋은 방법은 무엇일까요? 아주 좋은 질문입니다. 무언가를 기억하는 것의 어려움이라는 더 광범위한 문제를 다루고 있기 때문에 훌륭한 질문입니다. 그리고 우리 모두는 우리가 실제보다

더 잘 기억할 수 있다고 생각합니다. 그리고 우리 중 일부는 기억력, 읽기, 쓰기 또는 비밀번호 암기에 도움이 되는 기타 기술에 어려움을 겪습니다. 그리고 아마도 자신이 잘 기억하지 못한다는 것을 알고 있을 것입니다. 그래서 익명의 시청자분은 난독증을 앓고 있는 사람의 관점에서 이 질문을 하셨지만, 이는 모든 사람에게 똑같이 적용됩니다. 오류를 범하기 쉬운 인간의 기억력을 가진 모든 사람에게 말입니다. 인간은 장기간 기억하는 데 매우 서투르며, 특히 이미지, 경험 또는 감정과 연결되어 있지 않아 기억에 남지 않는 것들은 더욱 그렇습니다. 우리 삶과 아무런 관련이 없는 것을 기억하는 것은 거의 불가능합니다. 왜냐하면 우리의 뇌는 관련 없는 정보를 최적화하여 지워버리는 데 매우 능숙하기 때문입니다. 기억하려는 것과 연결된 감정, 경험, 이미지가 없다면, 뇌는 이것이 내 캐싱 알고리즘과 더 이상 관련이 없다고 판단하고 지워버릴 것입니다. 그리고 많은

사람들이 비밀번호를 잊어버리는 이유가 바로 그 때문입니다. 그래서 저는 이 질문에 더 폭넓게 답하고 사람들이 비밀번호의 기본 원칙을 이해하는 데 도움을 주기 위해 몇 가지 자료를 사용할 것입니다. 이를 위해 시각 자료를 좀 사용하겠습니다. 평소에는 시각 자료를 잘 사용하지 않지만, 이번 경우에는 유용할 것 같습니다. 어떻게 될지 한번 보죠. 좋습니다, 가장 먼저 이야기할 것은 비밀번호 관리 시스템입니다. 수십 년 동안 우리는 사용자들에게 다양한 문자가 포함된 길고 무작위적인 영숫자 비밀번호를 만들도록 훈련해 왔습니다. 이것들은 인간이 기억할 수 없는 비밀번호입니다. 이러한 비밀번호는 사실상 나쁜 행동을 조장합니다. 결국 똑같이 교묘한 패턴을 사용하게 만드는 행동을 조장합니다. 예를 들어 Satoshi Nakamoto에서 O를 0으로 바꾸고, 두 번째 단어의 첫 글자를 대문자로 하고, T를

7로 바꾸고 끝에 해시 기호(#)를 붙이는 식입니다. 이제 숫자, 소문자, 대문자, 그리고 문자가 모두 포함되었습니다. 하지만 두 개 이상의 사이트에서 사용해야 한다면 약간의 변화를 줍니다. 그러면 끝에 숫자를 추가해야 할 수도 있습니다. 그러다 보면 정말 까다로운 기억력 문제에 부딪히게 됩니다. 사이트들은 변형을 만들도록 강요하지만, 변형은 특히 이렇게 복잡한 비밀번호의 경우 실제로 기억하는 것을 불가능하게 만듭니다. 그래서 결국 여러 사이트에서 비밀번호를 재사용하게 됩니다. 이것이 거의 모든 사람들이 하는 행동입니다. 그리고 이는 보안에 매우, 매우 좋지 않습니다. 이 문제를 해결하는 방법을 이해하는 데 가장 좋은 자료 중 하나는 사실 만화입니다. 그래서 제가 드릴 두 가지 조언이 있습니다. 첫 번째는 여러분만의 비밀번호를 직접 만들려고 하지 마시라는 것입니다,

비밀번호 관리자 (13:50)

비밀번호 관리자를 사용하세요. 비밀번호 관리자는 무작위 비밀번호를 생성하고 이를 대신 기억해 주는 소프트웨어입니다. 이 시스템은 두 가지 문제를 해결합니다. 인간의 기억력은 불완전하며, 인간이 만들어내는 무작위성은 훨씬 더 형편없다는 점입니다. 우리는 무작위로 무언가를 하는 데 매우 서툽니다. 우리는 기억하는 것도 잘 못하지만, 무작위로 된 것을 기억하는 것은 두 배로 못합니다. 따라서 더 규칙적으로 행동하거나, 더 똑똑해지거나, 더 주의를 기울인다고 해서 이 문제를 해결할 수는 없습니다. 화면에 포스트잇을 붙이거나, 여러분이 여기서 보는 모든 행동들을 한다고 해서 해결되지 않습니다. 사무실에서 항상 볼 수 있는 그런 행동들 말이죠. 비밀번호를 적어두는 것 자체가 나쁜 아이디어는 아닙니다. 적어둔 장소가 실제로 안전하다면 말입니다. 그래서 가장 기본적인 형태의 비밀번호 관리자는 작은 수첩, 즉 비밀번호 수첩입니다. 그리고, 제가 그것이 별로 현대적이지 않다고 말하겠지만, 그것은

기술적으로 크게 발전된 방식도 아니고, 무작위 비밀번호를 생성하는 문제도 해결하지 못합니다. 솔직히 말해서 제 부모님이 사용하시는 해결책이기도 합니다. 왜냐하면 적어두면 비밀번호를 더 다양하게 만들 수 있기 때문입니다. 그리고 그 작은 수첩을 집의 잠긴 서랍 같은 안전한 장소에 보관한다면, 꽤 오래 지속 가능한 방식입니다. 자, 여러분 대부분은 아마 제 부모님보다 기술적으로 더 정통하실 겁니다. 그러니 여러분을 위한 더 나은 해결책에 대해 이야기해 보겠습니다. 더 나은 해결책은 이 작업을 대신해 줄 소프트웨어를 다운로드하는 것입니다. 아주 다양한 비밀번호 관리자들이 있습니다. 그리고 좋은 소식은 기본 기능의 경우 무료라는 점입니다. Last Password나 LastPass, 1Password, Bitwarden, 그리고 KeePass 등 아주 다양한 제품을 사용할 수 있습니다. 자, 이런 제품들은

여러 가지 다양한 기능을 가지고 있으며, 여러분은 실제로 어떤 기능이 필요한지 파악해야 합니다. 제 조언은 어떤 기기에서 사용할지 먼저 파악하는 것부터 시작하라는 것입니다. 왜냐하면 비밀번호 관리자를 사용하는 큰 장점 중 하나가 바로 모든 기기에서 모든 비밀번호를 동기화할 수 있다는 것이기 때문입니다. 만약 Windows, Android, iOS를 사용한다면, 아마 쉬울 겁니다. 모든 비밀번호 관리자가 해당 플랫폼들을 지원할 테니 문제없을 것입니다. 또한 여러분이 사용하는 브라우저에서도 지원되기를 원할 것입니다. Chrome, Firefox, Edge, Opera, Brave 등 여러분이 사용하는 브라우저의 확장 프로그램으로 작동하여, 웹 양식에 비밀번호를 자동으로 채워 넣고 제출할 수 있어야 합니다. 방금 제 비디오 카메라의 메모리 카드가 꽉 찬 것을 다들 보셨을 겁니다. 스트리밍 중에 말이죠, 참

도움이 되네요. 네, 제 SD 카드가 방금 꽉 차서 더 이상 카메라로 녹화되지 않고 있습니다. 이런. 뭐, 신경 쓰지 마세요. 계속합시다. 따라서 비밀번호 관리자를 선택하는 방법 중 하나는 지원해야 할 기기를 파악하는 것입니다. 만약 특이한 기기를 가지고 있다면 조금 더 까다로워집니다. 예를 들어, 저는 데스크톱에서 Linux를 사용합니다. 아주 오랫동안 데스크톱에서 Linux를 사용해 왔습니다. 그리고 아시다시피, 저는 올해가 진정한 데스크톱 Linux의 해가 될 거라고 생각합니다. 여러분, 그렇게 될 겁니다. 아니, 안 될 겁니다. 어쨌든 저는 사용하고 있고 저에게는 잘 맞지만, 널리 지원되지는 않습니다. 그래서 모든 비밀번호 관리자가 Linux 데스크톱에서 작동하거나 잘 작동하는 것은 아닙니다. 다행히도 대부분의 비밀번호 관리자는 브라우저 확장 프로그램으로 브라우저 내에서 작동하므로, 대부분 크로스 플랫폼을 지원합니다. 그래서 저에게는,

여러 기기에서 사용할 비밀번호 관리자 선택하기 (18:22)

비밀번호 관리자는 Android, Windows, Linux, Chrome, Firefox, iOS 등 다양한 환경에서 작동해야 합니다. 그래야 모든 기기에 설치하고 모든 기기에서 내 모든 비밀번호에 접근할 수 있기 때문입니다. 좋습니다. 익명의 질문자께서 "난독증이 있고 긴 비밀번호를 잘 기억하지 못하는데, 고유하고 강력한 여러 비밀번호를 관리하는 가장 좋은 방법은 무엇인가요?"라고 질문하셨습니다. 이에 대한 답변을 드리자면, 가장 좋은 방법은 무작위로 고유하고 강력한 비밀번호를 생성해 주는 비밀번호 관리자를 사용하는 것입니다. 비밀번호 관리자를 선택했다면, 단 하나의 비밀번호만 설정하면 되는데, 이 하나의 비밀번호가 바로 비밀번호 관리자의 마스터 비밀번호가 됩니다. 또한, 누군가가 그 단일 비밀번호만으로 로그인하여 비밀번호 파일을 다운로드할 수 없도록 이중 인증(2FA) 메커니즘을 사용하는 것을 권장합니다. 두 번째 인증 수단이 필요합니다. 이에 대해서는

오늘 영상의 두 번째 부분에서 이야기하겠습니다. 청중으로부터 "이 소프트웨어를 어떻게 신뢰할 수 있나요?"라는 후속 질문도 있었습니다. 간단히 답하자면, 널리 사용되거나, 보안 전문가의 검토 및 감사를 받았거나, 오픈 소스이거나, 혹은 이 모든 조건을 충족하는 소프트웨어를 찾으시면 됩니다. 제가 이전에 언급했던 모든 소프트웨어는 이러한 요구 사항을 충족한다고 생각합니다. 이제 제가 전에 말씀드렸던 내용으로 돌아가 보겠습니다. 보안은 100% 완벽할 수 없으며, 위험을 균형 있게 조율하고 완화하는 문제라고 말씀드렸던 것을 기억하실 겁니다. 이제 이 두 가지 위험을 테이블 위에 올려놓고 생각해 봅시다. 첫 번째 위험, 비밀번호 관리자를 신뢰할 수 있을까요? 만약 제가 다운로드한 비밀번호 관리자가 손상되었거나 손상될 가능성이 있다면, 혹은 수백만 명의 다른 사용자와 보안 전문가들이 이를

검토하면서도 알아채지 못한 버그가 있다면 어떻게 될까요? 두 번째 위험, 내 두뇌를 믿을 수 있을까요? 이렇게 놓고 보면, 어떤 비밀번호 관리자든 아예 사용하지 않는 것보다는 낫다는 사실이 명확해집니다. 이는 암호화폐에서 하드웨어 월렛과 소프트웨어 지갑을 비교할 때 하는 위험 관리와 같은 맥락입니다. 하드웨어 월렛 제조사를 신뢰할 수 있을까요? 어느 정도는 그렇지만, 100%는 아닙니다. 거기에도 약간의 위험이 존재합니다. 그렇다면 그 위험을 하드웨어 월렛이 아예 없는 상태와 비교하면 어떨까요? 여기서도 정답은 어떤 하드웨어 월렛이든 없는 것보다는 낫다는 것입니다. 그렇다면 여러분이 실제로 관리할 수 있는 위험은 무엇일까요? 비밀번호 관리자를 구할 때 올바른 소프트웨어를 확보하는 것이 중요합니다. 어차피 무료인 소프트웨어를 그루폰(Groupon) 쿠폰을 써가며 출처를 알 수 없는 임의의 웹사이트에서 다운로드했다가

시스템에 트로이 목마를 감염시키는 일은 없어야 합니다. 하지만 본론으로 돌아가서, 어떤 비밀번호 관리자든 없는 것보다는 낫습니다. 따라서 여러분이 직접 고유한 비밀번호를 만들려고 애쓸 필요가 없습니다. 웹사이트에서 8자 이상의 영숫자 비밀번호를 요구한다면, 저처럼 하시면 됩니다. '안전한 비밀번호 생성'이라는 작은 버튼을 클릭하세요. 길이를 31자, 75자, 213자로 설정하는 겁니다. 저는 웹사이트가 너무 길다고 비명을 지르기 전까지 얼마나 길게 만들 수 있는지 테스트해 보는 것을 좋아합니다. 수년 동안 비밀번호 관리자와 시스템들이 저에게 길이가 충분하지 않다, 충분히 복잡하지 않다고 소리쳐 왔으니, 이제는 웹사이트들이 너무 길다, 너무 복잡하다, 도대체 왜 이러는 거냐, 우리 데이터베이스에 다 들어가지도 않는다고 비명을 지르는 걸 보고 싶거든요. 그러니 강력하고 무작위적인 비밀번호를 생성하세요. 자, 제가 이 비밀번호를 기억할 수 있을까요?

당연히 못 합니다. 제 비밀번호 관리자에는 800개의 비밀번호가 있는데, 모두 20자가 넘고 기호, 대문자, 소문자, 숫자가 포함된 완전히 무작위적인 영숫자 조합입니다. 800개는커녕 그중 단 하나도 기억하는 것은 불가능하지만, 마스터 비밀번호 하나만큼은 기억하고 있습니다. 좋습니다, 다른 질문이 있는지 살펴보죠. 다음 질문으로 넘어가면 제가 다루고 싶은 다음 주제에 대해 이야기할 기회가 될 것 같네요. 익명의 질문자께서 "강력한 비밀번호 생성기를 사용할 때 비밀번호나 패스프레이즈에 대한 최소한의 실행 가능한 보안 표준이 있나요? 많은 곳에서 생성기가 작동하지 않아서요."라고 물으셨습니다. 네, 맞습니다. 웹사이트들은 비밀번호에 대해 터무니없는 기준을 요구하며, 종종 그것은 잘못된 기준이기도 합니다. 예를 들어, 모순되는 정보를 조장하기도 하죠. 한 가지 예를 들어보겠습니다. 8자 이상이어야 하고, 기호와 숫자가 포함된 영숫자여야 한다고 하면서, 정작 입력 양식에 붙여넣기 기능은 비활성화해 놓습니다. 이게 무슨

잘못된 비밀번호 정책 (24:02)

무엇을 하고 계신가요? 도대체 뭘 하시는 건가요? 왜 저한테 복잡한 비밀번호를 고르라고 요구해 놓고, 당연히 생성기를 사용할 텐데 붙여넣기를 못하게 하는 건가요? 아니면 양식의 확인란에 붙여넣기를 못하게 하는 건가요? 제정신인가요? 도대체 뭘 하시는 건가요? 제발 그러지 마세요. 아니면 8자에서 12자 사이로 설정하라는 비밀번호 정책은 어떤가요. 정말요? 복잡하게 만들라면서 너무 복잡해서는 안 된다고요. 그래서 13자는 안 된다니, 말도 안 됩니다. 아니면 이상한 기호 조합은요. 아 네, 기호를 쓸 수는 있지만 파운드(#), 느낌표(!), 별표(*)만 가능합니다. 작은따옴표(')와 골뱅이(@)는 정규식(regex)에 혼란을 줄 수 있어서 안 받습니다. 이 모든 것들은 정말, 정말 잘못된 비밀번호 정책입니다. 아니면 매달 비밀번호를 바꾸라고 하면서 이전 달에 쓴 건 재사용하지 못하게 하고, 계속해서

그렇게 이상할 정도로 복잡하게 유지하라는 정책도 있죠. 이것들은 모두 이상한 비밀번호 정책이며, 여러분은 이런 것들을 많이 마주치게 될 것입니다. 핵심은, 각기 다른 보안 팀과 보안 정책, 그리고 다양한 수준의 보안 인식을 가진 여러 회사의 웹사이트들이 대부분의 사용자에게 적합한 훌륭한 정책을 알아서 마련해 줄 것이라고 기대할 수 없다는 것입니다. 명심하세요. 그들은 비밀번호 관리자에서 생성된 37자리 무작위 비밀번호를 입력하려는 사용자부터 '12345678'을 입력하려는 사용자까지 아우르는 사람들을 상대해야 합니다. 참고로 '12345678'은 인터넷에서 가장 흔한 비밀번호이고, 'password1234'는 제 생각에 두 번째로 흔한 비밀번호일 겁니다. 따라서 이 모든 사람들에게 효과적인 정책을 찾는 것은 웹사이트 입장에서 매우, 매우 어려운 일입니다. 그래서 제가 하는 방법은

그냥 계속 시도하는 것입니다. 제가 좋아하는 종류의 무작위로 생성된 비밀번호, 그러니까 37자에 모든 기호가 들어간 비밀번호를 던져봅니다. 그러면 웹사이트는 불평하며 '별표는 별로 안 좋아하는데 왜 이러세요?'라고 하겠죠. 그러면 기호를 몇 개 빼거나, 너무 길다고 하면 더 짧게 만듭니다. 아니면 '사실 대문자도 최소 두 개가 필요한데, 숫자로 시작하면 안 됩니다'라고 할 수도 있습니다. 그러면 저는 '아, 제발요'라고 하죠. 저는 그냥 통과될 때까지 계속 이것저것 시도해 봅니다. 하지만 어떤 결과가 나오든 두 가지는 보장됩니다. 길고 복잡할 것이며, 완전히 무작위로 생성되어 제 두뇌가 이를 만들어내거나 기억하는 데 의존하지 않을 것이라는 점입니다. 그리고 저는 가능한 한 최대의 복잡성을 사용합니다. 자, 그럼 익명의 시청자분이

다음 질문을 해주셨는데, 덕분에 이 이야기를 계속 이어갈 수 있겠네요. '바보 같은 질문일 수도 있지만, 비밀번호 관리자는 클라우드에 있으니 해커들의 쉬운 표적이 될 수 있지 않나요?' 훌륭한 질문입니다. 이러한 시스템이 작동하는 방식은 다음과 같습니다. 비밀번호 데이터베이스의 백업은 클라우드에 저장됩니다. 하지만 그 백업은 암호화되어 있으며, 종단간(end-to-end) 암호화가 적용되어 있습니다. 즉, 로컬 컴퓨터에서 암호화된다는 뜻입니다. 암호화된 상태로 클라우드에 전송되고, 오직 로컬 컴퓨터에서만 다시 복호화됩니다. 암호화 및 복호화되는 방식은 마스터 비밀번호를 사용하는 것입니다. 그리고 그 마스터 비밀번호 자체는 스트레처(stretcher)라고 불리는 과정을 거칩니다. 스트레처가 하는 일은 비밀번호 스트레칭 알고리즘, 사실상 해싱 알고리즘을 적용하는 것입니다. 여러분이 마스터 비밀번호로 입력한 단어나 문자를 가져와서

수천 번의 해싱 과정을 거치게 합니다. 이 과정은 시간이 걸리며, 그 결과 무차별 대입(brute force) 공격이 불가능한 비밀번호가 만들어집니다. 왜냐하면 제가 비밀번호를 입력하고 한 번만 암호화하거나 해시한 다음 서버로 보냈다고 가정해 봅시다. 좋습니다, 하지만 그것은 레인보우 테이블(rainbow table)이라고 불리는 꽤 쉬운 공격에 노출됩니다. 그다음 일어날 일은 공격자가 상상할 수 있는 가장 흔한 비밀번호를 모두 가져와서 해시한 다음, 해당 공격에 사용할 수 있는 해시된 비밀번호 데이터베이스를 만드는 것입니다. 반면에, 맞는 것을 찾을 때까지 계속해서 다른 비밀번호를 반복적으로 시도할 수도 있습니다. 전형적인 무차별 대입 공격이죠. 하지만 모든 비밀번호가 25,000번, 50,000번, 또는 100,000번씩 해시된다면, 매번 제가

비밀번호 데이터베이스가 암호화되는 방법 (29:19)

컴퓨터에 입력하는 데 2~3초가 걸립니다. 저에게는 큰 문제가 아닙니다. 비밀번호 관리자를 시작하기 위해 브라우저나 컴퓨터에 처음 로그인할 때 2~3초가 걸립니다. 하지만 비밀번호를 입력할 때마다 2~3초를 추가해야 한다면, 무차별 대입(brute forcing) 공격 방식은 완전히 엉망이 됩니다. 또한 사전 계산된 비밀번호 해시 데이터베이스를 생성하는 것도 불가능해집니다. 단 몇 천 개의 조합을 시도하는 데에도 너무 오랜 시간이 걸리기 때문입니다. 그리고 마스터 비밀번호가 충분히 복잡하다면, 이를 알아내는 데 몇 천 개의 비밀번호 조합보다 훨씬 더 많은 시간이 필요합니다. 따라서 비밀번호 데이터베이스는 일반적으로 상당히 직관적인 표준 기반 암호화 알고리즘으로 암호화됩니다. AES256이 아마도 이에 가장 흔하게 사용되는 알고리즘일 것입니다. 하지만 이는 다음과 같은

방식입니다. 단일 키, 즉 데이터를 암호화하고 복호화하는 개인 키를 사용하는 대칭 암호화 알고리즘입니다. 암호화와 복호화에 동일한 키가 사용되기 때문에 대칭 암호화 알고리즘이라고 부릅니다. 그리고 그 키는 마스터 패스프레이즈를 반복적으로 해싱하여 생성됩니다. 따라서 로컬 기기에서만 마스터 패스프레이즈를 입력하고 해당 기기를 신뢰할 수 있는 한, 높은 수준의 안전성을 얻을 수 있습니다. 네, 비밀번호 데이터베이스는 클라우드에 있지만 암호화되어 있으며, 여러분의 기기 외에는 절대 입력하지 않는 마스터 패스프레이즈가 없으면 아무도 열 수 없습니다. 물론 몇 가지 문제가 있습니다. 로컬 기기에 비밀번호 키로거가 설치되어 있다면, 마스터 패스프레이즈를 입력하는 것을 가로챌 수 있기 때문입니다. 하지만 흥미롭게도, 그것만으로는

이중 인증(2FA)을 사용한다면 공격자에게 충분하지 않을 것입니다. 공격자에게 충분하지 않은 이유는, 그들이 마스터 패스프레이즈를 가로챌 수는 있지만, 여러분의 기기나 다른 것에 연결되어 있을 두 번째 인증 요소 없이는 클라우드에서 암호화된 데이터베이스를 다운로드할 수 없기 때문입니다. 그리고 그들에게는 그 두 번째 요소가 없습니다. 이중 인증에 대해서는 잠시 후에 더 자세히 설명하겠습니다. 우리는 방어 계층을 구축하고 있습니다. 우리가 여기서 무엇을 하고 있는지 보이실지 모르겠지만, 네, 우리는 발생할 수 있는 각각의 문제를 살펴보고 보안 계층을 추가하고 있습니다. 보안은 '모든 것을 막아주는 단 한 가지'가 아닙니다. 보안은 공격자의 경로에 장벽을 세우는 것입니다. 네, 이 장벽을 부술 수는 있겠지만, 바로 그 뒤에 또 다른 장벽이 있습니다. 그리고 그 장벽을 부수면 바로 그 뒤에,

또 다른 장벽이 있습니다. 그리고 제가 장벽을 충분히 튼튼하게 만들 뿐만 아니라, 보안 계층을 겹겹이 풍부하게 만들고, 한 계층을 뚫는 데 필요한 기술이 다른 계층을 뚫는 데 필요한 기술과 다르도록 보장한다면 어떨까요. 또한 한 계층을 뚫는 데 필요한 도구와 예산이 다른 계층과 다르도록 확실히 한다면 말입니다. 그렇다면 여러분이 제가 눈치채지 못하게, 제가 막지 못하게 이 모든 계층을 성공적으로 통과할 확률, 혹은 수많은 피해자를 대상으로 대규모로 그런 일을 해낼 확률은 매우, 매우, 매우 줄어듭니다. 그리고 그것이 바로 핵심입니다. 자, 여기서 커피를 잠깐 마시면서 여러분이 묻고 싶어 할 만한 다른 질문들을 찾는 동안 채팅창에서 여러분과 조금 이야기를 나누겠습니다. 제가 화면에

작은 페이지를 띄워보겠습니다. '지배자 없는 규칙(rules without rulers)'이라고 적힌 새 머그잔으로 커피를 마시면서 이런 교육 자료를 만들 수 있게 해 주시는 모든 후원자분들께 감사드립니다. 최근 제 강연 중 꽤 인기 있었던 주제죠. 작은 주황색 비트코인도 같이 그려져 있습니다. "세상에, 광고 좀 그만하세요, 굿즈는 살 테니까요. 그냥 좋은 콘텐츠나 계속해 주세요." 네, 잠시만요. 자, 돌아왔습니다. 좋아요, 이건 저쪽에 치워둘 수 있겠네요. 보기 좋게 돌려놓겠습니다. 됐습니다. 좋습니다. 그래서 저는 이 작은 이야기를 가능한 한 간결하게 이어갈 수 있는 질문을 찾으려고 질문들을 살펴보고 있었습니다. 자, 이제 패스프레이즈에 대해 이야기해 보겠습니다. 이를 위해 강력한 비밀번호를 지갑 패스프레이즈로 사용하는 것에 대한 생각을 물어본 브루스(Bruce)의 도움을 받아보겠습니다.

지갑 패스프레이즈와 BIP-39 (35:02)

여기서 브루스(Bruce)가 말하는 것은 BIP-39 니모닉 구문을 사용하는 사람들에게 제공되는 선택적 패스프레이즈(passphrase)입니다. 니모닉 구문이 24개의 단어로 이루어져 있기 때문에 이는 25번째 단어라고도 불립니다. 이론적으로 25번째 단어를 추가하는 것이지만, 저는 25번째 단어라고 부르는 대신 그 본질에 맞게 선택적 패스프레이즈라고 부르겠습니다. 이는 한 단어 이상이 될 수도 있습니다. 이것이 바로 지갑 패스프레이즈입니다. 이는 니모닉 구문에 추가하는 선택적 패스프레이즈로, 니모닉 구문에 이중 인증(second factor) 역할을 부여합니다. 따라서 누군가 사무실의 종이에 적어둔 24개의 단어를 훔쳐가더라도, 지갑 패스프레이즈가 있기 때문에 즉시 여러분의 자금을 빼앗아 갈 수 없습니다. 자, 우리가 단 하나의 비밀번호, 즉 마스터 비밀번호에 대해 이야기했던 것을 기억해 보십시오. 이는

비밀번호 관리자에서 사용되는 것입니다. 그리고 우리는 그 비밀번호가 반복적으로 해시(hash)되어 무차별 대입 공격(brute forcing)을 방지한다고 말했습니다. BIP-39 표준의 선택적 패스프레이즈와 니모닉 구문에도 이와 정확히 동일한 방식이 적용됩니다. PBKDF2라는 비밀번호 스트레칭 알고리즘을 사용하여 SHA-512를 2000번 반복 적용함으로써 이를 늘립니다. 이는 일종의 타협안입니다. 지갑을 위한 니모닉 구문 표준인 BIP-39 표준은 처리 능력이 높지 않은 이만한 크기의 작은 USB 기기인 하드웨어 월렛 장치에서도 실행될 수 있어야 하기 때문에 타협을 한 것입니다. 그래서 실제로 SHA-512를 2000번 실행하는 데는 몇 초가 걸립니다. 2~3초 정도 말이죠. 안타깝게도 이것이 의미하는 바는 보호 수준이 아주 뛰어나지는 않다는 것입니다. 적절한 수준이긴 하지만, 무차별 대입 공격으로 뚫릴 수

있습니다. 훨씬 더 강력한 컴퓨터가 있다면 말이죠. 예를 들어 GPU를 사용하거나, 더 나아가 SHA-512용으로 설계된 ASIC이나 SHA-512용 FPGA 장치를 사용한다면, 2000번의 반복 연산을 순식간에 처리할 수 있습니다. 따라서 동일한 시드(seed)에 대해 초당 수백, 어쩌면 수천 개의 비밀번호나 패스프레이즈를 시도해 볼 수 있습니다. 즉, 예산에 맞는 적절한 하드웨어만 갖추면 선택적 패스프레이즈가 있는 BIP-39 니모닉을 공격할 수 있다는 뜻입니다. 하지만 다시 말하지만, 이것은 결코 쉬운 일이 아닙니다. 그래서 우리는 보안의 여러 계층(layers)에 대해 이야기하는 것입니다. 그럼 패스프레이즈에 대해 이야기해 보겠습니다. 단일 단어가 아니라는 점을 나타내기 위해 비밀번호(password) 대신 패스프레이즈(passphrase)라는 용어를 사용합니다. 이는 실제로 하나의 구문(phrase)입니다. 니모닉 구문이 하나의 구문인 것과 마찬가지입니다. 공백으로 구분된 일련의 단어들입니다. 덕분에 기억하기 훨씬 쉬울 뿐만 아니라,

적어두고 읽기에도 좋으며, 글씨가 약간 훼손되더라도 알아볼 수 있습니다. 알고 보니 인간은 패턴 인식에 아주, 아주 뛰어납니다. 따라서 소문자로 된 일련의 단어들을 직접 손글씨로 적어두면, 단어의 3분의 2가 번져 있더라도 읽을 수 있거나 꽤 정확하게 유추할 수 있습니다. 그리고 그 단어들이 여러분에게 어떤 의미가 있거나 그 단어들로 머릿속에 이미지를 그릴 수 있다면, 대소문자와 숫자로 구성된 무작위 생성 비밀번호보다 구문을 훨씬 더 잘 기억할 수 있습니다. 하지만 이를 좀 더 잘 설명하기 위해 랜들 먼로(Randall Monroe)의 도움을 받아보겠습니다. 제가 예전에 랜들 먼로에 대해 이야기하는 것을 들어보신 분도 계실 겁니다. 랜들 먼로는 다음과 같은 만화를 그리는 그래픽 아티스트입니다.

바로 XKCD입니다. XKCD는 다양한 기술적 개념과 아주 재미있는 사회 비판, 그리고 온갖 기발한 아이디어들을 보여주는 그래픽 만화입니다. 정말 똑똑한 아이디어들이 아주 훌륭하게 표현되어 있습니다. 아시다시피, 무언가를 잘 설명하고 싶은 거의 모든 개념에 대해 그에 딱 맞는 XKCD 그림이 존재하는 그런 상황 중 하나입니다. 그래서 여러분 중 많은 분들이 들어보셨을 법한 것을 하나 사용하려고 하는데, 바로 'correct horse battery staple(정확한 말 배터리 스테이플)'로 알려진 만화입니다. 만약 이 말이 횡설수설처럼 들린다면 잠시만 기다려 보십시오. 좋습니다. 그럼 여기 화면에서 그 만화를 한번 살펴보겠습니다. 이 만화의 제목은 '비밀번호(passwords)'입니다. "20년간의 노력 끝에, 우리는 사람들이 기억하기는 어렵지만 컴퓨터가 추측하기는 쉬운 비밀번호를 사용하도록 모두를 훈련시키는 데 성공했다." 그리고 여기 위를 보시면

XKCD 패스프레이즈 개념 (40:47)

왼쪽 상단을 보면, 웹사이트에서 요구하는 전형적인 비밀번호가 있습니다. 대문자, 소문자, 숫자, 기호가 어떤 순서로 배열되어 있죠. 여기서 볼 수 있는 것은 사용자들이 비밀번호를 만들고 기억하기 위해 흔히 하는 방식, 즉 단어를 변형하는 것입니다. 이것은 Troubadour(음유시인)라는 단어입니다. 영웅들의 업적을 노래하는 떠돌이 음악가죠. Troubadour의 뜻이 아마 그럴 겁니다. Troubadour와 숫자 3입니다. 이 경우 무작위처럼 보이지만 실제로는 무작위가 아닌 것을 볼 수 있습니다. 이제 이것을 컴퓨터의 관점에서 분석해 볼 수 있습니다. 수학적 관점이나 정보 이론의 관점에서 이것이 얼마나 무작위적인지 확인하는 것이죠. 또는 이런 종류의 비밀번호가 얼마나 많은 무작위성을 포함하고 있는지 말입니다. 이 특정 사례의 경우, 대략 28비트의 엔트로피를 가집니다. 이것이 의미하는 바는 이

정도의 복잡성이 28자리의 이진수, 즉 2의 28승으로 표현될 수 있다는 것입니다. 초당 1,000번의 추측이 가능하다고 할 때, 무차별 대입으로 알아내는 데 3일이 걸립니다. 이것은 기본적으로 초당 여러 번의 추측을 시도하는 웹 서비스나 그와 비슷한 상황을 가정한 것입니다. 만약 웹사이트에서 훔친 데이터베이스가 있다면, 일반적인 컴퓨터로도 초당 1,000번보다 훨씬 더 많은 추측을 시도할 수 있습니다. 하지만 어쨌든, 이것은 컴퓨터가 추측하기에 실제로 매우 쉽습니다. 28비트의 엔트로피는 충분하지 않기 때문에 컴퓨터가 추측하기 쉽습니다. 하지만 이 배열에서 대소문자의 모든 가능한 조합을 시도하는 무차별 대입으로 컴퓨터가 쉽게 알아낼 수 있음에도 불구하고, 인간이 기억하기는 실제로 매우 어렵습니다. 그리고 바로

아래에서 랜들 먼로(Randal Monroe)는 공백으로 구분된 평범한 영단어를 사용하는 다른 접근 방식을 보여줍니다. 이것은 비밀번호가 아니라 니모닉 패스프레이즈입니다. 이 경우, 무작위로 단 4개의 단어만 선택합니다. 무작위로 선택한 4개의 단어는, 만약 10만 개의 단어가 포함된 큰 영어 사전에서 가져왔다고 가정할 때, 약 44비트의 엔트로피를 생성합니다. 44비트의 엔트로피는 초당 1,000번 추측할 때 550년이 걸립니다. 초당 10,000번 추측하면 55년이 걸립니다. 초당 100,000번 추측하면 5년이 걸립니다. 단 4개의 단어일 뿐인데도 무차별 대입으로 알아내기가 실제로 어렵습니다. 하지만 가장 중요한 것은 인간이 기억하기 쉽다는 점입니다. 이것이 우리가 BIP 39에서 니모닉 문구를 사용하는 이유입니다. 따라서 'correct horse battery staple'을 생각해 보면, 비록 이것들이 무작위

단어들이지만, 연상의 기반이 되는 기묘한 심상을 만들어낼 수 있습니다. 그리고 연상은 인간의 기억이 작동하는 방식입니다. 그래서 여기에 그려진 작은 그림이 있습니다. 저건 배터리 스테이플(battery staple)이야, 맞아(correct). 말(horse)이 저건 배터리 스테이플이라고 말하고, 누군가가 맞아, 저건 배터리 스테이플이야라고 말하는, 'correct horse battery staple'입니다. 그리고 괴짜(geek)에게 이 네 단어를 말하면, 그들은 당신이 무슨 말을 하는지 즉시 알 것입니다. 이 문구는 기억하기 너무 쉬워서 인터넷상의 수백만 명의 사람들이 이 단 하나의 만화와 예시를 통해 성공적으로 외웠기 때문입니다. 따라서 엄청난 것들이 있는 Xkcd.org에 가면 이 만화 시리즈를 볼 수 있습니다. 환상적인 작품인 XKCD입니다. 하지만 이것이 요점을 이해하는 데 도움이 될 것이라 생각합니다. 이것이 바로 패스프레이즈이며, 이것은 훨씬 더 나은 생성 방식입니다.

지갑 및 암호화를 위한 패스프레이즈 사용 (45:27)

비밀번호 관리자의 마스터 비밀번호뿐만 아니라 지갑을 위한 선택적 패스프레이즈입니다. 따라서 이를 통해 지갑에 대한 선택적 패스프레이즈를 실제로 만들 수 있습니다. 이것은 GPU나 FPGA를 사용하더라도 무차별 대입 공격(brute force)으로 뚫기가 매우 어렵습니다. SHA-512를 2000번 반복할 수 있다고 해도, 누군가 단 4~5개의 단어로 이루어진 것을 무차별 대입으로 알아내려면 수년은 아니더라도 수개월이 걸립니다. 6개의 단어로 늘리면, 정말로 매우 강력한 보안 메커니즘을 갖추게 됩니다. 이제 이것만 사용하지는 않을 것입니다. 예를 들어 BIP-39 니모닉 문구가 있고 선택적 패스프레이즈를 추가하고 싶다고 가정해 보겠습니다. "좋아, 사전에서 무작위로 4개의 단어를 고르겠어"라고 말합니다. 그리고 그것이 나의 선택적 패스프레이즈가 될 것이고, 나는 그 4개의 단어를 외우고 기억할 수 있습니다. 그리고 또한 저는 그것들을

보조 위치에 백업할 것입니다. 왜냐하면 제가 기억할 수는 있지만, 만약 저에게 무슨 일이 생기면 어떡합니까. 아무도 제가 사용한 선택적 패스프레이즈를 찾지 못해서 제 유산이 허공으로 사라지기를 원할까요? 아니요, 당연히 그렇지 않습니다. 그래서 저는 패스프레이즈도 백업해야 하고, 니모닉 문구인 시드도 백업할 것입니다. 그리고 선택적 패스프레이즈도 백업하여 두 개의 서로 다른 위치에 보관할 것입니다. 또한 누군가 제 시드를 훔쳐본다면, 그들이 제 시드를 가져갔다는 것을 제가 알 수 있게 만들 것입니다. 그래야 그들이 강력한 컴퓨터를 사용하여 패스프레이즈의 모든 가능한 조합을 실행해 보기 전에 제 자금을 이동시킬 수 있다는 것을 알게 되니까요. 제가 그렇게 하는 방법은 매우, 매우 아날로그적인 방식입니다. 그것은 비닐봉지, 즉 개봉 여부를 알 수 있는(tamper-evident) 비닐봉지입니다. 이것들은

어디서나 온라인 소매점에서 100개 들이 팩으로 구입할 수 있습니다. 이것들은 빙고 게임이나 교회 등에서 현금 기부금을 모을 때 사용됩니다. 직원들이 훔치는 것을 방지하기 위해 사용되기도 합니다. 그리고 불투명하며, 한 번 밀봉하면 티 나지 않게 뜯을 수 있는 유일한 방법은 찢거나 자르는 것뿐이므로 자국이 남게 됩니다. 자국을 남기지 않고는 얼리거나 가열하거나 뜯었다가 다시 밀봉할 수 없습니다. 따라서 니모닉 문구와 선택적 패스프레이즈를 그런 개봉 방지 봉투에 넣었는데 누군가 훔쳐본다면, 여러분은 그들이 훔쳐봤다는 사실을 알 수 있습니다. 그러므로 몇 달에 한 번씩 보관 장소를 점검한다면, 보안을 위한 훌륭한 기반을 갖추게 되는 것입니다. 좋습니다, 이제 마무리하겠습니다. 앞으로 약 45분 정도 더 진행할 예정입니다. 왜냐하면 이중

인증에 대해 아직 할 이야기가 많기 때문입니다. 하지만 저는 여러분이 이 패스프레이즈 개념을 어떻게 적용하는지 이해하시기를 바랐습니다. 그래서 다음 순서에서는 패스프레이즈를 안전하게 생성하는 방법에 대해 이야기하겠습니다. 이모지 폭풍(emoji storm)을 일으켜 봅시다. 유튜브의 모든 커뮤니티 멤버 여러분, 이모지 폭풍을 실행하여 제 채널의 맞춤형 이모지가 가진 놀라운 창의력과 표현력을 모두에게 보여주시길 바랍니다. 시작! 좋습니다, 다시 돌아왔습니다. 이제 여러분은 패스프레이즈를 만들고 싶어 합니다. 그리고 이 패스프레이즈는 우리가 XKCD 패스프레이즈라고 알고 있는 형태, 즉 'correct horse battery staple'과 같은 형태일 때 가장 좋다는 것을 알고 계실 겁니다. 무작위로 선택된 일련의 영어 단어들로, 여러분이 머릿속으로 연상하거나 그에 맞는 이미지를 떠올릴 수 있는 형태 말입니다. 여러분은 이 패스프레이즈를 비밀번호 관리자의 마스터 비밀번호로 사용할 수도 있으며, 이를 직접 입력해야 할

안전하게 패스프레이즈 생성하기 (50:25)

하루에도 여러 번 다양한 기기에서 사용합니다. 저는 다른 용도로도 비슷한 패스프레이즈를 사용하며, 동일한 패스프레이즈를 반복해서 사용하지 않습니다. 하지만 세 개나 네 개 정도까지는 기억할 수 있어도 그 이상은 복잡해진다는 것을 알게 되었습니다. 그래서 bit 39 지갑의 선택적 패스프레이즈로 사용할 그런 패스프레이즈가 필요할 것입니다. 또한 노트북의 하드 드라이브 암호화를 위해서도 그런 패스프레이즈가 필요합니다. 저는 암호화된 하드 드라이브를 사용하는 것을 선호합니다. 제 노트북이나 다른 기기를 부팅하기 전에는 반드시 패스프레이즈를 입력해야 합니다. 그리고 그 패스프레이즈 역시 같은 형태입니다. 바로 니모닉 패스프레이즈입니다. 공백으로 구분된 일련의 영어 단어들을 사용하죠. 일관성을 유지하기 위해, 저는 항상 니모닉 패스프레이즈를 모두 소문자로 입력하고 그 사이에 단순한 공백을 넣습니다. 즉, 소문자 단어, 공백, 소문자 단어, 공백, 소문자 단어, 엔터 순입니다. 그리고 이 패스프레이즈는

길이가 4단어에서 8단어 사이가 될 수 있습니다. 여러분은 어느 정도 수준의 보안이 필요한지 결정해야 하며, 이는 어디에 사용하는지에 따라 달라집니다. 해당 패스프레이즈에서 파생되는 암호화 키를 생성할 때 해싱이 몇 라운드나 사용되는지, 그리고 이러한 것들에 대해 여러분이 직면한 위협 수준이 어느 정도인지에 따라 다릅니다. 하지만 아마도 4단어가 최소한으로 사용해야 할 단어 수일 것이고, 8단어는 기억을 잊어버리거나 헷갈리기 시작하기 전의 최대 단어 수일 것입니다. 특히 자주 사용하지 않는 패스프레이즈의 경우 더욱 그렇습니다. 패스프레이즈를 더 자주 사용할수록, 즉 더 자주 입력할수록 길게 만들 수 있습니다. 연습을 통해 강제로 기억하게 될 테니까요. 그래서 저는 매일 입력하는 비밀번호 관리자에는 조금 더 긴 패스프레이즈를 사용할 수 있습니다. 반면에 조금 더 짧은 패스프레이즈를 사용할 곳은,

예를 들어 지갑의 선택적 패스프레이즈입니다. 그리고 제 기기의 선택적 패스프레이즈, 즉 하드 드라이브의 암호화된 부팅을 위해서는 그보다 더 짧은 패스프레이즈를 사용할 것입니다. 왜냐하면 그것은 한 달에 한 번 정도만 입력하기 때문에 잊어버리기 더 쉬울 수 있기 때문입니다. 그렇다면 이 단어들을 어떻게 골라야 할까요? 여러 가지 방법이 있지만, 무작위로 선택하는 것이 좋습니다. 노래 가사 같은 것은 피해야 합니다. 어떤 노래의 가사 말이죠. 특정 노래를 언급하려 했지만, 논란이 될 것 같아 아예 생략하겠습니다. 여러분이 응원하는 축구팀의 구호여서도 안 됩니다. 여러분이 사는 주의 슬로건이어서도 안 됩니다. 스타트렉에 나오는 대사여서도 안 됩니다. 왜일까요? 그런 문구들은 모두 해커들이 수집해 놓은 사전에 존재하기 때문입니다.

구글에 문구로 입력했을 때 검색 결과가 나올 만한 것은 절대 사용해서는 안 됩니다. 물론 구글에 입력하는 것 자체가 보안을 깨뜨리는 일이니 그렇게 하지는 않으시겠지만요. 누군가 한 번이라도 말했거나 말할 가능성이 있는 문구는 절대 사용해서는 안 됩니다. 대신 무작위 단어들을 고른 다음, 여러분에게 의미 있는 심상이나 연관성을 만들어보세요. 여러분에게 의미가 있고 머릿속에서 그 이미지를 반복하며 약간의 연습을 할 수 있다면, 아주 이상하고 기괴한 것이라도 상관없습니다. 그것이 좋은 방법입니다. 그렇다면 무작위 단어는 어떻게 고를까요? 글쎄요, 여러 가지 방법이 있습니다. 사전을 여러 페이지로 펼쳐놓고 보지 않은 채 손가락으로 짚을 수도 있겠지만, 그리 좋은 방법은 아닙니다.

대부분의 경우 사전의 중간 3분의 1 지점의 페이지를 고르고, 그 페이지에서도 중간 3분의 1 지점을 손가락으로 짚게 될 가능성이 높기 때문입니다. 하지만 사전에는 단어가 아주 많기 때문에 사실 이 정도만 해도 충분합니다. 크고 두꺼운 좋은 사전이라면 말이죠. 따라서 충분한 무작위성을 얻을 수 있을 것입니다. 이것이 집에서 별다른 노력 없이 할 수 있는 쉬운 방법입니다. 조금 더 나아가고 싶다면 다이스웨어(diceware)라는 기법을 사용할 수 있습니다. D-I-C-E-W-A-R-E. 다이스웨어는 다운로드할 수 있는 단어 목록을 활용하는 방식입니다. 다이스웨어 인덱스 목록을 다운로드할 수 있는데, 해당 웹사이트는... 구글에서 아주 쉽게 찾을 수 있습니다. 가장 먼저 나오는 diceware.D-M-U-T-H dmuth.org가 올바른 사이트입니다. 그 웹사이트를 이용하면 목록을 다운로드할 수 있습니다. 자, 이제

다이스웨어(Diceware) 방식 (55:27)

이 목록에서 흥미로운 점은 1에서 6 사이의 숫자로 인덱스가 지정되어 있어 일반적인 주사위를 사용할 수 있다는 것입니다. 주사위를 다섯 번 던져 1에서 6 사이의 숫자로 이루어진 5자리 숫자를 만든 다음, 다이스웨어 목록에서 해당 인덱스에 해당하는 단어를 찾아 적으면 무작위성을 얻게 됩니다. 일반 주사위와 함께 사용하도록 설계된 무작위성을 얻을 수 있어 편리합니다. 주변에 주사위가 있다면 쉽게 할 수 있습니다. 이것은 비디지털 방식입니다. 컴퓨터에 목록을 다운로드하고 그 목록에서 무작위로 단어를 선택하기만 하면 됩니다. 다시 말하지만, 이는 무작위 암호 문구를 생성하는 훌륭한 방법입니다. 물론 컴퓨터에서 프로그램을 사용할 수도 있습니다. 하지만 문제는

컴퓨터에 이미 트로이 목마 악성코드나 키보드 로거가 있다면 문제가 발생할 수 있다는 것입니다. 저는 XKCD pass라는 프로그램을 사용하는데, 이 프로그램은 실제로 XKCD 호환 암호 문구를 생성합니다. 저는 이를 아주 많이 생성합니다. 그런 다음 그 매우 긴 목록에서 무작위로 하나를 고릅니다. 그리고 제가 어떤 것을 선택했는지 컴퓨터에 어떠한 표시도 남기지 않습니다. 그저 아주 긴 목록을 계속해서 스크롤할 뿐입니다. 그렇게 하면 탈취하기가 훨씬 더 어려워집니다. 다시 말하지만, 이것은 보안 계층에 관한 것입니다. 완벽하지는 않습니다. 이 전체 과정에는 많은 어려움과 허점이 있습니다. 좋습니다. 지금까지 비밀번호 보안에 대해 이야기했고, 여러 주제를 함께 다루었습니다. 비밀번호의 복잡성에 대해 이야기했습니다. 보안 계층화에 대해 이야기했습니다. 인간 기억력의 약점과 인간이 만들어내는 무작위성의 한계에 대해 이야기했습니다. 그리고 왜

소프트웨어를 100% 신뢰할 수 없더라도 소프트웨어를 사용하는 것이 사용하지 않는 것보다 나은지에 대해 이야기했습니다. 마스터 암호 문구를 생성하는 방법과 어떤 유형의 마스터 암호 문구를 사용해야 하는지에 대해 이야기했습니다. 이를 통해 비밀번호 관리자에서 기억하기 불가능할 정도로 복잡한 영숫자 조합의 무작위 세션 비밀번호나 사이트 비밀번호를 생성하고, 비밀번호 관리자가 이를 기억하도록 할 수 있습니다. 다음 주제는 이중 인증(2FA)입니다. 그렇다면 이중 인증이란 무엇일까요? 이중 인증은 자신을 인증하기 위해 두 가지 다른 방법을 사용하는 것을 말합니다. 인증이란 기본적으로 자신이 주장하는 본인이 맞음을 증명하는 것을 의미합니다. 그리고 이중 인증은 자신이 누구인지 증명하기 위해 두 가지 별개의 메커니즘을 사용하는 것을 뜻합니다. 컴퓨터 보안에서는 다중 인증과 인증 요소를 세 가지 중 하나로 설명합니다. 여러분이 가질 수 있는 세 가지 가능한 요소는

'알고 있는 것(지식 기반)'이며, 비밀번호가 그 대표적인 예입니다. 기억하고 있으므로 알고 있는 것입니다. 지식 기반 인증 역시 '알고 있는 것' 요소의 한 형태입니다. 예를 들어, 어디서 태어났나요? 첫 번째 케이크 믹서의 브랜드는 무엇인가요? 학교에서 처음 키스한 사람은 누구인가요? 등과 같은 질문들이 이에 해당합니다. 분명히 '알고 있는 것'은 하나의 요소이며, 좋은 요소입니다. 단, 본인이 기억할 수 있고 다른 사람이 쉽게 추측할 수 없는 경우에만 그렇습니다. 이것이 바로 우리가 비밀번호와 관련하여 이야기했던 모든 복잡성이 개입되는 지점입니다. 두 번째 인증 형태이자 인증 요소는 '자신을 나타내는 것(생체 기반)'입니다. '자신을 나타내는 것'은 대개 위조할 수 없는 신체적 특징에 대한 불변의 측정값인 생체 인식을 의미합니다. 따라서 지문, 홍채 스캔, 정해진 문구를 반복할 때의

목소리, 걸음걸이, 키, 안면 인식을 위한 얼굴 등 이 모든 것이 생체 인식 요소입니다. 즉, '자신을 나타내는 것'입니다. 생체 인식 요소에는 장단점이 있습니다. 다른 요소와 함께 추가로 사용할 수 있습니다. 물론 생체 인식의 가장 큰 단점은 복제되거나 유출될 경우 교체할 수 없다는 것입니다. 예를 들어, 제 지문이 유출되어 모든 사람이 제 지문에 접근할 수 있고 스파이 영화에서 본 것처럼 라텍스로 지문을 재현할 수 있게 된다면, 저는 제 지문을 바꿀 수 없습니다. 따라서 이 생체 정보는 더 이상 제게 쓸모가 없어집니다. 생체 인식을 적용하기는 꽤 까다롭지만, 두 번째 요소로는 매우 유용합니다. 단, 결코 주된 요소로 사용해서는 안 됩니다. 저는 저 자신을 인증하는 유일한 방법으로 생체 인식을 절대 사용하지 않을 것입니다. 예를 들어 제

생체 인증 (1:00:44)

전화기입니다. 여덟 살짜리 아이들도 다 알다시피, 엄마가 소파에서 주무실 때 엄마의 아이폰을 손가락에 갖다 대면 아마존에서 물건을 살 수 있기 때문입니다. 스스로 자신만의 산타가 될 수 있는 것이죠. 엄마의 엄지손가락에 접근하거나, 바비큐 파티에서 실컷 일한 뒤 코를 골며 주무시는 아빠의 얼굴 앞에 안면 인식 기기를 들이대어 아빠의 얼굴에 접근할 수만 있다면 말입니다. 생체 인식만으로는 충분하지 않지만, 아주 훌륭한 두 번째 인증 요소가 될 수 있습니다. 마지막 요소는 여러분이 가지고 있는 것, 즉 여러분이 소유한 무언가입니다. 그리고 이 생체 인식 요소는 대개 추가적인 기기에 포함되어 있습니다. 여러분이 쥐고 있는 보안 요소로서의 기기입니다. 키(key)는 여러분이 소유하고 있는 인증 요소입니다. 디지털 키, 개인 키, 심지어 물리적인

문을 여는 키도 마찬가지입니다. 그리고 요즘에는 소유하고 있는 것을 기반으로 한 두 번째 인증 요소가 USB 기기 형태로 만들어지는 경우가 점점 늘어나고 있습니다. 사실, 저는 제 노트북에 하나를 항상 꽂아두고 있습니다. 아마 여러분 중 많은 분들이 제가 예전에 이에 대해 이야기하는 것을 들어보셨을 겁니다. 이것은 유비키(YubiKey)입니다. 이 유비키는 아주 작아서 노트북의 USB 포트에 꽂으면 터치를 감지하는 작은 금속 탭만 튀어나옵니다. 이것을 사용하려면 터치를 해야 합니다. 터치하면 기기가 활성화되고 제 컴퓨터에서 코드를 전송합니다. 이제 제 컴퓨터 측면을 탭하여 인증하지 않으면 제 컴퓨터나 제가 사용하는 다른 여러 서비스에 로그인할 수 없습니다. 따라서 제 데이터베이스나 마스터 암호를 훔치거나,

제 비밀번호를 알아낸다 하더라도, 여러분은 이 물건을 가지고 있지 않기 때문에 여전히 이 기기들을 복호화하거나 열 수 없고 제 여러 계정에 접근할 수도 없습니다. 이 물건은 제가 가지고 있으니까요. 그리고 물론 이것은 추가적인 보안 요소입니다. 이것만으로는 충분하지 않습니다. 누군가 제 노트북을 훔친다면 이제 그들은 이 물건을 갖게 되지만, 다행히도 또 다른 요소인 제 비밀번호는 알지 못하기 때문입니다. 따라서 일반적으로 다중 요소 인증에 대해 이야기할 때, 우리는 단일 인증 요소만으로는 충분하지 않다는 것을 인식하고 있는 것입니다. 모든 인증 요소에는 실패 모드가 존재합니다. 하지만 다중 요소 인증을 사용하고 인증 요소를 다양하게 구성한다면, 한 인증 요소가 실패하더라도 다른 인증 요소가 보호막 역할을 해줍니다. 즉, 여러 겹의 방어막을 갖추게 되는 것입니다. 스파이 영화에서 흔히 보듯이, 악당의 손가락을 잘라서

지문 인식기에 가져다 대고 문을 여는 장면이 나오지만, 실제로 그렇게 작동하는 문은 없습니다. 모든 문은 핀(PIN) 코드도 함께 요구합니다. 핀 코드를 훔치더라도 손가락이 없고, 손가락을 잘라서 훔치더라도 핀 코드를 알 수 없도록 하기 위해서입니다. 두 가지 모두 필요합니다. 이러한 기기를 만드는 어떤 제조사도 한 가지 요소만으로 문을 열 수 있게 만들지 않습니다. 실제로 사람들이 생체 인식으로만 열리도록 휴대폰을 설정하는 것은 매우 위험하며, 반드시 추가적인 메커니즘을 갖춰야 합니다. 채팅창에 좋은 후속 질문이 올라왔네요. 유비키, 즉 제 보안 키를 잃어버리면 어떻게 될까요? 글쎄요, 저는 사실 여러 개를 가지고 있습니다. 세 개가 있죠. 그리고 그중 하나는 최후의 백업용으로 외부의 다른 장소에 보관하고 있습니다.

두 번째 키는 노트북에 꽂아두지 않고 제가 직접 가지고 다닙니다. 보안 담당자들이 목에 거는 랜야드에 달고 다니거나 열쇠고리에 연결해서 다니는 것을 종종 보셨을 겁니다. 이 기기들은 꽤 튼튼하며, 대개 열쇠고리에 달 수 있도록 설계되어 있습니다. 그래서 열쇠와 함께 가지고 다닐 수 있는데, 이는 아주 합리적입니다. 비슷한 보안 모델로서 이 기기들은 거의 파괴할 수 없을 정도로 견고합니다. 트럭으로 깔고 지나가도 여전히 작동할 정도입니다. 그래서 저는 이 세 개의 보안 키를 모두 등록해 두어 어느 것이든 사용할 수 있게 했고, 세 개를 모두 잃어버려야만 접근 권한을 잃게 됩니다. 하지만 이 세 개 모두 쉽게 접근하기 어려운 곳에 있습니다. 그리고 제가 여기서 대비하고자 하는 주요 위험, 즉 주요 위협은 원격 침해입니다. 네, 만약 여러분이 제 집이나 사무실에 침입한다면

보안 키와 YubiKey (1:05:51)

또는 제5의 비밀 장소에 있거나, 여러분이 제 호텔 방에 침입한 사악한 메이드라고 가정해 봅시다. 여러분은 이 기기들을 찾을 수 있겠지만, 제 비밀번호는 아마 모를 것입니다. 제 시스템을 해킹해서 비밀번호를 알아낸다 해도, 기기는 가지고 있지 않겠죠. 제 기기 중 하나에 로그인하기 위해 비밀번호를 사용하려 해도, 제가 컴퓨터 옆면을 두드려 접근 권한을 주지는 않을 것입니다. 그리고 솔직히 말해서, 저는 컴퓨터를 두고 자리를 비울 때 YubiKey를 뽑아서 가지고 다닙니다. 다시 말하지만, 이것은 보안의 계층(layers)에 관한 것입니다. 따라서 이중 인증(two factor authentication)은 서비스나 기기에서 자신을 인증하기 위해 최소 두 가지 요소를 사용하는 것을 의미합니다. 이러한 요소에는 여러분이 알고 있는 것(지식), 가지고 있는 것(소유), 그리고 여러분 자신(생체 정보)이 있습니다. 이 세 가지 중 어느 것이든 두 번째 요소로 사용될 수 있습니다. 그리고 물론 여러분은

원한다면 삼중 인증을 사용할 수도 있지만, 이는 다소 이례적이며 그 시점부터는 번거롭고 복잡해집니다. 복구하기 어렵고, 계정이 잠기기 쉽습니다. 그래서 보통 2가 마법의 숫자이며, 이것이 우리가 이를 2FA, 즉 이중 인증이라고 부르는 이유입니다. 다른 사람들은 이를 다중 요소 인증(multiple factor authentication) 또는 다중 인증(multi-factor authentication)의 약자인 MFA라고 부르기도 합니다. 완전히 똑같은 개념입니다. 업계에서 사용되는 또 다른 표준이 있는데, 이는 제가 보여드린 작은 YubiKey와 같은 보안 키를 위한 범용 포맷 표준입니다. 이 표준은 FIDO 얼라이언스(Fido Alliance)라는 표준화 기구에서 만들었으며, U2F(Universal Two Factor)라고 불립니다. 제 코드 슬라이드를 보시면 U2F(Universal Two Factor)에 대해 배우는 내용이 있습니다. 알파벳 U, 숫자 2, 알파벳 F, 즉 U2F입니다. 이는 단순히 플러그를 꽂아 연결하거나

블루투스(Bluetooth) 또는 NFC를 통해 인증하려는 기기로 전송할 수 있는 하드웨어 기반 다중 인증 기기에 대한 표준입니다. 좋습니다, 그럼 질문으로 넘어가 보겠습니다. 저건 아니고요. 어디 있죠? 지금인가요? 네, 잠시만요. 질문이 강조 표시되지 않는 것 같네요. 이유는 모르겠습니다. 잠시만 기다려 주세요. 해결해 보겠습니다. 브라우저를 새로고침해야겠네요. 복잡한 비밀번호를 요구하지 않기를 바랍니다. 네, 뭔가... 아, 잠깐만요. 제 Slido에 문제가 생겨서 강조 표시된 질문을 볼 수가 없네요. 왜 이런 일이 발생하는지 모르겠습니다. 전에는 본 적이 없는 현상인데요. 아, 설문조사가 있군요. 현재 진행 중인 설문조사가 제가 질문을 보는 것을 방해하고 있는 것 같습니다. 왜 그런지 모르겠네요. 죄송합니다. 아, 이제 됐습니다. 저절로 해결되었네요. 기술적인 문제가 발생해서 죄송합니다, 여러분. 왜 문자

메시지가 취약한 이중 인증일까요, 아예 없는 것보다는 나을까요? 다른 분이 지적하셨듯이 많은 은행들이 SMS를 사용합니다. SMS 문자 메시지를 이중 인증으로 사용하죠. 그렇다면 왜 문자 메시지가 취약한 이중 인증일까요? 좋습니다. 문자 메시지는 어떤 유형의 요소일까요? 한번 알아봅시다. 여러분이 알고 있는 것일까요? 아닙니다, 그 시점에는 알지 못하죠. 진행 중인 어떤 설문조사가 방해를 하고 있는 것 같네요. 죄송합니다. 왠지 모르겠지만 Slido가 설문조사로 시작되었네요. 이상하군요. 좋습니다. 문자 메시지가 좋은 이중 인증 요소일까요? 어떤 유형의 요소일까요? 여러분이 알고 있는 것일까요? 아닙니다. 문자 메시지로 전송될 때 여러분은 그것을 알지 못하고, 받고 나서야 알게 되기 때문입니다. 따라서 여러분이 알고 있는 것이 아닙니다. 그렇다면

SMS가 취약한 이중 인증인 이유 (1:11:00)

여러분의 신체적 특징(something you are)일까요? 아닙니다. 여러분이 소유한 것(something you own)일까요? 어느 정도는 그렇습니다. 문자 메시지를 받는 전화를 소유하고 있으니 내가 소유한 것이라고 생각할 수 있습니다. 하지만 문자 메시지는 전화기가 아니라 전화번호로 전송됩니다. 여러분이 그 전화번호를 소유하고 있나요? 정답은 전화번호는 SIM, 더 정확히는 휴대폰의 SIM 카드가 연결된 계정이라는 것입니다. 그렇다면 그 계정은 누가 소유하고 있을까요? 정답은 보다폰(Vodafone), 버라이즌(Verizon), AT&T, T-모바일(T-Mobile) 등 통신사입니다. 따라서 문자 메시지 이중 인증의 문제는 여러분이 전화번호를 소유하고 있지 않다는 점입니다. 통신사가 소유하고 있죠. 그리고 통신사의 보안은 형편없습니다. 그게 전부입니다. 정말 간단한 이유죠. 그래서 통신사 고객 센터에 전화를 걸어,

배경에 아기 우는 소리를 틀어놓고, 아기가 비명을 지르는 동안 당황한 베이비시터와 통화하는 척하기만 하면 됩니다. 그리고 배경에서는 남편이나 아내가 소리를 지르고 있는 상황을 연출하는 겁니다. 여러분은 멘붕에 빠져 있고 정말 최악의 하루를 보내고 있는 것처럼 행동합니다. 그러면 매우 친절하고 공감 능력이 뛰어난 고객 센터 직원은 배우자가 계정에 어떤 비밀번호를 설정했는지 여러분이 모르고, 지금이 정말 긴급한 상황이며 당장 연락을 취해야 한다는 이유로 모든 보안 확인 절차를 건너뛸 것입니다. 그리고 긴급 상황이기 때문에 지금 당장 개통해야 하는 새 휴대폰으로 기꺼이 번호를 이동해 줄 것입니다. 이것이 이론적인 공격처럼 들릴지 모르지만, 데프콘(Def Con)이나 블랙햇(Black Hat) 같은 해커 컨퍼런스에서 소셜 엔지니어링 공격이라고 불리는 환상적인 시연이 실제로 진행되기도 합니다. 그리고

그중 가장 인상 깊은 것은 매우 숙련된 소셜 엔지니어링 해커가 기자에게 시연한 영상입니다. 해커는 통신사에 전화를 걸어 배경에 아기 우는 소리를 틀어놓고 긴급 상황이라며 도움을 호소하여 얼마나 빨리 전화번호를 탈취할 수 있는지 보여주었습니다. 말 그대로 10분도 채 되지 않아 전화번호를 탈취했고, 이를 이용해 이메일 계정을 재설정한 다음, 다른 모든 계정을 재설정하여 15분도 안 되어 기자의 전체 디지털 신원을 완전히 장악했습니다. 이것이 바로 문자 메시지가 취약한 형태의 이중 인증인 이유입니다. 따라서 피할 수 있다면 이를 사용하지 않는 것이 정말 중요합니다. 하지만 익명의 질문자님, 아예 없는 것보다는 나을까요? 없는 것보다는 낫습니다. 다음과 같은 경우라면 없는 것보다는 낫습니다.

더 나은 선택지가 있는 계정에서는 사용을 피할 수 있다면 말이죠. 따라서 문자 메시지 이외의 수단을 사용할 수 있는 계정이라면 그 수단을 사용하세요. 또 다른 점은 통신사가 어디인지 매우 신중하게 생각해야 한다는 것입니다. 그래서 많은 보안 전문가들은 소셜 엔지니어링 공격에 당할 수 있는 사람 상담원이 없고, 계정 자체가 강력한 이중 인증으로 보호되는 통신사를 사용합니다. 예를 들어, 가상 이동 통신망 사업자(MVNO)인 구글의 프로젝트 파이(Project Fi, F-I)는 대화할 수 있는 사람 상담원이 없습니다. 그리고 범용 이중 인증 토큰과 같은 강력한 이중 인증으로 보호할 수 있는 구글 계정을 통해 해당 전화 계정에 연결하고 접근하며 설정합니다. 즉, 번호 이동이 불가능하므로 문자 메시지 기반의

이중 인증을 보안이 형편없는 은행 같은 곳에서 더 안전하게 사용할 수 있다는 뜻입니다. 보안이 가장 형편없는 기업을 꼽자면 은행, 통신사가 있고, 그 다음이 제대로 된 보안 팀을 갖춘 실제 서비스 제공업체들입니다. 결국 핵심은 보안의 계층화입니다. 문자 메시지를 이중 인증 수단으로 사용할 수밖에 없는 상황이라면, 저 역시 문자 메시지를 사용할 수밖에 없는 서비스들이 몇 가지 있다고 말씀드리고 싶습니다. 그렇다면 해당 문자 메시지가 보안이 철저한 계정으로 전송되도록 하세요. 통신사를 이용하더라도 계정에 PIN을 설정할 수 있습니다. 번호 이동 기능을 차단할 수도 있습니다. 계정 보안을 강화하기 위해 할 수 있는 모든 조치를 취할 수 있습니다. 하지만 더 좋은 방법은 사람 상담원이 없는 가상 이동 통신망 사업자나 서비스 제공업체로 번호를 이동하는 것입니다.

전화번호 보호하기 (1:16:25)

사회 공학적 기법으로 여러분의 전화번호가 이동될 수 있습니다. 따라서 전화번호를 제어하는 요소에는 강력한 인증이 필요합니다. 가능하다면 이를 피하십시오. 특히 수백만 달러 가치의 암호화폐를 보관하는 거래소에 접속하기 위한 두 번째 인증 수단이라면 반드시 피해야 합니다. 물론, 저는 여기서 꽤 악명 높은 한 암호화폐 전문가를 넌지시 언급하고 있습니다. 그는 실제로 수백만 달러의 암호화폐를 거래소 지갑, 즉 본인 소유의 코인이 아닌 수탁형 핫 월렛에 보관하면서 AT&T가 제공하는 SMS 이중 인증을 사용했습니다. 그리고 현재 5천만 달러인지 1억 달러인지 모를 엄청난 금액의 손실을 이유로 AT&T를 고소 중입니다. 솔직히 말해서, 그런 소송이라면 제가 전문가 증인으로 법정에 서서 30분 동안 면전에서 비웃어줄 것입니다.

원고의 면전에서 말이죠. 수백만 달러를 거래소에 넣어두고 AT&T의 문자 메시지 이중 인증에 의존해 놓고서, 그것이 다른 사람의 잘못이라고 말한다면 말입니다. 저는 그런 상황에 별로 동정심이 생기지 않습니다. 좋습니다. 그럼 이제 실제로 효과가 있는 이중 인증에 대해 이야기해 보겠습니다. 하드웨어의 일종인 보안 키에 대해서는 이미 말씀드렸지만, 여러분 모두가 이전에 사용해 본 적이 있는 매우 흔한 또 다른 메커니즘이 있습니다. 바로 6자리 숫자를 사용하는 방식입니다. 니라지(Neeraj)가 이 주제와 관련해 아주 유용한 질문을 해주셨습니다. "안녕하세요 안드레아스, 구글이나 마이크로소프트 인증기(Authenticator)는 어떻게 작동하나요? 이를 대체할 수 있는 탈중앙화된 시스템이 있나요?" 니라지, 이것들이 바로 탈중앙화된 시스템입니다. 앱 자체는 중앙화된 기관에서 만들었지만, 사실 이 앱은 꽤 단순하게 작동합니다. 그 결과, 실제로는 탈중앙화된 방식으로 기능합니다. 이러한 인증기에 저장된 비밀 데이터는

오직 여러분의 로컬 기기에만 저장됩니다. 물론 약간의 변형은 있습니다. 예를 들어 Offi와 같은 일부 애플리케이션은 이중 인증의 기반이 되는 비밀 데이터를 백업하고 다른 기기로 이동(port)할 수 있게 해줍니다. 이는 편리하지만 위험하기도 합니다. Offi나 백업을 지원하는 다른 시스템에서 다중 기기 지원 기능을 켜두었다면, 평소에는 반드시 꺼두어야 합니다. 스마트폰을 업그레이드하여 모든 계정을 새 기기로 옮겨야 하는 등 다른 전화기나 기기로 이동할 때만 이 기능을 켜야 합니다. 구글 인증기(Google Authenticator)도 최신 버전에서 백업 및 이동 기능을 도입했습니다. 정확히 어떻게 작동하는지는 모르겠지만, 만약 그런 방식으로 작동한다면 기본적으로 꺼져 있는지 확인하십시오. 그래야 해당 로컬 기기에서만

보안 코드를 사용할 수 있습니다. 그렇지 않으면 진정한 의미의 이중 인증이 아닙니다. 여러분이 소유한 무언가가 아니라, 그저 백업 비밀번호일 뿐입니다. 이는 여러분이 '알고 있는' 정보이며 쉽게 도난당할 수 있거나, 전화번호에 연결되어 있습니다. 이 경우, 우리가 앞서 이야기했던 문자 메시지 보안 문제로 다시 돌아가게 됩니다. 누군가 여러분의 유심(SIM)을 복제하여 전화번호를 탈취합니다. 그런 다음 스마트폰에 인증기 소프트웨어를 설치합니다. 그리고 백업을 다운로드하여 해당 기기로 가져옵니다. 그러면 그들은 실제로는 이중 인증이 아니었던 여러분의 모든 이중 인증 권한을 갖게 됩니다. 이것이 바로 실패 사례입니다. 하지만 먼저 이 시스템이 어떻게 작동하는지 이야기해 보겠습니다. 그렇다면 구글이나 마이크로소프트 인증기는 어떻게 작동할까요? 먼저 이 시스템의 이름부터 알아보겠습니다. 이것은 일회용 비밀번호, 즉 OTP(One Time Password)라고 불리는 메커니즘입니다. 일회용 비밀번호는 수십 년 된 기술이며 오랫동안 사용되어 왔습니다. 아, 정정하겠습니다. 디지털 형태의

휴대용 기기용 일회용 비밀번호가 수십 년 된 것입니다. 일회용 비밀번호 자체는 사실 수천 년의 역사를 가지고 있습니다. 일반적인 개념은 이렇습니다. 무작위 숫자(난수)의 시퀀스를 생성하고, 통신하는 양 당사자가 그 시퀀스의 복사본을 가지고 있거나 그 시퀀스를 생성할 수 있으며 다른 누구도 할 수 없다면, 훔치거나 추측할 수 있는 것이 아무것도 없게 됩니다. 원타임 패드(One-time pad)는 이러한 비밀 데이터를 생성하고 도난당하지 않게 유지할 수만 있다면 절대 해독할 수 없는 암호화 방식입니다. 그리고 6자리 숫자로 된 일회용 비밀번호는 이를 생성하는 루트 비밀 키를 안전하게 유지하는 한 훔치기가 매우, 매우 어렵습니다. 이제 구글과 마이크로소프트 인증기는 시간 기반 일회용 비밀번호(TOTP, Time-based One-Time Password)라고 불리는 일회용 비밀번호의 특정 하위 범주입니다. 그리고 시간 기반 일회용 비밀번호 표준을 지원하는 애플리케이션을 찾고 싶다면, 다음 약어를 사용하면 됩니다.

시간 기반 일회용 비밀번호 (1:21:56)

T-O-T-P. OTP는 일회용 비밀번호(one-time password)를 의미하고, T-OTP는 시간 기반 일회용 비밀번호(time-based one-time password)를 의미합니다. 여기서 시간 기반이란 코드가 현재 시간과 연결되어 있으며 30초마다 변경된다는 것을 의미합니다. 따라서 이러한 방식은 사용하려는 특정 시간에 맞는 특정 코드를 생성하기 위해 비밀값(secret)과 현재 시간과 어느 정도 정확하게 동기화된 시계를 사용합니다. 30초라는 시간 창(time window)이 있기 때문에 시간이 약간 어긋나더라도 화면에서 코드를 확인하고 웹사이트에 입력할 수 있는 여유 시간이 있습니다. 이제 여러분이 연결하려는 웹사이트나 기기에도 동일한 비밀값이 있고 시계가 어느 정도 동기화되어 있기 때문에, 여러분이 어떤 코드를 입력해야 하는지 알아낼 수 있습니다. 보통은 시간이 약간 어긋났을 경우를 대비해 이전 코드와 다음 코드를 함께 확인하여,

예를 들어 30초를 갓 넘긴 경우에도 코드를 허용합니다. 그런 다음 화면에서 현재 코드와 작은 카운트다운을 볼 수 있습니다. 30초가 지나면 코드가 변경되고 새로운 6자리 숫자가 나타납니다. 이 방식은 개인 키를 사용하여 작동합니다. 그리고 해당 개인 키로부터 파생 함수(derivation function)를 사용하는데, 이는 여러 가지 다양한 형태가 될 수 있습니다. T-OTP의 표준 사용법이 무엇인지는 모르겠지만, 시간과 결합된 일종의 해시 메커니즘일 것이라 추측합니다. 이 파생 함수를 통해 30초마다 새로운 숫자 코드를 생성합니다. 그리고 시퀀스, 아니 비밀값과 현재 시간으로부터 현재 시간에 맞는 올바른 코드를 계산할 수 있습니다. 비밀값 자체는 사용하려는 서비스가 처음 표시하는 QR 코드에 들어 있습니다. 따라서 여러분이 이러한

기기 중 하나를 사용할 때, 이들은 모두 호환되므로 Google Authenticator, Microsoft Authenticator, Authy, Duo 또는 기타 다른 앱을 사용하든 상관없으며, 대부분의 비밀번호 관리자에도 이러한 T-OTP 서비스가 내장되어 있습니다. 여러분이 해야 할 일은 2단계 인증을 추가하려는 웹사이트나 서비스에서 QR 코드를 스캔하는 것뿐입니다. 그리고 그 QR 코드에는 비밀값이 포함되어 있습니다. 이 비밀값은 여러분의 계정에 연결된, 무작위로 생성된 영숫자 문자열입니다. 웹사이트가 여러분을 위해 무작위로 생성하여 QR 코드로 제시합니다. Google Authenticator 기기로 이를 스캔하면, 기기는 이를 비밀값으로 기록한 다음 현재 시간에 대한 코드를 생성하기 시작합니다. 그런 다음 이 코드 중 하나를 웹사이트에 입력합니다. 웹사이트는 이를 추적하여 "네, 제가 예상했던 코드가 맞습니다"라고 확인하며 여러분이 올바르게 입력했는지 검증할 수 있습니다.

이 30초의 시간 창 내에서 말이죠. 이제 2단계 인증이 설정되었습니다. 물론 이러한 방식의 어려운 점은 백업입니다. 백업을 하는 방법에는 여러 가지가 있습니다. 백업을 하는 한 가지 방법이자 솔직히 가장 안전한 백업 방법은 물리적으로 출력하는 것입니다. 따라서 화면에 QR 코드가 나타나면 인쇄를 누르세요. 제가 물리적 출력물이라고 말하는 이유는, 여러분이 사진을 찍는 등 다른 행동을 하고 싶어 할 수도 있기 때문입니다. 그리고 당연히 사진을 찍기 위해 스마트폰을 사용할 것입니다. 문제는 그 사진이 클라우드에 저장된다는 것입니다. 그렇게 되면 더 이상 Google Authenticator나 T-OTP 인증기 같은 기기에만 존재하는 것이 아니게 됩니다. 그리고 그 시점부터는 더 이상 안전한 2단계 인증 수단이 아닙니다. 2단계 인증 비밀값을

클라우드에 백업하는 것은 좋은 생각이 아닙니다. 차라리 2단계 인증 소프트웨어에 내장된 백업 기능을 사용하는 것이 낫습니다. 이 기능은 최소한 여러분이 선택한 비밀번호로 암호화되기 때문입니다. 그 비밀번호는 비밀번호 관리자의 어디에 보관해야 할까요? 보시다시피 꼬리에 꼬리를 무는 상황이 되며, 때로는 혼란스러워질 수 있습니다. 그러니 백업을 원한다면 QR 코드를 인쇄하거나, 대부분의 서비스에서는 2단계 인증 토큰이나 앱을 분실했을 때 초기화를 요청할 수 있으니 굳이 백업하지 않으셔도 됩니다. 그러면 서비스 측에서는 신분증을 들고 셀카를 찍게 하거나 이메일, 전화 통화 등 여러 다른 메커니즘을 통해 확인하는 등 복잡한 절차를 거치게 할 것입니다. 또한 이러한 서비스 중 상당수는 동적으로 생성되는 코드 대신 입력할 수 있는 사전 계산된 숫자 코드인 일련의 백업 코드를 제공하기도 합니다.

이중 인증의 계층 구조 (1:26:44)

정적으로 생성된 코드들입니다. 이는 인증 기기를 분실했을 때를 대비한 것입니다. 그럼 이것들을 어디에 보관해야 할까요? 바로 비밀번호 관리자에 보관해야 합니다. 따라서 시간 기반 일회용 비밀번호(TOTP) 애플리케이션을 사용한 이중 인증은 오늘날 모든 계정에 추가할 수 있는 강력하고 효과적이며 사용하기 쉬운 메커니즘입니다. 이제 보안의 계층 구조를 살펴보겠습니다. 범용 이중 인증(U2F) 보안 키는 매우 강력한 암호화를 기반으로 합니다. 여러 개를 등록하여 안전한 장소에 보관하면 손상되거나 탈취당하기가 매우 어렵습니다. 물리적인 물건이기 때문에 백업하기도 아주 쉽습니다. 다른 물리적 기기를 곁에 두는 방식으로 백업할 수 있습니다. 복사하는 것은 불가능하며, 여러분이 모르게 훔치는 것도 불가능합니다. 두 번째 계층은 니라지(Neeraj)가 언급한 애플리케이션과 QR 코드를 스캔하여 사용하는 시간 기반 일회용 비밀번호입니다. 이 방식은 6자리

코드를 30초마다 제공합니다. 다시 말해, 여러분이 소유한 휴대폰이 두 번째 인증 요소가 되는 것이며, 이는 백업하기가 조금 어렵습니다. 또한 휴대폰을 도난당하면 쉽게 뚫릴 위험이 있습니다. 저는 지문을 사용하지 않고는 숫자 코드를 볼 수 없도록 이중 인증 앱 자체에 지문 인식을 설정해 두는 것을 좋아합니다. 이것은 본질적으로 두 번째 요소 위에 추가된 세 번째 요소로, 누군가 잠금이 해제된 상태의 제 휴대폰을 훔쳐서 이중 인증 앱에 접근하려 할 때 저를 보호해 줍니다. 지문이 없으면 접근할 수 없으니까요. 마지막으로 가장 낮은 계층은 문자 메시지 이중 인증입니다. 물론 다른 대안이 없는 경우가 아니라면 안전하지 않지만, 아예 없는 것보다는 낫습니다. 여기까지가 이중 인증의 계층 구조입니다. 제가 여기서 잠시 쉬는 동안 다른 질문이 있는지

살펴보겠습니다. 그리고 제 후원자(patron)들이 보내준 영상을 하나 틀어드릴 텐데, 이 영상은 여러분이 왜 온라인에서 제 활동을 지원해야 하는지 말해줍니다. 오늘 우리가 하고 있는 일, 그리고 제가 항상 노력하는 것은 스폰서나 보증 없이, 광고주에게 타협하거나 기업의 이익에 얽매이지 않고 중립적인 방식으로 비트코인과 오픈 블록체인에 대한 고품질 교육 자료를 제공하는 것입니다. 여러분 외에는 아무도 이 일에 돈을 지불하지 않습니다. 따라서 이 교육이 마음에 드셨거나, 이 교육을 통해 도움을 받으셨거나, 혹은 단순히 보답하고 다른 사람들이 이 교육을 받을 수 있도록 돕고 싶으시다면, 저와 제 팀이 이 일을 계속하고, 더 잘하고, 더 널리 알릴 수 있도록 유튜브 멤버십이나 더 나아가 월간 패트리온 구독으로 후원해 주시기를 부탁드립니다. 제 후원자들의 말을 빌려 그 이유를 들어보시죠.

  • 저는 안드레아스의 후원자입니다. 온라인에서 그의 영상을 우연히 보게 되었고, 그렇게 비트코인에 대해 배웠기 때문입니다. 그것이 제가 비트코인을 처음 접하게 된 계기였습니다. - 저는 오늘 밤 유료 후원자 지원의 일환으로 안드레아스가 주최한 소셜 이벤트에 나와 있습니다. 런던 시내에서 가볍게 술을 마셨는데, 정말 즐거운 저녁이었습니다. 마음이 맞는 사람들을 많이 만날 수 있었어요. - 우리는 안드레아스가 하는 일을 지지해야 합니다. 그는 새로운 사람들을 비트코인과 비트코인 교육으로 이끄는 데 정말 많은 일을 하고 있습니다. - 그는 훌륭한 선생님입니다. 매우 복잡한 주제를 이해하기 쉽게 설명해 줍니다. 그는 매우 정직하고 정확합니다. 철저히 준비되어 있고 지적으로 정직하죠. 저는 그것이 그의 가장 큰 장점이라고 생각합니다. - 그는 비트코인과 그 주변 산업이라는 정말 복잡한 주제를 아주 명확하게 설명해 줍니다. - 그는

저에게 아주 좋은 영감이 되어 주었고, 제가 그에게 후원하는 모든 비트코인은 우리가 비트코인을 이해하도록 돕는 데 아주 잘 쓰일 것입니다. 그리고 언젠가는 세상을 더 나은 곳으로 만들 것이라고 생각합니다. - 후원자가 되면 안드레아스를 만날 수 있습니다. 그것이 제가 후원자가 된 것을 좋아하는 이유이며, 앞으로도 계속 후원할 것입니다. - 저는 그저 좋은 일이라고 생각합니다. 새로운 것을 배우는 데 관심이 있고 비트코인 커뮤니티를 지원하고 싶다면 후원자가 되어야 합니다. - 후원자가 되면 특별해진 기분이 듭니다. 그의 라이브 Q&A 세션에 참석할 수 있고, 해피 아워에서 그를 만날 수도 있습니다. 정말 훌륭하고, 그럴 만한 가치가 충분합니다. 저는 후원자가 된 것에 대해 매우 열정적입니다. - 저는 그가 앞으로도 광고 없이 훌륭하고 가치 있는 콘텐츠를 제작할 수 있기를 바라며, 그저

Q&A: 전화번호 이동 및 앱 보안 (1:31:37)

후원자들의 도움 덕분입니다. 그래서 저도 패트리온(Patreon)에서 그를 후원하고 있습니다. (잔잔한 음악) - 자, 다음 질문으로 넘어가기 전에 채팅창에 올라온 몇 가지 훌륭한 후속 질문들을 살펴보겠습니다. 제 프로듀서가 고맙게도 저를 위해 올려주었네요. 먼저 루시아(Lucia)의 후속 질문입니다. 어떤 전화번호든 사람이 응대하지 않는 고객 서비스로 번호 이동이 가능한가요? 이는 여러분이 등록된 국가에 따라 다릅니다. 국가마다 통신사 간 번호 이동성에 대한 법률이 다릅니다. 하지만 솔직히 말해서, 대부분의 유럽 국가와 북미 지역, 특히 미국과 캐나다의 경우 통신사가 번호 이동 요청을 수락하도록 의무화하고 있습니다. 즉, 올바른 절차를 거치면 번호를 잃지 않고 새로운 통신사로 이동할 수 있다는 뜻입니다. 그런 다음 고객 서비스가 없는,

사람이 없는 통신사로 갈 수 있습니다. 구글 파이(Google Fi)가 그중 제가 가장 많이 들어본 곳입니다. 번호 이동 공격에 대해 비슷하게 안전한 다른 통신사들도 많이 있을 것입니다. 명백한 이유로 프라이버시 위험이 있긴 하지만, 저는 그쪽을 선호하는 편입니다. 두 번째 질문은 벤(Ben)이 보내주셨습니다. 벤은 앱이 비밀 키를 유출하지 않는다는 것을 어떻게 알 수 있는지 물었습니다. 벤, 앱이 비밀 키를 유출하지 않는다는 것을 확실히 알 수는 없습니다. 많은 사람들이 사용하고, 보안 환경에서 사용되며, 감사를 받고 검토된, 아마도 코드가 감사된 오픈 소스이거나 신뢰할 수 있는 회사가 만든 앱을 선택하는 수밖에 없습니다. 보안을 진지하게 생각하고, 문제를 일으키지 않은 오랜 실적을 가진 곳 말입니다. 이를 위해서는 상대방에 대한 신뢰가 필요합니다. 하지만 제가 말씀드린 거의 모든 것들이 상대방에 대한 신뢰를 요구합니다. 그렇다면 문제는 상대방을 얼마나 신뢰할 것인가,

그리고 그 상대방이 누구인가 하는 것입니다. 대안은 무엇일까요? 만약 대안이 앱을 사용하지 않고 기억력에 의존하는 것이라면, 사실 그 대안이 더 나쁩니다. 이것이 바로 보안에서 맞춰야 하는 신중한 균형입니다. 점점 더 많은 회사들이 더 안전한 탈중앙화된 인증, 탈중앙화 신원증명 (DID), 탈중앙화된 검증을 위한 다양한 메커니즘을 구현하려고 시도하는 것을 보고 있습니다. 예를 들어 비트코인이나 이더리움의 다중서명은 종종 이러한 서비스의 기반이 됩니다. 하지만 현재로서는 이러한 서비스들이 비교적 초기 단계에 있고, 널리 배포되지 않았으며, 아직 이런 유형의 솔루션에 적합하지 않습니다. 그래서 이 분야의 미래에 대해 매우 희망적으로 생각합니다. 그동안 여러분이 던져야 할 질문은, 좋은 실적을 가진 중앙화된 서비스를 사용하는 것과 아예 서비스를 사용하지 않고 기억력에 의존하는 것 중 어느 것이 더 나은가 하는 것입니다.

이에 대해 저는 단호하게 대답할 수 있습니다. 신뢰할 수 있거나 좋은 실적을 가진 회사의 비밀번호 관리자를 사용하는 것이, 비밀번호 관리자를 사용하지 않고 불완전한 기억력, 불완전한 무작위성, 그리고 여러분의 기술적 역량을 벗어날 수 있는 DIY 솔루션에 의존하는 것보다 낫습니다. 다음 질문으로 넘어가겠습니다. 트릭시(Trixie)가 보내주셨네요. 안드레아스, 안경이 멋지네요. 저도 그렇게 생각합니다. 고마워요, 트릭시. 이 안경 덕분에 제 노트북 화면을 실제로 읽을 수 있게 되었습니다. 제가 하는 라이브 스트리밍에는 두 가지 유형이 있습니다. 일부는 조금 더 즉흥적이고 질문에 기반을 둡니다. 노트북에서 무슨 일이 일어나고 있는지 많이 읽을 필요가 없죠. 저쪽에 멋진 스튜디오 모니터가 있는데, 나빠진 시력으로도 읽을 수 있을 만큼 충분히 멀리 떨어져 있습니다. 그리고 오늘처럼 조금 더 복잡한 스트리밍도 있습니다. 이런 경우에는 많은 것을 해야 하죠.

Q&A: 은행 SMS를 더 강력한 인증으로 전환하기 (1:36:01)

읽고 있습니다. 테이블 위에 노트북이 있거든요. 그래서 이런 것들이 필요합니다. 하지만 감사합니다, 이야기가 샜네요. 이 질문의 핵심으로 돌아가 보겠습니다. 편집자를 위해 다시 시작하겠습니다. Trixie님이 질문하셨습니다. "그 바보 같은 은행 문자 메시지를 Offi나 비슷한 것으로 바꿀 방법이 있을까요?" 시간 기반 일회용 비밀번호(TOTP) 시스템 말이죠. Offi는 시간 기반 일회용 비밀번호인 T-OTP 중 하나입니다. Trixie님, 안타깝게도 없습니다. 은행에서 문자 메시지(SMS) 외의 다른 방식을 지원하는 메커니즘을 갖추고 있지 않다면, 시간 기반 일회용 비밀번호를 사용할 수 없습니다. 이 경우 정답은 문자 메시지를 사용하되, 시간 기반 일회용 비밀번호나 더 나아가 보안 키를 이용한 범용 이중 인증(U2F)과 같은 강력한 인증 메커니즘을 요구하거나 해당 옵션을 구성할 수 있는 통신사로 변경하는 것입니다. 강력한 인증이 필요하기 때문에 번호 이동(포팅)을 할 수 없게 만들어야 합니다. 그리고

(강력한 인증을 거쳐야만) 번호 이동이 가능해진다면, 은행 문자 메시지는 훨씬, 훨씬 더 안전해집니다. Trixie님의 아주 좋은 질문이었습니다. 여기에 또 어떤 질문들이 있는지 살펴보겠습니다. 다른 질문이 많이 보이지 않네요, 그래서, 아, 여기 있군요. 아, 지금 모더레이터들이 제가 더 많은 질문을 찾을 수 있도록 미친 듯이 질문을 찾아 대기열에 올리고 있습니다. 오늘 세션이 즐거우시길 바랍니다. 그럼 지금까지 배운 내용을 간단히 요약해 보겠습니다. 보안에 100%란 없습니다. 보안이란 여러분의 기술적 역량 내에서 현실적인 위험을 관리하는 것이며, 찾을 수 있는 가장 단순하고 일관되게 적용할 수 있는 솔루션을 사용하는 것입니다. 이 솔루션은 다른 솔루션들과 겹겹이 쌓여, 단단히 벼르고 있는 공격자에 맞서 일련의 방어벽을 제공해야 합니다. 보안을 제대로 구축한다면, 이러한 조치들에 익숙해지고 편안해질 것입니다. 이를 일관되게 적용할 수 있으며, 여러분은

기술 수준과 위협 환경 모두에 세심하게 맞춘 충분한 방어 계층을 갖추게 되어, 공격자가 여러분을 공격할 시간, 자원, 예산, 관심, 혹은 실질적인 보상(reward)을 얻지 못하게 만들 수 있습니다. 그 대신 그들은 더 쉬운 표적을 공격하게 되는데, 이것이 기본적으로 보안의 핵심입니다. 완벽할 수는 없습니다. 사실, 우리는 인간이니까요. 따라서 당연히 불완전할 수밖에 없습니다. 자신의 기술 수준 내에서 일관되게 실행할 수 있어야 하며, 이는 곧 충분히 단순해야 함을 의미합니다. 단일 도구, 기술, 관행 또는 조치만으로는 해결할 수 없으므로, 여러 도구, 여러 기술, 여러 조치를 함께 겹겹이 사용해야 합니다. 가급적이면 공격자에게 각기 다른 기술을 요구하고 다양한 위협을 방어하는 다양한 보안 메커니즘을 계층화하여 포괄적인 시스템을 구축하는 것이 좋습니다. 그렇게 하더라도 여전히

100% 보안에 도달할 수는 없겠지만, 일관되고 신중하게 실행하며, 위협에 대한 필요와 자신의 기술 수준에 맞춰 잘 조정한다면, "나는 몇 년 동안 해킹당한 적이 없다"고 당당하게 말할 수 있는 엘리트 그룹에 합류할 수 있습니다. 그것이 여러분이 할 수 있는 최선이지만, 대개 그 정도면 훌륭합니다. 그리고 이는 여러분을 다른 많은 사람들보다 훨씬 더 높은 수준으로 끌어올려 줍니다. 익명의 질문자께서 물으셨습니다. "아직 비밀번호 관리자를 자세히 비교해 보거나 사용해 보지 못한 사람을 위해, 우려되는 점이나 제안해 주실 만한 것이 있을까요?" 저는 수년간 다양한 비밀번호 관리자를 사용해 왔는데, 아주 널리 쓰이지만 제가 선호하지 않는 것들도 있습니다. 제가 사용하는 기기에 따라 가끔, 혹은 항상 마지못해 사용하는 것들도 있죠. 어떤 것들은 인기를 얻기도 하고

잃기도 했습니다. 그리고 새롭게 주목받고 있는 것들도 있습니다. 여러분에게 무엇이 맞을지 확실히 말씀드리기는 어렵습니다. 아마도 가장 인기 있는 두 가지는 LastPass라는 시스템과 1Password라는 시스템일 것입니다. 숫자 1 뒤에 password라는 단어가 붙은, 띄어쓰기 없는 하나의 단어입니다. 1Password와 LastPass가 아마 가장 잘 알려져 있을 겁니다. 그 외에도 다양한 기능과 차별점을 가진 여러 시스템들이 있습니다. 제가 흥미롭게 지켜보고 있는 비교적 새로운 시스템 중 하나는 Bitwarden입니다. 멀티 플랫폼을 지원하고 아키텍처가 꽤 잘 짜여진 오픈 소스 시스템이기 때문입니다. 하지만 결국, 제가 하드웨어 월렛(hardware wallet) 제조업체들에 대해 했던 조언과 마찬가지로, 비밀번호 관리자에 대해서도 동일한 조언을 드리고 싶습니다. 상위 3~4개 제품 간의 차이는,

Q&A: 비밀번호 관리자 비교 (1:41:43)

이 분야에는 5개의 회사가 있으며, 이 분야의 제품 간 차이는 아주, 아주 미미합니다. 모두 꽤 훌륭합니다. 모두 꽤 안전합니다. 모두 꽤 일관성이 있습니다. 상위 4~5개의 비밀번호 관리자 중 하나를 사용하는 것과 아예 사용하지 않거나, 기억력에 의존하거나, 자체적인 솔루션을 구축하려는 것 사이의 차이는 엄청납니다. 따라서 질문은 '이 중 어떤 것을 사용해야 할까?'가 아닙니다. '비밀번호 관리자를 사용해야 할까?'가 질문이 되어야 하며, 대답은 '예'입니다. 너무 많은 시간을 낭비하지 마세요. 한 가지 고려해 볼 만한 점은 가족들이 무엇을 사용하고 있는지 확인하는 것입니다. 그래야 비밀번호를 쉽게 공유할 수 있습니다. 이러한 제품들은 대부분 폐쇄적인 생태계입니다. 따라서 가족 모두가 Bitwarden을 사용한다면, 여러분도 Bitwarden을 사용하는 것이 좋습니다. 회사나 고용주가 특정 제품을 사용하고 있다면, 아마도

두 개의 별도 계정을 유지할 수 있는 한, 개인적인 용도로도 같은 제품을 사용하는 것이 더 나을 것입니다. 너무 많은 애플리케이션을 실행하거나 복잡해지는 것을 피하기 위해서입니다. 다시 말하지만, 단순하게 유지하세요. 여러분이 던져야 할 유일한 질문은 '얼마나 빨리 이 중 하나를 설치하고 실행하여 제대로 안전하게 보호한 다음, 가장 중요한 웹사이트부터 시작해 모든 웹사이트의 비밀번호를 변경할 수 있을까?'입니다. 익명의 질문자가 Google Authenticator의 초기 설정과 구현이 비대칭 암호화를 사용하는 비트코인과 달리 대칭 키인지 물었습니다. 네, 그렇습니다. 그리고 저는 T-OTP 표준이 무엇인지 모릅니다. 한 번도 살펴본 적이 없기 때문입니다. 대칭 암호화가 아닐 수도 있습니다. 비밀번호 스트레칭 알고리즘일 수도 있습니다. 사실, 이는 다음과 같은 기반의 일련의 시퀀스일 가능성이 높습니다.

해시를 사용한 파생입니다. 하지만 잘 모르겠습니다. 자세히 알아보지 않았거든요. 비대칭이 아니라는 것만은 확실히 말씀드릴 수 있습니다. 즉, 개인 키와 공개키 시스템이 아닙니다. 대칭 암호화란 무엇일까요? 비대칭 암호화란 무엇일까요? 채팅창에 올라온 또 다른 질문입니다. 비대칭 암호화는 한 쌍의 두 개의 키가 있는 경우를 말하며, 이를 개인 키와 공개키라고 부릅니다. 한 키로 암호화된 것은 다른 키로만 복호화할 수 있으며, 그 반대도 마찬가지입니다. 따라서 개인 키로 무언가를 암호화하면, 여러분의 개인, 아니 공개키로만 복호화할 수 있습니다. 반대로 공개키로 무언가를 암호화하면, 개인 키를 가진 사람만이 이를 복호화할 수 있습니다. 이러한 기술의 조합은 디지털 서명에 사용됩니다. 또한 두 수신자 간의 데이터 암호화 및 복호화에도 사용됩니다. 하지만 이것이 의미하는 바는

여러분이 저에게 무언가를 복호화하려면 제 공개키가 필요하다는 것입니다. 공개되어 있고 공유하기 쉬운 제 공개키로 암호화하면, 저만 복호화할 수 있습니다. 여러 사람에게 암호화하여 보내고 싶다면, 그들 모두의 공개키가 필요하며 각자의 공개키로 따로 암호화해야 합니다. 대칭 암호화는 암호화와 복호화를 모두 수행하는 하나의 키를 가지는 방식입니다. 사실 1970년대까지만 해도 대칭 암호화가 유일한 암호화 메커니즘이었습니다. 제 기억이 맞다면 비대칭 암호화는 1970년대가 되어서야 발명되었습니다. 이것이 대칭과 비대칭의 차이점입니다. 어디 봅시다, 질문이 하나 더 있는 것 같네요. Carlos의 후속 질문입니다. 인증을 위해 비트코인 서명을 언제 사용하게 될까요? 오늘날에도 인증을 위해 비트코인 서명을 사용할 수 있습니다. 문제는 다음과 같이 해야 한다는 것입니다.

구조를 어떻게 짤지 주의해야 하며, 정확히 무엇을 증명하고 있는지 이해해야 합니다. 비트코인 서명과 인증을 위한 디지털 서명의 일반적인 사용은 매우 구체적이고 좁은 범위의 것들만 증명합니다. 예를 들어, 여러분이 저에게 비트코인 개인 키로 메시지에 서명하여 서명을 생성하고, 이를 세상과 공유하라고 한다고 가정해 봅시다. 글쎄요, 제가 증명하는 것은 몇 가지가 있습니다. 저는 서명이 생성된 시점에 개인 키를 소유하고 있었다는 것을 증명합니다. 물론, 이것이 제가 수년 전에 그 서명을 생성하지 않았다는 것을 의미하지는 않습니다. 서명이 언제 생성되었는지는 알 수 없으니까요. 또 다른 점은 이를 실행 가능한 체계에서 사용하려면, 서명을 요청하는 사람이 챌린지-리스폰스(challenge-response)라는 것을 수행해야 한다는 것입니다. 그냥 무언가에 서명하라고 말할 수는 없습니다. 왜냐하면 제가

Q&A: 인증을 위한 비트코인 서명 (1:47:01)

메시지를 고를 때, 저는 기본적으로 다른 사람이 아주 오래전에 서명한 메시지를 골라서 그들이 적용한 서명을 제시하고 제가 방금 서명했다고 말할 수 있습니다. 그러면 여러분은 그것이 사실인지 아닌지 알 방법이 없습니다. 따라서 그런 시나리오에서는 챌린지-리스폰스(challenge-response) 방식이 필요합니다. 그래서 제가 할 말은 "CarlosM님, '나 CarlosM은 오늘이 12월 5일인가요? 잘 모르겠지만, 2020년 12월 5일에 내 개인 키를 소유하고 있다'라는 메시지에 서명해 주세요"라는 것입니다. "그리고 나는 Andreas의 요청에 따라 이 메시지에 서명하고 있다"라고 말이죠. 제가 무슨 말을 하는지 이해가 되시나요? 이렇게 하면 시간을 고정하는 효과가 있습니다. 제가 특정 메시지에 서명해 달라고 요청하기 전까지는 그 메시지가 무엇인지 알 수 없습니다. 이를 특정 활동과 연관시키는 것입니다. 저는 여러분에게

서명한 시간과 서명자의 신원에 대한 정보를 그 안에 넣으라고 요청했습니다. 이렇게 하면 훨씬 더 어려워지지만, 여전히 Carlos가 서명했는지는 알 수 없습니다. 미국에서 제안되고 EU에서는 이미 시행된 새로운 트래블 룰(travel rules)을 위해 주소를 소유하고 있음을 증명하고자 지갑으로 서명하는 것에 대해 이야기할 때도 비슷한 대화를 나눴습니다. 물론 Carlos가 주소를 소유하고 있다는 것을 증명하고 싶어서 제가 그런 메시지를 주었다면, Carlos는 그 메시지를 Jimmy에게 주고, Jimmy가 '나는 Carlos다'라고 서명하게 한 다음, 다시 Carlos에게 돌려주고, Carlos가 그것을 저에게 주면 됩니다. 그러면 저는 Carlos가 개인 키를 가지고 있다고 생각하겠지만, 사실은 Jimmy가 가지고 있고 둘이 협력하고 있는 것입니다. 그래서 이것은 복잡합니다. 이것은

언뜻 보기에 그렇게 간단하지 않습니다. 자, 어디 봅시다. 질문 하나만 더 답변하겠습니다. 오, 이거 좋은 질문이네요. 정말 마음에 듭니다. Jeff의 질문입니다. Jeff Tezos는 "TV 리모컨이나 아마존, 넷플릭스 같은 곳에서 수동으로 입력해야 하는 비밀번호는 어떨까요? 얼마나 길고 복잡해야 할까요?"라고 묻습니다. Jeff, 저도 이 문제로 고민을 많이 했습니다. 그리고 이에 대한 제 나름의 답이 있는데, 잠시 후에 말씀드리겠습니다. 자, Jeff가 말하는 시나리오를 상상해 보세요. 비밀번호 관리자를 사용해 넷플릭스 계정을 위한 기호가 포함된 32자리의 고유한 영숫자 키를 생성했습니다. 이제 스마트 Roku TV의 키보드에 그것을 입력해야 하는데, 작은 커서를 키보드의 올바른 글자로 이동시켜 엔터를 누르고,

다시 뒤로 이동해서 Caps Lock으로 내려가 Caps Lock을 켜고, 위로 이동해서 대문자로 간 다음, Caps Lock을 끄고, 기호로 이동해서 숫자 키보드로 전환하는 식으로 각 글자를 입력해야 합니다. 맙소사, 몇 시간은 걸릴 겁니다. 그래서 맞습니다. 그런 경우, 보안이 그렇게 중요하지 않은 경우와 마찬가지로, 이 키를 다른 사람들과 자주 공유해야 하는 상황에서는 다른 방법을 써야 합니다. 좋은 예가 와이파이 비밀번호겠죠? 그래서 그런 경우에는 간단한 숫자나 알파벳으로 된 비밀번호를 사용하겠습니다. 모두 같은 종류의 문자로 구성하되 길이를 조금 더 길게 만드는 것입니다. 누군가 제 넷플릭스를 해킹해서 제가 '퀸스 갬빗(Queen's Gambit)'을 보고 있다는 걸 알아채도 상관없습니다. 당연히 '퀸스 갬빗'을 보고 있죠. 누구나

'퀸스 갬빗'을 보고 있으니까요. '퀸스 갬빗' 주간이잖아요. 제가 그걸 볼 때 어디에 있는지 알아낼 수 있다는 점 등 몇 가지 보안상 고려해야 할 사항이 있긴 하지만, 저에게는 별로 중요하지 않습니다. 그래서 여전히 비밀번호는 필요합니다. 하지만 누군가 그것을 해킹하려고 시도할 가능성이 낮기 때문에 그렇게 길 필요는 없습니다. 진짜 문제는 에어비앤비(Airbnb)를 떠날 때 Roku TV를 초기화하는 것을 기억했느냐는 것입니다. 아하. 좋은 질문이네요. 그래서 저는 어떻게 할까요? 저는 보통 숫자 비밀번호나 알파벳 또는 소문자 비밀번호를 선택하고 이를 그룹으로 묶습니다. 제가 자주 쓰는 전형적인 방법은 마이너스나 하이픈 기호로 구분된 12개의 숫자를 사용하는 것입니다. 즉, 4자리씩 3그룹 또는 3자리씩 4그룹으로 만드는 것입니다. 그래서 제 비밀번호는 937-312-3... 같은 식이 될 것입니다.

Q&A: TV 리모컨 및 저보안 기기의 비밀번호 (1:52:10)

3 1 대시 4 1 5. 지금은 그냥 무작위로 숫자를 고르고 있습니다. 참고로 그리 좋은 무작위성은 아닙니다. 저라면 비밀번호 관리자에 있는 난수 생성기를 사용할 것입니다. 숫자만 나오게 하고 길이를 12로 설정할 것입니다. 그런 다음 4개씩 보기 좋게 묶어서 중간에 대시를 넣어 적어둘 텐데, 화면에서 읽고 키보드로 입력하기가 더 쉽기 때문입니다. 보통 숫자와 대시는 같은 키보드에 있고 아주 가까운 거리에 있어서 빠르게 입력할 수 있습니다. 더 좋은 점은, 많은 리모컨이 키보드의 숫자 부분을 사용할 수 있게 해준다는 것입니다. 예전에는 텔레비전에 채널이 있었고 숫자 채널 번호로 그 채널들을 선택했었죠. 정말 놀라운 기술이라는 거 압니다.

그래서 많은 리모컨에는 숫자 키패드가 있습니다. 덕분에 암호(passphrase)를 입력하기가 훨씬 수월해집니다. 제프(Jeff), 감사합니다. 정말 좋은 질문이었습니다. 보안의 균형을 맞추는 것에 대한 매우 실용적인 질문이기도 합니다. 그렇게 안전하지도 않은 계정을 보호하기 위해 정말로 그 모든 수고를 겪고 싶으신가요? 에어비앤비(Airbnb)를 떠날 때 그 비밀번호를 지우거나 재설정하는 것을 잊어버려서 다른 사람들이 찾게 두는 것이 더 큰 위험이라면, 그건 좀 까다로울 수 있습니다. 제프의 비슷한 질문입니다. 앗. 오 아니요, 제프가 아니네요. 죄송합니다, 잠시만요. 자, 됐습니다. 잘 되나요? 오늘 제 앱에 지연이 좀 있네요. 마이크(Mike)가 묻습니다. 예를 들어 모든 은행 카드에 사용되는 4자리 PIN만 사용하는 것은 얼마나 안전할까요? 마이크, 그건 상황에 따라 다릅니다.

그 PIN을 어디에 입력할 수 있는지에 따라 다릅니다. 은행 카드에서 4자리 PIN이 안전한 이유는 PIN 패드나 ATM 기기와 같은 보안 장치에만 입력할 수 있기 때문입니다. 이러한 기기들은 특정 횟수 이상 시도하는 것을 방지하도록 설계되었습니다. 그리고 만약 그것이 관리되는 기기라면, 즉 주유소나 슈퍼마켓 계산대 등 사람이 서 있는 곳에서 여러 번 입력하려고 한다면 말이죠. 여러분이 4,000가지의 다른 조합을 입력하려고 시도한다면, 그들은 여러분이 그렇게 하는 것을 보고 보안 요원을 부를 것입니다. 반면, 여러분이 그냥 앉아서 몇 시간이고 모든 가능한 조합을 시도해 볼 수 있는 무인 기기라면, 아시다시피 ATM의 경우 실제로 카드를 잠그고 먹어버릴 것입니다. 그래서

은행 정책에 따라 4번, 6번, 또는 3번 잘못 입력하면, 기기가 꿀꺽하고 제 카드를 삼켜버리고 다시 시도할 기회를 주지 않을 것입니다. 따라서 단순히 PIN만의 문제가 아니라, 그 PIN이 어떻게 사용되는지에 대한 맥락의 문제입니다. 어디에 입력되는지, 몇 번이나 시도할 수 있는지, 그리고 이러한 다계층 보안 메커니즘을 통과하지 못했을 때 어떤 일이 일어나는지가 중요합니다. 그러니 네, 잘못 입력하면 카드를 먹어버리거나 너무 많이 시도하지 못하게 하는 등의 추가적인 보안 계층이 있는 ATM이나 PIN 패드와 같은 통제된 접근 기기의 맥락에서는 4자리 PIN도 충분히 안전합니다. 이 정도면 된 것 같네요. 우리는 많은 주제를 다루었습니다. 이 모든 훌륭한 질문들에 정말 감사드립니다. 정말 좋은 댓글을 남겨주셔서 감사합니다. 이번 특정 세션에서 어떤 점이 좋았는지 말씀해 주세요.

우리가 했던 다른 세션들과는 조금 달랐습니다. 비트코인과 개방형 블록체인(open Blockchains)의 여정에서 여러분에게 도움이 될 만한, 더 배우고 싶은 내용이 있다면 말씀해 주세요. 그리고 앞으로도 이런 세션이 많이 준비되어 있다는 것을 잊지 마세요. 다가오는 다음 이벤트를 보여드리겠습니다. 바로 '어색한 명절 대화(Awkward Holiday Conversations)'입니다. 이것이 다가오는 다음 세션입니다. 저는 여러분을 올바른 답변으로 무장시켜 드릴 것이며, 현재 패트리온(Patreon) 및 기타 플랫폼의 댓글에서 가족 간의 어색한 명절 대화를 공유하고 있는 다른 사람들의 재미있는 이야기도 들려드릴 것입니다. 주로 비트코인과 개방형 블록체인에 대한 내용이지만, 때로는 라이브 스트림에서 다루지 않을 훨씬 더 어색한 주제에 대한 내용도 있습니다. 그런 다음 12월 오픈 주제 Q&A가 있으며, 여기서 여러분은 어떤 질문이든 할 수 있고 저는 그중 선택해서 답변할 수 있습니다. 그리고

마무리 (1:57:25)

그리고 마지막으로 2021년 엑스트라바간자(Extravaganza) 이벤트가 있습니다. 따라서 이러한 이벤트가 언제 열리는지 알아보고 싶으시다면 제 채널을 구독해 주세요. 종 모양 아이콘을 눌러 알림을 켜두시면, 이 새로운 이벤트에 대한 소식을 가장 먼저 받아보실 수 있습니다. 오늘 함께해 주셔서 감사합니다. 오늘 라이브 스트림 채널에 300명이 넘는 분들이 참여해 주셨고, 거의 2시간에 걸친 프레젠테이션을 함께해 주셨습니다. 다뤄야 할 내용이 정말 많았거든요. 자, 방송을 진행하는 동안 제가 다양한 색상의 환상적인 책들을 쌓아둔 것을 눈치채셨을 겁니다. 이 색상들을 제대로 즐기려면 인쇄본이 필요하겠지만, 실제 내용은 전자책(ebook)으로도 읽으실 수 있습니다. 그리고 그 전자책은 제 상점인 antonov.com/shop에서 구매하실 수 있습니다. 또한 이것과 같은 머그잔도 구매하실 수 있습니다. 그리고

그나저나, 이 머그잔들은 정말 환상적입니다. 크고 무거우며, 보온성도 뛰어납니다. 깨지기도 아주 어렵습니다. 제가 직접 해봐서 압니다. 여러 번 떨어뜨려 봤거든요. 게다가 커피도 많이 들어가는데, 어색한 명절 대화를 버텨내려면 우리 모두에게 커피가 많이 필요할 겁니다. 그래서 월요일까지 앞으로 이틀 동안, 전 품목에 대해 20% 할인을 제공하는 홀리데이 세일을 진행합니다. 여러분이 구매할 수 있는 또 다른 상품 중 하나는 '나만의 암호화폐 선택하기(choose your cryptocurrency)' 워크숍입니다. 이 상품에도 20% 할인이 적용됩니다. 2020 홀리데이 세일은 상점에서 이용 가능하며, 상점 첫 페이지인 antonov.com/shop으로 가시면 쿠폰을 찾으실 수 있습니다. 이 영상 아래에 댓글 남기는 것도 잊지 마세요. 시청해 주셔서 정말 감사합니다. 즐거운 주말 보내세요. 여러분 안녕히 계세요.

이 페이지가 도움이 되었나요?