Detekce hudebních a komprimovaných souborů v BitTorrent protokolu

Autor: T. Horváth, R. Šifta, P. Münster <xhorva04(at)stud.feec.vutbr.cz>, Pracoviště: Vysoké učení technické v Brně, Téma: Aplikace a služby, Vydáno dne: 21. 04. 2013

Článek popisuje dnes stále hojněji využíván BitTorrent protokol pro přenos souborů a detekci přenášených zvukových a komprimovaných souborů pomocí BitTorrent protokolu. Znalost způsobu komunikace může posloužit k odhalení paketů, které přenášejí nelegální obsah.


Detection of the Music or Compressing Files in BitTorrent

Article deals with P2P networks and detailed description of services running on the BitTorrent protocol such as sharing networks based on "torrent" files. History is described such as reason for the creation of this protocol, algorithms for file transfers, a detailed preview of the torrent files from different servers (trackers) that mediate these files and detecting transfer of music files and compressed files (ZIP and RAR). This article is focused on private music servers and universal server.

Keywords: BitTorrent, Sharing and WireShark


Úvod

Protokol BitTorrent byl navržen pro přenos velkých souborů v rámci Internetu. Autorem tohoto protokolu je Bram Cohen, který uvolnil jeho specifikaci v dubnu roku 2001 [1]. Samotný protokol si získával stále větší oblibu, proto dnes tvoří jeho přenos významnou část celosvětového přenosu dat (trafic). Princip peer-to-peer, tedy rovný s rovným, díky absenci serveru umožňuje značnou úlevu například webovým uložištím, které pracují na modelu klient - server. Původní návrh pro přenos velkých souborů se zalíbil i dalším majitelům webových stránek, kteří na něm prakticky založili své podnikání. Typickým příkladem za všechny je server The Pirate Bay [2]. Stránka nabízí nespočetné množství tzv. torrent souborů, které v sobě obsahují důležitá data pro stažení souboru. Podle průzkumu uskutečněného 9. ledna 2012 využívalo BitTorrent protokol asi 150 milionů aktivních uživatelů [3].

BitTorrent

Původní návrh pro přenos velkých souborů po Internetu se stával oblíbenější a oblíbenější. Pro již zmíněné uvolnění přenosové kapacity v modelu klient - server. BitTorrent protokol definuje 3 základní role:
Tracker – jedná se o server, jehož úkolem je maximálně koordinovat funkci BitTorrent protokolu a snažit se pomoci najít klientovi další leechry se zájmem ve stejném torrentu. Server také ukládá informace o klientech, zejména na soukromých serverech, kde je důležité uchovávat poměr stažených/odeslaných dat (ratio). Klienti stahující torrent soubor oznamují v pravidelných intervalech trackeru, které části mají stažené [4].
Leech – jde o označení klienta, který právě stahuje daný torrent soubor (nemá ho tedy ještě kompletně stažen), případně klienta, který dokončil stahování torrent souboru, ale nepodílí se dále na jeho distribuci.
Seed – je pravý opak leech. Klient má stažen celý soubor a nyní jej pouze distribuuje dalším klientům (leechům), kteří mají zájem o jeho stažení.

Protokol BitTorrent pracuje na bázi dělení velkých souborů do menších v závislosti na celkové velikosti souboru, řádově od kB po maximálně 4 MB. Díky tomuto protokolu lze přenášet nejen legální či nelegální soubory, ale možno jej využít také například k distribuci aktualizací do her [5]. Systém pracující s protokolem BitTorrent umožňuje:
vytvoření (obvykle pomocí aplikace), publikování (na webu tzv. trackeru), stahování (po částech) a sdílení kompletního torrent souboru.

