2019.05.28

암호화의 어두운 비밀 12가지

Peter Wayner | CIO
암호화는 데이터 프라이버시나 보안을 위한 핵심 솔루션으로 빠르게 자리 잡고 있다. 신용카드를 웹 페이지에 입력할 때, 웹사이트가 진짜인지 의심스러울 때도 걱정할 필요가 없다. 암호화를 사용하고 있기 때문이다. 암호화는 정보가 외부에 노출되지 않고 보호될 것이라는 탄탄한 신뢰의 근거가 된다.
 
ⓒ Getty Images Bank

하지만 모든 마법 같은 기술에는 한계가 있기 마련이다. 그리고 암호화의 한계는 '그 한계가 어디인지 정확히 알 수 없다'는 것이다. 결국, 암호화에 대한 우리의 기대와 이해 수준을 관리하는 것이 중요하다. 어느덧 암호화 없이는 살 수 없을 만큼 보편화한 기술이지만, 마치 전등 스위치처럼 쉽게 또는 신뢰할 수 있게 작동한다고 생각해서는 곤란하다. 염두에 두어야 할 암호화의 12가지 어두운 비밀에 관해 살펴보자.

'잘 모른다'는 사실을 바탕으로 한다
암호화는 우리가 암호화에 필요한 '수학에 대해 잘 모르고 있다'는 사실에 의존한다. 우리는 함수를 계산하는 방법을 알지만 이를 도치하는 것은 잘 모른다. 큰 숫자를 곱할 수는 있지만 알고리즘을 계산할 수는 없다. 다시 말해, 우리는 수학의 한 쪽 방향만 알고 있을 뿐 그 역을 모르고 있다. 많은 사람이 도치하는 방법을 모른다면 거기에서 멈추고 어깨를 으쓱하면서 알고리즘을 받아들인다. 결국 우리가 가장 보편적으로 사용하는 알고리즘은 그 누구도 공개적으로 공격하는 방법을 파악하지 못했다는 사실에 의존한다.

예측은 예측일 뿐이다
일부 수학자는 잘 알려진 암호화 함수를 공격하는 기본적인 알고리즘을 발견했다. 그러나 실제 암호화를 해독하는 데는 너무 많은 시간이 걸린다. 이 공격 알고리즘은 극소수 경우에만 효과가 있었고 암호가 복잡할수록 처리 시간이 기하급수적으로 늘어난다. 수천억 만년이 걸린다는 주장도 여기서 출발한다. 그러나 이것이 곧 암호화를 신뢰할 수 있다는 의미는 아니다. 초보 골퍼가 홀인원을 하려면 골프를 엄청나게 오래 쳐야 하지만, 주기적으로 홀인원을 기록하는 프로는 그렇지가 않다. 암호화의 세계에서 우리는 모두 예측하는 초보자에 불과하다.

알고리즘의 신뢰성이 완벽하지 않다
일부 헌신적인 과학자와 수학자가 알고리즘을 '입증'하려 노력하고 있다. 이렇게 잘 연구된 논리적인 단계의 체인은 우리가 암호화 알고리즘의 강점을 이해하는 데 많은 도움이 된다. 그러나 이것과 데이터의 안전을 보장하는 것은 다른 이야기이다. '입증'은 일부 작업에서만 빛을 발하고 어둠 속에는 항상 괴물이 숨어있기 마련이다. (일회용 암호표를 제외하고) 대부분의 경우 모든 것을 입증할 수 없으며, 암호를 푸는 것이 얼마나 어려운가에 대한 주장을 반복할 뿐이다. 과거에는 이것이 통했지만 미래에도 그렇다는 보장은 없다.

암호화의 '강력함'은 측정할 수 없다
보안 업체는 습관적으로 '은행용'이라는 용어를 남발한다. 1024비트 같은 숫자를 섞어 쓰는 것도 좋아한다. 그러나 현실적으로 알고리즘의 '강력함'은 추정할 수밖에 없다. 2048비트가 1024비트보다 2배나 좋을까? 그 차이가 엄청날까? 실상은 우리가 이제 막 이에 대한 연구를 시작했을 뿐이라는 점이다. 초기 연구 결과를 보면 일부 해킹은 좁은 범위의 메시지에 대해서만 우연히 효과가 있다. 실험실에서는 이런 공격이 어떻게 작용하는지 확인할 수 있지만 이 결과를 우리의 데이터가 어떤 위협에 처하는지 확장해 해석하는 것은 매우 어렵다.

