당신의 도난당한 암호화 데이터는 얼마나 안전한가?

당신의 데이터 중 일부가 도난당했을 가능성이 큽니다. 예를 들어, Yahoo를 사용한 적이 있나요? 2013년에 30억 개의 Yahoo 계정이 도난당했습니다. Marriott 호텔을 방문한 적이 있나요? 2014년부터 2018년까지 5억 개의 Marriott 계정이 도난당했습니다. 옛 핫메일 주소와 강렬했던 사춘기의 영혼을 어떻게든 유지하고 계신가요? 3억 6천만 개의 MySpace 계정이 해킹되었습니다. MyFitnessPal을 사용하나요? 1억 5천만 개의 계정이 있습니다.

그렇다면 해커들이 실제로 무엇을 가져갔을까요? 해킹 방식은 다르지만, 거의 확실히 당신의 이메일 주소, 사용자 정보, 사이트에서의 활동 기록 및 아마도 훨씬 더 해로운 정보들이 포함되어 있을 것입니다. 그러나 좋은 소식은 대부분의 민감한 데이터는 아마도 암호화되었다는 것입니다. 또한 암호화되지 않았을 가능성도 있지만, 최악의 데이터 도난 시나리오를 생각해 봅시다: 당신의 정보는 도난당했지만 민감한 내용은 AES-256으로 암호화되었습니다. 그렇다면 얼마나 안전할까요?

데이터가 암호화된다는 것은 무엇을 의미하나요?

encrypted-data-encryption

현대 데이터 보안에서 “암호화“는 일반적으로 키 기반 암호화를 의미합니다. 간단히 말해, 암호화하고자 하는 데이터를 입력하고 암호화에 사용할 키(문자, 숫자 및/또는 기호의 문자열)를 입력하는 것입니다. 이 두 가지의 조합은 적절한 키가 사용될 때만 복호화할 수 있는 혼란스러운 내용을 만들어냅니다. 암호화와 혼동해서는 안 되는 것은 다음과 같습니다:

  • 인코딩: 데이터를 인코딩하고 디코딩하는 데 동일한 알고리즘을 사용하며, 키가 필요하지 않습니다. ASCII나 유니코드와 비슷하며, 완전히 안전하지 않습니다.
  • 해싱: 동일한 입력에 대해 동일한 결과를 생성하는 단방향 암호화 과정이지만, 입력이 조금만 달라져도 결과는 매우 다르게 남습니다. 이는 일반적으로 SHA-256이나 bcrypt와 같은 알고리즘을 사용하는 비밀번호 관리에 사용됩니다.

예를 들어:

방법텍스트
인코딩 (ASCII, 10진수)비밀로 간직하세요. 안전하게 지키세요.
암호화 (AES 256비트)비밀로 간직하세요. 안전하게 지키세요.
해싱 (bcrypt)비밀로 간직하세요. 안전하게 지키세요.
방법적용된 방법
인코딩 (ASCII, 10진수)75 101 101 112 32 105 116 32 115 101 99 114 101 116 46 32 75 101 101 112 32 105 116 32 115 97 102 101 46

| 암호화 (AES 256비트, 키: Mellon) | ddg18josC+1ouYRjv5CfPoo
jKJV+y3OLtxjIeCUsL+A= | | 해싱 (bcrypt, 12회) | $2y$12$3O1EiCPdVrqZFllHJ/
.q9eZzsyzqdmLMluqlQKO1A
NtlYMva94.nS |

방법복호화된 결과
인코딩 (ASCII, 10진수)비밀로 간직하세요. 안전하게 지키세요.
암호화 (AES 256비트)비밀로 간직하세요. 안전하게 지키세요.
해싱 (bcrypt)복호화할 수 없음

두 가지 주요 암호화 유형은 대칭 및 비대칭입니다. 대칭 암호화는 암호화하는 데 사용된 것과 동일한 키를 사용하여 복호화할 수 있는 반면, 비대칭 암호화는 암호화에 하나의 키(공개 키)가 필요하고 복호화에는 또 다른 키(개인 키)가 필요합니다. 대부분의 현대 암호화는 비대칭입니다. 전체 정보 데이터베이스에 대해 단 하나의 키만 가지는 것은 매우 안전하지 않기 때문입니다.

암호화는 얼마나 안전한가요? 해킹될 수 있나요?

encrypted-data-breaking

간단히 말해서, 네: 암호화는 해킹될 수 있습니다. 무차별 대입 공격은 기본적으로 맞는 답을 찾을 때까지 많은 추측을 하는 것이기 때문에, 충분한 시간과 컴퓨팅 파워가 주어진다면 올바른 답을 찾을 수 있습니다. 현재 우리의 능력을 감안할 때, AES-256을 무차별 대입으로 해킹하는 데는 최대 3 섹스데실리온(3×10^51) 년이 걸릴 수 있으며, 유사한 숫자가 많은 널리 사용되는 암호화 알고리즘에 적용될 수 있습니다. 미래의 양자 컴퓨터와 기타 발전은 암호화의 실제 보안을 크게 낮출 수 있지만, 그 전까지는 사실상 침투할 수 없습니다.

하지만 암호화가 완벽하다는 의미는 아닙니다. 공격자들은 암호화된 데이터는 키 없이는 쓸모가 없다는 점을 잘 알고 있기 때문에, 그들이 노리는 것은 무엇일까요? 바로 키입니다. 가장 재앙적인 데이터 유출은 암호화된 데이터와 복호화 키가 모두 도난당하는 것입니다. 데이터 보안이 올바르게 구현된다면, 키(다양한 데이터에 대한 여러 키)는 데이터와는 별도의 안전한 장소에 저장되어야 하며 아마도 그 자체로 암호화되어야 할 것입니다. 또한 데이터가 복호화되어야 할 때마다 키를 안전하게 복호화하고 가져와야 하므로 공격자가 이를 가로채지 못하도록 해야 합니다. 이러한 모든 것 위에, 키는 정기적으로 변경하는 것이 좋습니다.