Obsah torrent souboru
V síti Internet lze nalézt mnoho serverů, které jsou založeny na principu výměnného protokolu BitTorrent, ať už se jedná o stránky soukromé nebo veřejné (např. The Pirate Bay). Článku popisuje pouze ty soukromé servery, které jsou známé také jako „privátní trackery“. Konkrétně půjde o hudební trackery SatClubbing Music Tracker, TranceTraffic a všeobecný tracker SceneAccess. Obsah torrent souboru se různí podle stránky, ze které pochází. Na všech stránkách, ze kterých byl torrent soubor stažen, byly nejčastěji nalezeny tyto společné informace:
Adresa oznámení – v BitTorrent terminologii označovaná jako adresa announce.
Názvy souborů – soubory obsahující torrent soubor.
Délky a počet částí – velikost a počet dílčích souborů, které tvoří celek stahovaného souboru.
Druh torrent souboru – v tomto případě vždy „privátní“.
Aplikace použita pro vytvoření torrent souboru.

Pouze torrent soubor pocházející ze stránky SatClubbing obsahoval i přezdívku uživatele, který torrent vytvořil a jeho přesné identifikační číslo s odkazem na jeho profil na trackeru.

Komunikace s trackerem
Server, častěji označován jako tracker, slouží v BitTorrent sítích jako pomocný prvek při komunikaci koncových uzlů - klientů. Při stahování je zpočátku zapotřebí, aby klient získal základní informace, které mu pomohou úspěšně započít stahování (informace o dostupnosti daného souboru, počet klientů s kompletním souborem, počet klientů stahující soubor apod.). Server při komunikaci s klientem využívá výhradně protokol HTTP (Hyper Text Transfer Protocol), přičemž klient zná adresu trackeru z torrent souboru. Adresa je označována jako announce - oznámení. V průběhu stahování souboru klient oznamuje, které části souboru má stažené a může je tudíž nabídnout dalším klientům. Příklad oznámení (zachycen pomocí programu Wireshark [6]) vlastněných částí demonstruje obrázek 1.

bittorrent_01

Obrázek 1: Příklad oznámení vlastněných částí souboru.


Princip stahování
Princip stahování torrentu vystihuje obrázek 2. Jistou „nevýhodou“ tohoto principu je, že klient, který má zájem stáhnout soubor pomocí tohoto protokolu, musí vědět, kde má hledat tzv. torrent soubory. Příkladem takového stahování může být tracker The Pirate Bay [2], kde klient jakmile najde obsah, o který má zájem, stáhne torrent soubor z webové stránky.

Torrent soubor otevře pomocí vhodné aplikace - klienta a zahájí stahování. Při prvním zahájení aplikace kontaktuje klient tracker (adresu trackeru zjistí přímo ze souboru .torrent) a vyžádá si seznam klientů (jejich IP adresy), kteří soubor také stahují nebo jej mají stažený a pouze soubor distribuují - odesílají. Soubor více klientů se nazývá v BitTorrent protokolu „swarm“. Jakmile dojde ke kontaktování ostatních klientů, kteří mají soubor kompletní nebo ne, dochází k výměně částí souborů a pravidelnému oznamování trackeru, které soubory daný klient má.

Tracker se nijak na výměně částí souborů nepodílí, plní pouze roli „prostředníka“ a pomáhá najít lepší - rychlejší - zdroje (jsou-li k dispozici). Dále uchovává statistiky o jednotlivých klientech, kteří soubor stahují. Těchto statistik je následně na webové stránce využito pro přidělení práv. Uživatelé s nízkým poměrem odeslaných dat ke staženým musí na stažení nového torrentu jistou dobu čekat. Naproti tomu jsou uživatelé s vysokým poměrem odeslaných dat zařazeni do „elitní“ skupiny a získávají tak výhody oproti ostatním uživatelům. Příkladem takové výhody je možnost nahrávání vlastních torrent souborů nebo eliminace čekací doby na stažení nového torrent souboru na trackeru.

Při započetí stahování klient nevlastní žádnou část dat, a proto je pro ně nezbytně nutné v co nejkratším čase stáhnout libovolnou část dat, aby mohl i on sám něco nabídnout ostatním uživatelům. Tato metoda je v BitTorrent protokolu označována jako Random First [4].

