feat: more content
This commit is contained in:
parent
121df8c80d
commit
9c6a30456b
11 changed files with 165 additions and 84 deletions
33
docs/censorship/collateral.mdx
Normal file
33
docs/censorship/collateral.mdx
Normal file
|
@ -0,0 +1,33 @@
|
||||||
|
---
|
||||||
|
title: Collateral Freedom
|
||||||
|
sidebar_position: 30
|
||||||
|
---
|
||||||
|
|
||||||
|
Collateral freedom is an anti-censorship strategy that attempts to make it **economically prohibitive** for censors to
|
||||||
|
block a resource.
|
||||||
|
The diverse needs of businesses to exchange information across international borders makes it impossible to build a
|
||||||
|
catalogue of "good" and "bad" networks or websites.
|
||||||
|
A censor requires some confidence when they block a resource that it won't be affecting economic activity.
|
||||||
|
It’s difficult to achieve accuracy with filtering as most internet traffic is encrypted and must be categorised
|
||||||
|
at speed to make blocking decisions.
|
||||||
|
As a result, censors will usually err on the side of under-blocking.
|
||||||
|
|
||||||
|
One way to exploit this is by deploying solutions in large platforms that are **“too big to block”**, like public cloud
|
||||||
|
providers.
|
||||||
|
Public cloud providers host large numbers of clients in shared infrastructure to benefit from economies of scale, but
|
||||||
|
this sharing also makes it difficult to know what content is being accessed.
|
||||||
|
Similarly, large social networks host content from large numbers of publishers but all traffic between the user and the
|
||||||
|
social network is typically encrypted and so the censor cannot know what is being read.
|
||||||
|
Blocking the cloud provider would have a negative impact on businesses and would hurt state revenue, and blocking the
|
||||||
|
social media platform would cause backlash from the people: neither is an attractive option for the censor.
|
||||||
|
|
||||||
|
Another approach is to use constantly rotating identifiers, as even where a resource may be easy to block once
|
||||||
|
identified, a new resource can be deployed quickly to replace it rendering the blocks ineffective.
|
||||||
|
Due to erring on the side of under-blocking, attempts to access previously unseen content usually succeed.
|
||||||
|
Even with a procedure for screening or approval, blocking by default would bog down innovation and development to the
|
||||||
|
extent that it could cease, certainly falling behind other economies.
|
||||||
|
This approach is particularly suited for news media where the majority of readers will be interested in an article for
|
||||||
|
only a short time after it is published, and if it is later blocked by the censor then the effect will be minimal.
|
||||||
|
|
||||||
|
With collateral freedom on your side **you can have the upper hand** when it comes to making your content accessible to
|
||||||
|
your audience.
|
|
@ -1,9 +1,8 @@
|
||||||
---
|
---
|
||||||
|
title: The Context
|
||||||
sidebar_position: 10
|
sidebar_position: 10
|
||||||
---
|
---
|
||||||
|
|
||||||
# The Context
|
|
||||||
|
|
||||||
Censorship has been a tool for controlling information and suppressing dissent throughout history. It is often employed
|
Censorship has been a tool for controlling information and suppressing dissent throughout history. It is often employed
|
||||||
by authoritarian regimes to maintain power and control over their populations. The roots of censorship can be traced
|
by authoritarian regimes to maintain power and control over their populations. The roots of censorship can be traced
|
||||||
back to ancient civilizations, where rulers sought to suppress dissenting voices and control the narrative surrounding
|
back to ancient civilizations, where rulers sought to suppress dissenting voices and control the narrative surrounding
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
---
|
---
|
||||||
title: Censorship 101
|
title: Censorship 101
|
||||||
sidebar_label: Introduction to Censorship
|
sidebar_label: Introduction
|
||||||
sidebar_position: 0
|
sidebar_position: 0
|
||||||
---
|
---
|
||||||
|
|
||||||
|
@ -10,5 +10,6 @@ import {useCurrentSidebarCategory} from '@docusaurus/theme-common';
|
||||||
# Censorship 101
|
# Censorship 101
|
||||||
|
|
||||||
Understand the most important censorship and circumvention concepts.
|
Understand the most important censorship and circumvention concepts.
|
||||||
|
This section contains background information on historical censorship, online censorship, and collateral freedom.
|
||||||
|
|
||||||
<DocCardList items={useCurrentSidebarCategory().items.slice(1)} />
|
<DocCardList items={useCurrentSidebarCategory().items.slice(1)} />
|
||||||
|
|
|
@ -1,10 +0,0 @@
|
||||||
---
|
|
||||||
sidebar_position: 20
|
|
||||||
draft: true
|
|
||||||
---
|
|
||||||
|
|
||||||
# The Ladder
|
|
||||||
|
|
||||||
:::info[Todo]
|
|
||||||
Write text.
|
|
||||||
:::
|
|
|
@ -1,42 +0,0 @@
|
||||||
---
|
|
||||||
sidebar_position: 30
|
|
||||||
draft: true
|
|
||||||
---
|
|
||||||
|
|
||||||
# Building Blocks
|
|
||||||
|
|
||||||
Censorship is the suppression of speech, public communication, or other information.
|
|
||||||
This may be done on the basis that such material is considered objectionable, harmful, sensitive, or “inconvenient”.
|
|
||||||
Regardless of the reasons for censorship, the technical measures taken to implement it often look the same.
|
|
||||||
*jasima.app* provides a toolkit for circumventing censorship of Internet resources.
|
|
||||||
The circumvention methods available will often use collateral freedom, fingerprint resistance, probe resistance, or
|
|
||||||
combinations of these and more, to counter the measures put in place by the censor.
|
|
||||||
|
|
||||||
## Collateral Freedom
|
|
||||||
|
|
||||||
Collateral freedom is an anti-censorship strategy that attempts to make it economically prohibitive for censors to block an Internet resource.
|
|
||||||
The way in which a censor restricts access to resources will require knowing which content to block and which to allow.
|
|
||||||
It’s incredibly difficult to achieve accuracy with filtering as the Internet is comprised of untagged free-form content that must be categorised at speed.
|
|
||||||
This results in either over-blocking or under-blocking, and neither of these are desirable properties for the censor.
|
|
||||||
|
|
||||||
This can be exploited by circumvention systems by deploying solutions at places that are “too big to block”, like cloud providers.
|
|
||||||
Either encryption or constantly rotating identifiers are then used to prevent censors from identifying requests for censored information that is hosted among other content.
|
|
||||||
This forces censors to either allow access to the censored information or take down entire services.
|
|
||||||
|
|
||||||
:::info[Todo]
|
|
||||||
Difference between unique and global endpoints.
|
|
||||||
:::
|
|
||||||
|
|
||||||
## Fingerprint Resistance
|
|
||||||
|
|
||||||
Fingerprint Resistance, also known as Traffic Obfuscation, is an anti-censorship strategy that attempts to make it difficult to identify the destination, parties, and content of Internet traffic.
|
|
||||||
This is more commonly used for general censorship circumvention solutions rather than means of accessing specific resources.
|
|
||||||
There is a long tail of types of traffic on the Internet, including critical infrastructure communications like industrial control systems, point-of-sale systems and security systems.
|
|
||||||
This can be exploited by circumvention systems by making their traffic look like one of these unclassified systems.
|
|
||||||
Not being able to accurately identify the traffic means that the cost of blocking access is unknown, and so it is more difficult for a censor to justify the block.
|
|
||||||
|
|
||||||
## Probe Resistance
|
|
||||||
|
|
||||||
:::info[Todo]
|
|
||||||
Write text.
|
|
||||||
:::
|
|
55
docs/censorship/web.mdx
Normal file
55
docs/censorship/web.mdx
Normal file
|
@ -0,0 +1,55 @@
|
||||||
|
---
|
||||||
|
title: The World Wide Web
|
||||||
|
sidebar_position: 20
|
||||||
|
---
|
||||||
|
|
||||||
|
As the web has become an integral part of everyday life, with many using it as their primary source of news, governments
|
||||||
|
are employing various techniques to control online content just as they have with literature, newspapers, radio, and
|
||||||
|
television in the past.
|
||||||
|
|
||||||
|
Publishing content online has a far lower barrier to entry than publishing a book or a newspaper, or operating a radio
|
||||||
|
station.
|
||||||
|
This democratization of content creation has led to an explosion of diverse voices and perspectives, but has also
|
||||||
|
become a target for censorship as governments wish to suppress content they find undesirable.
|
||||||
|
|
||||||
|
The way that web content is consumed is also different to the previous means of publishing.
|
||||||
|
To read an article online, there is a one-to-one exchange between the reader's device and the publisher's server.
|
||||||
|
This exchange needs to be carried over one or more Internet Service Provider (ISP) networks.
|
||||||
|
This highlights the connection between privacy and online censorship, as it is not possible to implement such censorship
|
||||||
|
unless there is a device that attempts to know what it is that the reader has requested in order to decide whether to
|
||||||
|
allow access.
|
||||||
|
|
||||||
|
Below are some notable examples of contemporary censorship efforts:
|
||||||
|
|
||||||
|
* The Great Firewall of **China** (GFW) is a sophisticated system of censorship and surveillance implemented by the
|
||||||
|
Chinese government.
|
||||||
|
The GFW effectively isolates Chinese internet users from global discourse, limiting exposure to foreign ideas and
|
||||||
|
information that contradict the state narrative.
|
||||||
|
Further to the direct censorship, the surveillance capabilities lead to self-censorship too where users are afraid
|
||||||
|
to search for dissenting views and ideas.
|
||||||
|
* In recent years, **Russia** has enacted stringent media laws aimed at controlling the flow of information and
|
||||||
|
suppressing dissent.
|
||||||
|
The government has the authority to block websites and remove content deemed "extremist" or harmful to state
|
||||||
|
interests.
|
||||||
|
These measures have led to a significant decline in independent journalism and a stifling of free expression, as many
|
||||||
|
journalists face harassment or legal repercussions for their work.
|
||||||
|
* **Turkey** has increasingly employed censorship to control media narratives and suppress dissent, particularly
|
||||||
|
following the 2016 coup attempt.
|
||||||
|
The government frequently blocks access to social media platforms during times of unrest or political sensitivity.
|
||||||
|
Authorities can order the removal of content that is critical of the government or its policies.
|
||||||
|
Journalists and citizens face prosecution for "insulting" the president or spreading "terrorist propaganda."
|
||||||
|
* **Iran** employs extensive censorship to control the narrative and suppress dissenting voices, particularly regarding
|
||||||
|
political and social issues.
|
||||||
|
The government blocks access to numerous websites, including social media platforms and news outlets that do not align
|
||||||
|
with state ideology.
|
||||||
|
Online activities are closely monitored, with authorities tracking users' communications and internet usage.
|
||||||
|
Individuals who share dissenting views online can face imprisonment or other severe penalties.
|
||||||
|
The pervasive censorship in Iran stifles free expression and limits the public's ability to engage with diverse
|
||||||
|
perspectives, fostering an environment of fear and repression.
|
||||||
|
|
||||||
|
All of these countries, however, rely on web access to support economic activity.
|
||||||
|
Being able to send and receive emails is a critical capability to engage with modern business, to send a purchase order,
|
||||||
|
to receive an invoice, or to request a price list.
|
||||||
|
eCommerce, electronic funds transfer, electronic data interchange for billing and shipping, and automated stock exchange
|
||||||
|
platforms all rely on an internet connection.
|
||||||
|
It is this fact that supports our main weapon against online censorship: **Collateral Freedom**.
|
26
docs/mirrors/index.mdx
Normal file
26
docs/mirrors/index.mdx
Normal file
|
@ -0,0 +1,26 @@
|
||||||
|
---
|
||||||
|
title: Overview
|
||||||
|
sidebar_position: 0
|
||||||
|
---
|
||||||
|
|
||||||
|
A web mirror can help users by providing alternate URLs to access censored resources, allowing them to bypass censorship
|
||||||
|
and access information that may be otherwise blocked.
|
||||||
|
Web mirrors work by forwarding requests to the original website, and providing a different URL to access that content.
|
||||||
|
|
||||||
|
Dynamic web mirrors use frequently changing URLs to evade censorship, making it more difficult for censors to maintain
|
||||||
|
blocks for the content.
|
||||||
|
This assumption of a limited lifetime is built-in to the system, allowing for automated block detection to trigger the
|
||||||
|
deployment of new URLs, and for the new URLs to be made available via the portal, the API, and via dead drops.
|
||||||
|
|
||||||
|
Named web mirrors use alternative domain names with limited distribution to evade censorship.
|
||||||
|
By blending with the "long tail" of web traffic, it may take longer for these mirrors to be discovered.
|
||||||
|
|
||||||
|
Web mirrors can be accessed via a normal web browser, making them easily accessible to users without requiring any
|
||||||
|
special software or technical knowledge.
|
||||||
|
|
||||||
|
<figure style={{"text-align": "center"}}>
|
||||||
|
<img src="/img/mirrors/overview.png" style={{"max-width": "100%", "max-height": "500px"}} />
|
||||||
|
<figcaption style={{"font-weight": "bold"}}>
|
||||||
|
The jasima.app portal overview for web mirrors
|
||||||
|
</figcaption>
|
||||||
|
</figure>
|
32
docs/mirrors/troubleshooting.mdx
Normal file
32
docs/mirrors/troubleshooting.mdx
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
---
|
||||||
|
title: Troubleshooting
|
||||||
|
sidebar_position: 100
|
||||||
|
---
|
||||||
|
|
||||||
|
We have collected solutions to common issued faced by web mirrors users.
|
||||||
|
If you are unable to resolve your issue, please [get in touch](/contact) with us to discuss the options.
|
||||||
|
|
||||||
|
## Upstream Rate Limiting
|
||||||
|
|
||||||
|
CDNs (Content Delivery Networks) can impose rate limiting or "bot detection" on websites to ensure that the network
|
||||||
|
resources are efficiently utilized, to protect the websites from Denial of Service (DoS) attacks, and to
|
||||||
|
maintain the quality of service for all the websites using the CDN.
|
||||||
|
If you find that mirrors are producing many “Rate Limited Exceeded” or “Access Denied” errors then you may be suffering
|
||||||
|
from this problem.
|
||||||
|
|
||||||
|
These rate limits will be sized according to the expected rate of requests from an average user, however the mirror
|
||||||
|
system is a bottleneck that aggregates requests from multiple users and passes these on to the original CDN.
|
||||||
|
When a single system is used to send a large number of requests to a CDN like this, the CDN may interpret this as a
|
||||||
|
DoS attack and prevent access to the website.
|
||||||
|
|
||||||
|
The optimal approach is to configure the origin to use an alternative host for connections, so that the CDN is bypassed
|
||||||
|
and the backend origin (web server) is used directly.
|
||||||
|
The mirror will still be the access point for users and this will not reveal the location of the backend origin to your
|
||||||
|
users.
|
||||||
|
|
||||||
|
If this is not possible, then deploying mirrors for websites hosted on CDNs will require either configuration at, or
|
||||||
|
co-operation from, the CDN provider.
|
||||||
|
Additional headers can be configured for the origin to authenticate requests that originate from jasima.app, and these
|
||||||
|
can be used to bypass the protection mechanisms at your CDN.
|
||||||
|
Consult your CDN's documentation or contact their support team to configure using an additional header to disable the
|
||||||
|
rate limiting for requests originating from jasima.app.
|
|
@ -73,13 +73,13 @@ const config: Config = {
|
||||||
items: [
|
items: [
|
||||||
{
|
{
|
||||||
type: 'docSidebar',
|
type: 'docSidebar',
|
||||||
sidebarId: 'tutorialSidebar',
|
sidebarId: 'docsSidebar',
|
||||||
position: 'left',
|
position: 'left',
|
||||||
label: 'Docs',
|
label: 'Docs',
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
type: 'docSidebar',
|
type: 'docSidebar',
|
||||||
sidebarId: 'apisidebar',
|
sidebarId: 'apiSidebar',
|
||||||
position: 'left',
|
position: 'left',
|
||||||
label: 'API',
|
label: 'API',
|
||||||
},
|
},
|
||||||
|
@ -100,6 +100,10 @@ const config: Config = {
|
||||||
label: 'Censorship 101',
|
label: 'Censorship 101',
|
||||||
to: '/docs/censorship/',
|
to: '/docs/censorship/',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
label: 'Web Mirrors',
|
||||||
|
to: '/docs/mirrors/',
|
||||||
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|
37
sidebars.ts
37
sidebars.ts
|
@ -1,34 +1,17 @@
|
||||||
import type {SidebarsConfig} from '@docusaurus/plugin-content-docs';
|
import type {SidebarsConfig} from '@docusaurus/plugin-content-docs';
|
||||||
import * as apiSidebar from './docs/api/sidebar';
|
import * as apiSidebar from './docs/api/sidebar';
|
||||||
|
|
||||||
// This runs in Node.js - Don't use client-side code here (browser APIs, JSX...)
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Creating a sidebar enables you to:
|
|
||||||
- create an ordered group of docs
|
|
||||||
- render a sidebar for each doc of that group
|
|
||||||
- provide next/previous navigation
|
|
||||||
|
|
||||||
The sidebars can be generated from the filesystem, or explicitly defined here.
|
|
||||||
|
|
||||||
Create as many sidebars as you want.
|
|
||||||
*/
|
|
||||||
const sidebars: SidebarsConfig = {
|
const sidebars: SidebarsConfig = {
|
||||||
// By default, Docusaurus generates a sidebar from the docs folder structure
|
docsSidebar: ['welcome', {
|
||||||
tutorialSidebar: ['welcome', {'label': "Censorship 101", 'type': "category", items: [{'type': 'autogenerated', dirName: 'censorship'}]}],
|
'label': "Censorship 101",
|
||||||
apisidebar: apiSidebar.default,
|
'type': "category",
|
||||||
// But you can create a sidebar manually
|
items: [{'type': 'autogenerated', dirName: 'censorship'}]
|
||||||
/*
|
},{
|
||||||
tutorialSidebar: [
|
'label': "Web Mirrors",
|
||||||
'intro',
|
'type': "category",
|
||||||
'hello',
|
items: [{'type': 'autogenerated', dirName: 'mirrors'}]
|
||||||
{
|
}],
|
||||||
type: 'category',
|
apiSidebar: apiSidebar.default,
|
||||||
label: 'Tutorial',
|
|
||||||
items: ['tutorial-basics/create-a-document'],
|
|
||||||
},
|
|
||||||
],
|
|
||||||
*/
|
|
||||||
};
|
};
|
||||||
|
|
||||||
export default sidebars;
|
export default sidebars;
|
||||||
|
|
BIN
static/img/mirrors/overview.png
Normal file
BIN
static/img/mirrors/overview.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 767 KiB |
Loading…
Add table
Add a link
Reference in a new issue