Skip to content

Commit

Permalink
GITBOOK-46: No subject
Browse files Browse the repository at this point in the history
  • Loading branch information
n8fr8 authored and gitbook-bot committed May 21, 2024
1 parent e3e91fc commit 1767465
Show file tree
Hide file tree
Showing 13 changed files with 24 additions and 20 deletions.
Binary file added .gitbook/assets/image (1).png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .gitbook/assets/image (2).png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .gitbook/assets/image (3).png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .gitbook/assets/image (4).png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added .gitbook/assets/image.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
10 changes: 5 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,13 @@
---
description: Where to begin (and end!) with integrating Tor support in your mobile app
description: Where to begin with integrating Tor support into your mobile app or service
cover: .gitbook/assets/android-dark-web.avif
coverY: 0
---

# Introduction
# Welcome to Onion Mobile Devs!

Tor, a free and open-source software for enabling anonymous communication, routes Internet traffic through a worldwide, volunteer overlay network, consisting of thousands of relays, to conceal a user's location and usage from network surveillance or traffic analysis. By integrating Tor into your mobile app, you provide your users with the ability to maintain privacy and evade censorship.
Tor, a [free and open-source software](the-history-of-tor.md) for enabling anonymous communication, routes Internet traffic through a worldwide, volunteer overlay network, consisting of thousands of relays, to conceal a user's location and usage from network surveillance or traffic analysis. By integrating [Tor into your mobile app](mobile-concepts/mobile-apps-with-tor.md), you provide your users with the ability to [maintain privacy and evade censorship](the-tor-protocol.md).

By the end of this guide, you will have a thorough understanding of how to integrate Tor into a mobile application, aligning with the best practices of open-source development and contributing to the broader goal of promoting online privacy and freedom.
By the end of this guide, you will have a thorough understanding of how to [integrate Tor into a mobile application](mobile-concepts/all-the-ways-to-tor.md), aligning with the best practices of open-source development and contributing to the broader goal of [promoting online privacy and freedom](the-history-of-tor.md).

<figure><img src="https://images.unsplash.com/photo-1549692520-acc6669e2f0c?crop=entropy&#x26;cs=srgb&#x26;fm=jpg&#x26;ixid=M3wxOTcwMjR8MHwxfHNlYXJjaHwyfHxzb2Z0d2FyZSUyMGRldmVsb3BlcnxlbnwwfHx8fDE3MTUxODg3NDB8MA&#x26;ixlib=rb-4.0.3&#x26;q=85" alt=""><figcaption></figcaption></figure>
<figure><img src=".gitbook/assets/image (1).png" alt=""><figcaption><p>Classic Orbot user interface.... the original Tor on Mobile app!</p></figcaption></figure>
8 changes: 4 additions & 4 deletions SUMMARY.md
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
# Table of contents

* [Introduction](README.md)
* [Welcome to Onion Mobile Devs!](README.md)
* [The History of Tor](the-history-of-tor.md)
* [The Tor Protocol](the-tor-protocol.md)
* [Mobile Apps with Tor](mobile-apps-with-tor.md)
* [Tor ("C Tor") vs Arti: What?!](tor-c-tor-vs-arti-what.md)

## Mobile Concepts

* [Mobile Apps with Tor](mobile-concepts/mobile-apps-with-tor.md)
* [Possible Ways to Tor Your App](mobile-concepts/all-the-ways-to-tor.md)
* [Limitations of Mobile Devices](mobile-concepts/limitations-of-mobile-devices.md)
* [Users in the OnionVerse](mobile-concepts/user-stories.md)
* [All the Ways to Torify](mobile-concepts/all-the-ways-to-tor.md)
* [Mobile Users in the OnionVerse](mobile-concepts/user-stories.md)

## Tor on Android

Expand Down
6 changes: 3 additions & 3 deletions mobile-concepts/all-the-ways-to-tor.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,20 +2,20 @@
description: Summary of different ways an app can integrate with Tor
---

# All the Ways to Torify
# Possible Ways to Tor Your App

### Build Tor into your app

It is now easier than ever to directly build Tor into your app, hiding all complexity of setup and configuration from your users. Whether you use [Tor-Android](../tor-on-android/tor-android-library.md), [Arti](../tor-c-tor-vs-arti-what.md), or [Tor.framework](../tor-on-ios/tor.framework-for-ios.md), there are many options ready to go. Apps like Tor Browser for Android do this today, to provide a seamless, integrated experience for browsing the web over Tor.