Druhou možností je stáhnout jako první nejvzácnější - nejméně se vyskytující část pojmenovanou jako Rarest First [4]. Nevýhodou stahování nejvzácnější části jako první je, že tato část je obvykle sdílená neboli distribuovaná pouze jediným uživatelem. Stahující nemá tedy co nabídnout do doby, než stáhne tuto nejvzácnější část, která bývá zpravidla stahována nízkou rychlostí.

Z principu výměny velkých souborů je zřejmé, že dochází k dělení souboru na menší části o maximální velikosti 4 MB. Takto velké pakety by se přenášely sítí velmi obtížně, proto dochází k dalšímu dělení částí na subčásti.

bittorrent_02

Obrázek 2: Princip stahování souborů pomocí BitTorrent protokolu.


Pravidla internetových pirátů
Pravidla jednotlivých serverů jsou odlišná v závislosti na majitelích serveru. Princip zůstává zpravidla stejný. Veškeré soubory, které servery poskytují, musí být originální „uvolnění“ (dále jen release). Veškeré specifikace jednotlivých typů release lze nalézt v literatuře [7].

V rámci tohoto článku jsou důležitá pravidla pro hudební soubory - MP3 a programy. K vytvoření MP3 souborů alba, vinylu nebo jiného zvukového zdroje se využívá komprese MPEG verze 1 vrstva 3. Pokud klient projeví zájem o stažení například alba z trackeru, stáhne torrent soubor, který v sobě uchovává veškeré údaje. Samotný obsah složky je ve formátu název.mp3 (obsahuje zvukový soubor), název.m3u (playlist k albu), název.sfv (kontrolní součty jednotlivých zvukových souborů), název.nfo (informační soubor o celém albu a skupině: velikost, komprimační rychlost, počet hudebních stop, datum vydání v obchodě, datum vytvoření release skupinou, katalogové číslo, žánr, doba trvání, odkaz na digitální obchod, kde je možnost album zakoupit, založení skupiny a informace o spřátelených skupinách) [7].

Pro uveřejnění release s programy jsou pravidla odlišná [7]. Soubory musí být zabaleny ve formátu nazev.zip. Soubor obsahuje další komprimovaný soubor název.rxx (kde xx znamená pořadové číslo části) [7]. Další soubor je název.nfo, který obsahuje informace o programu: datum zveřejnění, způsob odstranění ochrany (klíčem, crackem nebo importem registrů), velikost programu a informace o skupině [7].

Detekce souborů

Pro stahování torrent souborů z jednotlivých serverů byla zvolena aplikace - klient µTorrent. Aplikace disponuje jednoduchým grafickým uživatelským rozhraním a kvalitním logováním (logování nebude v tomto článku použito). Veškerá komunikace a stahování probíhalo ve virtuálním operačním systému Microsoft Windows XP Home Edition SP3. Zachycení přenášených paketů bylo realizováno pomocí aplikace Wireshark.
K odhalení paketů, které přenášejí nelegální data (zvukové soubory nebo komprimované soubory), bude využito prvního přeneseného paketu přesněji jeho hlavičky, která nese hexadecimální hodnotu přenášeného souboru. Zkrácený přehled na hexadecimální hodnoty přenášených v hlavičkách zobrazuje tabulka 1.

Tabulka 1: Výčet základních typů souborů a hodnot hlavičky v paketech [8].

bittorrent_03



