어니언 라우팅

섬네일|upright=1.35|이 예시 양파에서 데이터 소스는 라우터 A에 양파를 보내고, 라우터 A는 암호화 레이어를 제거하여 다음으로 어디로 보낼지와 어디에서 왔는지만 알 수 있다(그러나 보낸 사람이 원본인지 아니면 단지 다른 노드인지는 알지 못한다). 라우터 A는 라우터 B에 보내고, 라우터 B는 다른 레이어를 해독하여 다음 목적지를 파악한다. 라우터 B는 라우터 C에 보내고, 라우터 C는 마지막 암호화 레이어를 제거하고 원본 메시지를 목적지에 전송한다.
**어니언 라우팅**(onion routing) 또는 **양파 라우팅**은 컴퓨터 망을 통해 익명 통신을 위한 기술이다. **양파 네트워크**에서는 메시지가 양파의 껍질처럼 여러 겹의 암호화로 캡슐화된다. 암호화된 데이터는 "**양파 라우터**"라고 불리는 일련의 네트워크 노드를 통해 전송되며, 각 노드는 하나의 층을 "벗겨내어" 데이터의 다음 목적지를 드러낸다. 마지막 층이 해독되면 메시지는 목적지에 도달한다. 각 중간 노드는 바로 이전 및 다음 노드의 위치만 알기 때문에 발신자는 익명으로 유지된다. 어니언 라우팅은 높은 수준의 보안과 익명성을 제공하지만, 타이밍 분석과 같은 기술의 익명성을 깨는 방법도 존재한다.