### Integrate with external Orbot or TorServices app

If you do not want to add the additional code complexity and size directly into your app, you can instead only offer active Tor features if the user has [Orbot](../tor-on-android/netcipher-with-orbot-legacy.md) or [TorServices](../tor-on-android/torservices.md) installed on their device. Apps like [F-Droid](../mobile-apps-with-tor.md), [Save by OpenArchive](../mobile-apps-with-tor.md), and [ReThinkDNS](../mobile-apps-with-tor.md) do this today, to enable proxying through Tor without having to build in all of Tor.
If you do not want to add the additional code complexity and size directly into your app, you can instead only offer active Tor features if the user has [Orbot](../tor-on-android/netcipher-with-orbot-legacy.md) or [TorServices](../tor-on-android/torservices.md) installed on their device. Apps like [F-Droid](mobile-apps-with-tor.md), [Save by OpenArchive](mobile-apps-with-tor.md), and [ReThinkDNS](mobile-apps-with-tor.md) do this today, to enable proxying through Tor without having to build in all of Tor.

### Implement Tor in a VPN or Network Extension

If you want to build your own VPN, or want to ensure that all possible network traffic from your app (and even the whole device) is automatically routed through Tor, then this might be the approach you take. Apps like Orbot do this today, to provide an easy Tor-based "VPN" for users.

### Run an OnionService in your app

Using Tor, you can turn your app into a server, that any other Tor client can connect to. This enables you to host content and services just like you are on the open web, directly from your device. Apps like [OnionShare](../mobile-apps-with-tor.md), [Briar](../mobile-apps-with-tor.md) and [Quiet](../mobile-apps-with-tor.md) do this today to enable file sharing and chat.
Using Tor, you can turn your app into a server, that any other Tor client can connect to. This enables you to host content and services just like you are on the open web, directly from your device. Apps like [OnionShare](mobile-apps-with-tor.md), [Briar](mobile-apps-with-tor.md) and [Quiet](mobile-apps-with-tor.md) do this today to enable file sharing and chat.
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,9 @@ description: Summary of known mobile applications with Tor Support

# Mobile Apps with Tor