Z tabulky 1 jsou zřejmé základní hodnoty hlaviček přenášených v paketech, které přenášejí části souboru. Zvukový záznam typu MP3 je hledán pomocí ID3 tagu. Udaná hexadecimální hodnota pro obrázkový soubor JPEG (Joint Photographic Experts Group) zde nemá příliš velký význam. Skenované kopie přebalu alb jsou mnohdy pojmenovány pomocí anglického slova cover - obal. Důležité informace o zařízení přes které byla fotografie - sken - pořízena, bývají zpravidla vždy smazány. Hexadecimální hodnotu souboru JPEG lze použít při vyhledávání umístěných protiprávních kopií obrázků. V případě souboru ZIP se mohou hexadecimální hodnoty lišit v závislosti na použité aplikaci, která zipovaný soubor vytvořila (WinZip 57 69 6E 5A 69 70, 7-Zip 37 7A BC AF 27 1C aj.) [8]. Hodnoty dalších typů souborů lze nalézt v literatuře [8]

Program Wireshark nabízí kvalitní vyhledávání pomocí hexadecimálních hodnot a řetězců v zachycených paketech, jejich detailech a bitech. K odhalení přenášených typů dat bude využito vyhledávání pomocí hexadecimálních hodnot. Z tabulky 1 je pro vyhledávání zvukových souborů zřejmá hodnota 49 44 33 (hodnota identifikuje ID3 tag). Zachycené pakety ze serveru - trackeru - SatClubbing Music Tracker obsahují velmi detailní informace o přenášeném souboru. Výčet zachycených hodnot zobrazují obrázky 3 a 4. Údaj 4ad44a79 udává kontrolní součet pro zvukový soubor.

Uvedené obrázky detailně popisují data přenášená v paketech z BitTorrent protokolu. První část z celkového souboru nese detailní informace o souboru: pořadí, jméno autora a jméno zvukového souboru, den zveřejnění souboru a typ zdroje (WEB udává digitální obchod, CDDA je originální nosič, Vinyl odpovídá vinylové desce, TAPE pak audiokazetě).

Pro přímé odhalení přenášeného souboru je vhodné využít databázi, která obsahuje veškeré informace o aktuálních release. Databáze obsahuje důležité informace o daném release: název, velikost, počet skladeb aj. [9].

bittorrent_04

Obrázek 3: Výčet informací obsahující soubor nfo.


bittorrent_05

Obrázek 4: Informace o stahovaném souboru z prvního paketu.



Údaje z obrázku 3 jsou čistým opisem .nfo souboru, který musí být součástí každého release.
Pokud je zadán řetězec „announce“, lze nalézt adresu serveru - trackeru, na kterou jsou oznamovány vlastněné části. Hodnota passkey je jedinečná pro každého uživatele. Známost passkey neumožňuje jakoukoli identifikaci uživatele.
Sledování obsahu je shodné jako v předešlém případě. Na serveru TranceTraffic byl nalezen jiný torrent soubor než v prvním případě. Nalezení paketu nesoucí informace probíhá pomocí zadání hexadecimální hodnoty 49 44 33, viz obrázky 5 a 6.

bittorrent_06

Obrázek 5: Informace nesoucí soubor nfo.


bittorrent_07

Obrázek 6: Detaily z hlavičky prvního paketu, který informuje o obsahu souboru.


Poslední sledovaný server Sceneaccess je v internetových komunitách dosti oblíbeným zdrojem. Jeho všeobecné zaměření mu na oblíbenosti dosti přidává (programy, hudba, filmy, filmy ve vysokém rozlišení aj.).

bittorrent_08

Obrázek 7: Zachycené informace přenášené v souboru nfo.


bittorrent_09

Obrázek 8: Detekce komprimovaného souboru.


NFO soubory jsou povinnou součástí každého release, proto na nich lze přímo postavit detekci nelegálního přenosu souboru. Jejich detekci lze provést programem Wireshark při hledání hexadecimální hodnoty 20 20 20 20 20.

Distribuce programů podléhá pravidlům udávaných v literatuře [7]. Každý program musí být zabalen nejprve do RAR souborů, potom znovu do souborů ZIP [7]. Pokud mají být odhaleny nelegální přenosy programů, je potřeba se zaměřit na hledání právě RAR souborů, které mnohdy obsahují originální jméno programů (viz obrázek 8).

Závěr