## 역사
어니언 라우팅은 1990년대 중반 미국 해군연구소에서 [폴 시버스], 마이클 G. 리드, 데이비드 골드슐라그](https://ko.wikipedia.org/wiki/%ED%8F%B4_%EC%8B%9C%EB%B2%84%EC%8A%A4%5D%2C_%EB%A7%88%EC%9D%B4%ED%81%B4_G._%EB%A6%AC%EB%93%9C%2C_%EB%8D%B0%EC%9D%B4%EB%B9%84%EB%93%9C_%EA%B3%A8%EB%93%9C%EC%8A%90%EB%9D%BC%EA%B7%B8) 등의 연구원들이 개발하여 미국의 정보 통신을 온라인으로 보호하기 위해 사용되었다. 이후 방위고등연구계획국(DARPA)에 의해 개선되었고 1998년 해군에 의해 특허를 받았다.

이 방법은 같은 해 IEEE Journal on Selected Areas in Communications에 논문을 발표하며 같은 연구원들에 의해 공개되었다. 이 논문은 사용자를 네트워크와 도청 및 트래픽 분석 공격을 수행하는 외부 관찰자로부터 보호하기 위한 이 방법의 사용을 설명했다. 이 연구의 가장 중요한 부분은 가상사설망, 웹 브라우징, 전자우편, 원격 로그인 및 전자 화폐와 같은 기존 전자 서비스에 대한 어니언 라우팅의 구성 및 적용이다.

기존 어니언 라우팅 기술을 기반으로 컴퓨터 과학자 로저 딩글딘과 닉 매튜슨은 2002년 폴 시버스와 합류하여 어니언 라우팅의 가장 크고 잘 알려진 구현인 당시 토르 프로젝트라고 불렸던 토르 프로젝트를 개발했다.

해군연구소가 토르의 코드를 자유 라이선스로 공개한 후, 딩글딘, 매튜슨 및 다섯 명은 2006년 전자 프런티어 재단과 기타 여러 조직의 재정 후원을 받아 비영리 단체인 토르 프로젝트를 설립했다.

## 데이터

[섬네일|alt=전화기로 표현된 클라이언트가 4개의 중첩된 선을 가진 "가드"라고 표시된 양파로 트래픽을 보내고, 그 다음 3개의 중첩된 선을 가진 "중간" 양파로 이동한 다음, 2개의 중첩된 선을 가진 "종료" 양파로 이동하여 최종적으로 1개의 선을 가진 서버로 이동하는 다이어그램.|[토르 (네트워크)|토르의 가드, 중간, 종료 릴레이 용어를 사용한 어니언 라우팅 연결 다이어그램]]

비유적으로 양파는 메시지를 여러 겹의 암호화로 "포장"하여 목적지에 도착하기 전에 해당 겹의 수만큼 중간 컴퓨터에 의해 해독("껍질 벗기기" 또는 "포장 풀기")되도록 형성된 데이터 구조이다. 원본 메시지는 한 노드에서 다음 노드로 전송되는 동안 숨겨져 있으며, 어떤 중간 노드도 데이터의 출처와 최종 목적지를 모두 알지 못하므로 발신자는 익명으로 유지될 수 있다.

### 양파 생성 및 전송

양파를 생성하고 전송하기 위해 발신자는 "디렉토리 노드"에서 제공하는 목록에서 일련의 노드를 선택한다. 선택된 노드는 메시지가 전송될 "체인" 또는 "회로"라고 불리는 경로로 배열된다. 발신자의 익명성을 유지하기 위해 회로의 어떤 노드도 그 앞의 노드가 발신자인지 또는 자신과 같은 다른 중간 노드인지를 알 수 없다. 마찬가지로, 회로의 어떤 노드도 회로에 다른 노드가 몇 개 있는지 알 수 없으며, "종료 노드"인 마지막 노드만이 체인 내 자신의 위치를 결정할 수 있다.
alt=캐나다의 양파 노드 사진. |섬네일|사용 중인 양파 노드.
비대칭 키 암호화를 사용하여 발신자는 디렉토리 노드에서 공개 키를 얻어 첫 번째 ("진입") 노드에 암호화된 메시지를 보내 연결과 공유 비밀 ("세션 키")을 설정한다. 진입 노드에 설정된 암호화된 링크를 사용하여 발신자는 첫 번째 노드를 통해 체인의 두 번째 노드에 메시지를 릴레이할 수 있으며, 이 메시지는 두 번째 노드만 해독할 수 있고 첫 번째 노드는 해독할 수 없다. 두 번째 노드가 메시지를 받으면 첫 번째 노드와 연결을 설정한다. 이는 발신자로부터 암호화된 링크를 확장하지만, 두 번째 노드는 첫 번째 노드가 발신자인지 아니면 단지 회로의 다른 노드인지를 결정할 수 없다. 발신자는 첫 번째 및 두 번째 노드를 통해 세 번째 노드에 메시지를 보낼 수 있으며, 이 메시지는 세 번째 노드만 해독할 수 있도록 암호화되어 있다. 세 번째 노드도 두 번째 노드와 마찬가지로 발신자와 연결되지만 두 번째 노드와만 연결된다. 이 과정은 더 큰 체인을 구축하기 위해 반복될 수 있지만, 성능을 유지하기 위해 일반적으로 제한된다.

체인이 완성되면 발신자는 인터넷을 통해 익명으로 데이터를 보낼 수 있다. 데이터의 최종 수신자가 데이터를 다시 보낼 때, 중간 노드는 발신자로의 동일한 링크를 유지하며 데이터는 다시 계층화되지만, 이번에는 마지막 노드가 첫 번째 암호화 계층을 추가하고 첫 번째 노드가 마지막 암호화 계층을 추가한 후 예를 들어 웹 페이지와 같은 데이터를 발신자에게 보내며, 발신자는 모든 계층을 해독할 수 있다.

## 취약점

### 타이밍 분석

일반적인 인터넷 연결이 익명으로 간주되지 않는 이유 중 하나는 인터넷 서비스 제공자가 컴퓨터 간의 연결을 추적하고 기록할 수 있기 때문이다. 예를 들어, 어떤 사람이 특정 웹사이트에 접속할 때 데이터 자체는 HTTPS와 같은 연결을 통해 보안될 수 있어 사용자의 비밀번호, 전자우편 또는 기타 내용이 외부 당사자에게 보이지 않을 수 있지만, 연결 자체, 발생 시간 및 전송된 데이터 양에 대한 기록은 여전히 존재한다. 어니언 라우팅은 두 컴퓨터 사이에 경로를 생성하고 숨겨서 사람과 웹사이트 사이에 직접적인 식별 가능한 연결이 없도록 하지만, 컴퓨터 간의 연결 기록은 여전히 존재한다. 트래픽 분석은 잠재적인 발신자가 만든 연결 기록을 검색하여 타이밍 및 데이터 전송을 잠재적인 수신자에게 만들어진 연결과 일치시키려고 시도한다. 공격자가 경로의 양쪽 끝을 손상시켰다면, 발신자가 특정 목적지로 동일한 크기의 데이터를 전송한 다른 알려지지 않은 컴퓨터 이전에 지정된 시간만큼 알려지지 않은 컴퓨터에 데이터를 전송한 것으로 보일 수 있다. 트래픽 분석을 촉진할 수 있는 요인으로는 노드 고장 또는 네트워크 이탈, 그리고 체인이 주기적으로 재구축될 때 손상된 노드가 세션을 추적하는 것 등이 있다.

갈릭 라우팅은 여러 메시지를 함께 암호화하는 I2P 네트워크와 관련된 어니언 라우팅의 변형으로, 데이터 전송 속도를 높이고 공격자가 트래픽 분석을 수행하는 것을 더 어렵게 만든다.

### 종료 노드 취약점
전송되는 메시지는 여러 겹의 암호화 내에 전송되지만, 체인의 마지막 노드로서 종료 노드의 임무는 마지막 겹을 해독하여 메시지를 수신자에게 전달하는 것이다. 따라서 손상된 종료 노드는 전송되는 원본 데이터를 획득할 수 있으며, 여기에는 비밀번호, 비공개 메시지, 은행 계좌 번호 및 기타 개인 정보가 포함될 수 있다. 스웨덴 연구원 댄 에게르스타드는 이러한 공격을 사용하여 외국 대사관과 관련된 100개 이상의 이메일 계정 비밀번호를 수집했다.

종료 노드 취약점은 보안되지 않은 무선 네트워크의 취약점과 유사하다. 무선 네트워크에서 사용자가 전송하는 데이터는 다른 사용자나 라우터 운영자에 의해 가로채질 수 있다. 두 가지 문제 모두 SSL/TLS 또는 보안 HTTP(S-HTTP)와 같은 안전한 종단 간 연결을 사용하여 해결된다. 발신자와 수신자 사이에 단대단 암호화가 있고, 발신자가 종료 노드가 제공하는 위조 SSL 인증서를 신뢰하도록 유인되지 않는다면, 마지막 중간자조차도 원본 메시지를 볼 수 없다.

## 같이 보기

* 익명 이메일 재전송자
* 비트블라인더
* 촘 믹스
* 암호학
* 익명성 정도
* 디피-헬먼 키 교환
* 자바 어논 프록시
* 키 기반 라우팅
* 마트료시카
* 믹스 네트워크
* 믹스마스터 익명 이메일 재전송자
* 공개 키 암호 방식
* 프록시 서버
* 톡스 – 어니언 라우팅 구현
* 트라이블러 – 어니언 라우팅 구현

## 각주

## 외부 링크
* Onion-Router.net – 이전에 미국 해군연구소의 고신뢰 컴퓨터 시스템 센터에서 호스팅했던 사이트
* 

분류:암호 프로토콜
분류:라우팅
분류:익명 네트워크
분류:네트워크 아키텍처