비트토렌트 프로토콜 암호화
BitTorrent protocol encryption프로토콜 암호화(PE), 메시지 스트림 암호화(MSE) 또는 프로토콜 헤더 암호화(PE)[a]는 비트토렌트 클라이언트를 포함한 일부 피어투피어 파일 공유 클라이언트의 관련 기능이다. 그들은 사생활과 기밀성을 강화하려고 노력한다. 또한, 인터넷 서비스 제공업체(ISP)를 포함한 제3자에 의한 트래픽 식별을 어렵게 하려고 한다. 그러나, 암호화는 DMCA 통지로부터 하나를 보호하지 못할 것이다. 하나는 여전히 자료를 업로드하고 있고 감시 회사들은 단지 그 무리들과 연결될 수 있기 때문이다.
MSE/PE는 비트코메트, 비트토레나도, 딜루지, 플래시겟, KTorrent, libTorrent, 메인라인, μTorrent, qBittorrent, rTorrent, Tixati, Vuze에서 구현된다. PHE는 BitComet의 이전 버전에서 구현되었다. 유사한 프로토콜 난독화가 eMule을 포함한 일부 다른 (비 BitTorrent) 시스템의 최신 버전에서 지원된다.[1]
목적
2005년 1월 현재 비트토렌트 트래픽은 2009년 현재 20% 미만으로 떨어졌지만 전체 주거용 인터넷 트래픽의 3분의 1 이상을 차지하고 있다.[2] 일부 ISP는 용량을 증가시킴으로써 이러한 트래픽을 처리하는 반면, 다른 ISP는 비용 절감을 위해 P2P 트래픽을 느리게 하기 위해 특수 시스템을 사용한다. 난독화와 암호화는 교통을 탐지하기 어렵게 하고 따라서 조절하기 어렵게 만든다. 이러한 시스템은 처음에는 익명성이나 기밀성을 제공하도록 설계되었지만, 인터넷 서비스 제공업체들이 비트토렌트 사용자들을 통제할 수 있는 권한을 부여받았고 심지어 불법 파일 공유의 죄가 있다고 생각되는 사람들을 금지할 수 있는 권한을 부여받은 국가들에서는 요구되었다.
역사
얼리 어프로치
프로토콜 헤더 암호화(PE)는 RnySmile에 의해 고안되었으며 2005년 9월 8일 비트코메트 버전 0.60에서 처음 구현되었다. IPP2P와 같은 일부 소프트웨어는 비트코메트 트래픽이 PHE로도 감지 가능하다고 주장한다.[3] PHE는 스트림의 일부만 암호화되어 있기 때문에 검출이 가능하다. 이 프로토콜 구현에 대한 개방형 규격이 없기 때문에 다른 클라이언트에서 그것을 지원할 수 있는 유일한 가능성은 역 엔지니어링을 통해서였을 것이다.
MSE/PE 개발
2006년 1월 말, Vuze (당시 아즈레우스라고 알려진)의 개발자들은 MSE라고 불리는 새로운 개방형 프로토콜 난독화 방법을 설계하고 동시에 실행하기로 결정했다. 2006년 1월 19일 Azureus CVS 스냅샷 2307-B29에 포함되었다.[4]
이 초안은 몇 가지 주요 특징이 부족했기 때문에 많은 비판을 받았다. 서로 다른 비트토렌트 개발자들 간의 협상 후 새로운 제안서가 작성되어 수일 내에 아즈레우스와 μ토렌트 베타스에 구현되었다. μTorrent에서, 새로운 프로토콜은 프로토콜 암호화(PE)라고 불렸다.
비트토렌트 클라이언트 버전의 MSE/PE
- aria2는 빌드 v1.34[5] 기준으로 MSE/PE를 지원하지만 기본적으로 강제되지는 않는다.
- 비트코메트 버전 0.63은 2006년 3월 7일에 출시되었다. 구 프로토콜 헤더 암호화를 없애고 새로운 MSE/PE를 구현해 아즈레우스 및 μTorrent와 호환되도록 했다.[6]
- BitTreenado는 빌드 T-0.3.18 기준 MSE/PE를 지원한다. 2007년 1월 5일 현재 이 빌드는 다운로드 페이지에 여전히 "실험적"으로 표시되어 있다.[7]
- 비트토렌트(Mainline)는 2006년 5월 2일 버전 4.9.2-베타 이후 MSE/PE를 지원한다.[8]
- Delouge-0.5.1을 기준으로 MSE/PE를 지원한다.[9]
- KTorrent는 2006년 4월 29일 SVN 버전 535386에서[10] MSE/PE를 구현하였다.[11]
- libtorrent는[12] 2011년 12월 10일에 발표된 v0.13에서[13] 프로토콜 암호화를 구현했다.[14]
- rTorrent-0.7.0 기준 MSE/PE를 지원한다.[15]
- 변속기는 변속기-0.90을 기준으로 MSE/PE를 지원한다.[16]
- Vuze(구 Azureus)는 2006년 1월 25일(CVS 스냅샷 2307-B33) 이후 최종 스펙을 지원한다.[17] Azureus 버전 2.4.0.0은 2006년 2월 10일 발매되었으며, MSE/PE를 지원하는 최초의 안정적인 클라이언트 버전이었다. 그러나 아즈레우스의 구현에 결함은 해시 검사에 실패한 부적절하게 암호화된 조각들을 초래했다. 글리치는 버전 2.4.0.2로 수정되었다.[18]
- μTorrent는 Azureus가 베타 1.4.1 빌드 407을 기록한 지 4일 만에 MSE/PE를 초연했다.[19] μTorrent 버전 1.5(빌드 436)는 2006년 3월 7일 출시되었으며, PE와 함께 μTorrent의 첫 번째 안정적인 버전이었다.[20]
작전
버전 0.60~0.62에서 사용된 비트코메트 PHE 방법은 공개되지 않았으며 MSE/PE와 호환되지도 않는다.
MSE/PE는 Torrent의 infohash와 결합된 키 교환을 사용하여 RC4 암호화 키를 설정한다. 키 교환은 수동적인 청취자의 위험을 최소화하는 데 도움이 되고, 인포하시는 중간 공격을 피하는 데 도움이 된다. RC4는 속도 때문에 선택된다. 출력의 첫 번째 키비바이트(1024바이트)는 플루러, 맨틴, 샤미르 공격을 막기 위해 폐기한다.
규격은 사용자가 헤더만 암호화하거나 전체 연결 중 하나를 선택할 수 있도록 한다. 전체 연결을 암호화하면 난독화는 더 많이 제공되지만 CPU 시간은 더 많이 사용한다.
이 규격을 지원하지 않는 다른 클라이언트와의 호환성을 보장하기 위해, 사용자는 암호화되지 않은 수신 또는 송신 연결이 여전히 허용되는지 여부를 선택할 수도 있다.
지원되는 클라이언트는 그들이 PEX와 DHT를 통해 MSE/PE를 사용할 수 있다는 사실을 전파한다.
보안
암호화의 추정 강도는 공통 대칭 암호의 경우 약 60-80비트에 해당한다.[21] 암호학적으로, 이 효과적인 키 길이는 상당히 낮지만, 프로토콜이 보안 전송 프로토콜로 설계되지 않고 오히려 빠르고 효율적인 난독화 방법으로 설계되었다는 점에서 적절하다. AES는 암호화 방법으로 제안되었지만 CPU 시간을 너무 많이 소비했기 때문에 채택되지 않았다. 필요한 디피-AES와 동등한 보안을 달성하기 위한 헬만 키는 훨씬 더 크거나 타원 곡선 암호화가 필요했을 것이며, 따라서 핸드셰이크는 사용된 CPU 시간 면에서 더 비싸게 되었다.
효과
비트토렌트 프로토콜 암호화(MSE) 분석 결과, TCP 세션에서 처음 100개 패킷의 패킷 크기와 패킷 방향에 대한 통계적 측정을 사용하여 96% 이상의 정확도로 난독화된 프로토콜을 식별할 수 있다.[22]
비판
비트토렌트의 발명가인 브람 코헨은 비트토렌트 프로토콜에 암호화를 추가하는 것에 반대했다. Cohen은 암호화가 고객들 사이에 비호환성을 일으킬 수 있다고 걱정한다고 말했다. 그는 또 ISP의 대다수가 토렌트 프로토콜을 막지 않는다는 점을 강조했다. 2006년 코헨은 "나는 오히려 일부 개발자가 자신의 ISP에 의해 제한을 받고 있으며, 인터넷 전체의 성능보다는 자신의 ISP의 한계를 해킹하는 데 더 관심이 있다고 생각한다"고 썼다.[23] 많은 비트토렌트 커뮤니티 사용자들은 코헨의 비난에 대해 강한 반응을 보였다.[24] 코헨은 나중에 자신의 메인라인 클라이언트에[25] 암호화된 연결을 수신하지만 발신되지 않는 기능으로 추가했다.[citation needed] 특히 μTorrent가 비트토렌트 주식회사에서 구매한 후 다음 메인라인 릴리스가 되면 암호화된 연결의 원점화 기능이 유지되었으나 디폴트로 꺼졌다. 2007년 인터뷰에서 코헨은 "비트토렌트 트래픽의 소위 '암호화'는 실제 암호화가 아니라 난독화"라고 말했다. 익명성은 전혀 제공하지 않으며 일시적으로 트래픽 형성을 피할 뿐이다."[26]
메모들
- ^ 일반적으로 보다 적절한 프로토콜 헤더 암호화라고 한다.
참조
- ^ "eMule protocol obfuscation (encryption)". emule-project.net. 2006-09-16. Retrieved 2010-03-11.
- ^ "The Bittorrent Effect". Wired. 2007-05-30.
- ^ "News". IPP2P.org. 2006-01-04.
- ^ "[Azureus-commitlog] CVS Snapshot Azureus2307-B29.jar has been released !". Sourceforge.net. 2006-01-19.
- ^ "aria2c(1) — aria2 1.34.0 documentation". aria2.github.io. Retrieved 2019-05-29.
- ^ "BitComet Client Release Notes". Bitcomet.com. 2006-03-07.
- ^ "BitTornado T-0.3.18". Degreez.net forum. 2007-01-05.
- ^ "Version Notes". BitTorrent.com. 2006-05-02. Archived from the original on 2006-06-13.
- ^ "Changelog: Deluge 0.5.1 (11 June 2007)". Deluge-torrent.org. 2007-06-11. Archived from the original on 2008-04-01.
- ^ SVN 서버. KDE.org. 2006-04-29.하위 버전 클라이언트 필요.
- ^ "Encryption has been added !". KTorrent.pwsp.net forum. 2006-04-29. Archived from the original on 2007-06-05.
- ^ arvid@libtorrent.org, Arvid Norberg. "www.libtorrent.org/reference-Settings.html". www.libtorrent.org. Retrieved 2017-02-16.
- ^ "libtorrent/ChangeLog at master · arvidn/libtorrent · GitHub". github.com. Retrieved 2017-02-16.
- ^ "Gmane -- Mail To News And Back Again". permalink.gmane.org. Archived from the original on 2017-02-17. Retrieved 2017-02-16.
- ^ "[Libtorrent-devel] LibTorrent 0.11.0 and rTorrent 0.7.0 released". Rakshasa.no mail archive. 2006-12-13. Archived from the original on 2007-05-02. Retrieved 2007-06-10.
- ^ "Transmission 0.90 Released!". Transmission.m0k.org forum. 2007-10-24. Archived from the original on 2007-10-27.
- ^ "[Azureus-commitlog] CVS Snapshot Azureus2307-B33.jar has been released !". Sourceforge.net. 2006-01-25.
- ^ "Azureus : Java BitTorrent Client - Changelog". Azureus.sourceforge.net.
- ^ "μTorrent 1.4.2 beta 435". uTorrent Announcements. 2006-01-29. Archived from the original on 2006-05-14.
- ^ "µTorrent 1.5 출시" 웨이백 머신에 2013-05-29 보관. 2006-03-07
- ^ "RFC 3526 chapter 8". IETF.org.
- ^ Hjelmvik, Erik; John, Wolfgang (2010-07-27). "Breaking and Improving Protocol Obfuscation" (PDF). Department of Computer Science and Engineering, Chalmers University of Technology. ISSN 1652-926X.
- ^ Cohen, Bram (2006-01-29). "Obfuscating BitTorrent". Bram Cohen blog. Archived from the original on 2006-02-07.
- ^ "Debate over Protocol Encryption". uTorrent.com forum. 2006-02-04. Archived from the original on 2007-10-22.
- ^ "BitTorrent Mainline Version History". BitTorrent.com. 2006-10-15. Archived from the original on 2007-02-25.
- ^ "비트토렌트의 발명가 브람 코헨과 인터뷰" 토렌트프레이크 2007-01-17. 2013-04-07.
외부 링크
- "메시지 스트림 암호화". 부제
- "비트토렌트를 형상화한 ISPs" 부제
- µTorrent 개발자를 사용한 "BitTorrent End to End End Encryption and Bandwidth Throtling - Part I" 슬라이크 뉴스
- Azureus 개발자 Slieck News와 함께 하는 "BitTorrent End to End End End Encryption and Bandwidth Throtling - Part II".
- "BitTorrent 및 End to End End Encryption". 슬래시닷.
- "추적자 동료 난독화" BitTorrent.org.
- 통계 프로토콜 IDentification을 위한 "MSE(Message Stream Encryption) 프로토콜 식별". 소스포지
- "NBAR을 사용하여 Cisco IOS 라우터의 P2P 트래픽 차단". 시스코.
- "아리아2c VPN/프록시 자습서" 고턱스.