Nárůst oblíbenosti trackerů na principu rovný s rovným (peer-to-peer) má za následek uzavření serveru Megaupload FBI (19.1.2012). Reakce ostatních majitelů serverů na sebe nenechaly dlouho čekat. Servery Filesonic, Fileserve nebo Wupload byly uzavřeny svými majiteli, kteří měli obavy z žalob a povinných náhrad škod vlastníkům autorských práv. Všechny tyto servery měly jednu klíčovou skutečnost společnou. Jednalo se o vyplácení odměn za nahrávání oblíbených souborů (zpravidla nelegálních).

Sítě založené na principu rovný s rovným nenabízejí žádné finanční odměny uploaderům torrent souborů. Nabízí však komfort a uzavřenou komunitu. Na server se nelze dostat bez pozvánky, zároveň nemusí uploader zveřejnit odkaz na internetu, protože tracker umožňuje procházení torrent souborů. Umístění odkazu, přes který lze stáhnout nelegální soubor, je protiprávní jednání, byť autor umístěného souboru není ten, kdo soubor nahrál.

Stahování souborů pomocí serverů nabízí značnou výhodu - šifrování. V rámci výměnných sítí lze nalézt velmi málo bezpečných - šifrovaných - torrentů (šifrování musí mít povoleny obě strany). Pouze šifrování však nepřináší uživateli anonymitu. Uživatele jde totiž snadno vypátrat pomocí využívaných portů. Mnoho uživatelů vlastní tzv. seedbox (server, na kterém běží klient na stahování torrent souborů). Ze serveru jsou pak data stahována pomocí zabezpečeného přenosu například sftp. Druhým fenoménem je umísťování tzv. magnet odkazů. Tyto magnet odkazy jsou dnes nejhojněji využívány serverem The Pirate Bay. Nedochází tedy ke stahování torrent souborů, nýbrž důležitá data jsou rovnou načtena v klientu - aplikaci.

S rostoucí oblíbeností se někteří poskytovatelé služeb (ISP) dobrovolně podílejí na monitorování BitTorrent přenosů [10].

Článek vznikl za podpory projektu CZ.1.05/2.1.00/03.0072.

Literatura

[1] BitTorrent: a new P2P app [online]. 2001 [cit. 2013-02-17]. Dostupné z: http://finance.groups.yahoo.com/group/decentralization/message/3160
[2] The Pirate Bay [online]. ©2013 [cit. 2013-02-17]. Dostupné z: https://thepiratebay.se/
[3] Prensa: BitTorrent [online]. ©2013 [cit. 2013-02-17]. Dostupné z: http://www.bittorrent.com/intl/es/company/about/ces_2012_150m_users
[4] COHEN, Bram. Incentives Build Robustness in BitTorrent. BT: description [online]. 2003 [cit. 2013-02-25]. Dostupné z: http://www.ittc.ku.edu/~niehaus/classes/750-s06/documents/BT-description.pdf
[5] Blizzard Downloader [online]. © 2006-2013, 12.2.2011 [cit. 2013-02-25]. Dostupné z: http://www.wowpedia.org/Blizzard_Downloader
[6] Wireshark: Go deep [online]. ©2013 [cit. 2013-03-01]. Dostupné z: http://www.wireshark.org/
[7] Scenerules [online]. ©2013 [cit. 2013-03-01]. Dostupné z: http://scenerules.irc.gs/
[8] File Signatures [online]. ©2002-2013 [cit. 2013-03-02]. Dostupné z: http://www.garykessler.net/library/file_sigs.html
[9] MP3Kingz: Scene Releases PreDB [online]. ©2005- [cit. 2013-03-03]. Dostupné z: http://www.mp3kingz.org/
[10]ISPs in the USA to start monitoring customers’ downloads starting July 1, 2012 [online]. 2012 [cit. 2013-03-04]. Dostupné z: http://dottech.org/28447/isps-in-the-usa-to-start-monitoring-customers-downloads-starting-july-1-2012/