당신의 정보가 도난당한 사이트가 이 모든 것을 했었다면, 공격자들은 아마 키를 가져가지 않았고 당신의 데이터는 태양이 타버리거나 우리가 훨씬 더 강력한 컴퓨터를 발명하기 전까지 안전할 것입니다. 하지만 사이트가 실제로 이렇게 하고 있을 가능성이 얼마나 될까요? 그리고 최상의 시나리오에서도 과연 당신의 데이터 중 얼마나 많은 부분이 암호화되어 있을까요?

누가 암호화하고 무엇이 암호화되나요?

encrypted-data-breaches

이 기사의 시작 부분에 언급된 데이터 유출 목록을 기억하시나요? 다시 확인해 봅시다.

유출연도영향을 받은 기록암호화된암호화되지 않은

| Yahoo | 2013/2014 | 30억 | – 해시된 비밀번호 (주로 bcrypt, 일부 MD5)
– 일부 보안 질문 | – 이름
– 이메일 주소
– 전화번호
– 생년월일 | | Marriott | 2014-2018 | 3-5억 | – 860만 개의 신용 카드 번호
– 2030만 개의 여권 번호 | – 이름
– 주소
– 생년월일
– 성별
– 로열티 프로그램 데이터
– 예약 정보
– 525만 개의 여권 번호 | | MySpace | 2016 | 4억 | 비밀번호 (SHA-1, 소금 없음) | – 이메일 주소
– 사용자 이름 | | MyFitnessPal | 2018 | 1억 5천만 | 비밀번호 (bcrypt, 소금 있음, SHA-1) | – 사용자 이름
– 이메일 주소
– 비밀번호 |

이 목록은 매우 길어질 수 있지만, 기본적으로 대부분의 사이트에서 암호화되는 유일한 것은 비밀번호(사실상 해시형태)와 결제 정보를 포함합니다. 민감한 정보를 많이 처리하는 사이트가 아니거나 높은 보안을 지향하지 않는 한, 당신의 데이터 유출은 아마도 상당량의 개인 식별 정보(PII)를 노출했을 것입니다. 이는 암호화 및 복호화가 단순히 평문으로 저장하고 직접 제공하는 것보다 더 많은 컴퓨팅 파워, 시간, 노력 및 비용이 소요되기 때문입니다.

이 해킹에서 암호화된 내용조차 항상 안전한 것은 아니었습니다. Yahoo와 MyFitnessPal은 비밀번호에 대해 bcrypt를 사용했는데, 이는 강력한 암호화 표준이지만 각각 MD-5와 SHA-1도 사용하고 있었으며, 주로 오래된 계정에 해당합니다. 이러한 두 가지는 훨씬 더 약한 해싱 알고리즘입니다. MySpace는 모든 것에 대해 소금이 없는 SHA-1을 그대로 사용했는데, 이는 이해가 가지만 당신의 비밀번호가 거의 확실히 유출되었다는 것을 의미합니다. Yahoo 또한 그들이 2013년에 비밀번호에 소금을 추가했는지에 대해 명확히 하지 않았으며(아마도 추가하지 않았을 것입니다), 이는 그들을 상대적으로 취약하게 만듭니다.

Marriott는 525만 개의 평문 여권 번호를 잃어버렸고, 이는 좋지 않습니다. 그들은 분명히 이를 암호화해야 한다는 것을 알았으며(다른 2000만 개는 암호화되었으니) 고객의 20%에서 실수를 범했습니다. 그들은 신용 카드 번호를 암호화했지만, 해커들이 키를 가져갔는지 여부는 확실하지 않습니다.

이 이야기의 교훈은 대다수의 데이터가 암호화되지 않았다는 것입니다. 심지어 실제로 암호화되어야 할 것들도 그렇습니다.

하지만 내 데이터는 암호화되었습니다

그렇습니다. 당신은 모든 정보를 암호화하는 환상적인 보안 웹사이트를 사용했습니다. 그런 사이트들은 존재합니다. 많은 파일 저장 사이트(Dropbox, Google Drive 등)에서는 그들의 데이터베이스에서 파일을 암호화합니다. 그 경우, 그들의 키 저장 시스템이 강력하고 보안 전문가들이 개발자와 잘 협업했다면, 당신의 데이터는 우주가 열열롭게 사라질 때까지 그대로 유지될 가능성이 큽니다.

그러나 더 가능성 있는 시나리오는 많은 정보가 암호화되지 않았고, 심지어 민감한 정보조차 열악하게 해시 처리되었거나 데이터베이스나 파일 시스템 내의 키와 함께 암호화되었을 것입니다. 이는 당신이 서비스 사용을 위해 회사에 데이터를 제공해야 하기 때문에 어떻게 할 수 있는 일이 아니지만, 최소한으로 유지하려고 노력할 수 있습니다 – 그리고 비밀번호를 재사용하지 마세요!

또한, 당신의 데이터가 어떤 유출 사건에 등장했는지 확인하기 위해 HaveIBeenPwned를 확인하는 것을 잊지 마세요.

이미지 크레딧: 공개 키 암호화 키, 데이터 보안 유출, 오렌지와 파랑의 공개 키 암호화