본문 바로가기
카테고리 없음

암호화의 과학-내 데이터는 어떻게 보호되는가

by windcore 2025. 5. 6.

인터넷을 사용할 때 우리가 주고받는 정보는 마치 편지를 봉투에 넣지 않고 공중에 띄워 보내는 것과 같습니다 

해커들은 이 틈을 노려 우리의 소중한 정보를 훔쳐가기도 합니다
그래서 정보를 안전하게 보호하는 기술은 인터넷 세상에서는 꼭 필요한 장치입니다
해커들은 여러 가지 방법으로 이 정보들을 탈취하려고 하는데 공공 와이파이를 이용해서 해킹하는 방법에 대해서는
이 전 글에서 알아보았습니다 
그러나 누군가가 정보를 중간에 가로챘더라도 데이터를 해독하지 못하면 우리의 정보는 안전하게  보호될 수 있습니다 

 이렇게 우리가 주고받는 정보를 다른 사람이 알아볼 수 없게 복잡한 방식으로 바꾸는 과정을 데이터 암호화라고 합니다  예를 들어 " 오늘 4시에 어디서 만나요"라는 메시지를 그냥 인터넷으로 보내면 중간에서 누군가가 가로채기만 해도 그 내용을 다 볼 수 있습니다
그러나 "ue9#2@&n3Ak%~!"과 같이 다른 사람이 볼 수 없는 문장으로 바꾸면 중간에서 누군가가 가로챘다 하더라도  그 내용을 알 수가 없습니다   이 글에서는 우리의 정보를 보호해 주는 데이터의 암호화에 대해서 알아보겠습니다

 

나의 스마트폰의 암호화 과정은 어떻게 작동될까

나의 데이터를 내가 직접 암호화한다면 우리는 아마 네트워크 통신을 사용할 수 없을 것입니다  그 암호문 만들고 해독하느라 엄청난 시간과 노력이 들어갈 테니까요
그러나 우리의 데이터를 암호화하는 것은 바로 크롬과 같은 브라우저와 안드로이드, ios와 같은 운영체제, 그리고 VPN 앱 등의 소프트웨어들입니다  이 소프트웨어들이 우리는 보지 못하지만 백그라운드에서 일하고 있기 때문에 우리의 정보가 보호되고 있는 것입니다 
 소프트웨어들이 데이터를 암호화하는 방법은 2가지가 있습니다 
대칭키 암호화와 비대칭키 암호화입니다 

 

 


 1 대칭키 암호화

대칭키 암호화는 보내는 사람과 받는 사람이 서로 같은 암호키를 공유해서 비밀문서를 주고받는 것을 말합니다
아주 쉬운 예로 친한 두 친구가 서로 편지함의 비밀번호를 공유하고 서로가 같은 편지함을 통해서 문서를 주고받는 것과 같습니다 

즉 데이터를 보내는 사람도 같은 암호키를 이용해서 글을 작성하고 받는 사람도 같은 암호키를 사용해서 원래의 메시지로 바꾸어 정보를 보는 것입니다 

그런데 이러한 방식은 만일 누군가가 이 비밀키를 탈취한다면 알지 못하는 제삼자도 이 데이터의 내용을 볼 수 있습니다 

 

 

2 비대칭키 암호화

이 방식은 서버가 공개키를 모두에게 개방하고 접속하고자 하는 사용자가 공개키를 가져와서 자신의 비밀키를 만들어서 다시 서버로 보내면 서버가 자신의 개인키로 그 암호화된 데이터를 풀어내어 비밀키를 알아내는 방법입니다 
아래의 예로 암호화하는 과정을 보겠습니다 
 
