TechTok #7. 개인정보 및 보안의 깊은 물에 뛰어들기
이번 호의 정기 TechTok 칼럼에서는 양자 저항형 프로토콜과 관련된 배터리 사용량에 대한 질문을 살펴보고, DoH와 DoQ의 차이를 설명하며, 디지털 인증서가 무엇인지, 그리고 AdGuard와 어떻게 상호작용하는지 탐구합니다.
Big Mekk의 질문:
뉴스레터에서 AdGuard가 VPN에서 Kyber/양자 컴퓨팅 저항 프로토콜을 지원한다고 언급하셨는데요. 이 기능을 활성화하면 배터리 사용량이 더 증가하나요? 주로 모바일 기기에서의 처리 과정 등을 예를 드는 것입니다 .
아직 소식을 듣지 못하신 분들을 위해 알려드립니다. AdGuard VPN은 데스크톱 및 모바일 앱 모두에서 포스트 퀀텀 컴퓨터의 위협으로부터 보호하기 위해 설계된 알고리즘인 Kyber를 지원하기 시작했습니다. 이제 여러분의 질문에 답하기 위해, 이 알고리즘이 어떻게 구현되고 있는지 자세히 살펴보겠습니다. 모바일과 데스크톱 모두에서 우리는 클래식 X25519 타원 곡선 알고리즘과 Kyber768 기반 ML-KEM768을 결합한 하이브리드 접근 방식을 사용합니다.
모바일 기기와 AdGuard VPN 간 연결이 설정될 때 이 두 알고리즘이 병렬로 사용됩니다. 귀하의 기기는 X25519용과 Kyber768용 두 개의 공개 키를 전송하며, 서버도 동일한 방식으로 응답합니다. 각 측은 두 알고리즘에서 공유 비밀을 도출한 후 이를 안전하게 결합해 VPN 세션을 보호하는 단일 암호화 키를 생성합니다. 이는 이중 교환 과정이며, 전통적인 핸드셰이크보다 더 많은 데이터를 요구합니다. 일반적인 핸드셰이크는 각 방향당 약 32바이트가 필요하지만, 하이브리드 핸드셰이크는 약 1.2KB가 필요합니다.
배터리 사용량에 미치는 영향은 추가 계산으로 인해 기기의 CPU에 약간 더 많은 부하가 발생합니다. 오래된 또는 느린 기기를 사용할 경우 Kyber 알고리즘을 활성화한 상태에서 연결을 설정하는 데 평소보다 최대 0.1초 더 오래 걸릴 수 있습니다. 이것은 배터리 사용량이 약간 증가할 수 있지만, 이는 초기 연결 단계에서만 발생합니다. 이 영향은 거의 느껴지지 않을 정도로 미미하며, 특히 화면을 켜거나 앱을 열기와 같은 일상적인 작업과 비교할 때 더욱 그렇습니다. VPN 연결이 설정되면 세션은 전통적인 대칭 암호화를 사용하므로 배터리 사용량은 이전과 정확히 동일합니다.
이렇게 설명드리겠습니다: 세션 중 VPN 연결이 여러 번 끊어지고 매번 재연결해야 하는 경우가 아니라면, Kyber 알고리즘을 활성화해도 배터리 사용량에 의미 있는 영향을 미치지 않습니다.
DOH와 DOQ 중 어떤 DNS 프로토콜이 더 개인정보 보호에 우수할까요?
Álvaro의 어려운 질문입니다. 질문해 주셔서 감사합니다! 더 나아가기 전에, DoH(DNS over HTTPS)와 DoQ(DNS over QUIC)가 무엇을 의미하는지, 그리고 정확히 어떻게 데이터를 전송하는지 이해해야 합니다. 왜냐하면 두 프로토콜 모두 이 작업을 수행하기 때문입니다. 이를 위해 DNS(도메인 이름 시스템)가 어떻게 작동하는지 간단히 살펴보겠습니다.
브라우저가 웹사이트에 접속하려면 해당 사이트의 IP 주소를 알아야 합니다. 이때 DNS 서버가 작동하여, 주소창에 입력한 사람이 읽을 수 있는 도메인 이름을 컴퓨터가 웹사이트를 찾기 위해 사용하는 숫자 IP 주소로 변환합니다.
원래 오래 전에는 이 프로세스가 암호화되지 않은 일반 텍스트로만 진행되었습니다. 즉, 방문한 웹사이트를 포함한 DNS 쿼리가 ISP에 노출되어 있었다는 것이었습니다. 또한 DNS 트래픽이 도청, 변조 또는 스푸핑에 취약한 상태가 되었습니다. 이것이 암호화 프로토콜인 DoT(DNS over TLS)와 이후 DoH(DNS over HTTPS)가 등장하기 전의 DNS 상태였습니다. DoT는 DNS 트래픽을 보호하기 위한 첫 번째 주요 단계였습니다. 이는 DNS 트래픽을 TLS(Transport Layer Security) 프로토콜로 감싸는 방식으로 작동하며, 암호화된 DNS 트래픽 전용으로 지정된 포트(포트 853)를 사용합니다. 전용 포트를 사용한다는 점은 네트워크 관리자의 작업을 단순화하지만, 동시에 DoT 트래픽을 탐지하거나 방화벽 또는 검열 시스템에 의해 차단되기 쉬워집니다.
DoT와 달리, DNS over HTTPS(DoH)는 HTTPS를 통해 쿼리를 전송하며, 보안 웹사이트를 방문할 때 사용되는 포트 443의 일반 웹 트래픽과 혼합됩니다. 이는 양날의 칼과 같은 기능입니다. 한편으로는 DoH 트래픽을 감지하거나 차단하기 어렵게 만들어 개인 정보 보호를 강화합니다. 반면에 DoH는 방문하는 웹사이트와 동일한 HTTPS 연결을 공유하는 경우가 많기 때문에(특히 브라우저에서) 어떤 DNS 쿼리가 어떤 웹사이트 또는 세션에 연결되어 있는지 등 의도하지 않은 패턴이 노출될 수 있습니다. 본질적으로 HTTP와 그 확장인 HTTPS는 전송 계층 프로토콜이 아닙니다. 이 점을 나중에 기억해 두세요.
그렇다면 DoH는 데이터를 어떻게 전송할까요? DoH는 HTTP/2 또는 HTTP/3를 애플리케이션 계층(정보 교환을 위한 표준과 절차를 정의하는 네트워크의 부분)에서 사용하며, TCP(HTTP/2의 경우)나 QUIC(HTTP/3의 경우)와 같은 암호화된 전송 프로토콜을 통해 실행됩니다. HTTP/2를 사용할 때, 멀티플렉싱이라는 기능 덕분에 단일 연결을 통해 여러 DNS 쿼리를 동시에 전송할 수 있습니다. 이 기능은 여러 요청과 응답이 서로 완료될 때까지 기다리지 않고 동일한 연결을 공유할 수 있도록 합니다. 그러나 HTTP/2는 단일 TCP 연결을 통해 실행되기 때문에 모든 데이터 패킷이 동일한 전송 계층을 공유합니다. 이로 인해 '헤드오브라인 차단'이라는 문제가 발생합니다. 전송 중 단 한 개의 패킷이 손실되거나 지연되면, 해당 패킷이 속한 쿼리와 무관하게 모든 후속 패킷들은 해당 패킷이 먼저 재전송되고 수신될 때까지 기다려야 합니다. 이로 인해 다른 데이터가 전송 준비가 되어 있더라도 전체 응답 스트림이 지연됩니다. 이 문제는 DoH에만 국한되지 않으며, TCP를 통해 실행되는 모든 프로토콜에 적용됩니다.
DoQ를 사용하면 각 DNS 쿼리/응답이 자체 스트림에 격리되어 위에서 설명한 헤드 오브 라인 차단 문제를 제거합니다.
DNS 쿼리가 단일 공유 스트림을 통해 전송될 때 (HTTP/2와 함께 사용되는 DoH의 경우처럼) 그 타이밍이 연결됩니다. 한 쿼리가 지연되면 다른 쿼리의 타이밍에도 영향을 미쳐 트래픽에 가시적인 패턴이 생성될 수 있습니다. 콘텐츠가 암호화되어 있더라도 네트워크 관리자, 인터넷 서비스 제공업체(ISP), 검열 기관과 같은 관찰자는 이러한 패턴을 분석하여 방문한 사이트, 방문 시간, 방문 빈도를 추측할 수 있습니다.
DoQ는 DoH에 비해 개인정보 보호 측면에서 또 다른 장점을 가지고 있습니다. DoQ는 UDP를 기반으로 구축되었으며 QUIC 프로토콜을 사용합니다. DoH는 DNS 쿼리를 일반 웹 트래픽과 혼합하지만, DoQ는 DNS 트래픽을 분리합니다. 이는 DoT와 유사하지만 헤드오브라인 차단 문제를 해결했습니다. 이 분리는 다른 HTTPS 콘텐츠와의 혼합을 방지하여 외부 관찰자가 DNS 활동을 특정 브라우징 행동과 연결하기 어렵게 만듭니다. 그럼에도 불구하고 이 트래픽은 다른 웹 트래픽과 구분하기 쉽습니다.
그러나 HTTP 프로토콜의 최신 버전인 HTTP/3는 어떨까요? HTTP/3는 전송 계층으로 QUIC를 사용하는 프로토콜입니다. 실제로 Chrome, Firefox, Safari를 포함한 주요 브라우저의 95% 이상이 현재 HTTP/3를 지원합니다. 하지만 중요한 점은 이렇습니다. HTTP/3는 내부적으로 QUIC를 사용하지만, HTTP 자체는 전송 프로토콜이 아닙니다. HTTP는 적절한 전송 프로토콜을 대체할 수 있지만, 이로 인해 불필요한 위험이 많이 발생할 수 있습니다. 특히 개인정보 보호 영역에서 HTTP 기반 트래픽을 사용하면 쿠키, 인증 헤더, 사용자 에이전트 문자열 및 기타 메타데이터가 포함되는 경우가 많습니다. 이러한 정보는 사용자 추적, 지문 인식, 심지어 프로파일링에 사용될 수 있으며, DNS 트래픽과 같은 민감한 정보와 함께 혼합되어서는 안 되는 정보입니다.
결론적으로, DoH는 일반 웹 트래픽과 혼합되어 탐지나 차단이 어려워 강력한 프라이버시를 제공하지만, DoQ는 헤드오브라인 차단을 피하고 DNS 트래픽을 다른 웹 활동과 분리하며 식별 정보 유출 가능성을 줄입니다. 프라이버시 측면에서 DoQ가 더 나은 선택입니다.
이제 익명의 사용자가 제기한 마지막 질문으로 넘어가 보겠습니다.
공개 키 인증서는 현대의 네트워크에서 필수적인 요소가 되었습니다. AdGuard는 사용자의 로컬 기기에 인증서를 배포하는데, 이 인증서는 데이터를 어떻게 보호합니까? 이 인증서를 설치하는 것이 좋은 점보다 나쁜 점이 더 많습니까, 아니면 그 반대입니까?
더 나아가 주제를 더 깊이 파고들기 전에, 디지털 인증서가 무엇인지 먼저 정의할 필요가 있습니다. 디지털 인증서를 가장 간단하게 생각할 수 있는 방법은 모든 웹사이트, 웹 서비스 및 API가 자신이 실제로 보이는 그대로임을 증명하기 위해 제시해야 하는 ID라고 상상하는 것입니다. 일반적으로 ‘온라인에 노출된’ 모든 것, 즉 인터넷을 통해 액세스할 수 있고 사용자 또는 다른 시스템과 원격으로 상호 작용하는 모든 것은 그 진위를 증명하기 위해 인증서가 필요합니다. 예, 트래픽이 HTTPS로 암호화되어 전송 중에 안전할 수는 있지만, 디지털 인증서가 없으면 연결된 웹사이트가 진짜인지, 아니면 누군가가 귀하의 정보를 도용하기 위해 그 사이트를 가장한 것인지 알 수 없습니다.
그러나 사기꾼이 민감한 데이터를 훔치기 위해 웹사이트를 만들 정도라면, 인증서도 위조할 수 있지 않을까요? 다행히도, 그렇게 하는 것은 쉽지 않습니다. 브라우저가 웹사이트에 연결할 때마다, 인증서와 중간인증서를 함께 보내며, 이는 브라우저가 이미 신뢰하는 루트 인증기관 (CA, Certificate Authority) 체인을 형성합니다. 브라우저는 공개 키 암호화를 사용하여 체인 내 각 인증서의 디지털 서명을 검증하며, 모든 것이 정상이라면 연결을 허용합니다. 이 방식으로 CA를 해킹하거나 위장하지 않고 인증서를 위조하는 것은 사실상 불가능합니다. 이는 불가능하지는 않지만 매우 드뭅니다 . CA가 손상된 마지막 주요 사건은 2017년에 발생했습니다. 브라우저와 운영 체제에는 이미 신뢰할 수 있는 루트 CA 인증서 목록이 포함되어 있으며, 공급업체는 신뢰할 수 있는 CA 목록을 정기적으로 업데이트하여 손상되거나 신뢰할 수 없는 CA를 제거하고 새로운 CA를 추가합니다. 사용자는 신뢰할 수 있는 CA 목록에 수동으로 추가할 수도 있지만, 이 경우 당연히 각별한 주의를 기울여야 합니다.
이제 AdGuard가 이 과정에 어떻게 관여하는지 살펴보겠습니다. Windows, Mac 또는 Android에 AdGuard 애플리케이션을 설치한 경우(브라우저 확장 프로그램과 iOS 앱은 다르게 작동합니다), 브라우저가 웹 서버에 연결하려고 합니다. AdGuard는 브라우저와 서버 “사이에” 위치하여 브라우저의 트래픽이 먼저 AdGuard를 통과하도록 합니다. 그러나 브라우저가 웹사이트에 직접 연결할 때 서버를 신뢰해야 하는 것과 마찬가지로, 이 경우 브라우저는 AdGuard를 신뢰해야 합니다. 그렇지 않으면 AdGuard가 HTTPS 트래픽을 해독할 방법이 없습니다. 그리고 이미 알고 있듯이, 이를 위해서는 신뢰할 수 있는 인증서가 필요합니다. 이것이 AdGuard가 특수한 루트 인증서를 생성하여 시스템에 설치하는 이유입니다.
앞서 사용자 지정 인증서를 함부로 추가해서는 안 된다고 언급한 바 있습니다. 신중해야 하는 이유는 명확합니다. 신뢰해서는 안 되는 사람을 신뢰하면 심각한 결과가 초래될 수 있습니다. 하지만 저희는 보안 문제를 매우 심각하게 여기고 있습니다. 공개 키 암호화에서 개인 키를 안전하게 보관하는 것은 극히 중요합니다. AdGuard는 개인 키를 사용자의 기기에서 현지에서 생성합니다. 이 키는 암호화되어 현지에서 저장되며, 누구와도 공유되지 않고, 심지어 저희도 알 수 없습니다.
물론, AdGuard를 통해 전송되는 모든 트래픽은 안전합니다. HTTPS 트래픽을 해독하고 해당 트래픽에서 발견된 모든 광고와 트래커를 차단한 후, 모든 데이터를 다시 암호화합니다. AdGuard는 웹 서버의 인증서를 확인하여 그 진위성을 검증합니다. 이는 귀하의 브라우저가 수행하는 방식과 동일합니다. 추가 보안 조치를 취했으며, 자세한 내용은 지식 창고 기사에서 확인할 수 있습니다.
결국, AdGuard는 연결의 보안을 직접적으로 강화하지는 않지만, 추가적인 위험을 도입하지도 않습니다. 기기에 AdGuard 앱을 설치하면 트래픽이 광고와 추적기로부터 자유로울 뿐만 아니라 안전하게 유지될 수 있습니다.