공유기의 트래픽 페이지나 VPN 사업자의 대시보드를 열면 기기별 바이트 합계와 옆에 그래프가 있다. 그 그래프를 열람 기록으로 읽고 싶어진다. 그러나 그것은 기록이 아니며, 이유는 법적이 아니라 구조적이다. 카운터는 크기를 더하지만 기록은 목적지와 내용을 남기며, 어디로 갔는지 알려주는 것은 후자뿐이다.

지금 읽고 있는 화면에서 시작하라

숫자를 해석하기 전에 무엇이 그 숫자를 만들었는지 확인하라. 공유기의 기기별 합계는 보통 물리 인터페이스 카운터에서, VPN 클라이언트의 합계는 그 터널에서, 사업자 패널은 원격 측 회계에서 나온다. 각각 같은 세션의 다른 부분을 센다. 같은 한 시간에 서로 다른 숫자를 보여주는 두 패널은 대개 둘 다 맞다.

간격은 출처만큼 중요하다. 전체 기간 합계, 일별 집계, 실시간 속도는 서로 다른 세 가지 측정이며, 하나의 동작과 맞춰 볼 만한 해상도를 가진 것은 실시간 속도뿐이다.

결론을 적기 전에 출처와 간격을 적어 두라.

카운터는 계층을 재지 페이지를 재지 않는다

WireGuard 피어에서 wg show의 전송 카운터는 암호화된 페이로드를 포함한 그 피어의 합계다. OpenVPN의 상태 출력은 자기 계층에서 클라이언트별 바이트를 보고한다. 호스트에서는 tun 인터페이스가 안쪽 IP 패킷을 세고 물리 어댑터가 바깥쪽 UDP 패킷을 세므로, 둘은 캡슐화 오버헤드와 링크를 공유하는 다른 모든 것 때문에 달라진다.

재전송은 새 내용이 도착하지 않아도 합계를 부풀리며, 백그라운드 동기화가 한 시간을 차지하는 동안 사용자는 평범한 글을 읽고 있을 수 있다.

그래서 큰 합계는 데이터를 많이 쓰는 활동을 시사할 뿐 그보다 구체적인 것은 아니다. 내려받은 파일의 크기와 카운터의 차이는 관련이 있지만 거의 같지 않다.

합계가 뒷받침할 수 있는 것과 없는 것

바이트 합계는 사이트 이름을 말할 수 없다. 이름과 URL은 카운터가 결코 들여다보지 않는 TLS나 QUIC 세션 안에 있기 때문이다. 영상 스트림과 큰 백업을, 페이지 로딩과 광고 갱신 루프를 구분하지도 못한다. 그것이 뒷받침할 수 있는 것은 용량과 시간에 관한 주장이다. 이 기기가 이 구간에서 이만큼의 데이터를 옮겼다는 것이다.

그것을 사람에 관한 주장으로 바꾸려면 두 재료가 더 필요하다. 신원과 상관관계다.

RFC 6973 프라이버시 고려사항 문서는 그 조합이 왜 중요한지, 그리고 신중한 보고서가 관찰한 것과 추론한 것을 왜 나누는지 설명한다. 결론에 «왜냐하면»이라는 말이 필요하다면 카운터만으로는 충분한 증거가 아니다.

시각과 신원이 답을 바꾼다

카운터를 이름이 있는 사용자와 정확한 간격에 붙이면 그것은 다른 대상이 된다.

그러면 다른 관측과 나란히 놓을 수 있다. 로그인 기록, DNS 질의, 다른 시스템의 세션 같은 것이다. 카운터는 목적지를 드러내지 않았지만 이미 가설을 가진 사람이 그것을 확인하도록 도왔다. 암호화는 전송 중인 내용과 이름을 보호하며, 흐름이 있었다는 사실, 그 크기, 시작 시각을 숨기지는 않는다.

이것이 정직한 경계다. 패턴은 보이지만 의미는 보이지 않는다.

수집하기 전에 무엇을 보관할지 정하라

요구가 용량 계획이라면 거친 일별 집계로 충분하고 비용도 적다. 요구가 사용자별 기록이라면 그것을 분명히 말하고, 항목과 보관 기간을 명시하며, 그 결정을 대시보드 기능이 아니라 정책으로 다루라. 패널이 지원한다는 이유로 세밀한 기록을 모으는 것이 아무도 결정하지 않은 채 보관이 늘어나는 경로다.

문제 해결에는 카운터를 시험 중인 동작과 비교하라. 꾸준히 늘어나는 합계는 트래픽이 흐른다는 것을 증명할 뿐, 앱이 동작한다는 것을 증명하지 않는다.

분명히 동작하는 세션에서 평평한 카운터는 대개 캐시된 값이나 잘못된 인터페이스를 읽고 있다는 뜻이다. 보관하는 항목과 기간을 명시하면 다음 감사에서 구체적으로 확인할 것이 생긴다.

관련 글