컴퓨팅의 미래는 알 수 없다
양자 컴퓨터의 발전 상황에 대한 언론 보도가 이어지고 있다. 아직은 그 누구도 양자 컴퓨터가 유의미한 문제를 해결할 만큼 충분한 성능으로 개발될지 알 수 없지만, 양자 기기가 실제 등장한다면 일부 암호화 알고리즘이 해독될 가능성이 있다. 많은 암호화 과학자가 양자 컴퓨터에 대항할 수 있는 새로운 알고리즘도 개발하고 있다. 그러나 실제로 그 누구도 양자 컴퓨터의 성능이 어떨지 알지 못한다. 영향을 받는 것이 알려진 알고리즘 정도일까? 아니면 누군가 양자 컴퓨터를 이용해 모든 새로운 알고리즘을 해독하는 방법 다른 방법을 찾아낼까? 컴퓨팅의 미래는 여전히 미궁 속이다.

암호화된 데이터가 곧 안전한 데이터는 아니다
암호화가 효과적일 때가 있다. 그러나 수학적 금고 안에 데이터를 잠근 후 열쇠가 사라져 버리면 어떻게 될까? 즉 암호화된 데이터를 백업하기는 쉽지만 키와 비밀번호를 백업하기는 쉽지 않다. 이 과정에서 '너무 조심하면' 스스로 데이터를 사용할 수 없게 된다. 예상치 못한 사고로 죽는다면 그 누구도 비밀번호나 빠진 키를 찾아낼 수 없게 될 수도 있다. 결국 암호화된 데이터가 곧 안전한 데이터는 아니다. 암호화된 데이터도 취약할 수 있다.
 
암호화는 쉽지만 키 관리는 어렵다
일부 암호화 표준은 수년에 걸쳐 개발되었기 때문에 신뢰를 받는다. 오픈 소스 라이브러리에서 아무 암호화나 찾아도 일정 수준 이상으로 안전하다. 하지만 필요한 모든 사람에게 키를 배포하는 것이 어렵다. AES 같은 대칭 시스템은 키가 안전한 채널을 통해 따로 이동해야 하지만 그런 안전한 채널이 있었다면 암호화가 필요 없었을 것이다. 대안은 공개키 시스템이다. 덕분에 사람들은 미리 만나지 않고도 더 쉽게 안전한 경로를 설정할 수 있게 됐다. 그러나 끝이 아니다. 어떤 사람에 대해 적절한 공개키를 사용하고 있는지 어떻게 알 수 있을까? 인증 기관을 신뢰할 수 있는가? 결국 암호화 이후에도 여전히 시스템의 신뢰에 의존해야 하는 부분이 있다.

지원 코드가 취약하다
암호화 개발자에게는 키 배포 외에도 악몽 같은 일이 있다. 알고리즘의 많은 부분이 정보를 유출할 수 있으며, 때로는 의도적으로 그럴 수 있다. 예를 들어, 메시지에 난수를 섞는 것이 일반적이지만 이런 난수를 찾기가 어려울 수 있다. 소위 말하는 난수 생성기 중 일부는 무작위가 아닌 결함이 있으며, 이런 예측성을 통해 키를 예측하고 메시지를 해독할 수 있다. 암호화 알고리즘은 전체 암호화의 일부에 지나지 않는다는 것을 잊어서는 안 된다.

공유 하드웨어는 위험하다
최근 비용과 유연성 때문에 점차 많은 코드가 클라우드에서 실행되고 있다. 문제는 아무도 누가 기기를 공유하고 있는지 모른다는 점이다. 같은 컴퓨터에서 하나의 소프트웨어가 다른 소프트웨어의 메모리에 침투할 수 있는 취약성이 많다. 운영체제 개발자는 이를 차단하려 하지만 로우해머(RowHammer) 같은 새로운 보안 취약점이 종종 등장한다. 클라우드에 있는 기기에는 수십 개의 잠재적인 공격이 존재하는 것으로 보인다. 우리는 이제 막 우리가 얼마나 걱정해야 하는지 인지하기 시작했다.

해킹된 하드웨어는 감지할 수 없다
칩에 있는 트랜지스터를 본 적이 있는가? 이것이 소프트웨어 개발자에게 충실한지 확인한 적이 있는가? 일부 똑똑한 해커는 하나의 칩을 역설계해 무작위 바이트 문자열로 작동하는 숨겨진 갓(God) 모드가 있다는 사실을 발견했다. 누가 넣어두었을까? 아무도 진실을 말하지 않고 있다.

