Technology

Platforms

At the moment BitTorrent Sync works on Windows, Mac and Linux devices that meet the following system requirements:

  • Mac OS X Snow Leopard or later
  • Windows XP SP3 (32-bit) or newer (32 and 64-bit)
  • Linux with kernel 2.6.16 (glibc 2.4) or newer on ARM/PPC/i386/x86_64
  • FreeBSD 8.4 and 9.1
  • Android 2.2 and higher
  • iOS 5.0 and higher
  • Windows Phone 8

You can install our application on Network Attached Storages (NAS) running on Linux with ARM, PowerPC, i386 and x86_64 architecture.

 

P2P Protocol

BitTorrent Sync synchronizes your files using a peer-to-peer (P2P) protocol. This protocol is very effective for transferring large files across multiple devices, and is very similar to the powerful protocol used by applications like µTorrent and BitTorrent. The data is transferred in pieces from each of the syncing devices, and BitTorrent Sync chooses the optimal algorithm to make sure you have a maximum download and upload speed during the process.

The devices you setup to sync are connected directly using UDP, NAT traversal and UPnP port mapping. We also provide such additional methods of ensuring connectivity as relay and tracker servers. If your devices are on the same local network, BitTorrent Sync will use your LAN for faster synchronization.

 

Security

BitTorrent Sync was designed with privacy and security in mind. The system uses SRP for mutual authentication and for generating session keys that ensure Perfect Forward Secrecy. All traffic between devices is encrypted with AES-128 in counter mode, using a unique session key. Modification requests are all verified using Ed25519 signatures and only systems with full access keys can generate valid modification requests.

 

Secret

The secret is a randomly generated 20-byte key. It is Base32-encoded in order to be readable by humans. BitTorrent Sync uses /dev/random (Mac, Linux) and the Crypto API (Windows) in order to produce a completely random string. This authentication approach is significantly stronger than a login/password combination used by other services. That’s why using a secret generated by BitTorrent Sync is very safe and secure.

 

Peer Discovery

In order to find proper peers that have the same secret, Sync uses:

  • Local peer discovery. All peers inside local network are discovered by sending broadcast packets. If there are peers with the same secret they respond to the broadcast message and connect.
  • Peer exchange (PEX). When two peers are connected, they exchange information about other peers they know.
  • Known hosts (folder settings). If you have a known host with a static ip:port, you can specify this in Sync client, so that it connects to the peer using this information.
  • DHT. Sync uses DHT to distribute information about itself and obtain the information about other peers with this secret. Sync sends SHA1(Secret):ip:port to DHT to announce itself and will get a list of peers by asking DHT for the following key SHA1(Secret)
  • BitTorrent tracker. BitTorrent Sync can use a specific tracker server to facilitate peer discovery. The tracker server sees the combination of SHA1(secret):ip:port and helps peers connect directly. The BitTorrent Sync tracker also acts like a STUN server and can help do a NAT traversal for peers so that they can establish a direct connection even behind a NAT.

We recommend that you use a tracker server instead of DHT for reasons of faster response and NAT traversal, so peers have a higher probability of networking directly.

 

Traffic Relay

There are rare cases when peers can’t talk directly. This usually happens when devices are in an office behind strong firewalls. In such a case BitTorrent provides a relay server to route traffic between peers. All traffic is AES encrypted with your secret, so there is no chance for us to see any of your data.

You can opt out of this, but it could result in peers not being able to network with each other.