● 내가 https를 사용하여 스마트폰이 은행의 웹사이트에 접속(https://bank.com)하려고 합니다
이 문자의 내용은 "안녕하세요 https로 통신하고 싶어요"라는 의미입니다 
●그러면 은행의 서버는 자신의 인증서와 공개키를 보냅니다 
●내 브라우저는 인증서를 확인하고 보내준 공개키를 이용해서 무작위로 비밀 키(대칭키)를  만들어서(예: d3 s8+@20! q% z) 보냅니다
●은행의 서버는 스마트폰이 만든 비밀키를 자신의 개인키로 풀어내서 원래의 비밀키를 알아냅니다
●이후부터 스마트폰과 서버는 공통된 비밀 키를 공유함으로 안전하게 데이터를 주고받을 수 있게 되는 것입니다

 이 방식은 처리 속도가 느리고 복잡하지만 키를 서로 간에 전달할 필요가 없어서 안전합니다

 

 

현재 인터넷 통신은 정보를 주고받는 양 쪽이 똑같은 암호키를 공유하는 방식과 서로 다른 두 개의 키를 사용하는 방식을 모두 사용하는데 초기 연결 시에는 누구나 접근할 수 있는 암호코드를 공개해서 누구나 가져가서 데이터를 암호화할 수 있게 하고, 이를 통해 만들어진 개인용 비밀키로 이후에는 더 빠르고 효율적인 대칭키 방식의 통신을 진행하게 됩니다

이렇게 하는 이유는 초기에 두 개의 키를 사용하면은 시간은 걸리지만 비밀코드를 안전하게 전달할 수 있고 이후에 비밀코드를 서로 공유하고 난 다음에는 동일한 키를 사용하는 것이 빠르고 효율적이기 때문에 이 두 가지 방법을 모두 사용하는 것입니다

이러한 방식으로 암호화하는 방식을 ssl(Secure Socket Layer)이라고 부르며 이러한 방식은 HTTP의 핵심원리입니다

 

 

HTTPS란?

먼저 우리가 흔히 게 접하는 인터넷 주소인 HTTP에 대해서 알아보겠습니다 
HTTP는 Hyper Text Transfer Protocol의 약자인데 여기서 재미있고 의미가 있는 단어는 Hyper Text란 단어입니다 '초월적인 글자' 이 단어를 생각하면 HTTP의 의미를 잊어버리지 않을 것입니다 
우리가 이 문자들을 클릭하면 데이터를 보던 사용자가 한순간에 다른 문자로 이동한다는 뜻입니다 
그리고 이렇게 교환되는 방식의 규칙이 Transfer Protocol입니다 

그리고 이러한 방식의 규칙이 Transfer Protocol입니다

그러니까 HTTP란 인터넷에서 정보를 요청하는 쪽과 응답해 주는 쪽이 데이터를 주고받을 때의 규칙입니다 

그런데 이 HTTP는 정보의 내용을 암호화하지 않고 그대로 보내기 때문에 중간에 누군가가 데이터를 보려고 하면 쉽게 볼 수 있습니다

그래서 SSL/TLS이라는 보안 기술로 내용을 안전하게 감싼 것이 HTTPS입니다  
즉 HTTPS=HTTP+SSL
그러니까 우리가 https://의 시작되는 인터넷 주소에 접속한다는 것은 안전하게 처리된 데이터를 주고받는 사이트란 것을 말하는 것입니다 

HTTPS를 사용할 때 주는 이점은 해킹이나 도청에 안전하다는 것이고  또한 가짜 사이트인지 확인할 수 있으며 만일가짜 사이트일 경우에는 브라우저가 확인하고 경고 문구를 띄워줍니다 
그뿐 아니라 구글 검색 등에서도 https사이트를 우선적으로 노출시켜 줍니다 
 

인증서란

만약 내 스마트폰이 https://www.bank.com을 입력하면 은행의 서버는 인증서를 내 스마트폰에 보내줍니다 
그 인증서에는 도메인 이름과 통신할 때 사용할 공개키, 발급자, 유효기간, 전자서명이 들어있습니다 
그러면 내 스마트폰은 인증서를 보고 이 사이트는 믿을 수 있음을 판단합니다 그러나 만약 가짜 인증서라면 브라우저는
"이 웹 사이트는 안전하지 않습니다"라는 경고문을 띄워줍니다
그러니까 인증서란 웹사이트가 진짜인지를 증명해 주는 웹사이트의 신분증이라고 할 수 있습니다 

 

 

 

PKI (Public Key Infrastructure)

 

그런데 인터넷 주소가 믿을 수 있는 주소인지 알려면 인터넷 전체가 탄탄한 신뢰할 수 있는 구조로 연결, 연결되어있어야 하는데 이러한 구조를 PKI구조라고 합니다

PKI의 구조는 가장 상위에 신뢰도가 높은 기관이 있습니다  이곳에서 최고 권위의 인증서를 만듭니다 

그런데 가장 상위에 있는 기관이 모든 인증서를 다 발급하는 것은 아니고 상위기관을 대신해 인증서를 발급할 중간 기관을 두고 운영하는데 우리가 인터넷 주소에 접속할 때 사용하는 인증서도 이러한 중간 기관에서 발급한 것입니다

이렇게 인증서들은 피라미드 구조로 줄줄이 연결되어 있는데 이러한 탄탄한 구조 때문에 수많은 인터넷의 사이트들의 믿을 수 있는 구조가 만들어지는 것입니다 

 

VPN이란

VPN은 Virtual Private Network의 약자입니다  단어 그대로 해석하면 가상으로 연결된 외부에 공개되지 않고 개인이나 조직만이 사용하는 통신망이라고 할 수 있습니다 
인터넷은 모두가 다니는 공개된 도로와 같은데 VPN을 사용하면 아무도 못 보는 비밀터널을 만들어서 데이터를 주고받는 것과 같습니다 
예를 들어서 카페에서 와이파이를 사용해서 인터넷을 사용하고 있는데 만약 VPN 없이 로그인 정보 등 데이터를 보낸다면 해커가 옆 자리에서 패킷 스니퍼 프로그램을 켜두고 우리의 정보를 다 엿볼 수 있습니다 
그런데 VPN 앱을 사용한다면 VPN서버와 비밀 터널이 만들어져 우리가 로그인하고 검색하는 모든 데이터는 VPN 서버로 전송되고 그다음에 우리가 가고자 하는 사이트로 이동합니다 
 
그러나 VPN은 우리의 정보를 가려주기는 해도 사용자 스스로가 악성 사이트에 개인정보를 입력하면 그것은 막을 수 없습니다 

 

VPN의 한계와 주의할 점

 
모든 VPN이 다 안전한 것은 아닙니다(무료 VPN주의) 
때로 VPN회사가 데이터를 저장하는 경우가 있는데 이럴 경우 추적의 가능성이 있기 때문에 안전하지 않습니다 
 
그러면 VPN 회사가 데이터를 저장하는 이유는 사용자의 분석하여 서비스 품질 개선이 목적이라고 주장하는 회사도 있고 또 때로는 
중국, 러시아 등의 나라에서 "사용자의 로그를 저장하라"라고 법적으로 요구하기 때문에  만약 이 나라들에 서버를 두고 있다면 로그 저장을 할 수밖에 없기 때문이기도 합니다 
또한 무료 VPN은 사용자의 데이터를 팔기도 한다고 합니다 

 

믿을 수 있는 VPN을 고르는 방법

●사용자의 접속 기록, IP, 방문 사이트 등을 절대 저장하지 않는 회사
●본사의 위치가 정보를 공유하는 협정이 있는 나라는 위험합니다
●전 세계에 충분한 서버가 있는가
●악성코드 차단 기능이 있는가
●동시에 접속 가능한 기기 수 확인
 
●환불정책 확인(30일 무료체험이 있으면 직접 사용해 보고 결정)
●무료나 너무 저가인 VPN은 위험하고 오히려 유료이며 브랜드가 있는 VPN이 안전합니다
●다른 사용자의 리뷰나 커뮤니티의 평의 보고 결정합니다