디지털 서명은 책임을 전가할 뿐이다
최고의 디지털 서명 알고리즘 이면의 수학은 사람들을 기만하고 혼을 빼놓는 부분이 있다. 예를 들어 오직 사설 키의 소유자만 정당한 디지털 서명을 생성하는 계산을 수행할 수 있다. 그러나 이것이 성적표에 부모의 서명을 받아야 하는 4학년짜리가 위조하는 수기 서명보다 나을까?

진실은 사설 키는 사람에게 종속되지 않는다는 점이다. 즉 디지털 서명은 사설 키에 액세스할 수 있는 사람만 생성할 수 있다. 이가 정당한 소유자일 수 있지만 컴퓨터에 침투했거나 비밀번호를 어깨너머로 훔쳐보았거나 키 로거를 삽입했거나 키를 얻는 방법을 알아낸 사람일 수 있다. 또한, 키가 컴퓨터에 있고 컴퓨터가 인터넷에 연결되어 있지만 전 세계의 인터넷에 연결된 누구든 될 수 있다. 결국 과학자가 안전한 하드웨어와 강력한 솔루션을 개발하기 위해 노력하고 있지만 이는 해커의 일을 '조금 더' 어렵게 할 뿐이다. 아무리 멋진 수학도 일반적인 보안 취약점 때문에 쉽게 무너질 수 있다.

암호화에 약점에 함구하는 이들이 있다
일부 수학자와 암호화 전문가는 공개적으로 기술에 관해 이야기하는 것을 즐긴다. 그러나 다른 이들은 말이 없다. 심지어 암호화에 대해 입을 꾹 다물고 사는 사람이 얼마나 되는지조차 모른다. 우리 사회에서 많은 코드와 암호를 사용한다는 것은 긍정적이다. 하지만 역설적으로, 우리가 기술을 더 많이 사용할수록 그 약점에 대해 '입을 다물어야 할' 유인이 커진다. 예를 들어 암호화로 무장한 인터넷을 통해 실제 돈과 비밀이 흘러 다닐 때 그 갑옷의 틈에 대한 지식은 점점 더 중요해지는 것이다. 즉, 암호화를 더 많이 사용할수록 그 비밀이 더 깊고 어둡게 자란다. ciokr@idg.co.kr


2019.05.28

암호화의 어두운 비밀 12가지

Peter Wayner | CIO
암호화는 데이터 프라이버시나 보안을 위한 핵심 솔루션으로 빠르게 자리 잡고 있다. 신용카드를 웹 페이지에 입력할 때, 웹사이트가 진짜인지 의심스러울 때도 걱정할 필요가 없다. 암호화를 사용하고 있기 때문이다. 암호화는 정보가 외부에 노출되지 않고 보호될 것이라는 탄탄한 신뢰의 근거가 된다.
 
ⓒ Getty Images Bank

하지만 모든 마법 같은 기술에는 한계가 있기 마련이다. 그리고 암호화의 한계는 '그 한계가 어디인지 정확히 알 수 없다'는 것이다. 결국, 암호화에 대한 우리의 기대와 이해 수준을 관리하는 것이 중요하다. 어느덧 암호화 없이는 살 수 없을 만큼 보편화한 기술이지만, 마치 전등 스위치처럼 쉽게 또는 신뢰할 수 있게 작동한다고 생각해서는 곤란하다. 염두에 두어야 할 암호화의 12가지 어두운 비밀에 관해 살펴보자.

'잘 모른다'는 사실을 바탕으로 한다
암호화는 우리가 암호화에 필요한 '수학에 대해 잘 모르고 있다'는 사실에 의존한다. 우리는 함수를 계산하는 방법을 알지만 이를 도치하는 것은 잘 모른다. 큰 숫자를 곱할 수는 있지만 알고리즘을 계산할 수는 없다. 다시 말해, 우리는 수학의 한 쪽 방향만 알고 있을 뿐 그 역을 모르고 있다. 많은 사람이 도치하는 방법을 모른다면 거기에서 멈추고 어깨를 으쓱하면서 알고리즘을 받아들인다. 결국 우리가 가장 보편적으로 사용하는 알고리즘은 그 누구도 공개적으로 공격하는 방법을 파악하지 못했다는 사실에 의존한다.

