본문 바로가기

Front-end/road map

1. 인터넷이란 무엇인가? - 3

원문 : roadmap.sh/guides/what-is-internet

 

암호화 및 공개 키

인터넷은 공개되어있는 공용 시스템입니다. 우리는 공유된 선과 연결을 통해 정보를 주고받습니다. 하지만 공개된 시스템이라고 하더라도 카드번호, 은행 정보, 비밀번호같이 비공개로 교환하는 데이터가 많습니다. 그러면 어떻게 해야 정보를 안전하게 지킬 수 있을까요?

 

모든 종류의 데이터의 암호화는 스크램블링 또는 내용을 숨기기 위해 메시지를 변경하는 방법 등의 절차를 통해 비밀이 유지됩니다. 여기서 해독은 메시지를 읽을 수 있도록 언스크램블링하는 절차입니다. 인류는 수 세기도 동안 이렇게 해왔습니다. 최초의 암호화는 시저의 암호입니다. 시저는 군대의 명령을 암호화하여 중간에서 적이 가로채더라도 읽을 수 없게 만들었습니다. 시저의 암호는 메시지의 각 글자를 알파벳에 매칭되는 특정 숫자로 대체하는 알고리즘입니다. 만약 숫자를 보내는 사람과 받는 사람만 안다면, 이것을 키라고 부릅니다. 하지만 모든 키를 시도하는데 1~2시간이면 됩니다. 솔루션은 각 글자를 다른 숫자로 바꾸는 것입니다. 그러면 해독하는데 더 어려워집니다. 하지만 오늘날 컴퓨터라면 100억개의 비밀번호를 시도하는데 몇 초면 충분합니다.

 

나쁜 사람들이 암호를 풀 수 없게 만들려면 얼마나 어렵게 암호화해야 할까요?

오늘날 보안 통신은 256bit 키를 사용합니다. 나쁜 사람들의 컴퓨터가 메시지를 가로채면 키를 찾고 메시지를 해독할 때까지 엄청나게 많은 가능성을 시도해야 합니다. 100000대의 슈퍼컴퓨터가 있고 각 컴퓨터가 초당 몇천 조의 키를 시도할 수 있더라 하더라도 모든 옵션을 시도하여 256bit 키로 암호화된 메시지를 해독하는데 몇백억 년은 걸릴 것입니다.

 

보내는 사람과 받는 사람이 같은 키를 공유하여 메시지를 암호화하고 복호화하는 것을 대칭 암호화라고 합니다. 이는 미리 양쪽이 비밀리에 비밀 키에 동의해야 합니다. 그래서 사람끼리 대면하는 경우에는 좋지만, 인터넷은 공개되어있으므로 두 컴퓨터가 비밀리에 만날 수는 없습니다. 그래서 컴퓨터는 비대칭 암호화 즉, 누구와도 교환할 수 있는 공개 키와 공유되지 않는 비공개 키를 사용합니다. 공개 키는 데이터를 암호화하는 데 사용되고 누구라도 이것으로 비밀메시지를 만들 수 있습니다.

 

오늘날 SSL TLS 등 알려진 보안 프로토콜을 포함하여 이런 방식으로 웹을 이용하는 사용자를 보호합니다. 브라우저의 주소창에 조그만 자물쇠나 https라는 글자가 이를 나타냅니다. 이는 곧 컴퓨터가 공개 키 암호화로 교환되는 데이터를 보호함을 의미합니다.

 

사이버 보안과 범죄

오늘날 사이버 범죄는 개인적으로, 재정적으로, 심지어 국가 안보에 있어서 사회에 큰 문제를 일으킵니다. 바로 지난 몇 년 동안 수억 개의 신용카드 번호가 도용되었고 수천만 개의 사회 보장 번호와 의료 기록이 유출되었습니다. 이것은 모두 하드웨어와 소프트웨어의 취약성을 이용하거나 소프트웨어를 사용하는 사람들의 의도치 않은 결정을 이용하여 더 자주 행해집니다.

 

생물학에서 바이러스는 재채기, 신체접촉, 기침 등으로 퍼지는 유기체입니다. 바이러스는 세포들을 감염시키고 유전자 물질을 주입하고 복제하기 위해 그 세포들을 사용하고 다른 사람에게 전염시킬 수 있습니다. 컴퓨터 바이러스도 유사합니다. 컴퓨터 바이러스는 일반적으로 실수로 설치되어 사용자와 컴퓨터에 해를 끼치는 실행 프로그램입니다. 또한, 다른 컴퓨터로 퍼질 수 있습니다.

 

그럼 바이러스는 어떻게 컴퓨터에 침투할까요? 공격자가 다른 사람의 컴퓨터를 감염시킬 수 있는 몇 가지 방법이 있습니다. 공격자는 프로그램의 목적에 대해 속임수를 써서 프로그램을 설치하도록 피해자를 유인할 수 있습니다. 그래서 많은 바이러스가 보안 업데이트로 위장합니다. 컴퓨터의 소프트웨어에는 취약점이 있으므로 공격자는 명시적인 허가 없이도 스스로 설치할 수 있습니다. 일단 바이러스가 설치되면 파일을 훔치거나 삭제하고 다른 프로그램을 제어하거나 심지어 원격으로 제어하도록 허용할 수 있습니다.

 

컴퓨터 바이러스를 이용해 해커들은 전 세계에 걸쳐 수백만 대의 컴퓨터를 해킹하고 봇넷으로 알려진 디지털 군대로 사용하여 웹사이트를 공격해 무너뜨릴 수 있습니다. 이러한 종류의 공격을 DDoS(Distributed Denial Of Service)라고 합니다. 또 다른 공격 방법은 신뢰할 수 있는 이메일처럼 가장하여 보내 사용자가 이 이메일의 링크를 클릭하면 가짜 웹사이트로 이동하는 것입니다. 어찌 됐건 로그인을 하게 되면 개인 정보가 누출됩니다.

 

사용자가 컴퓨터 시스템이 해킹당했을 때 그 문제는 보안 설계나 소프트웨어 때문이라고 생각할 수 있습니다. 그러나 90%의 경우는 사람의 실수였습니다.