(From 2020 - a summary of some mobile apps with Tor at that time)[https://www.youtube.com/watch?v=F1ddl6XMnQU]
{% embed url="https://www.youtube.com/watch?v=F1ddl6XMnQU" %}
From 2020 - a summary of some mobile apps with Tor at that time
{% endembed %}

[**Orbot: Tor VPN for Android and iOS**](https://orbot.app)

Expand Down
4 changes: 2 additions & 2 deletions mobile-concepts/user-stories.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
description: Why a user of an app might benefit from Tor integration
description: Why and how a user of an app might benefit from Tor integration
layout:
title:
visible: true
Expand All @@ -13,7 +13,7 @@ layout:
visible: true
---

# Users in the OnionVerse
# Mobile Users in the OnionVerse

**User Needs to Use App in a Place Where It May Be Blocked**

Expand Down
4 changes: 2 additions & 2 deletions the-history-of-tor.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@ description: About Tor, Tor Project and Onion Routing

# The History of Tor

The Tor Project, Inc, became a 501(c)(3) nonprofit in 2006, but the idea of "onion routing" began in the mid 1990s.
The [Tor Project, Inc,](https://torproject.org) became a 501(c)(3) nonprofit in 2006, but the idea of "onion routing" [began in the mid 1990s](https://www.onion-router.net/).

Just like Tor users, the developers, researchers, and founders who've made Tor possible are a diverse group of people. But all of the people who have been involved in Tor are united by a common belief: internet users should have private access to an uncensored web.

<figure><img src="https://images.unsplash.com/photo-1479142506502-19b3a3b7ff33?crop=entropy&#x26;cs=srgb&#x26;fm=jpg&#x26;ixid=M3wxOTcwMjR8MHwxfHNlYXJjaHwyfHxoaXN0b3J5fGVufDB8fHx8MTcxNTE4ODY5NHww&#x26;ixlib=rb-4.0.3&#x26;q=85" alt=""><figcaption></figcaption></figure>
<figure><img src=".gitbook/assets/image (2).png" alt=""><figcaption><p>The Humans of Tor</p></figcaption></figure>

In the 1990s, the lack of security on the internet and its ability to be used for tracking and surveillance was becoming clear, and in 1995, David Goldschlag, Mike Reed, and Paul Syverson at the U.S. Naval Research Lab (NRL) asked themselves if there was a way to create internet connections that don't reveal who is talking to whom, even to someone monitoring the network. Their answer was to create and deploy the first research designs and prototypes of onion routing.

Expand Down
4 changes: 2 additions & 2 deletions the-tor-protocol.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
---
description: How Tor works at the network level
description: How Tor works at the packet and network level
---

# The Tor Protocol

<figure><img src="https://images.unsplash.com/photo-1587049276124-b933e057e698?crop=entropy&#x26;cs=srgb&#x26;fm=jpg&#x26;ixid=M3wxOTcwMjR8MHwxfHNlYXJjaHw4fHxvbmlvbnxlbnwwfHx8fDE3MTUxODg2NzR8MA&#x26;ixlib=rb-4.0.3&#x26;q=85" alt=""><figcaption></figcaption></figure>
<figure><img src=".gitbook/assets/image (3).png" alt=""><figcaption><p><a href="https://unit42.paloaltonetworks.com/tor-traffic-enterprise-networks/">"Tor 101"</a> from Palo Alto Networks</p></figcaption></figure>

Internet communication is based on a store-and-forward model that can be understood in analogy to postal mail: Data is transmitted in blocks called IP datagrams or packets. Every packet includes a source IP address (of the sender) and a destination IP address (of the receiver), just as ordinary letters contain postal addresses of sender and receiver. The way from sender to receiver involves multiple hops of routers, where each router inspects the destination IP address and forwards the packet closer to its destination. Thus, every router between sender and receiver learns that the sender is communicating with the receiver. In particular, your local ISP is in the position to build a complete profile of your Internet usage. In addition, every server in the Internet that can see any of the packets can profile your behavior.

Expand Down
4 changes: 3 additions & 1 deletion tor-c-tor-vs-arti-what.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,9 @@ description: The state of the two primary Tor implementations

For software projects with recurring bugs, efficiency or security issues there’s a joke making the rounds in the software industry: “Let’s re-write it in [Rust](https://en.wikipedia.org/wiki/Rust\_\(programming\_language\))!” It’s a fairly new low-level programming language with the declared goal to help developers avoid entire classes of bugs, security issues and other pitfalls. Re-writing software is very time consuming, so it rarely happens, especially when just one more fix will keep a project up and running.

[Tor-Project](https://torproject.org/) was started in 2001 using the [C programming lanugage](https://en.wikipedia.org/wiki/C\_\(programming\_language\)). However a few years ago they set out to actually re-write their project in Rust. That projects codename is [Arti](https://arti.torproject.org/) and it was [first released](https://blog.torproject.org/arti\_100\_released/) in 2022. While Arti is working great, it doesn’t have all features of the original Tor implementation yet. However, they are steadily working on getting there. For example, rough [Pluggable Transports](https://www.pluggabletransports.info/) support was added to Arti in the recent 1.1.0 release.
[Tor-Project](https://torproject.org/) was started in 2001 using the [C programming lanugage](https://en.wikipedia.org/wiki/C\_\(programming\_language\)). However a few years ago they set out to actually re-write their project in Rust. That projects codename is [Arti](https://arti.torproject.org/) and it was [first released](https://blog.torproject.org/arti\_100\_released/) in 2022. While Arti is working great, it doesn’t have all features of the original Tor implementation yet. However, they are steadily working on getting there. For example, rough [Pluggable Transports](https://www.pluggabletransports.info/) support was added to [Arti in the recent 1.1.0 release](https://blog.torproject.org/arti\_111\_released/).

<figure><img src=".gitbook/assets/image (4).png" alt=""><figcaption></figcaption></figure>

We already have early [test builds of Arti](https://gitlab.com/guardianproject/arti-mobile-ex/) running on both Android and iOS. The integration we came up with is pretty basic, but so far it seems to work reliable for accessing the Tor network. Maintaining code for both iOS and Android in the same project will hopefully simplify shipping new Arti releases for us, make integrating Tor capabilities into any app simpler. To make it useful for the broader mobile developer community, we’re also investigating whether we can provide easy to use API bindings. We’ve created a [sample app](https://gitlab.com/guardianproject/arti-mobile-ex/-/tree/main/android/sample) on Android to test and illustrate what a minimalistic integration of Arti looks like. It’s as simple as adding a few lines of code.

Expand Down

0 comments on commit 1767465

Please sign in to comment.