예측은 예측일 뿐이다
일부 수학자는 잘 알려진 암호화 함수를 공격하는 기본적인 알고리즘을 발견했다. 그러나 실제 암호화를 해독하는 데는 너무 많은 시간이 걸린다. 이 공격 알고리즘은 극소수 경우에만 효과가 있었고 암호가 복잡할수록 처리 시간이 기하급수적으로 늘어난다. 수천억 만년이 걸린다는 주장도 여기서 출발한다. 그러나 이것이 곧 암호화를 신뢰할 수 있다는 의미는 아니다. 초보 골퍼가 홀인원을 하려면 골프를 엄청나게 오래 쳐야 하지만, 주기적으로 홀인원을 기록하는 프로는 그렇지가 않다. 암호화의 세계에서 우리는 모두 예측하는 초보자에 불과하다.

알고리즘의 신뢰성이 완벽하지 않다
일부 헌신적인 과학자와 수학자가 알고리즘을 '입증'하려 노력하고 있다. 이렇게 잘 연구된 논리적인 단계의 체인은 우리가 암호화 알고리즘의 강점을 이해하는 데 많은 도움이 된다. 그러나 이것과 데이터의 안전을 보장하는 것은 다른 이야기이다. '입증'은 일부 작업에서만 빛을 발하고 어둠 속에는 항상 괴물이 숨어있기 마련이다. (일회용 암호표를 제외하고) 대부분의 경우 모든 것을 입증할 수 없으며, 암호를 푸는 것이 얼마나 어려운가에 대한 주장을 반복할 뿐이다. 과거에는 이것이 통했지만 미래에도 그렇다는 보장은 없다.

암호화의 '강력함'은 측정할 수 없다
보안 업체는 습관적으로 '은행용'이라는 용어를 남발한다. 1024비트 같은 숫자를 섞어 쓰는 것도 좋아한다. 그러나 현실적으로 알고리즘의 '강력함'은 추정할 수밖에 없다. 2048비트가 1024비트보다 2배나 좋을까? 그 차이가 엄청날까? 실상은 우리가 이제 막 이에 대한 연구를 시작했을 뿐이라는 점이다. 초기 연구 결과를 보면 일부 해킹은 좁은 범위의 메시지에 대해서만 우연히 효과가 있다. 실험실에서는 이런 공격이 어떻게 작용하는지 확인할 수 있지만 이 결과를 우리의 데이터가 어떤 위협에 처하는지 확장해 해석하는 것은 매우 어렵다.

컴퓨팅의 미래는 알 수 없다
양자 컴퓨터의 발전 상황에 대한 언론 보도가 이어지고 있다. 아직은 그 누구도 양자 컴퓨터가 유의미한 문제를 해결할 만큼 충분한 성능으로 개발될지 알 수 없지만, 양자 기기가 실제 등장한다면 일부 암호화 알고리즘이 해독될 가능성이 있다. 많은 암호화 과학자가 양자 컴퓨터에 대항할 수 있는 새로운 알고리즘도 개발하고 있다. 그러나 실제로 그 누구도 양자 컴퓨터의 성능이 어떨지 알지 못한다. 영향을 받는 것이 알려진 알고리즘 정도일까? 아니면 누군가 양자 컴퓨터를 이용해 모든 새로운 알고리즘을 해독하는 방법 다른 방법을 찾아낼까? 컴퓨팅의 미래는 여전히 미궁 속이다.

암호화된 데이터가 곧 안전한 데이터는 아니다
암호화가 효과적일 때가 있다. 그러나 수학적 금고 안에 데이터를 잠근 후 열쇠가 사라져 버리면 어떻게 될까? 즉 암호화된 데이터를 백업하기는 쉽지만 키와 비밀번호를 백업하기는 쉽지 않다. 이 과정에서 '너무 조심하면' 스스로 데이터를 사용할 수 없게 된다. 예상치 못한 사고로 죽는다면 그 누구도 비밀번호나 빠진 키를 찾아낼 수 없게 될 수도 있다. 결국 암호화된 데이터가 곧 안전한 데이터는 아니다. 암호화된 데이터도 취약할 수 있다.
 
암호화는 쉽지만 키 관리는 어렵다
일부 암호화 표준은 수년에 걸쳐 개발되었기 때문에 신뢰를 받는다. 오픈 소스 라이브러리에서 아무 암호화나 찾아도 일정 수준 이상으로 안전하다. 하지만 필요한 모든 사람에게 키를 배포하는 것이 어렵다. AES 같은 대칭 시스템은 키가 안전한 채널을 통해 따로 이동해야 하지만 그런 안전한 채널이 있었다면 암호화가 필요 없었을 것이다. 대안은 공개키 시스템이다. 덕분에 사람들은 미리 만나지 않고도 더 쉽게 안전한 경로를 설정할 수 있게 됐다. 그러나 끝이 아니다. 어떤 사람에 대해 적절한 공개키를 사용하고 있는지 어떻게 알 수 있을까? 인증 기관을 신뢰할 수 있는가? 결국 암호화 이후에도 여전히 시스템의 신뢰에 의존해야 하는 부분이 있다.

지원 코드가 취약하다
암호화 개발자에게는 키 배포 외에도 악몽 같은 일이 있다. 알고리즘의 많은 부분이 정보를 유출할 수 있으며, 때로는 의도적으로 그럴 수 있다. 예를 들어, 메시지에 난수를 섞는 것이 일반적이지만 이런 난수를 찾기가 어려울 수 있다. 소위 말하는 난수 생성기 중 일부는 무작위가 아닌 결함이 있으며, 이런 예측성을 통해 키를 예측하고 메시지를 해독할 수 있다. 암호화 알고리즘은 전체 암호화의 일부에 지나지 않는다는 것을 잊어서는 안 된다.

공유 하드웨어는 위험하다
최근 비용과 유연성 때문에 점차 많은 코드가 클라우드에서 실행되고 있다. 문제는 아무도 누가 기기를 공유하고 있는지 모른다는 점이다. 같은 컴퓨터에서 하나의 소프트웨어가 다른 소프트웨어의 메모리에 침투할 수 있는 취약성이 많다. 운영체제 개발자는 이를 차단하려 하지만 로우해머(RowHammer) 같은 새로운 보안 취약점이 종종 등장한다. 클라우드에 있는 기기에는 수십 개의 잠재적인 공격이 존재하는 것으로 보인다. 우리는 이제 막 우리가 얼마나 걱정해야 하는지 인지하기 시작했다.

해킹된 하드웨어는 감지할 수 없다
칩에 있는 트랜지스터를 본 적이 있는가? 이것이 소프트웨어 개발자에게 충실한지 확인한 적이 있는가? 일부 똑똑한 해커는 하나의 칩을 역설계해 무작위 바이트 문자열로 작동하는 숨겨진 갓(God) 모드가 있다는 사실을 발견했다. 누가 넣어두었을까? 아무도 진실을 말하지 않고 있다.

디지털 서명은 책임을 전가할 뿐이다
최고의 디지털 서명 알고리즘 이면의 수학은 사람들을 기만하고 혼을 빼놓는 부분이 있다. 예를 들어 오직 사설 키의 소유자만 정당한 디지털 서명을 생성하는 계산을 수행할 수 있다. 그러나 이것이 성적표에 부모의 서명을 받아야 하는 4학년짜리가 위조하는 수기 서명보다 나을까?

진실은 사설 키는 사람에게 종속되지 않는다는 점이다. 즉 디지털 서명은 사설 키에 액세스할 수 있는 사람만 생성할 수 있다. 이가 정당한 소유자일 수 있지만 컴퓨터에 침투했거나 비밀번호를 어깨너머로 훔쳐보았거나 키 로거를 삽입했거나 키를 얻는 방법을 알아낸 사람일 수 있다. 또한, 키가 컴퓨터에 있고 컴퓨터가 인터넷에 연결되어 있지만 전 세계의 인터넷에 연결된 누구든 될 수 있다. 결국 과학자가 안전한 하드웨어와 강력한 솔루션을 개발하기 위해 노력하고 있지만 이는 해커의 일을 '조금 더' 어렵게 할 뿐이다. 아무리 멋진 수학도 일반적인 보안 취약점 때문에 쉽게 무너질 수 있다.

암호화에 약점에 함구하는 이들이 있다
일부 수학자와 암호화 전문가는 공개적으로 기술에 관해 이야기하는 것을 즐긴다. 그러나 다른 이들은 말이 없다. 심지어 암호화에 대해 입을 꾹 다물고 사는 사람이 얼마나 되는지조차 모른다. 우리 사회에서 많은 코드와 암호를 사용한다는 것은 긍정적이다. 하지만 역설적으로, 우리가 기술을 더 많이 사용할수록 그 약점에 대해 '입을 다물어야 할' 유인이 커진다. 예를 들어 암호화로 무장한 인터넷을 통해 실제 돈과 비밀이 흘러 다닐 때 그 갑옷의 틈에 대한 지식은 점점 더 중요해지는 것이다. 즉, 암호화를 더 많이 사용할수록 그 비밀이 더 깊고 어둡게 자란다. ciokr@idg.co.kr


X