Rebuild du site sur Astro : i18n multilingue, faits verifies, Docker, CI, tests

- Astro statique, EN par defaut + /fr/ + /nl/, detection langue navigateur
- i18n par fichiers JSON, ajouter une langue = ajouter des traductions
- Contenu original porte a l'identique (diff d'inventaire par langue)
- Chronologie legislative corrigee sur sources primaires (PE, Conseil, votes)
- Timeline 23 precedents + observatoire 35 items + annuaire 66 outils FOSS,
  chaque affirmation verifiee et sourcee
- Zero requete tierce (teste), lisible JS coupe, axe WCAG AA x2 themes
- Version offline monofichier par langue a chaque build
- Docker multi-stage vers nginx + CSP stricte auto-generee
- CI GitHub Actions (SHA-pinnees) + verification hebdo des liens
- CONTRIBUTING : divulgation d'affiliation obligatoire, allowlist de
  domaines testee en CI
This commit is contained in:
Aurealibe
2026-07-10 03:52:49 +01:00
parent 88b2f9bfd4
commit 8ebc1da9e4
181 changed files with 28167 additions and 2042 deletions
+47
View File
@@ -0,0 +1,47 @@
---
// PART 18 — allied initiatives (src/data/allies.json + per-locale roles):
// two grids of 8, the campaigns fighting and the documentation projects
// keeping the receipts. Names link out through Ext only.
import { useT, type Locale } from '../i18n/config'
import { ALLY_GROUPS, loadDataset } from '../lib/content'
import Ext from './Ext.astro'
interface Props {
locale: Locale
}
const { locale } = Astro.props
const t = useT(locale)
const allies = loadDataset('allies', locale)
const groups = ALLY_GROUPS.map((group) => ({
group,
rows: allies.filter((a) => a.group === group),
}))
---
<section id="allies">
<p class="eyebrow">{t('sections2.allies.eyebrow')}</p>
<h2>{t('sections2.allies.title')}</h2>
<p class="text-dim">{t('sections2.allies.intro')}</p>
{
groups.map(({ group, rows }) => (
<>
<h3 class="mt-6 mb-2 text-base">{t(`sections2.allies.${group}`)}</h3>
<ul class="m-0 grid list-none gap-2 p-0 sm:grid-cols-2">
{rows.map((a) => (
<li id={a.id} class="m-0 rounded-dossier border border-rule bg-surface p-3">
<p class="m-0 flex flex-wrap items-baseline gap-x-2">
<Ext href={a.url} class="font-bold">
{a.name}
</Ext>
<span class="font-mono text-xs text-dim">{a.displayUrl}</span>
</p>
<p class="mt-1 mb-0 text-sm leading-5 text-dim">{a.role}</p>
</li>
))}
</ul>
</>
))
}
</section>
+126
View File
@@ -0,0 +1,126 @@
---
// PART 20 — the 14-step migration checklist (src/data/checklist.json +
// per-locale prose). Real checkboxes, server-rendered: with JS off they
// still toggle natively, they just don't persist. The script persists the
// checked ids to localStorage ("ecc-checklist", a JSON array) and keeps the
// progress line current; the server renders the 0-state.
import { useT, type Locale } from '../i18n/config'
import { loadDataset, type ChecklistLevel } from '../lib/content'
import { mdToHtml } from '../lib/md'
interface Props {
locale: Locale
}
const { locale } = Astro.props
const t = useT(locale)
const items = loadDataset('checklist', locale)
const template = t('sections2.checklist.progress') // "{done} / {total} …"
const initialProgress = template.replace('{done}', '0').replace('{total}', String(items.length))
const LEVEL_CLASS: Record<ChecklistLevel, string> = {
green: 'border-lvl1 text-lvl1',
yellow: 'border-lvl2 text-lvl2',
red: 'border-lvl3 text-lvl3',
}
---
<section id="checklist">
<p class="eyebrow">{t('sections2.checklist.eyebrow')}</p>
<h2>{t('sections2.checklist.title')}</h2>
<p class="text-dim">{t('sections2.checklist.intro')}</p>
<div data-checklist>
<p
data-checklist-progress
data-template={template}
aria-live="polite"
class="font-mono text-sm font-bold text-accent"
>
{initialProgress}
</p>
<ul class="m-0 list-none p-0">
{
items.map((item) => (
<li
id={item.id}
class="my-2 flex items-start gap-3 rounded-dossier border border-rule bg-surface p-3"
>
<input
type="checkbox"
id={`check-${item.id}`}
value={item.id}
class="mt-1.5 size-4 shrink-0 cursor-pointer accent-accent"
/>
<label for={`check-${item.id}`} class="cursor-pointer text-sm leading-6">
<span set:html={mdToHtml(item.body)} />
<span
class={`ms-1 rounded-dossier border px-1 py-0.5 align-middle font-mono text-[0.65rem] whitespace-nowrap ${LEVEL_CLASS[item.level]}`}
>
{t(`sections2.checklist.levels.${item.level}`)}
</span>
</label>
</li>
))
}
</ul>
</div>
</section>
<script>
// Persistence is enhancement only: localStorage key "ecc-checklist" holds
// the JSON array of checked ids. Change handling is delegated on document
// (registers once, survives ClientRouter swaps); restore re-runs on every
// astro:page-load since the swap replaces the DOM.
const KEY = 'ecc-checklist'
const readSaved = (): string[] => {
try {
const parsed: unknown = JSON.parse(localStorage.getItem(KEY) ?? '[]')
return Array.isArray(parsed) ? parsed.filter((x): x is string => typeof x === 'string') : []
} catch {
/* private mode or corrupted value: start unchecked */
return []
}
}
const boxes = (root: HTMLElement) => [
...root.querySelectorAll<HTMLInputElement>('input[type="checkbox"]'),
]
const updateProgress = (root: HTMLElement) => {
const line = root.querySelector<HTMLElement>('[data-checklist-progress]')
if (!line) return
const all = boxes(root)
const done = all.filter((b) => b.checked).length
line.textContent = (line.dataset.template ?? '{done} / {total}')
.replace('{done}', String(done))
.replace('{total}', String(all.length))
}
const restore = () => {
const root = document.querySelector<HTMLElement>('[data-checklist]')
if (!root) return
const saved = new Set(readSaved())
for (const box of boxes(root)) box.checked = saved.has(box.value)
updateProgress(root)
}
document.addEventListener('change', (e) => {
const box = e.target as HTMLInputElement
const root = box.closest?.('[data-checklist]') as HTMLElement | null
if (!root || box.type !== 'checkbox') return
const checked = boxes(root)
.filter((b) => b.checked)
.map((b) => b.value)
try {
localStorage.setItem(KEY, JSON.stringify(checked))
} catch {
/* private mode: ticks apply for this page only */
}
updateProgress(root)
})
restore()
document.addEventListener('astro:page-load', restore)
</script>
+52
View File
@@ -0,0 +1,52 @@
---
// PART 19 — the open-source directory: 66 tools in 14 categories
// (src/data/directory.json + per-locale one-line roles). Uniform compact
// cards — deliberately NO featured/highlighted entry (that concept was
// removed after PR #1; tests/unit/dist-links.test.ts asserts the smuggled
// domains never come back). Category headings carry dir-<category> anchors.
import { useT, type Locale } from '../i18n/config'
import { DIRECTORY_CATEGORIES, loadDataset } from '../lib/content'
import { mdToHtml } from '../lib/md'
import Ext from './Ext.astro'
interface Props {
locale: Locale
}
const { locale } = Astro.props
const t = useT(locale)
const entries = loadDataset('directory', locale)
const byCategory = DIRECTORY_CATEGORIES.map((category) => ({
category,
rows: entries.filter((e) => e.category === category),
}))
---
<section id="directory">
<p class="eyebrow">{t('sections2.directory.eyebrow')}</p>
<h2>{t('sections2.directory.title')}</h2>
<p class="text-dim">{t('sections2.directory.intro')}</p>
{
byCategory.map(({ category, rows }) => (
<>
<h3 id={`dir-${category}`} class="mt-6 mb-2 text-base">
{t(`sections2.directory.categories.${category}`)}
</h3>
<ul class="m-0 grid list-none gap-2 p-0 sm:grid-cols-2">
{rows.map((e) => (
<li id={e.id} class="m-0 rounded-dossier border border-rule bg-surface p-3">
<p class="m-0 flex items-baseline justify-between gap-2">
<Ext href={e.url} class="font-bold">
{e.name}
</Ext>
<span class="font-mono text-xs whitespace-nowrap text-dim">{e.license}</span>
</p>
<p class="mt-1 mb-0 text-sm leading-5 text-dim" set:html={mdToHtml(e.body)} />
</li>
))}
</ul>
</>
))
}
</section>
+16
View File
@@ -0,0 +1,16 @@
---
// The ONLY way to render an external link. Enforces the site's link policy:
// every external anchor carries rel="noopener noreferrer" — no exceptions,
// no per-link rel overrides (that's how PR #1 smuggled follow backlinks).
interface Props {
href: string
class?: string
}
const { href, class: className } = Astro.props
if (!href.startsWith('https://')) {
throw new Error(`Ext: external links must be https:// (got ${href})`)
}
---
<a href={href} target="_blank" rel="noopener noreferrer" class={className}><slot /></a>
+42
View File
@@ -0,0 +1,42 @@
---
// A row of filter <button>s for the observatory. A button only flips a data
// attribute on the section root (script in Observatory.astro) — the hiding
// itself is pure CSS, so with JS off the bar is inert and all items stay
// visible (the buttons are enhancement, never a gate on content).
interface Option {
value: string
label: string
}
interface Props {
group: string // e.g. "region" | "theme" → data-obs-<group> on the section
label: string // localized group label
allLabel: string // localized "All" (value "" = attribute removed)
options: Option[]
}
const { group, label, allLabel, options } = Astro.props
const btn =
'cursor-pointer rounded-dossier border border-rule bg-surface-2 px-2 py-0.5 font-mono text-xs text-ink hover:border-accent aria-pressed:border-accent aria-pressed:bg-accent aria-pressed:text-on-accent'
---
<div class="filterbar my-2 flex flex-wrap items-baseline gap-2" role="group" aria-label={label}>
<span class="min-w-16 font-mono text-xs tracking-wide text-dim uppercase">{label}</span>
<button type="button" data-obs-filter={group} data-value="" aria-pressed="true" class={btn}>
{allLabel}
</button>
{
options.map((o) => (
<button
type="button"
data-obs-filter={group}
data-value={o.value}
aria-pressed="false"
class={btn}
>
{o.label}
</button>
))
}
</div>
+118
View File
@@ -0,0 +1,118 @@
---
import { localePath, useT, type Locale } from '../i18n/config'
import Ext from './Ext.astro'
interface Props {
locale: Locale
}
const { locale } = Astro.props
const t = useT(locale)
const resources = [
{ href: 'https://www.privacyguides.org', label: 'Privacy Guides' },
{ href: 'https://ssd.eff.org', label: 'EFF · Surveillance Self-Defense' },
{ href: 'https://freedom.press', label: 'Freedom of the Press Foundation' },
{ href: 'https://fightchatcontrol.eu', label: 'Fight Chat Control' },
]
// Legislative sources — verified primary sources first (see docs/RESEARCH
// notes in the repo history: EP press release + official roll-calls replace
// the secondary blog sources the old version leaned on).
const sources = [
{
href: 'https://www.europarl.europa.eu/news/en/press-room/20260706IPR46318/',
key: 'ep0907',
},
{ href: 'https://howtheyvote.eu/votes/195775', key: 'rollcalls' },
{
href: 'https://www.consilium.europa.eu/en/press/press-releases/2026/07/02/council-moves-to-reinstate-interim-measure-to-combat-child-sexual-abuse-online/',
key: 'council0207',
},
{
href: 'https://www.europarl.europa.eu/news/en/press-room/20260325IPR39207/child-sexual-abuse-online-voluntary-detection-measures-will-not-be-extended',
key: 'ep2603',
},
{
href: 'https://www.edps.europa.eu/system/files/2026-02/26-02-16_opinion-extending-application-regulation-2021-1232_en.pdf',
key: 'edps',
},
{ href: 'https://eur-lex.europa.eu/eli/reg/2021/1232/oj', key: 'reg1232' },
{ href: 'https://fightchatcontrol.eu/chat-control-overview', key: 'ccOverview' },
{ href: 'https://proton.me/blog/why-client-side-scanning-isnt-the-answer', key: 'protonCss' },
{
href: 'https://values.snap.com/news/joint-statement-eu-eprivacy-derogation',
key: 'jointAppeal',
},
{ href: 'https://therecord.media/big-tech-vows-to-continue-csam-scanning', key: 'bigTechScan' },
]
const act = [
{ href: 'https://edri.org', label: 'European Digital Rights (EDRi)' },
{ href: 'https://stopscanningme.eu', label: 'Stop Scanning Me (EDRi)' },
{ href: 'https://fightchatcontrol.eu', label: 'Fight Chat Control' },
{ href: 'https://signal.org/blog/', label: 'Signal · blog' },
]
const offlineHref = `/exitchatcontrol-offline${locale === 'en' ? '' : `.${locale}`}.html`
const localeRoot = `${localePath(locale)}/`.replace('//', '/')
---
<footer class="mt-16 border-t border-rule-strong bg-surface">
<div class="wrap grid gap-8 py-10 sm:grid-cols-3">
<div>
<h4 class="text-sm">{t('footer.resources')}</h4>
<p class="text-sm leading-7">
{
resources.map((r) => (
<>
<Ext href={r.href}>{r.label}</Ext>
<br />
</>
))
}
</p>
</div>
<div>
<h4 class="text-sm">{t('footer.sourcesLaw')}</h4>
<p class="text-sm leading-7">
{
sources.map((s) => (
<>
<Ext href={s.href}>{t(`footer.links.${s.key}`)}</Ext>
<br />
</>
))
}
</p>
</div>
<div>
<h4 class="text-sm">{t('footer.act')}</h4>
<p class="text-sm leading-7">
{
act.map((a) => (
<>
<Ext href={a.href}>{a.label}</Ext>
<br />
</>
))
}
</p>
</div>
</div>
<div class="wrap pb-4 text-center font-mono text-xs">
<Ext href="https://github.com/Aurealibe/exitchatcontrol" class="ghlink">
{t('footer.github')}
</Ext>
<span class="inline-block w-3"></span>
<a href={offlineHref} download class="ghlink">⭳ {t('footer.download')}</a>
</div>
<div class="wrap pb-8">
<p class="text-sm"><strong>{t('footer.proofline')}</strong></p>
<small class="text-dim">
{t('footer.disclaimer')}
{t('footer.factsUpdated')}
<a href={localeRoot} class="text-dim">exitchatcontrol.org</a>
</small>
</div>
</footer>
+85
View File
@@ -0,0 +1,85 @@
---
// Composition root: renders every migrated guide section for one locale.
// Sections live in src/content/sections/<locale>/NN-<slug>.mdx; each keeps
// its LEGACY anchor id on the <section> wrapper so old deep links resolve.
// ToolCard is injected into the MDX scope via the components prop.
import { getCollection, render } from 'astro:content'
import { useT, type Locale } from '../i18n/config'
import Allies from './Allies.astro'
import Checklist from './Checklist.astro'
import Directory from './Directory.astro'
import Hero from './Hero.astro'
import Manifesto from './Manifesto.astro'
import Observatory from './Observatory.astro'
import ShareRow from './ShareRow.astro'
import StatusBanner from './StatusBanner.astro'
import Timeline from './Timeline.astro'
import ToolCard from './ToolCard.astro'
interface Props {
locale: Locale
}
const { locale } = Astro.props
const t = useT(locale)
const entries = await getCollection('sections', ({ id }) => id.startsWith(`${locale}/`))
entries.sort((a, b) => a.data.part - b.data.part || a.data.order - b.data.order)
const sections = await Promise.all(
entries.map(async (entry) => ({ data: entry.data, Content: (await render(entry)).Content })),
)
// The dataset-driven sections appended after the migrated guide, in reading
// order — also listed in the TOC below (titles from the same i18n keys).
const dataSections = ['precedents', 'observatory', 'allies', 'directory', 'checklist'].map(
(id) => ({ id, title: t(`sections2.${id}.title`) }),
)
// Sequential part numbering, 00…27 — mirrors the PART NN headers inside
// the sections (renumbered the same way).
const tocEntries = [
...sections.map(({ data }) => ({ id: data.id, title: data.title })),
...dataSections,
{ id: 'manifesto', title: t('manifesto.label') },
].map((s, i) => ({ ...s, prefix: String(i).padStart(2, '0') }))
---
<Hero locale={locale} />
<StatusBanner locale={locale} />
<main id="content" class="mx-auto max-w-3xl px-4 py-8">
<nav
id="toc"
aria-label={t('nav.toc')}
class="my-8 rounded-dossier border border-rule bg-surface p-5"
>
<p class="eyebrow mt-0 mb-3">{t('nav.toc')}</p>
<ul class="m-0 list-none gap-6 p-0 text-sm leading-7 sm:columns-2">
{
tocEntries.map((s) => (
<li class="m-0">
<a href={`#${s.id}`} class="text-ink no-underline hover:text-accent">
<span class="toc-p" aria-hidden="true">
{s.prefix}
</span>
{s.title}
</a>
</li>
))
}
</ul>
</nav>
{
sections.map(({ data, Content }) => (
<section id={data.id}>
<Content components={{ ToolCard }} />
</section>
))
}
<Timeline locale={locale} />
<Observatory locale={locale} />
<Allies locale={locale} />
<Directory locale={locale} />
<Checklist locale={locale} />
<Manifesto locale={locale} />
<ShareRow locale={locale} />
</main>
+28
View File
@@ -0,0 +1,28 @@
---
// The stamped-dossier hero, restored from the legacy site: rotated warning
// stamp, mono eyebrow, oversized typewriter title with blinking cursor,
// serif lede and the three reader-profile chips (their colors legend the
// 🟢🟡🔴 levels used across the guide).
import { useT, type Locale } from '../i18n/config'
interface Props {
locale: Locale
}
const { locale } = Astro.props
const t = useT(locale)
---
<header class="hero">
<div class="hero-inner">
<span class="stamp">{t('hero.stamp')}</span>
<p class="eyebrow">{t('hero.eyebrow')}</p>
<h1 id="top">EXIT CHAT CONTROL<span class="cursor">_</span></h1>
<p class="lede">{t('hero.lede')}</p>
<div class="hero-meta">
<span class="tag p1">{t('hero.p1')}</span>
<span class="tag p2">{t('hero.p2')}</span>
<span class="tag p3">{t('hero.p3')}</span>
</div>
</div>
</header>
+29
View File
@@ -0,0 +1,29 @@
---
// Brand icon from the build-time-embedded simple-icons set (CC0).
// Unknown slug → nothing renders; callers keep their monogram fallback.
import { BRAND_ICONS } from '../icons.generated'
interface Props {
slug: string
size?: number
class?: string
}
const { slug, size = 18, class: className } = Astro.props
const path = BRAND_ICONS[slug]
---
{
path && (
<svg
viewBox="0 0 24 24"
width={size}
height={size}
fill="currentColor"
aria-hidden="true"
class={className}
>
<path d={path} />
</svg>
)
}
+26
View File
@@ -0,0 +1,26 @@
---
// The closing manifesto, the guide's last word before the footer (owner's
// own copy). Inverted paper panel, typewriter mono, amber emphasis, the
// final phrase highlighted. p3 carries the fightchatcontrol.eu link via a
// {link} placeholder so word order stays free in every language.
import { useT, type Locale } from '../i18n/config'
import Ext from './Ext.astro'
interface Props {
locale: Locale
}
const { locale } = Astro.props
const t = useT(locale)
const [p3before, p3after] = t('manifesto.p3').split('{link}')
---
<section id="manifesto" class="manifesto">
<p class="eyebrow">{t('manifesto.label')}</p>
<p>{t('manifesto.p1')}</p>
<p><Fragment set:html={t('manifesto.p2')} /></p>
<p>
{p3before}<Ext href="https://fightchatcontrol.eu">fightchatcontrol.eu</Ext>{p3after}
</p>
<p>{t('manifesto.p4')}</p>
</section>
+138
View File
@@ -0,0 +1,138 @@
---
// PART 17 — the Big Brother observatory: 35 dated, sourced drift items
// (src/data/observatory.json + per-locale prose), filterable by region group
// and by theme. The filtering is attribute-driven CSS (see <style> below):
// the buttons only set data-obs-region / data-obs-theme on the section root,
// so the no-JS state is simply "everything visible".
import { useT, type Locale } from '../i18n/config'
import { loadDataset, THEMES, type Status } from '../lib/content'
import { mdToHtml } from '../lib/md'
import Ext from './Ext.astro'
import FilterBar from './FilterBar.astro'
interface Props {
locale: Locale
}
const { locale } = Astro.props
const t = useT(locale)
const items = [...loadDataset('observatory', locale)].sort((a, b) => a.date.localeCompare(b.date))
// The UI groups the 10 raw regions into the 3 chips the dataset guarantees
// are never empty (see tests/unit/content.test.ts): EU, France, World.
const REGION_GROUPS = ['eu', 'fr', 'world'] as const
type RegionGroup = (typeof REGION_GROUPS)[number]
const regionGroup = (region: string): RegionGroup =>
region === 'eu' ? 'eu' : region === 'fr' ? 'fr' : 'world'
const STATUS_CLASS: Record<Status, string> = {
en_vigueur: 'border-warn text-warn',
adopte: 'border-warn text-warn',
negociation: 'border-lvl2 text-lvl2',
propose: 'border-info text-info',
rejete: 'border-ok text-ok',
suspendu: 'border-ok text-ok',
revele: 'border-info text-info',
}
---
<section id="observatory">
<p class="eyebrow">{t('sections2.observatory.eyebrow')}</p>
<h2>{t('sections2.observatory.title')}</h2>
<p class="text-dim">{t('sections2.observatory.intro')}</p>
<FilterBar
group="region"
label={t('sections2.observatory.filterRegion')}
allLabel={t('sections2.observatory.all')}
options={REGION_GROUPS.map((g) => ({
value: g,
label: t(`sections2.observatory.regions.${g}`),
}))}
/>
<FilterBar
group="theme"
label={t('sections2.observatory.filterTheme')}
allLabel={t('sections2.observatory.all')}
options={THEMES.map((th) => ({ value: th, label: t(`sections2.observatory.themes.${th}`) }))}
/>
<div class="mt-4">
{
items.map((ev) => (
<article
id={ev.id}
class="obs-item my-5"
data-region={regionGroup(ev.region)}
data-themes={ev.themes.join(' ')}
>
<p class="m-0 flex flex-wrap items-baseline gap-x-2 gap-y-1">
<span class="font-mono text-sm font-bold">{ev.date}</span>
<span class="rounded-dossier border border-rule px-1.5 py-0.5 font-mono text-xs text-dim">
{t(`sections2.observatory.regions.${regionGroup(ev.region)}`)}
</span>
{ev.themes.map((th) => (
<span class="rounded-dossier border border-rule px-1.5 py-0.5 font-mono text-xs text-dim">
{t(`sections2.observatory.themes.${th}`)}
</span>
))}
<span
class={`rounded-dossier border px-1.5 py-0.5 font-mono text-xs tracking-wide uppercase ${STATUS_CLASS[ev.status]}`}
>
{t(`sections2.observatory.statuses.${ev.status}`)}
</span>
</p>
<h3 class="mt-1 mb-0 text-base">{ev.title}</h3>
<p class="my-1 text-sm leading-6" set:html={mdToHtml(ev.body)} />
<p class="mt-1 mb-0 font-mono text-xs">
<Ext href={ev.src.href} class="text-dim">
{ev.src.label} →
</Ext>
</p>
</article>
))
}
</div>
</section>
<style>
/* Attribute-driven filtering: one rule per chip value, mirroring
REGION_GROUPS and THEMES above. The buttons only flip the section's
data attributes — no attribute, nothing hidden (the no-JS state). */
section[data-obs-region='eu'] .obs-item:not([data-region='eu']),
section[data-obs-region='fr'] .obs-item:not([data-region='fr']),
section[data-obs-region='world'] .obs-item:not([data-region='world']),
section[data-obs-theme='messaging'] .obs-item:not([data-themes~='messaging']),
section[data-obs-theme='identity'] .obs-item:not([data-themes~='identity']),
section[data-obs-theme='money'] .obs-item:not([data-themes~='money']),
section[data-obs-theme='media'] .obs-item:not([data-themes~='media']),
section[data-obs-theme='aibio'] .obs-item:not([data-themes~='aibio']) {
display: none;
}
/* the printed dossier is always complete, whatever filters are active */
@media print {
.obs-item {
display: block !important;
}
}
</style>
<script>
// Delegated once per page lifecycle (survives ClientRouter swaps): a
// filter button sets/removes the section's data attribute and mirrors
// the pressed state on its own group's buttons.
document.addEventListener('click', (e) => {
const btn = (e.target as HTMLElement).closest<HTMLButtonElement>('[data-obs-filter]')
if (!btn) return
const root = btn.closest<HTMLElement>('#observatory')
if (!root) return
const group = btn.dataset.obsFilter ?? ''
const value = btn.dataset.value ?? ''
if (value) root.setAttribute(`data-obs-${group}`, value)
else root.removeAttribute(`data-obs-${group}`)
for (const other of root.querySelectorAll(`[data-obs-filter="${group}"]`)) {
other.setAttribute('aria-pressed', String(other === btn))
}
})
export {}
</script>
+84
View File
@@ -0,0 +1,84 @@
---
// Share / copy-link / print row at the end of the guide. Pure enhancement:
// the whole row is server-rendered hidden and revealed by script (none of
// the three actions can work without JS), and print.css hides .share-row on
// paper. The share button additionally stays hidden when the Web Share API
// is unsupported.
import { useT, type Locale } from '../i18n/config'
interface Props {
locale: Locale
}
const { locale } = Astro.props
const t = useT(locale)
const btn =
'cursor-pointer rounded-dossier border border-rule bg-surface-2 px-3 py-1.5 font-mono text-xs text-ink hover:border-accent'
---
<div
class="share-row mt-12 border-t border-rule pt-5"
data-share-row
aria-label={t('share.label')}
hidden
>
<p class="eyebrow mt-0 mb-3">{t('share.label')}</p>
<div class="flex flex-wrap gap-2">
<button type="button" data-share-action="share" class={btn} hidden>
{t('share.share')}
</button>
<button type="button" data-share-action="copy" data-copied={t('share.copied')} class={btn}>
{t('share.copy')}
</button>
<button type="button" data-share-action="print" class={btn}>
{t('share.print')}
</button>
</div>
</div>
<script>
// Reveal on load (and after every ClientRouter swap); actions delegated
// once on document.
const reveal = () => {
for (const row of document.querySelectorAll<HTMLElement>('[data-share-row]')) {
row.hidden = false
const share = row.querySelector<HTMLElement>('[data-share-action="share"]')
if (share) share.hidden = typeof navigator.share !== 'function'
}
}
document.addEventListener('click', async (e) => {
const btn = (e.target as HTMLElement).closest<HTMLButtonElement>('[data-share-action]')
if (!btn) return
const url = location.href.replace(/#.*$/, '')
const action = btn.dataset.shareAction
if (action === 'print') {
window.print()
return
}
if (action === 'share') {
try {
await navigator.share({ title: document.title, url })
} catch {
/* dismissed or unsupported: nothing to clean up */
}
return
}
if (action === 'copy') {
try {
await navigator.clipboard.writeText(url)
if (!btn.dataset.label) btn.dataset.label = btn.textContent ?? ''
btn.textContent = btn.dataset.copied ?? btn.dataset.label
window.setTimeout(() => {
btn.textContent = btn.dataset.label ?? ''
}, 2000)
} catch {
/* clipboard unavailable (permissions, http): leave the label as-is */
}
}
})
reveal()
document.addEventListener('astro:page-load', reveal)
</script>
+35
View File
@@ -0,0 +1,35 @@
---
// The legislative status banner — the legacy "Dernière minute" band look
// (full-width strip, pulsing red dot, mono warn label), carrying the
// VERIFIED status: every claim is primary-sourced (EP press release
// 20260706IPR46318 + official roll-calls). When the Council answers
// (deadline ≈ 9 Oct 2026), update THIS component's i18n keys (status.*).
import { useT, type Locale } from '../i18n/config'
import Ext from './Ext.astro'
interface Props {
locale: Locale
}
const { locale } = Astro.props
const t = useT(locale)
---
<aside aria-label={t('status.label')} class="status">
<div class="wrap status-inner">
<span class="dot" aria-hidden="true"></span>
<div>
<b>{t('status.label')}</b>
<p class="status-headline">{t('status.headline')}</p>
<p>{t('status.body')}</p>
<p class="status-cta">{t('status.cta')}</p>
<p class="status-sources">
<Ext href="https://www.europarl.europa.eu/news/en/press-room/20260706IPR46318/">
{t('status.sourceEp')}
</Ext>
·
<Ext href="https://howtheyvote.eu/votes/195775">{t('status.sourceVotes')}</Ext>
</p>
</div>
</div>
</aside>
+79
View File
@@ -0,0 +1,79 @@
---
// PART 16 — the precedents timeline: 23 dated, sourced, citable events
// (src/data/events.json + per-locale prose). Fully server-rendered; the only
// "interaction" is the native :target highlight when an entry is cited via
// its #tl-<id> anchor. Every source goes through Ext / the md helper, so the
// rel policy holds everywhere.
import { useT, type Locale } from '../i18n/config'
import { loadDataset, type EventKind } from '../lib/content'
import { mdToHtml } from '../lib/md'
import Ext from './Ext.astro'
interface Props {
locale: Locale
}
const { locale } = Astro.props
const t = useT(locale)
const events = [...loadDataset('events', locale)].sort((a, b) => a.date.localeCompare(b.date))
// kind → chip color (design tokens); labels come from the dictionaries
const KIND_CLASS: Record<EventKind, string> = {
promise: 'border-lvl2 text-lvl2',
creep: 'border-warn text-warn',
struck: 'border-ok text-ok',
revealed: 'border-info text-info',
}
---
<section id="precedents">
<p class="eyebrow">{t('sections2.precedents.eyebrow')}</p>
<h2>{t('sections2.precedents.title')}</h2>
<p class="text-dim">{t('sections2.precedents.intro')}</p>
<ol class="m-0 mt-6 list-none border-s border-rule-strong p-0 ps-5">
{
events.map((ev) => (
<li id={`tl-${ev.id}`} class="tl-item relative my-6 p-2">
<p class="m-0 flex flex-wrap items-baseline gap-x-3 gap-y-1">
<a href={`#tl-${ev.id}`} class="font-mono text-sm font-bold no-underline">
<time datetime={ev.date}>{ev.date}</time>
</a>
<span
class={`rounded-dossier border px-1.5 py-0.5 font-mono text-xs tracking-wide uppercase ${KIND_CLASS[ev.kind]}`}
>
{t(`sections2.precedents.kinds.${ev.kind}`)}
</span>
</p>
<h3 class="mt-1 mb-0 text-base">{ev.title}</h3>
<p class="my-1 text-sm leading-6" set:html={mdToHtml(ev.body)} />
<p class="mt-1 mb-0 font-mono text-xs">
<Ext href={ev.src.href} class="text-dim">
{ev.src.label} →
</Ext>
</p>
</li>
))
}
</ol>
</section>
<style>
/* the dot on the timeline rail */
.tl-item::before {
content: '';
position: absolute;
left: calc(-1.25rem - 3.5px);
top: 1.05rem;
width: 7px;
height: 7px;
border-radius: 50%;
background: var(--accent);
}
/* :target = the cited entry — stamp it so the deep link is visible */
.tl-item:target {
background: var(--surface);
outline: 1px solid var(--accent);
border-radius: var(--radius-dossier);
}
</style>
+120
View File
@@ -0,0 +1,120 @@
---
// Tool card shell. Language-neutral facts (name, links, level, icon…) come
// from src/data/tools.json, looked up by the `tool` id prop — the same ids the
// legacy page used (#t-signal, …). Localized prose arrives through named
// slots, mirroring the legacy card structure:
// name — display name, only when the legacy name carried localized text
// tags — the tag row (level, "replaces X", jurisdiction/licence)
// what — "What it's for"
// why — "Why it matters"
// who — "For whom & when"
// extra — optional callout between the fields and the install steps
// install — the step list of the "Install & use" disclosure
// links — optional localized footer links (neutral ones come from JSON)
// The field labels below reproduce the legacy CSS-generated label strings.
import tools from '../data/tools.json'
import { BRAND_ICONS } from '../icons.generated'
import { defaultLocale, type Locale } from '../i18n/config'
interface Props {
tool: string
}
const { tool: toolId } = Astro.props
const tool = tools.find((t) => t.id === toolId)
if (!tool) {
throw new Error(`ToolCard: unknown tool id "${toolId}" (not in src/data/tools.json)`)
}
// Tile ink picked by WCAG contrast against the brand color — white ink fails
// on several light brands (the axe lesson from the reviewed PR).
function luminance(hex: string): number {
const n = hex.replace('#', '')
const [r, g, b] = [0, 2, 4].map((i) => {
const c = parseInt(n.slice(i, i + 2), 16) / 255
return c <= 0.04045 ? c / 12.92 : ((c + 0.055) / 1.055) ** 2.4
})
return 0.2126 * r! + 0.7152 * g! + 0.0722 * b!
}
const brand = tool.color ?? '#7d5a10'
const ink = (() => {
const L = luminance(brand)
const white = 1.05 / (L + 0.05)
const dark = (L + 0.05) / 0.05
return white >= dark ? '#faf7ee' : '#14161a'
})()
const iconPath = tool.iconSlug ? BRAND_ICONS[tool.iconSlug] : undefined
const locale = (Astro.currentLocale ?? defaultLocale) as Locale
const LABELS: Record<Locale, { what: string; why: string; who: string; install: string }> = {
en: {
what: "What it's for",
why: 'Why it matters',
who: 'For whom & when',
install: 'Install & use',
},
fr: {
what: 'À quoi ça sert',
why: 'Pourquoi',
who: 'Pour qui & quand',
install: 'Installer & utiliser',
},
nl: {
what: 'Waarvoor dient het',
why: 'Waarom het ertoe doet',
who: 'Voor wie & wanneer',
install: 'Installeren & gebruiken',
},
}
const labels = LABELS[locale]
---
<article class="tool-card" id={tool.id} data-level={tool.level ?? undefined}>
<header class="tool-head">
<span class="tool-logo" aria-hidden="true" style={`--b:${brand};--ink-on-brand:${ink}`}>
{
iconPath ? (
<svg viewBox="0 0 24 24" fill="currentColor">
<path d={iconPath} />
</svg>
) : (
tool.monogram
)
}
</span>
<div class="tool-heading">
<h3 class="tool-name">{Astro.slots.has('name') ? <slot name="name" /> : tool.name}</h3>
{
Astro.slots.has('tags') && (
<div class="tool-tags">
<slot name="tags" />
</div>
)
}
</div>
</header>
<p class="tool-field"><b class="tool-label">{labels.what}</b> <slot name="what" /></p>
<p class="tool-field"><b class="tool-label">{labels.why}</b> <slot name="why" /></p>
<p class="tool-field"><b class="tool-label">{labels.who}</b> <slot name="who" /></p>
<slot name="extra" />
{
Astro.slots.has('install') && (
<details class="tool-install">
<summary>{labels.install}</summary>
<slot name="install" />
</details>
)
}
<footer class="tool-foot">
<slot name="links" />
{
tool.links.map((link) => (
<a class="tool-link" href={link.href} target="_blank" rel="noopener noreferrer">
{link.label} →
</a>
))
}
<span class="tool-note">{tool.profiles.join('')}</span>
</footer>
</article>
+99
View File
@@ -0,0 +1,99 @@
---
import { localeFlags, localeNames, localePath, locales, useT, type Locale } from '../i18n/config'
interface Props {
locale: Locale
}
const { locale } = Astro.props
const t = useT(locale)
---
<header class="topbar sticky top-0 z-40 border-b border-rule bg-surface/95 backdrop-blur-sm">
<div class="flex items-center gap-4 px-4 py-2">
<a
href={`${localePath(locale)}/`.replace('//', '/')}
class="font-mono text-sm font-bold tracking-wide no-underline"
>
EXIT CHAT CONTROL
</a>
<a href="#toc" class="font-mono text-xs text-dim no-underline hover:text-accent">
{t('nav.toc')}
</a>
<div class="ms-auto flex items-center gap-3">
<nav aria-label={t('nav.language')}>
<details class="lang-menu" data-lang-menu>
<summary
class="cursor-pointer rounded-dossier border border-rule bg-surface-2 px-2 py-1 font-mono text-xs font-bold"
>
<span aria-hidden="true">{localeFlags[locale]}</span>
{locale.toUpperCase()}
</summary>
<ul class="lang-list">
{
locales.map((l) => (
<li>
<a
href={`${localePath(l)}/`.replace('//', '/')}
data-lang-choice={l}
aria-current={l === locale ? 'page' : undefined}
class="lang-option"
>
<span aria-hidden="true">{localeFlags[l]}</span>
{localeNames[l]}
</a>
</li>
))
}
</ul>
</details>
</nav>
<button
type="button"
data-theme-toggle
aria-label={t('nav.themeToggle')}
class="cursor-pointer rounded-dossier border border-rule bg-surface-2 px-2 py-1 font-mono text-xs text-ink hover:border-accent"
>
</button>
</div>
</div>
</header>
<script>
// Delegated once per page lifecycle — survives ClientRouter swaps.
// Language choice: remember the reader's explicit pick so the root
// boot script honors it on the next visit.
document.addEventListener('click', (e) => {
const target = e.target as HTMLElement
const langLink = target.closest<HTMLElement>('[data-lang-choice]')
if (langLink) {
try {
localStorage.setItem('ecc-lang', langLink.dataset.langChoice ?? '')
} catch {
/* private mode: choice simply not persisted */
}
return
}
// close the language dropdown when clicking anywhere outside it
for (const menu of document.querySelectorAll<HTMLDetailsElement>('[data-lang-menu][open]')) {
if (!menu.contains(target)) menu.removeAttribute('open')
}
const toggle = target.closest<HTMLElement>('[data-theme-toggle]')
if (toggle) {
const root = document.documentElement
const current =
root.getAttribute('data-theme') ||
(window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light')
const next = current === 'dark' ? 'light' : 'dark'
root.setAttribute('data-theme', next)
try {
localStorage.setItem('ecc-theme', next)
} catch {
/* private mode: theme applies for this page only */
}
}
})
export {}
</script>
+18
View File
@@ -0,0 +1,18 @@
import { defineCollection, z } from 'astro:content'
import { glob } from 'astro/loaders'
// One entry per guide section per locale (src/content/sections/<locale>/NN-<slug>.mdx).
// `id` is the LEGACY anchor id of the section (e.g. "menace", "messagerie"):
// it must be preserved on the rendered <section> wrapper so every historical
// deep link keeps working.
const sections = defineCollection({
loader: glob({ pattern: '**/*.mdx', base: './src/content/sections' }),
schema: z.object({
id: z.string(),
part: z.number(),
order: z.number(),
title: z.string(),
}),
})
export const collections = { sections }
+159
View File
@@ -0,0 +1,159 @@
---
id: 'menace'
part: 0
order: 1
title: 'Understand the threat'
---
<p class="part-num">PART 00 · THE WHY</p>
## Understand the threat
Before you change tools, understand what you are protecting against. Otherwise you install random apps and feel safe when you are not.
### Chat Control 1.0 and 2.0, plainly
"Chat Control" is the nickname for two EU texts that allow (or would require) scanning your private messages for child sexual abuse material (CSAM). The stated goal is legitimate; the method, blanket scanning of the communications of unsuspected people, amounts to mass surveillance.
<div class="tablewrap">
<table>
<thead>
<tr>
<th></th>
<th>Chat Control 1.0</th>
<th>Chat Control 2.0 (CSAR)</th>
</tr>
</thead>
<tbody>
<tr>
<td>Text</td>
<td>Regulation (EU) 2021/1232, ePrivacy derogation</td>
<td>Proposal COM/2022/209 (Ylva Johansson, May 2022)</td>
</tr>
<tr>
<td>Scanning</td>
<td>
Voluntary, platforms <em>may</em> scan
</td>
<td>Mandatory via "detection orders" and "risk-mitigation measures"</td>
</tr>
<tr>
<td>Who</td>
<td>
Mostly unencrypted US services: Gmail, Messenger/Instagram, Skype, Snapchat, iCloud Mail,
Xbox
</td>
<td>
<strong>All</strong> platforms, including end-to-end encrypted messengers
</td>
</tr>
</tbody>
</table>
</div>
### Client-side scanning: the legal wiretap
The heart of Chat Control 2.0 is a technique called **client-side scanning**. The idea: instead of breaking encryption in transit, software is installed **directly on your phone** to inspect every message, photo or link **before** it is encrypted and sent. Signal put it in one line: it is "like malware on your device".
<div class="box honest">
<span class="lab">Technical honesty, read twice</span>
<p>
Against client-side scanning, <strong>neither a VPN nor end-to-end encryption is enough</strong>{' '}
if the app or the operating system cooperates. The scan happens on the device, before
encryption: the VPN has nothing to protect, and encryption kicks in too late. What actually
protects you is choosing{' '}
<strong>free/open-source software that refuses to implement scanning</strong>, favourable{' '}
<strong>jurisdictions</strong>, <strong>self-hosting</strong>, and{' '}
<strong>taking back control of your device</strong> (an untampered OS). Everything else in this
guide follows from this truth.
</p>
</div>
<div class="box warn">
<span class="lab">Worst of all: the tool doesn't even work</span>
<p>
Everyone's privacy is sacrificed for a technology that fails. The European Parliament's own
study concludes no system detects this content without a high error rate (because across
billions of messages, even a tiny false-positive rate yields millions of false accusations).
Irish police figures show it: of automated reports, only about 20% were actual material, and
over 11% were outright false positives. Landmark research ("Bugs in Our Pockets," 2021) further
shows that once client-side scanning is installed, it is inevitably repurposed (terrorism,
copyright, opinions).
</p>
</div>
### The pretext: "protecting children"
No one is against protecting minors, which is exactly what makes it such an effective lever. Fighting child abuse serves as an **emotional Trojan horse**: who would dare object? Under that banner, a principle is made acceptable that, on its own, would be flatly rejected, the automated inspection of the private communications of **hundreds of millions of unsuspected people**. Children are the stated motive; the real target is everyone's encryption and privacy.
The tell: the companies pushing hardest for this scanning are the ones whose business model **is** surveillance. On 19 March 2026, a joint appeal urged EU lawmakers to entrench "voluntary" detection, signed by:
<div class="namewall" aria-label="Google, LinkedIn, Snapchat, Microsoft, TikTok, Meta">
<span>Google</span>
<span>LinkedIn</span>
<span>Snapchat</span>
<span>Microsoft</span>
<span>TikTok</span>
<span>Meta</span>
</div>
<blockquote class="pull">
"Failure to do so would be irresponsible." The tech giants' argument for keeping message scanning
alive.
</blockquote>
Those same players even announced they would **keep scanning** messages after the legal basis lapsed on 4 April 2026. Citizens are thus asked to entrust the inspection of their intimate conversations to the very companies known for harvesting and monetising their data. This is the real face of Chat Control: an **attack on privacy** wrapped in a motive no one can refuse.
### This is not "just" surveillance
They try to reassure you: "it's only Gmail, Instagram, Snapchat, Messenger." That's false, and it's the most alarming part. Three shifts hide behind that downplaying.
1. **It's not targeting, it's dragnet.** This doesn't watch suspects: it installs systematic collection of entire populations' communications. Surveillance at state scale, continuously.
2. **It's no longer reading, it's the power to block.** Software that inspects a message before it's sent can also **refuse to send it**. Client-side scanning builds the infrastructure of prior censorship: blocking speech before it even reaches its recipient.
3. **Once the infrastructure exists, it gets repurposed.** A system built "for the children" becomes a general-purpose control tool. The motive changes; the machine stays.
<div class="box warn">
<span class="lab">The logical next step: the digital euro</span>
<p>
The same logic is about to reach your money. The ECB's digital euro rests on a{' '}
<strong>traceable</strong> currency, bars companies from holding any, and comes with a{' '}
<strong>holding cap</strong>: the ECB has floated about €3,000 per person as a working
assumption, and the position voted in the European Parliament's committee (June 2026) leaves the
cap for the Commission to set on the ECB's recommendation, reviewed every two years. The ECB
swears the currency won't be "programmable," but the cap and the traceability are very much on
the menu. When it lands, will you say "relax, it's only a cap"? That's the very same rhetorical
trap as "it's only Gmail." The real question is never what is controlled today, but the control
infrastructure being installed for tomorrow.
</p>
</div>
### Which profile are you?
No tool is magic and nobody needs to do everything. Find your profile: each section tells you how far to go.
<div class="profiles">
<div class="profile p1">
<div class="lvl lvl-1">Beginner</div>
<h4>🟢 The ordinary citizen</h4>
<p>
You just want your conversations and private life to stop being scanned and monetised. Goal:
everyday privacy, without becoming an expert.
</p>
</div>
<div class="profile p2">
<div class="lvl lvl-2">Intermediate</div>
<h4>🟡 The pseudonymous account</h4>
<p>
Information account, activist page, creator: you fear being deanonymised, doxxed, or losing
your account. Goal: separate your real identity from your public one.
</p>
</div>
<div class="profile p3">
<div class="lvl lvl-3">Advanced</div>
<h4>🔴 The whistleblower</h4>
<p>
Journalist, activist, source, facing a powerful adversary (state, employer). Goal: strong
anonymity, anti-correlation, passing documents without being caught.
</p>
</div>
</div>
+64
View File
@@ -0,0 +1,64 @@
---
id: 'memo'
part: 0
order: 2
title: 'Delete / Adopt'
---
<p class="part-num">PART 01 · MEMO · THE DIGITAL SWAP</p>
## Delete / Adopt
The big picture at a glance. Each tool is detailed in the numbered sections below.
<div class="swap">
<div class="swap-col del">
<div class="swap-h">Delete</div>
<ul>
<li>
WhatsApp <b>(Meta)</b>
</li>
<li>
Messenger <b>(Meta)</b>
</li>
<li>
Instagram <b>(Meta)</b>
</li>
<li>Snapchat</li>
<li>
Skype <b>(Microsoft)</b>
</li>
<li>Discord</li>
<li>
Gmail <b>(Google)</b>
</li>
<li>
Outlook <b>(Microsoft)</b>
</li>
<li>Google Drive / Photos</li>
<li>
OneDrive <b>(Microsoft)</b>
</li>
<li>TikTok</li>
<li>Telegram (normal chats)</li>
</ul>
</div>
<div class="swap-col keep">
<div class="swap-h">Adopt</div>
<ul>
<li>Signal</li>
<li>SimpleX Chat</li>
<li>Session</li>
<li>Bitchat</li>
<li>
Element <b>(Matrix)</b>
</li>
<li>Nostr</li>
<li>Mastodon</li>
<li>Proton Mail</li>
<li>Tuta Mail</li>
<li>Mullvad (VPN &amp; browser)</li>
<li>GrapheneOS</li>
</ul>
</div>
</div>
+241
View File
@@ -0,0 +1,241 @@
---
id: 'messagerie'
part: 1
order: 3
title: 'Encrypted messaging'
---
<p class="part-num">
PART 02 · FOUNDATIONS · <span class="lvl lvl-1">🟢</span>
</p>
## Encrypted messaging
The first move, the one that protects you fastest: leave WhatsApp, Messenger and Telegram for a genuinely encrypted (ideally open-source) messenger.
<div class="tablewrap">
<table>
<thead>
<tr>
<th>You leave</th>
<th>You adopt</th>
<th>Why</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<span class="old">WhatsApp</span>
</td>
<td>
<span class="new">Signal</span>
</td>
<td>Same simplicity, without Meta or metadata harvesting</td>
</tr>
<tr>
<td>
<span class="old">Messenger</span>
</td>
<td>
<span class="new">Signal / SimpleX</span>
</td>
<td>Messenger isn't E2EE by default and was scanned under Chat Control 1.0</td>
</tr>
<tr>
<td>
<span class="old">Telegram</span>
</td>
<td>
<span class="new">Signal / SimpleX</span>
</td>
<td>Telegram isn't end-to-end encrypted by default</td>
</tr>
</tbody>
</table>
</div>
<ToolCard tool="t-signal">
<Fragment slot="tags">
<span class="tool-tag">🟢 Beginner</span>
<span class="tool-tag">Replaces WhatsApp</span>
<span class="tool-tag">🇺🇸 · open-source</span>
</Fragment>
<Fragment slot="what">
An encrypted messenger for your texts, calls, video and groups. The direct replacement for
WhatsApp, just as simple.
</Fragment>
<Fragment slot="why">
End-to-end encryption by default, non-profit, an audited protocol that is the world standard.
Almost no metadata kept, and the team has pledged to leave the EU rather than install scanning.
</Fragment>
<Fragment slot="who">
Everyone, starting today. It's the first and most useful step. One catch: a phone number, which
you can hide behind a username.
</Fragment>
<ol slot="install">
<li>
Install from <b>signal.org</b> (App Store, Google Play, or the direct APK on Android).
</li>
<li>Confirm your number by SMS, then set a PIN.</li>
<li>
Settings &gt; Privacy: create a <b>username</b> to hide your number, and turn on{' '}
<b>registration lock</b>.
</li>
<li>Invite your contacts. On desktop, link the desktop app to your phone.</li>
</ol>
</ToolCard>
<ToolCard tool="t-simplex">
<Fragment slot="tags">
<span class="tool-tag">🟡 Intermediate</span>
<span class="tool-tag">No identifier</span>
<span class="tool-tag">🌍 · open-source</span>
</Fragment>
<Fragment slot="what">
An encrypted messenger with no account, no number and no identifier. You connect by sharing a
link or QR code.
</Fragment>
<Fragment slot="why">
By design, even the servers can't know who talks to whom. It's currently the strongest option
against metadata correlation.
</Fragment>
<Fragment slot="who">
Pseudonymous accounts, sensitive contacts, high-risk. A bit younger than Signal, with a few
rough edges.
</Fragment>
<ol slot="install">
<li>
Install from <b>simplex.chat</b> (F-Droid, Google Play, App Store or APK).
</li>
<li>
Pick a <b>local</b> display name (never your real name: it stays on your device).
</li>
<li>
To add a contact, share a <b>one-time invitation link</b> or a QR code.
</li>
<li>Turn on the passcode lock, and (advanced) configure your own SMP servers.</li>
</ol>
</ToolCard>
<ToolCard tool="t-session">
<Fragment slot="tags">
<span class="tool-tag">🟡 Intermediate</span>
<span class="tool-tag">No phone</span>
<span class="tool-tag">🌍 · open-source</span>
</Fragment>
<Fragment slot="what">
Signal-grade encryption, but with no phone number and onion routing.
</Fragment>
<Fragment slot="why">
Your identity is a random "Session ID." Traffic goes through a decentralised network (Lokinet)
that sharply reduces metadata.
</Fragment>
<Fragment slot="who">
When a phone number is a liability. Smaller ecosystem, best kept for conversations that matter.
</Fragment>
<ol slot="install">
<li>
Install from <b>getsession.org</b> (all platforms).
</li>
<li>
"Create account" generates your Session ID and a <b>recovery phrase</b>.
</li>
<li>Write the recovery phrase on paper: it's the only key to your account.</li>
<li>Share your Session ID (or QR) with your contacts.</li>
</ol>
</ToolCard>
<ToolCard tool="t-briar">
<Fragment slot="tags">
<span class="tool-tag">🔴 Advanced</span>
<span class="tool-tag">Offline / P2P</span>
<span class="tool-tag">Android · open-source</span>
</Fragment>
<Fragment slot="what">
A peer-to-peer messenger that works <b>with no internet</b>: over Bluetooth, Wi-Fi Direct or
Tor.
</Fragment>
<Fragment slot="why">
No server, so nothing to shut down or seize. Survives internet shutdowns and network censorship.
</Fragment>
<Fragment slot="who">
Protests, disasters, remote areas, blackouts. Android only, and both people need the app.
</Fragment>
<ol slot="install">
<li>
Install from <b>briarproject.org</b> or F-Droid (no iOS).
</li>
<li>
Create a <b>local</b> account (nickname + password), stored only on the phone.
</li>
<li>Add a nearby contact by scanning their QR code, or remotely via a link.</li>
<li>When the network is down, turn on Bluetooth: messages hop device to device.</li>
</ol>
</ToolCard>
<ToolCard tool="t-bitchat">
<Fragment slot="tags">
<span class="tool-tag">🔴 Advanced</span>
<span class="tool-tag">Bluetooth mesh</span>
<span class="tool-tag">🌍 · open-source</span>
</Fragment>
<Fragment slot="what">
Jack Dorsey's mesh messenger: nearby phones relay messages hop by hop, with no internet, server
or account.
</Fragment>
<Fragment slot="why">
End-to-end encryption (AES-256-GCM) and a "panic mode" that wipes everything with three taps on
the logo.
</Fragment>
<Fragment slot="who">Protests and blackouts, alongside Briar. Use with caution.</Fragment>
<div class="box warn" slot="extra">
<span class="lab">Caution: unaudited</span>
<p>
Its own repo warns it "has not received external security review." Great for resilience, but
don't stake lives on it yet.
</p>
</div>
<ol slot="install">
<li>Install from the App Store (iOS) or the APK/GitHub (Android).</li>
<li>Open the app and pick a nickname. No account to create.</li>
<li>Nearby devices auto-discover over Bluetooth.</li>
<li>In danger, triple-tap the logo to wipe everything (panic mode).</li>
</ol>
</ToolCard>
<ToolCard tool="t-molly">
<Fragment slot="tags">
<span class="tool-tag">🔴 Advanced</span>
<span class="tool-tag">Hardened Signal</span>
<span class="tool-tag">Android · open-source</span>
</Fragment>
<Fragment slot="what">
A hardened build of Signal for Android, compatible with the same network.
</Fragment>
<Fragment slot="why">
Database encrypted at rest, automatic locking, and a "FOSS" variant fully free of Google
services.
</Fragment>
<Fragment slot="who">
Advanced users, especially on GrapheneOS, with a high threat model. Android only.
</Fragment>
<ol slot="install">
<li>
Add the Molly repo in F-Droid, or grab the APK from <b>molly.im</b>.
</li>
<li>
Choose <b>Molly-FOSS</b> if you want zero Google dependencies.
</li>
<li>Register with your number (same network as Signal).</li>
<li>Set a database password and automatic locking.</li>
</ol>
</ToolCard>
<div class="box">
<span class="lab">Against Chat Control</span>
<p>
Prefer <strong>open-source</strong> apps <strong>outside the big US platforms</strong>, whose
teams have publicly pledged to leave the EU rather than install client-side scanning (Signal
has). Reminder: if the OS itself enforces scanning, the app can't help, hence section 12.
</p>
</div>
+103
View File
@@ -0,0 +1,103 @@
---
id: 'email'
part: 2
order: 4
title: 'Encrypted email & PGP'
---
<p class="part-num">
PART 03 · <span class="lvl lvl-1">🟢</span>
</p>
## Encrypted email &amp; PGP
Gmail reads your email and lives in the US, under "Five Eyes" jurisdiction. Leaving Gmail/Outlook is a huge win for minimal effort.
<ToolCard tool="t-protonmail">
<Fragment slot="tags">
<span class="tool-tag">🟢 Beginner</span>
<span class="tool-tag">Replaces Gmail</span>
<span class="tool-tag">🇨🇭 · open-source · OpenPGP</span>
</Fragment>
<Fragment slot="what">
An encrypted inbox that replaces Gmail or Outlook, and the pivot account for the whole Proton
ecosystem.
</Fragment>
<Fragment slot="why">
Based in Switzerland, outside "Five Eyes" jurisdiction. OpenPGP-compatible: automatic encryption
between Proton accounts and to other PGP services.
</Fragment>
<Fragment slot="who">
Everyone. It's the best starting point to leave Google (see section 05 for the rest of the
suite).
</Fragment>
<ol slot="install">
<li>
Create an account at <b>proton.me</b> (the free tier is enough to start).
</li>
<li>
Import your old messages and contacts with <b>Easy Switch</b> (built in).
</li>
<li>Set up forwarding from Gmail and tell your contacts your new address.</li>
<li>
Install the mobile app, turn on <b>two-factor auth</b>, and use Proton Bridge if you want
Thunderbird.
</li>
</ol>
</ToolCard>
<ToolCard tool="t-tuta">
<Fragment slot="tags">
<span class="tool-tag">🟢 Beginner</span>
<span class="tool-tag">Replaces Gmail</span>
<span class="tool-tag">🇩🇪 · open-source · post-quantum</span>
</Fragment>
<Fragment slot="what">
A German email service, fully open-source and free of any Google service.
</Fragment>
<Fragment slot="why">
It also encrypts <b>the subject line and some metadata</b>, with post-quantum-resistant
encryption. EU jurisdiction.
</Fragment>
<Fragment slot="who">
Those who want maximum encrypted metadata and fully free software. It doesn't use PGP: to write
encrypted to outsiders, you password-protect the message.
</Fragment>
<ol slot="install">
<li>
Create an account at <b>tuta.com</b> and install the app (available on F-Droid).
</li>
<li>
To write encrypted to a non-user: click the lock and set a password, shared with your
correspondent through another channel.
</li>
<li>Turn on two-factor authentication.</li>
</ol>
</ToolCard>
<ToolCard tool="t-mailbox">
<Fragment slot="tags">
<span class="tool-tag">🟢 Beginner</span>
<span class="tool-tag">Ethical classic mail</span>
<span class="tool-tag">🇩🇪 · UE · PGP</span>
</Fragment>
<Fragment slot="what">
Two ethical, low-cost European email providers, with server-side PGP support.
</Fragment>
<Fragment slot="why">
Privacy- and eco-conscious, built on open standards (IMAP, PGP). They work with any mail client.
</Fragment>
<Fragment slot="who">
Those who want a "classic" mailbox (read in Thunderbird) but ethical, rather than a closed
encrypted app.
</Fragment>
<ol slot="install">
<li>Create an account (paid, roughly €1 to €3 per month).</li>
<li>Enable server-side PGP encryption (the "Guard" feature at mailbox.org).</li>
<li>Set the account up in Thunderbird or the mobile app of your choice.</li>
</ol>
</ToolCard>
#### PGP in one minute
**PGP** (Pretty Good Privacy) is key-based encryption: you have a _public_ key you hand out, and a _private_ key you keep secret. Anyone with your public key can send you a message that **only you** can decrypt. It's the basis of provider-independent encrypted email. Proton Mail handles it automatically; for manual use, **OpenPGP** works via Thunderbird (built in since v78).
+148
View File
@@ -0,0 +1,148 @@
---
id: 'navigateur'
part: 3
order: 5
title: 'Browser & search'
---
<p class="part-num">
PART 04 · <span class="lvl lvl-1">🟢</span>
</p>
## Browser &amp; search
Chrome is an advertising tracker. Google Search profiles every query. Replace both.
<ToolCard tool="t-mullvadbrowser">
<Fragment slot="tags">
<span class="tool-tag">🟡🔴 Interm. / Advanced</span>
<span class="tool-tag">Anti-fingerprint</span>
<span class="tool-tag">🇸🇪 · open-source</span>
</Fragment>
<Fragment slot="what">
The Tor Browser's browser, but without the Tor network: use it with your VPN for a hard-to-track
desktop.
</Fragment>
<Fragment slot="why">
Built with the Tor Project, it's designed so all its users present the{' '}
<b>same digital fingerprint</b>. The result: instead of being unique and thus trackable, you
blend into the crowd. It's the best privacy choice on desktop.
</Fragment>
<Fragment slot="who">
Those who want to go beyond simple ad-blocking, especially pseudonymous accounts and exposed
profiles.
</Fragment>
<ol slot="install">
<li>
Download it from <b>mullvad.net/browser</b> (Windows, macOS, Linux).
</li>
<li>
Use it as-is, without customising: every added extension or setting makes you identifiable
again.
</li>
<li>Pair it with your VPN to also mask your IP address.</li>
</ol>
</ToolCard>
<ToolCard tool="t-firefox">
<Fragment slot="name">Firefox (hardened)</Fragment>
<Fragment slot="tags">
<span class="tool-tag">🟢 Beginner</span>
<span class="tool-tag">Replaces Chrome</span>
<span class="tool-tag">🌍 · open-source</span>
</Fragment>
<Fragment slot="what">The reference free browser for privacy-respecting daily use.</Fragment>
<Fragment slot="why">
Unlike Chrome (a Google advertising tracker), Firefox is built by a foundation with no interest
in profiling you. With a few tweaks (the <em>arkenfox</em> guide) and the uBlock Origin
extension, it becomes very solid.
</Fragment>
<Fragment slot="who">Everyone, as a main daily browser.</Fragment>
<ol slot="install">
<li>
Install Firefox from <b>mozilla.org/firefox</b>.
</li>
<li>
Add the <b>uBlock Origin</b> extension (ad and tracker blocking).
</li>
<li>
In privacy settings, choose "Strict," disable telemetry, and clear cookies on close. To go
further, apply the arkenfox guide.
</li>
</ol>
</ToolCard>
<ToolCard tool="t-brave">
<Fragment slot="tags">
<span class="tool-tag">🟢 Beginner</span>
<span class="tool-tag">Blocks everything by default</span>
<span class="tool-tag">🌍 · open-source</span>
</Fragment>
<Fragment slot="what">
A Chromium-based browser that blocks ads and trackers by default, with a bonus private window
connected to Tor.
</Fragment>
<Fragment slot="why">
It's the simplest option for someone coming from Chrome: same feel, but without the tracking. It
blocks YouTube ads natively, offers encrypted video (Brave Talk, based on Jitsi) and one-click
Tor access, handy to reach a blocked site.
</Fragment>
<Fragment slot="who">
Beginners who want a painless switch from Chrome. (Ignore the crypto/rewarded-ads features if
they don't interest you.)
</Fragment>
<ol slot="install">
<li>
Install Brave from <b>brave.com</b>.
</li>
<li>Set "Shields" to "aggressive," and turn off Brave Rewards if you don't want ads.</li>
<li>For Tor: menu &gt; "New private window with Tor," then wait for "Tor connected".</li>
</ol>
</ToolCard>
<ToolCard tool="t-ublock">
<Fragment slot="tags">
<span class="tool-tag">🟢 Beginner</span>
<span class="tool-tag">Extension</span>
<span class="tool-tag">🌍 · open-source</span>
</Fragment>
<Fragment slot="what">
The browser extension that blocks ads, trackers and spy scripts. The highest-return move, in ten
seconds.
</Fragment>
<Fragment slot="why">
Online advertising is the main vector of surveillance and profiling. Blocking it cuts most
tracking, speeds up pages and reduces malware risk.
</Fragment>
<Fragment slot="who">Everyone, on Firefox as well as Chromium browsers.</Fragment>
<ol slot="install">
<li>
Open your browser's extension store and search "uBlock Origin" (the original, by Raymond
Hill).
</li>
<li>Install it. It works right away, no setup needed.</li>
</ol>
</ToolCard>
<ToolCard tool="t-search">
<Fragment slot="tags">
<span class="tool-tag">🟢🟡 Search engines</span>
<span class="tool-tag">Replaces Google Search</span>
</Fragment>
<Fragment slot="what">Search engines that don't profile every query, unlike Google.</Fragment>
<Fragment slot="why">
DuckDuckGo and Brave Search keep no history tied to your identity. Startpage serves Google
results without the tracking. SearXNG goes further: a <b>self-hostable</b> metasearch engine,
sovereignty down to your search bar.
</Fragment>
<Fragment slot="who">Everyone. SearXNG targets those who want to host their own engine.</Fragment>
<ol slot="install">
<li>
In your browser settings, change the default engine to DuckDuckGo, Brave Search or Startpage.
</li>
<li>
For SearXNG: use a public instance (directory at searx.space) or host your own (see section
10).
</li>
</ol>
</ToolCard>
+119
View File
@@ -0,0 +1,119 @@
---
id: 'dns'
part: 3
order: 6
title: 'Encrypted DNS & Cloudflare'
---
<p class="part-num">
PART 05 · NETWORK · DNS · <span class="lvl lvl-2">🟡</span>
</p>
## Encrypted DNS &amp; Cloudflare
DNS is the directory that turns a site name (example.com) into a machine address. The catch: by default your internet provider runs that directory, so it sees **every site you visit**, even when the page is HTTPS. Encrypting your DNS takes that list back from your ISP. It's a quiet setting but one of the most effective.
<ToolCard tool="t-quad9">
<Fragment slot="tags">
<span class="tool-tag">🟢 Beginner</span>
<span class="tool-tag">Malware-blocking</span>
<span class="tool-tag">🇨🇭 non-profit</span>
</Fragment>
<Fragment slot="what">
An encrypted, Swiss, non-profit DNS resolver that also blocks known malicious domains.
</Fragment>
<Fragment slot="why">
Swiss jurisdiction, no retention of your IP address, protection against phishing and malware. An
excellent "set and forget" choice.
</Fragment>
<Fragment slot="who">
Everyone, especially those who want simplicity and a good jurisdiction.
</Fragment>
<ol slot="install">
<li>
On Android: Settings &gt; Network &gt; <b>Private DNS</b> &gt; enter <b>dns.quad9.net</b>.
</li>
<li>
On iPhone/Mac: install the DoH profile from quad9.net. On PC: set DNS-over-HTTPS in the
browser or the system.
</li>
</ol>
</ToolCard>
<ToolCard tool="t-mullvaddns">
<Fragment slot="tags">
<span class="tool-tag">🟡 Intermediate</span>
<span class="tool-tag">Network filtering</span>
</Fragment>
<Fragment slot="what">
Two encrypted resolvers that also block ads and trackers for the whole device.
</Fragment>
<Fragment slot="why">
<b>Mullvad DNS</b> (Sweden, no-log) is free and offers blocklists. <b>NextDNS</b> is highly
customisable, with a dashboard and per-device profiles, but it's US-based and logs by default
(turn it off in settings).
</Fragment>
<Fragment slot="who">
Those who want system-wide ad-blocking without installing a per-browser extension.
</Fragment>
<ol slot="install">
<li>
Mullvad DNS: use the address shown at mullvad.net/help/dns as your private DNS (same method as
Quad9).
</li>
<li>
NextDNS: create a profile at nextdns.io, <b>disable logging</b>, then apply the config to your
devices.
</li>
</ol>
</ToolCard>
<ToolCard tool="t-cloudflare">
<Fragment slot="name">Cloudflare 1.1.1.1 (with nuance)</Fragment>
<Fragment slot="tags">
<span class="tool-tag">🟢 Beginner</span>
<span class="tool-tag">Fast but centralised</span>
<span class="tool-tag">🇺🇸</span>
</Fragment>
<Fragment slot="what">
Cloudflare's 1.1.1.1 encrypted DNS and WARP app: fast, free, and a real upgrade over your ISP's
resolver.
</Fragment>
<Fragment slot="why">
It's useful, with an audited no-logging pledge. But be clear-eyed: Cloudflare already sits in
front of a huge share of the web (as a technical middleman, it can see plaintext traffic to
those sites). Routing your DNS there too means <b>concentrating even more of your footprint</b>{' '}
with one US company under US law.
</Fragment>
<Fragment slot="who">
Fine for everyday use and malware-blocking (1.1.1.1 for Families). Avoid or diversify for
sensitive use: prefer Quad9 or Mullvad DNS instead.
</Fragment>
</ToolCard>
<ToolCard tool="t-pihole">
<Fragment slot="tags">
<span class="tool-tag">🔴 Advanced</span>
<span class="tool-tag">Whole-network blocking</span>
<span class="tool-tag">🌍 · open-source</span>
</Fragment>
<Fragment slot="what">
An ad and tracker blocker that protects <b>your whole network at once</b>, installed on a small
computer like a Raspberry Pi.
</Fragment>
<Fragment slot="why">
Where uBlock Origin protects one browser, Pi-hole filters <b>every device</b> in the home,
including those where you can't install an extension: phones, smart TVs, connected objects. Ads
and trackers are blocked at the DNS level, before they even load. <b>AdGuard Home</b> is an
alternative with a more modern interface.
</Fragment>
<Fragment slot="who">
Households that want to clean up all their devices at once, and who have (or want) a Raspberry
Pi or small server.
</Fragment>
<ol slot="install">
<li>On a Raspberry Pi (or a container), run Pi-hole's official installer.</li>
<li>In your router's settings, set the Pi-hole's address as the DNS server.</li>
<li>From now on, every device on your network is filtered automatically.</li>
</ol>
</ToolCard>
+139
View File
@@ -0,0 +1,139 @@
---
id: 'vpn'
part: 4
order: 7
title: 'VPN: the truth'
---
<p class="part-num">
PART 06 · <span class="lvl lvl-1">🟢</span>
</p>
## VPN: the truth
A VPN is useful, but sold with a lot of lies. Here's what it actually protects.
<div class="box warn">
<span class="lab">What a VPN does NOT do</span>
<p>
A VPN <strong>does not protect you from Chat Control's client-side scanning</strong>: that reads
your messages on your device, before encryption and therefore before the VPN. It's also not an
invisibility cloak: your OS and apps see more than your VPN provider does.
</p>
</div>
<div class="box ok">
<span class="lab">What a VPN does well</span>
<p>
It hides your activity from your <strong>ISP</strong> and masks your <strong>IP address</strong>{' '}
(and thus location) from the sites you visit. Useful against network surveillance, geolocation
and censorship. One piece of the puzzle, not the solution.
</p>
</div>
<ToolCard tool="t-mullvad">
<Fragment slot="tags">
<span class="tool-tag">🟢🟡🔴 All levels</span>
<span class="tool-tag">No account · cash/Monero</span>
<span class="tool-tag">🇸🇪 · open-source</span>
</Fragment>
<Fragment slot="what">
A VPN that masks your IP address and encrypts your traffic up to its servers, without ever
asking for a single piece of personal information.
</Fragment>
<Fragment slot="why">
It's the privacy gold standard. No email, no name: at signup you're given a plain account
number. Audited no-log policy, a single honest price (€5 per month, no tiers, no false
promises), and payment in cash or Monero. That's exactly what matters the day a state tries to
cut off VPN access: an account that can't be tied to your identity, and a payment banks can't
block.
</Fragment>
<Fragment slot="who">
Everyone, from the citizen bypassing an ID check to the high-risk profile. It's the VPN to
recommend first.
</Fragment>
<ol slot="install">
<li>
Go to <b>mullvad.net</b>. If the site is blocked in your country, open it through the Tor
Browser or its <b>.onion</b> address. Click "Generate account number": no email or name is
asked. Save this number in your password manager and never share it, it's your only access
key.
</li>
<li>
Choose the duration and payment method. The price is flat. Three routes: bank card (simplest
if not blocked), cash sent by post, or cryptocurrency.
</li>
<li>
<b>Anonymous crypto payment:</b> click "Create a one-time payment address." Mullvad shows an
address (Bitcoin or Monero) and an exact amount. Send that amount from your wallet. For
maximum anonymity, prefer <b>Monero</b> (private by default); Bitcoin is simpler but
traceable. See section 09 to buy crypto. Allow about 30 minutes for confirmation.
</li>
<li>
Download the app from <b>mullvad.net/download</b> (via Tor if the site is filtered) and
install it. On mobile, use the App Store, Google Play, or the official APK if the app was
pulled from your store.
</li>
<li>
Launch the app, enter your account number, then connect to a server{' '}
<b>outside your country</b>, ideally outside the EU (Switzerland, US…). Enable the "kill
switch" (which cuts the internet if the VPN drops) and Mullvad's DNS.
</li>
</ol>
</ToolCard>
<ToolCard tool="t-protonvpn">
<Fragment slot="tags">
<span class="tool-tag">🟢 Beginner</span>
<span class="tool-tag">Honest free tier</span>
<span class="tool-tag">🇨🇭 · open-source</span>
</Fragment>
<Fragment slot="what">
The VPN from the Proton ecosystem, with a genuine free tier (rare and honest).
</Fragment>
<Fragment slot="why">
Swiss-based, audited, open-source. Its free tier has no ads, no data resale and no data cap
(only the number of countries is limited). It's the ideal on-ramp for a beginner, especially if
you already use Proton Mail.
</Fragment>
<Fragment slot="who">
Beginners, and anyone already in the Proton ecosystem who wants a single account for everything.
</Fragment>
<ol slot="install">
<li>
Go to <b>protonvpn.com</b> and sign in with your Proton account (or create one).
</li>
<li>Install the app (Windows, macOS, Linux, Android, iOS).</li>
<li>
Use "Quick Connect" or pick a country, then enable the kill switch and NetShield (ad and
tracker blocking).
</li>
</ol>
</ToolCard>
<ToolCard tool="t-ivpn">
<Fragment slot="tags">
<span class="tool-tag">🟡🔴 Interm. / Advanced</span>
<span class="tool-tag">No email · no-log</span>
<span class="tool-tag">🇬🇮 · open-source</span>
</Fragment>
<Fragment slot="what">
A small, especially rigorous and transparent VPN provider, on the same model as Mullvad.
</Fragment>
<Fragment slot="why">
Audited no-log policy, no mandatory email, payment in crypto or cash. It even offers
anti-tracking options (network-level tracker blocking) and signup with no identifier at all.
</Fragment>
<Fragment slot="who">
A solid alternative to Mullvad, for pseudonymous and high-risk profiles who want to diversify.
</Fragment>
<ol slot="install">
<li>
At <b>ivpn.net</b>, generate an account (an ID is created for you, no email).
</li>
<li>Pay in crypto or cash, as with Mullvad.</li>
<li>
Install the app, connect outside the EU, enable the kill switch and the WireGuard protocol.
</li>
</ol>
</ToolCard>
+39
View File
@@ -0,0 +1,39 @@
---
id: 'censure'
part: 4
order: 8
title: 'Censorship & identity checks'
---
<p class="part-num">
PART 07 · CENSURE · DIGITAL IDENTITY · <span class="lvl lvl-2">🟡</span>
</p>
## Censorship &amp; identity checks
The same pretext ("protect minors") is used to force identity checks to access the internet. It's the planned end of online anonymity, and therefore a form of censorship. Here's the state of play, then how to escape it lawfully.
#### Where we stand (2025-2026)
- **France.** The SREN law (May 2024) tasks regulator Arcom with age verification; since April 2025, covered sites must implement it. A decree imposing age checks was upheld by the Conseil d'État on 15 July 2025, and a bill banning under-15s from social media passed the Assemblée on 26 January 2026, which means verifying the age, and thus the identity, of everyone.
- **UK.** Since 25 July 2025, the Online Safety Act requires "highly effective" age verification (ID, credit card, facial estimation). The immediate result: VPN signups jumped over 1,400% within hours. The House of Lords even debated, in early 2026, an age limit on VPN use itself.
- **EU.** The Commission unveiled an age-verification app (April 2025), piloted in five countries, designed to plug into the European digital identity wallet (EUDI Wallet, eIDAS 2) that every state must offer by end of 2026. EFF and EDRi warn: the "zero-knowledge" proof is only optional, and this builds an online-ID infrastructure far beyond child protection.
#### Escaping it lawfully
The counter comes down to one idea: take an IP address in a country that doesn't impose these checks, and obtain the tools anonymously, even if they get blocked one day.
- **An offshore VPN.** Connect to a server outside the filtering country (ideally outside the EU and the "14 Eyes"), with an audited no-log policy. This restores access to networks demanding an ID.
- **Anonymous payment.** Pay for the VPN in crypto or cash (Mullvad, IVPN, Proton accept it). Crucial: if VPNs ever get "banned," payment processors could refuse cards; cash and crypto would be the only options left.
- **Tor to fetch a blocked VPN.** If the provider's site becomes unreachable from your country, use the Tor Browser (or a .onion address) to download the client. Once installed, the VPN is far faster for daily use.
- **Switch your store country.** An Apple/Google account set to another country brings back apps pulled from your local store.
<div class="box warn">
<span class="lab">The law is shifting, check</span>
<p>
Bypassing a geo-restriction is legal in most European countries, but the ground shifts fast:
Utah (US) has criminalised VPN circumvention, and the UK Lords are eyeing VPN limits. Check your
country's law before relying on any method. This guide is about protecting privacy, not hiding a
crime.
</p>
</div>
+75
View File
@@ -0,0 +1,75 @@
---
id: 'proton'
part: 5
order: 9
title: 'Leave Google'
---
<p class="part-num">
PART 08 · TAKE BACK CONTROL · <span class="lvl lvl-2">🟡</span>
</p>
## Leave Google
Google is a single account that knows your email, calendar, files, movements and searches. Replace the whole suite.
<div class="tablewrap">
<table>
<thead>
<tr>
<th>Google</th>
<th>Proton</th>
<th>Others</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<span class="old">Gmail</span>
</td>
<td>
<span class="new">Proton Mail</span>
</td>
<td>Tuta, mailbox.org</td>
</tr>
<tr>
<td>
<span class="old">Google Drive</span>
</td>
<td>
<span class="new">Proton Drive</span>
</td>
<td>Nextcloud, Cryptomator</td>
</tr>
<tr>
<td>
<span class="old">Google Calendar</span>
</td>
<td>
<span class="new">Proton Calendar</span>
</td>
<td>Tuta Calendar</td>
</tr>
<tr>
<td>
<span class="old">Google Password</span>
</td>
<td>
<span class="new">Proton Pass</span>
</td>
<td>Bitwarden, KeePassXC</td>
</tr>
<tr>
<td>
<span class="old">Google One VPN</span>
</td>
<td>
<span class="new">Proton VPN</span>
</td>
<td>Mullvad, IVPN</td>
</tr>
</tbody>
</table>
</div>
The appeal of **Proton** (Swiss, non-profit foundation, open-source): one account replaces all of Google, with end-to-end encryption and a jurisdiction outside "Five Eyes". You can migrate gradually, service by service. If you'd rather not recentralise on one provider, every row has an independent alternative.
+77
View File
@@ -0,0 +1,77 @@
---
id: 'stockage'
part: 6
order: 10
title: 'Encrypted storage'
---
<p class="part-num">
PART 09 · <span class="lvl lvl-2">🟡</span>
</p>
## Encrypted storage
<ToolCard tool="t-protondrive">
<Fragment slot="tags">
<span class="tool-tag">🟢 Beginner</span>
<span class="tool-tag">Replaces Google Drive / iCloud</span>
<span class="tool-tag">🇨🇭 · E2EE</span>
</Fragment>
<Fragment slot="what">
An end-to-end encrypted cloud for your files and photos, part of Proton.
</Fragment>
<Fragment slot="why">
Unlike Google Drive or iCloud, Proton can't read your files: they're encrypted before leaving
your device. Swiss jurisdiction, same account as Proton Mail.
</Fragment>
<Fragment slot="who">
Everyone, as a simple, direct replacement for Google's or Apple's cloud.
</Fragment>
<ol slot="install">
<li>Enable Proton Drive in your Proton account and install the app.</li>
<li>Turn on automatic photo backup, then disable Google's/Apple's.</li>
</ol>
</ToolCard>
<ToolCard tool="t-cryptomator">
<Fragment slot="tags">
<span class="tool-tag">🟡 Intermediate</span>
<span class="tool-tag">Encrypt before upload</span>
<span class="tool-tag">🇩🇪 · open-source</span>
</Fragment>
<Fragment slot="what">
A vault that encrypts your files <b>before</b> uploading them to any cloud, even Google Drive or
Dropbox.
</Fragment>
<Fragment slot="why">
The perfect trick if you must keep an existing cloud: you keep the convenient service, but the
provider only sees encrypted gibberish. You alone hold the key.
</Fragment>
<Fragment slot="who">
Those who can't leave a mainstream cloud yet, but want to protect their files right now.
</Fragment>
<ol slot="install">
<li>Install Cryptomator (desktop and mobile) from cryptomator.org.</li>
<li>Create a "vault" in your cloud's synced folder, choose a strong password.</li>
<li>Put your files in the vault: they're encrypted then synced automatically.</li>
</ol>
</ToolCard>
<ToolCard tool="t-nc-storage">
<Fragment slot="tags">
<span class="tool-tag">🔴 Advanced</span>
<span class="tool-tag">Your own cloud</span>
<span class="tool-tag">🌍 · open-source</span>
</Fragment>
<Fragment slot="what">
Your own cloud (files, calendar, contacts, notes) hosted on your server.
</Fragment>
<Fragment slot="why">
The ultimate degree of control: your data never leaves your hardware. Detailed in section 10
(Self-hosting).
</Fragment>
<Fragment slot="who">Self-hosters. See the full card in section 10.</Fragment>
<a slot="links" class="tool-link" href="#selfhost">
→ Section 10
</a>
</ToolCard>
@@ -0,0 +1,85 @@
---
id: 'motsdepasse'
part: 7
order: 11
title: 'Password manager'
---
<p class="part-num">
PART 10 · <span class="lvl lvl-2">🟡</span>
</p>
## Password manager
One strong, unique password per service: the foundation of everything that follows. Drop the notebook, drop the reused password.
<ToolCard tool="t-bitwarden">
<Fragment slot="tags">
<span class="tool-tag">🟢 Beginner</span>
<span class="tool-tag">Best to start with</span>
<span class="tool-tag">🌍 · open-source</span>
</Fragment>
<Fragment slot="what">
A password vault that remembers, generates and fills your passwords for you, across all your
devices.
</Fragment>
<Fragment slot="why">
Free, audited, cross-platform, and end-to-end encrypted. You only need to remember one strong
password. It's even <b>self-hostable</b> (via Vaultwarden) so you depend on no one.
</Fragment>
<Fragment slot="who">
Everyone. It's the foundation of all security: one strong, unique password per service.
</Fragment>
<ol slot="install">
<li>
Create an account at bitwarden.com and choose a <b>long</b> master password (a phrase). Never
forget it: it can't be recovered.
</li>
<li>Install the browser extension and the mobile app.</li>
<li>
As you log in, let Bitwarden save and then replace your old passwords with generated ones.
</li>
</ol>
</ToolCard>
<ToolCard tool="t-keepassxc">
<Fragment slot="tags">
<span class="tool-tag">🔴 Advanced</span>
<span class="tool-tag">100% local</span>
<span class="tool-tag">🌍 · open-source</span>
</Fragment>
<Fragment slot="what">
A <b>local</b> vault: an encrypted file only you hold, with no cloud and no account.
</Fragment>
<Fragment slot="why">
Nothing leaves your device, unless you choose to sync the file yourself (for example via
Cryptomator). It's the purist's choice, with no middleman at all.
</Fragment>
<Fragment slot="who">
Advanced profiles who want full control and zero online dependency.
</Fragment>
<ol slot="install">
<li>
Install KeePassXC (desktop) and a compatible mobile app (KeePassDX on Android, Strongbox on
iOS).
</li>
<li>Create a database file protected by a master password.</li>
<li>To have it on all devices, sync that file through an encrypted cloud.</li>
</ol>
</ToolCard>
<ToolCard tool="t-protonpass">
<Fragment slot="tags">
<span class="tool-tag">🟢 Beginner</span>
<span class="tool-tag">With email aliases</span>
<span class="tool-tag">🇨🇭 · open-source</span>
</Fragment>
<Fragment slot="what">
The password manager of the Proton ecosystem, with built-in disposable email aliases.
</Fragment>
<Fragment slot="why">
Ideal if you're already on Proton: one account for mail, cloud and passwords. Its email aliases
save you from giving your real address everywhere.
</Fragment>
<Fragment slot="who">Those who want everything in one place with Proton.</Fragment>
</ToolCard>
+76
View File
@@ -0,0 +1,76 @@
---
id: 'deuxfa'
part: 7
order: 12
title: 'Two-factor auth & hardware keys'
---
<p class="part-num">
PART 11 · SECURITY · 2FA · <span class="lvl lvl-2">🟡</span>
</p>
## Two-factor auth &amp; hardware keys
A password, even a strong one, can leak. Two-factor authentication (2FA) adds a second proof at login: even if your password is stolen, the account stays locked. It's essential on your sensitive accounts (email, password manager, social).
<div class="box warn">
<span class="lab">Avoid SMS 2FA</span>
<p>
A code sent by SMS is the weak link: it's vulnerable to "SIM-swap" (an attacker gets your number
transferred) and to interception over the phone network (SS7). Studies estimate most SIM-swap
attempts succeed. Use SMS only as a last resort, never as your main protection.
</p>
</div>
<ToolCard tool="t-yubikey">
<Fragment slot="tags">
<span class="tool-tag">🟡🔴 Interm. / Advanced</span>
<span class="tool-tag">FIDO2 hardware key</span>
</Fragment>
<Fragment slot="what">
A small physical key (USB, often with NFC) that proves your identity with a single touch.
</Fragment>
<Fragment slot="why">
It's the strongest 2FA: it resists phishing, because the key checks the site's real address
before responding. <b>Nitrokey</b> is the fully open-hardware, open-firmware alternative. A fake
site can't trick you.
</Fragment>
<Fragment slot="who">
Those who want maximum security on key accounts. Buy <b>two</b> (one main, one backup).
</Fragment>
<ol slot="install">
<li>Get two keys from yubico.com or nitrokey.com.</li>
<li>
In each account's security settings (email, password manager…), add a "security key" or
"passkey." Enrol both keys.
</li>
<li>Keep the backup key in a safe, separate place.</li>
</ol>
</ToolCard>
<ToolCard tool="t-aegis">
<Fragment slot="tags">
<span class="tool-tag">🟢 Beginner</span>
<span class="tool-tag">TOTP codes</span>
<span class="tool-tag">🌍 · open-source</span>
</Fragment>
<Fragment slot="what">
Apps that generate the six-digit codes changing every 30 seconds, replacing Google
Authenticator.
</Fragment>
<Fragment slot="why">
<b>Aegis</b> (Android) keeps your codes in a local encrypted vault, no cloud. <b>Ente Auth</b>{' '}
adds end-to-end encrypted sync across devices, and has been audited. Far safer than SMS, and
free.
</Fragment>
<Fragment slot="who">
Everyone: it's the default 2FA level to adopt, ahead of hardware keys.
</Fragment>
<ol slot="install">
<li>Install Aegis (F-Droid) or Ente Auth (all platforms).</li>
<li>On each account, enable "authenticator app" 2FA and scan the QR code shown.</li>
<li>
Write down the <b>backup codes</b> on paper and make an encrypted backup of your vault.
</li>
</ol>
</ToolCard>
+122
View File
@@ -0,0 +1,122 @@
---
id: 'social'
part: 8
order: 13
title: 'Decentralised social'
---
<p class="part-num">
PART 12 · <span class="lvl lvl-2">🟡</span>
</p>
## Decentralised social
Instagram, X and Facebook belong to companies that profile you and can censor or delete you overnight. The "fediverse" offers networks owned by their users.
<ToolCard tool="t-mastodon">
<Fragment slot="tags">
<span class="tool-tag">🟢 Beginner</span>
<span class="tool-tag">Replaces X / Twitter</span>
<span class="tool-tag">🌍 · open-source</span>
</Fragment>
<Fragment slot="what">
The X/Twitter alternative: a social network made of thousands of independent servers that talk
to each other (the "fediverse").
</Fragment>
<Fragment slot="why">
No single owner, no algorithm deciding for you, no arbitrary ban by one company. The feed is
chronological, with no ads or manipulation.
</Fragment>
<Fragment slot="who">
Everyone. Ideal for information accounts that want a presence no company can cut off.
</Fragment>
<ol slot="install">
<li>
On joinmastodon.org, choose a server (or "instance") that suits you, then create an account.
</li>
<li>
Install an app (the official one, or Ivory, Tusky…) and follow accounts: you see the whole
fediverse, whatever their server.
</li>
</ol>
</ToolCard>
<ToolCard tool="t-nostr">
<Fragment slot="tags">
<span class="tool-tag">🟡🔴</span>
<span class="tool-tag">Un-censorable</span>
<span class="tool-tag">🌍 · open protocol</span>
</Fragment>
<Fragment slot="what">
Not an app but a protocol: a social network where your identity is a simple key pair, like
Bitcoin.
</Fragment>
<Fragment slot="why">
No email, no password, no account anyone can delete. Your posts travel across decentralised
relays and you truly own your audience: no one can ban you for good. You can even receive
Bitcoin tips ("zaps") and switch apps anytime without losing your followers.
</Fragment>
<Fragment slot="who">
Information accounts and creators who fear platform censorship and want a presence truly their
own.
</Fragment>
<ol slot="install">
<li>Install a client: Damus (iPhone), Amethyst or Primal (Android), or a web version.</li>
<li>
The app generates your key pair. <b>Back up your private key (nsec)</b> like a Bitcoin seed
phrase: on paper, never shared.
</li>
<li>Create your profile, follow people, enable zaps to receive sats.</li>
</ol>
</ToolCard>
<ToolCard tool="t-element">
<Fragment slot="tags">
<span class="tool-tag">🟡🔴</span>
<span class="tool-tag">Replaces Discord / Slack</span>
<span class="tool-tag">🌍 · federated · E2EE</span>
</Fragment>
<Fragment slot="what">
Community chat, in the spirit of Discord or Slack, but federated and end-to-end encryptable.
Element is the app, Matrix the network.
</Fragment>
<Fragment slot="why">
You can host your own server (Synapse) and control your data. Perfect for a collective, a
newsroom or an association that wants its own independent space.
</Fragment>
<Fragment slot="who">Communities and groups. See the metadata caveat below.</Fragment>
<ol slot="install">
<li>
Install Element (element.io) and create an account on a public server, or on your own (section
10).
</li>
<li>Join or create rooms, and enable end-to-end encryption for private conversations.</li>
</ol>
</ToolCard>
<ToolCard tool="t-fediverse">
<Fragment slot="tags">
<span class="tool-tag">🟡</span>
<span class="tool-tag">Insta · YouTube · Reddit</span>
<span class="tool-tag">🌍 · open-source</span>
</Fragment>
<Fragment slot="what">
The federated cousins of Instagram (Pixelfed), YouTube (PeerTube) and Reddit (Lemmy).
</Fragment>
<Fragment slot="why">
Same logic as Mastodon: no single owner, no ad algorithm, no tracking. You post photos, videos
or discussions without feeding a profiling machine.
</Fragment>
<Fragment slot="who">
Those who want to leave Instagram, YouTube or Reddit without giving up the format.
</Fragment>
</ToolCard>
<div class="box">
<span class="lab">Metadata caveat</span>
<p>
Matrix encrypts <em>content</em> well, but in federation, participating servers see room
membership and message timing. For highly sensitive use, prefer SimpleX/Session or self-host
your server.
</p>
</div>
+73
View File
@@ -0,0 +1,73 @@
---
id: 'argent'
part: 9
order: 14
title: 'Financial sovereignty'
---
<p class="part-num">
PART 13 · <span class="lvl lvl-2">🟡</span>
</p>
## Financial sovereignty
Money is surveilled and censorable too. Activists' accounts have been frozen, donations blocked, and every card payment is tracked. Financial privacy is part of sovereignty.
<ToolCard tool="t-bitcoin">
<Fragment slot="name">Bitcoin (self-custody)</Fragment>
<Fragment slot="tags">
<span class="tool-tag">🟡🔴</span>
<span class="tool-tag">Censorship-resistant</span>
</Fragment>
<Fragment slot="what">A digital money you hold yourself, without going through a bank.</Fragment>
<Fragment slot="why">
In <b>self-custody</b> (your keys in a wallet only you control), no one can freeze or block your
funds. Its privacy isn't perfect (the ledger is public), but it escapes banking censorship,
useful the day a payment is refused.
</Fragment>
<Fragment slot="who">
Guarding against account freezes or de-banking, and paying anonymously for a service like a VPN.
</Fragment>
<ol slot="install">
<li>Get some bitcoin (an exchange, or peer-to-peer).</li>
<li>
Move them right away to a wallet <b>you</b> control: a hardware wallet (Trezor, ColdCard) or
an open-source app. Don't leave them on the exchange.
</li>
<li>Back up your recovery phrase on paper, never as a photo or online.</li>
</ol>
</ToolCard>
<ToolCard tool="t-monero">
<Fragment slot="tags">
<span class="tool-tag">🔴 Advanced</span>
<span class="tool-tag">Private by default</span>
</Fragment>
<Fragment slot="what">
The privacy cryptocurrency: amounts, sender and recipient are hidden by default.
</Fragment>
<Fragment slot="why">
It's the exact opposite of Bitcoin here: transactions are private by design. It's the best way
to pay for a service without leaving a trail back to you.
</Fragment>
<Fragment slot="who">
Those who want maximum financial privacy. Note: Monero is already delisted from several European
exchanges, so you often need a decentralised swap.
</Fragment>
<ol slot="install">
<li>Install a wallet (the official one at getmonero.org, or Cake Wallet on mobile).</li>
<li>
Get XMR through a decentralised exchange service (for example a "swap" from another crypto).
</li>
<li>Back up your recovery phrase on paper.</li>
</ol>
</ToolCard>
<div class="box warn">
<span class="lab">Legality &amp; caution</span>
<p>
Financial privacy is <strong>legal</strong>. Don't confuse it with tax evasion: declare what
must be declared. Cryptocurrencies are <strong>volatile</strong> and scams are common; never
risk what you can't lose, and learn before you act.
</p>
</div>
+87
View File
@@ -0,0 +1,87 @@
---
id: 'ia'
part: 9
order: 15
title: 'Conversational AI'
---
<p class="part-num">
PART 14 · BLIND SPOT · THE AI MADNESS · <span class="lvl lvl-2">🟡</span>
</p>
## Conversational AI
While we fight to encrypt our messages, hundreds of millions of people pour their most intimate thoughts into ChatGPT, Gemini or Copilot, on US servers. This is the blind spot of the whole story. Sheer madness.
What you type into a cloud AI is a **written, timestamped, stored confession**. Worse than a message: you spill your anxieties, your health, your finances, your work secrets, often more honestly than to a friend. And unlike an encrypted messenger, it's all readable in plaintext on the server.
<div class="box warn">
<span class="lab">What the facts say (2025-2026)</span>
<p>
Consumer tiers <strong>train on your data by default</strong>. In January 2026, a US judge
ordered OpenAI to produce <strong>20 million ChatGPT conversations</strong> as evidence: the
affected users were neither notified nor consulted. Deleting a chat{' '}
<strong>does not guarantee</strong> it's gone. And in one leak, 47,000 exposed conversations
held emails, phone numbers and re-identifiable intimate details.
</p>
</div>
#### The counter: local AI
<ToolCard tool="t-localai">
<Fragment slot="tags">
<span class="tool-tag">🟡🔴</span>
<span class="tool-tag">Replaces ChatGPT</span>
<span class="tool-tag">🌍 · 100% local</span>
</Fragment>
<Fragment slot="what">Software to run an AI model directly on your own computer.</Fragment>
<Fragment slot="why">
Your questions never leave the device: no server, no account, no telemetry, and it works
offline. Quality depends on your hardware, but nothing leaks. <b>Ollama</b> and <b>LM Studio</b>{' '}
are the easiest; <b>Jan</b> and <b>GPT4All</b> aim for maximum privacy.
</Fragment>
<Fragment slot="who">
Anyone who uses AI for even slightly personal topics and doesn't want to hand them to a US
server.
</Fragment>
<ol slot="install">
<li>
For a gentle start, install <b>LM Studio</b> or <b>Jan</b> (a graphical interface, like a
normal app).
</li>
<li>
Download a model offered in the app (for example Llama or Mistral), matched to your machine's
power.
</li>
<li>
Chat away: everything happens locally. Ollama is the command-line version for the more
technical.
</li>
</ol>
</ToolCard>
<ToolCard tool="t-cloudai">
<Fragment slot="tags">
<span class="tool-tag">🟢🟡</span>
<span class="tool-tag">Privacy-minded cloud</span>
</Fragment>
<Fragment slot="what">
Cloud AI access, but built for privacy, when a local AI isn't possible.
</Fragment>
<Fragment slot="why">
<b>Duck.ai</b> (DuckDuckGo) gives anonymised access to several models. <b>Lumo</b> (Proton)
encrypts exchanges and doesn't train on them. Far better than consumer ChatGPT, but it's still a
remote server.
</Fragment>
<Fragment slot="who">
Those who want cloud convenience without feeding the giants. Keep non-sensitive topics there.
</Fragment>
</ToolCard>
<div class="box honest">
<span class="lab">The simple rule</span>
<p>
Never paste into a cloud AI what you wouldn't tell a stranger who's recording: identity, health,
passwords, work secrets, confessions. For anything sensitive, use a local AI.
</p>
</div>
+192
View File
@@ -0,0 +1,192 @@
---
id: 'boiteaoutils'
part: 9
order: 16
title: 'The everyday toolbox'
---
<p class="part-num">
PART 15 · REPLACE THE REST · <span class="lvl lvl-2">🟡</span>
</p>
## The everyday toolbox
Google and Apple are not just email: maps, notes, calendar, photos, video calls, everything is tied to your identity. Here's how to replace each brick, one at a time, without losing convenience.
<ToolCard tool="t-maps">
<Fragment slot="tags">
<span class="tool-tag">🟢 Beginner</span>
<span class="tool-tag">Replaces Google Maps</span>
<span class="tool-tag">🌍 · open-source</span>
</Fragment>
<Fragment slot="what">
Map and navigation apps, built on OpenStreetMap, that work offline.
</Fragment>
<Fragment slot="why">
Google Maps logs every trip and builds a chillingly precise location history.{' '}
<b>Organic Maps</b> tracks nothing and shows no ads; <b>OsmAnd</b> targets power users (hiking,
contour lines, detailed navigation).
</Fragment>
<Fragment slot="who">
Everyone. Live traffic and transit are less complete than Google's, but everyday navigation is
excellent.
</Fragment>
<ol slot="install">
<li>Install from F-Droid, the App Store or Google Play.</li>
<li>Download the maps of the regions you need in advance for offline use.</li>
</ol>
</ToolCard>
<ToolCard tool="t-notes">
<Fragment slot="tags">
<span class="tool-tag">🟢🟡</span>
<span class="tool-tag">Replaces Docs / Notion</span>
<span class="tool-tag">🌍 · open-source</span>
</Fragment>
<Fragment slot="what">
End-to-end encrypted notes and documents, to replace Google Docs, Notion or Evernote.
</Fragment>
<Fragment slot="why">
<b>Standard Notes</b> (by Proton) encrypts your notes by default. <b>Joplin</b> handles Markdown
notebooks with optional encryption and the sync of your choice. <b>CryptPad</b> (French) offers
a real-time, fully encrypted Google Docs equivalent.
</Fragment>
<Fragment slot="who">Everyone for notes; CryptPad for multi-person collaboration.</Fragment>
<ol slot="install">
<li>
Standard Notes / Joplin: create an account, install the app, and enable encryption (on by
default in Standard Notes, to switch on in Joplin).
</li>
<li>CryptPad: use cryptpad.fr or another instance, no account needed to start.</li>
</ol>
</ToolCard>
<ToolCard tool="t-visio">
<Fragment slot="tags">
<span class="tool-tag">🟢🟡</span>
<span class="tool-tag">Replaces Zoom / Meet</span>
<span class="tool-tag">🌍 · open-source</span>
</Fragment>
<Fragment slot="what">
Video-conferencing tools with no account or heavy install, to replace Zoom, Google Meet or
Teams.
</Fragment>
<Fragment slot="why">
<b>Jitsi Meet</b> runs in the browser, no account, and can be self-hosted (it's also the basis
of Brave Talk). <b>Element Call</b> is end-to-end encrypted and federated via Matrix. For a
simple, fully encrypted call, <b>Signal</b> calls also do the job.
</Fragment>
<Fragment slot="who">
Everyone. On a public Jitsi server, multi-party calls are transport-encrypted; end-to-end
encryption is optional.
</Fragment>
<ol slot="install">
<li>Jitsi: go to meet.jit.si, create a room name, share the link. Nothing to install.</li>
<li>Element Call: from the Element (Matrix) app, start a call in a room.</li>
</ol>
</ToolCard>
<ToolCard tool="t-photos">
<Fragment slot="tags">
<span class="tool-tag">🟡🔴</span>
<span class="tool-tag">Replaces Google Photos</span>
<span class="tool-tag">🌍 · open-source</span>
</Fragment>
<Fragment slot="what">
Two ways to keep your photos without handing them to Google or Apple.
</Fragment>
<Fragment slot="why">
<b>Ente</b> is a managed, end-to-end encrypted service, with on-device recognition and search:
simple and safe. <b>Immich</b> is a Google Photos clone you <b>host yourself</b> (face and
object search included), for those comfortable running a server.
</Fragment>
<Fragment slot="who">
Ente for everyone; Immich for self-hosters. Note: Immich is not end-to-end encrypted, its
security depends on your server.
</Fragment>
<ol slot="install">
<li>Ente: install the app, create an account, turn on automatic backup of your camera roll.</li>
<li>
Immich: deploy it on your server (see section 10) via Docker, then connect the mobile app.
</li>
</ol>
</ToolCard>
<ToolCard tool="t-alias">
<Fragment slot="tags">
<span class="tool-tag">🟢🟡</span>
<span class="tool-tag">Email aliases</span>
<span class="tool-tag">🌍 · open-source</span>
</Fragment>
<Fragment slot="what">
Disposable email aliases: a unique address per site, forwarding to your real inbox without ever
revealing it.
</Fragment>
<Fragment slot="why">
You stop giving out your real address everywhere. If a site is breached or spams you, you cut
that one alias, and you instantly know who leaked your data. <b>SimpleLogin</b> is integrated
with Proton; <b>addy.io</b> offers unlimited aliases on the free tier.
</Fragment>
<Fragment slot="who">
Everyone, and especially pseudonymous accounts that want to compartmentalise their signups.
</Fragment>
<ol slot="install">
<li>Create an account, install the browser extension.</li>
<li>At each signup, generate a new alias instead of typing your real address.</li>
</ol>
</ToolCard>
<ToolCard tool="t-backups">
<Fragment slot="name">Encrypted backups</Fragment>
<Fragment slot="tags">
<span class="tool-tag">🟡🔴</span>
<span class="tool-tag">Cryptomator · restic</span>
<span class="tool-tag">🌍 · open-source</span>
</Fragment>
<Fragment slot="what">
A way to back up your phone and computer, encrypting the data <b>before</b> it leaves for any
cloud.
</Fragment>
<Fragment slot="why">
iCloud/Google backups are often accessible to the provider, and thus to courts.{' '}
<b>Cryptomator</b> encrypts your files before sending them to any cloud; <b>restic</b> makes
automatic encrypted backups; <b>Proton Drive</b> is end-to-end encrypted. On iPhone, enable
"Advanced Data Protection" to encrypt your iCloud backups.
</Fragment>
<Fragment slot="who">
Everyone should encrypt their backups. Golden rule: two encrypted copies, on two media, in two
places.
</Fragment>
<ol slot="install">
<li>iPhone: Settings &gt; your name &gt; iCloud &gt; Advanced Data Protection: turn it on.</li>
<li>
PC: install Cryptomator, create a vault, put your files in it before syncing to the cloud.
</li>
</ol>
</ToolCard>
<ToolCard tool="t-databrokers">
<Fragment slot="name">Erase your data (GDPR)</Fragment>
<Fragment slot="tags">
<span class="tool-tag">🟡</span>
<span class="tool-tag">Data brokers</span>
</Fragment>
<Fragment slot="what">
Getting your personal information removed from the "data brokers" that collect and resell it.
</Fragment>
<Fragment slot="why">
In Europe, the GDPR (Article 17) gives you a <b>right to erasure</b>: you can demand, for free,
that a company delete your data, in principle within a month. Services like <b>Incogni</b>{' '}
automate these requests at scale, for a fee.
</Fragment>
<Fragment slot="who">
Those who want to reduce their exposure. Note: data reappears over time, and this doesn't touch
public records or social media. Doing it yourself is free but tedious.
</Fragment>
<ol slot="install">
<li>For a manual request: write to the broker citing GDPR Article 17 and ask for deletion.</li>
<li>
To automate: subscribe to a removal service and let it send the requests on your behalf.
</li>
</ol>
</ToolCard>
+154
View File
@@ -0,0 +1,154 @@
---
id: 'selfhost'
part: 10
order: 17
title: 'Self-hosting'
---
<p class="part-num">
PART 16 · ADVANCED SELF-DEFENCE · <span class="lvl lvl-3">🔴</span>
</p>
## Self-hosting
The ultimate level of sovereignty: host your services yourself. Your data lives on your hardware, under the jurisdiction you choose.
<ToolCard tool="t-yunohost">
<Fragment slot="tags">
<span class="tool-tag">🔴 Advanced</span>
<span class="tool-tag">Turnkey server</span>
<span class="tool-tag">🌍 · open-source</span>
</Fragment>
<Fragment slot="what">
Systems that turn an old PC or a Raspberry Pi into a personal server, with an app catalogue you
install in a few clicks.
</Fragment>
<Fragment slot="why">
Self-hosting sounds scary, but these tools do the heavy lifting. <b>YunoHost</b> even runs your
own email and single sign-on. <b>Umbrel</b> offers a 300+ app store, popular with privacy and
Bitcoin folks. <b>Start9</b> encrypts backups and gives every service a Tor address by default.
</Fragment>
<Fragment slot="who">
Advanced profiles ready to spend an afternoon building their own cloud. It's the most radical
structural counter to Chat Control.
</Fragment>
<ol slot="install">
<li>
Get an old computer, a Raspberry Pi, or rent a small server (VPS) in a protective country.
</li>
<li>Install YunoHost, Umbrel or Start9 following their official guide.</li>
<li>From the catalogue, install Nextcloud, a Matrix server, a photo gallery, etc.</li>
<li>
Reach it privately with Tailscale (card below) rather than exposing the server to the public.
</li>
</ol>
</ToolCard>
<ToolCard tool="t-nextcloud">
<Fragment slot="tags">
<span class="tool-tag">🔴 Advanced</span>
<span class="tool-tag">Replaces all of Google</span>
<span class="tool-tag">🇩🇪 · open-source</span>
</Fragment>
<Fragment slot="what">
Your own cloud: files, calendar, contacts, photos, notes and collaborative documents, on your
server.
</Fragment>
<Fragment slot="why">
It's the full replacement for Google Drive, Calendar and Contacts, but at home. You choose the
jurisdiction and no one else controls your files. Note: it's "your server" privacy, not
end-to-end encryption by default; you must keep it updated.
</Fragment>
<Fragment slot="who">
Self-hosters. The easiest path is to install it via YunoHost or Umbrel.
</Fragment>
</ToolCard>
<ToolCard tool="t-synapse">
<Fragment slot="tags">
<span class="tool-tag">🔴 Advanced</span>
<span class="tool-tag">Your chat server</span>
<span class="tool-tag">🌍 · open-source</span>
</Fragment>
<Fragment slot="what">
Your own Matrix chat server, powering Element and encrypted calls.
</Fragment>
<Fragment slot="why">
By hosting the server, you also control the <b>metadata</b> (who talks to whom, when), Matrix's
weak point in federation. It's community chat that you alone own.
</Fragment>
<Fragment slot="who">
Communities, collectives, newsrooms that want their own independent federated space.
</Fragment>
</ToolCard>
<ToolCard tool="t-tailscale">
<Fragment slot="tags">
<span class="tool-tag">🔴 Advanced</span>
<span class="tool-tag">Private access to your server</span>
<span class="tool-tag">🌍 · open-source</span>
</Fragment>
<Fragment slot="what">
A private encrypted network linking your devices to your server, without ever exposing it on the
public internet.
</Fragment>
<Fragment slot="why">
Instead of opening ports (and getting attacked), <b>Tailscale</b> builds a WireGuard tunnel
between your authorised devices only: your server has no public attack surface. <b>Headscale</b>{' '}
is the self-hosted version, so you depend on no third party. <b>WireGuard</b> alone gives full
control, at the cost of manual setup.
</Fragment>
<Fragment slot="who">
Every self-hoster. It's the safe way to reach your Nextcloud or photos from outside.
</Fragment>
<ol slot="install">
<li>
Install Tailscale on your server and on your phone/PC, connect them to the same account.
</li>
<li>
Your devices instantly see each other on a private network; reach your server at its Tailscale
address.
</li>
<li>For zero dependency, replace the coordination server with self-hosted Headscale.</li>
</ol>
</ToolCard>
<ToolCard tool="t-website">
<Fragment slot="name">Your own website</Fragment>
<Fragment slot="tags">
<span class="tool-tag">🟡🔴</span>
<span class="tool-tag">Ban-proof your voice</span>
</Fragment>
<Fragment slot="what">
A site of your own, on your own domain name, where your content depends on no platform.
</Fragment>
<Fragment slot="why">
The day a network deletes or suspends your account, all your work vanishes. A personal site is
your anchor: your posts stay there, archived and up to date, whatever happens. It's exactly what
cautious information accounts do. A static site (built with Hugo, Astro or Jekyll) is enough and
publishes almost for free; for a dynamic blog, a self-hosted WordPress or Ghost does the job.
</Fragment>
<Fragment slot="who">
Information accounts, creators, activists, anyone who publishes and fears platform censorship.
</Fragment>
<ol slot="install">
<li>Buy a domain name (ideally from a privacy-respecting registrar).</li>
<li>
Choose a static-site generator (Astro, Hugo) and host the output, or install WordPress/Ghost
on your server.
</li>
<li>
Always point to it from your social accounts: your audience finds you even if one account
falls.
</li>
</ol>
</ToolCard>
<div class="box">
<span class="lab">The jurisdiction point</span>
<p>
Self-hosting also means choosing <em>where</em> your data lives. A server at home or in a
protective country escapes the scanning duties imposed on big platforms. It's the most radical
structural counter to Chat Control.
</p>
</div>
+53
View File
@@ -0,0 +1,53 @@
---
id: 'tor'
part: 11
order: 18
title: 'Tor'
---
<p class="part-num">
PART 17 · <span class="lvl lvl-3">🔴</span>
</p>
## Tor
The network that separates who you are from what you do online.
<ToolCard tool="t-tor">
<Fragment slot="tags">
<span class="tool-tag">🔴 Advanced</span>
<span class="tool-tag">Network anonymity</span>
<span class="tool-tag">🌍 · open-source</span>
</Fragment>
<Fragment slot="what">
A network that separates who you are from what you do online, accessible via the Tor Browser.
</Fragment>
<Fragment slot="why">
Your traffic bounces through several encrypted relays worldwide: none knows both your identity
and your destination. It's the tool of journalists and sources, and the way to reach a blocked
site (for example to download a censored VPN).
</Fragment>
<Fragment slot="who">
High-risk profiles, and anyone who must decouple their activity from their real IP. Use it
occasionally, not as an everyday browser.
</Fragment>
<ol slot="install">
<li>
Download the Tor Browser from <b>torproject.org</b> (Windows, macOS, Linux, Android).
</li>
<li>Launch it and click "Connect." If Tor is blocked in your country, enable a "bridge."</li>
<li>
Browse without maximising the window, without installing extensions, and{' '}
<b>without logging into your real accounts</b>.
</li>
</ol>
</ToolCard>
<div class="box warn">
<span class="lab">Limits, not magic</span>
<p>
Tor protects transport, not your habits: log into your real account and you deanonymise
yourself. It's slower, and the exit node sees unencrypted traffic (use HTTPS). For serious
anonymity, pair it with Tails (section 12).
</p>
</div>
+138
View File
@@ -0,0 +1,138 @@
---
id: 'os'
part: 12
order: 19
title: 'Free operating systems'
---
<p class="part-num">
PART 18 · <span class="lvl lvl-3">🔴</span>
</p>
## Free operating systems
The keystone. If client-side scanning can be imposed by the operating system itself, the only real counter is to control that OS. That's true on the phone (GrapheneOS) and on the computer (Linux). Don't underestimate this: as long as you stay on Windows, macOS or a Google Android, you don't truly control your machine.
<ToolCard tool="t-grapheneos">
<Fragment slot="tags">
<span class="tool-tag">🔴 Advanced</span>
<span class="tool-tag">De-Googled mobile</span>
<span class="tool-tag">Android · Pixel · open-source</span>
</Fragment>
<Fragment slot="what">
A fully de-Googled Android, installed on a Pixel phone: mobile sovereignty.
</Fragment>
<Fragment slot="why">
It's the structural defence par excellence against an OS or app store that would scan you.
Google services in an optional sandbox, <b>per-app network permissions</b>, isolated profiles,
auto-reboot that purges keys from memory, a duress PIN that wipes the phone. So respected for
security that it's used by spyware targets.
</Fragment>
<Fragment slot="who">
Exposed profiles, but also any citizen willing to buy a Pixel to take back control of their
phone.
</Fragment>
<ol slot="install">
<li>
Get a compatible <b>Google Pixel</b> phone (it's the only supported hardware, for security
reasons).
</li>
<li>
On a computer, go to <b>grapheneos.org/install</b> and follow the web installer (a few clicks,
no terminal needed).
</li>
<li>
For your apps, install the free F-Droid store; add sandboxed Google Play only if needed.
</li>
<li>Set a long passphrase (not a 4-digit PIN) and learn the "Lockdown" mode.</li>
</ol>
</ToolCard>
<ToolCard tool="t-linux">
<Fragment slot="name">Linux (on desktop)</Fragment>
<Fragment slot="tags">
<span class="tool-tag">🟡🔴</span>
<span class="tool-tag">Replaces Windows / macOS</span>
<span class="tool-tag">🌍 · free</span>
</Fragment>
<Fragment slot="what">
A free operating system for your computer, replacing Windows or macOS. It comes in many
flavours, called "distributions."
</Fragment>
<Fragment slot="why">
It's many people's blind spot: they encrypt their messages but keep a Windows that streams
telemetry to Microsoft nonstop (whose "Recall" feature tried to screenshot the screen
continuously), or a macOS that reports the apps you launch. Linux doesn't spy on you, it's free,
it revives old computers, and it finally makes you master of your machine. It's easier than its
reputation: modern distributions look like Windows or macOS.
</Fragment>
<Fragment slot="who">
Anyone can make the switch. To start, <b>Linux Mint</b> (closest to Windows) or <b>Fedora</b>;{' '}
<b>Debian</b> for stability. No need to wipe anything: you can test first, then install
alongside your current system.
</Fragment>
<ol slot="install">
<li>
Not sure which distribution? Answer the <b>distrochooser.de/fr</b> quiz, which points you to
the right one for your needs.
</li>
<li>
Try it <b>without installing anything</b>, right in your browser, at <b>distrosea.com</b>.
</li>
<li>
Once convinced, download the distribution's image and create a bootable USB (with Ventoy or
Balena Etcher).
</li>
<li>
Boot from the USB to try the system "live," then run the install. Enable the disk encryption
it offers.
</li>
</ol>
</ToolCard>
<ToolCard tool="t-tails">
<Fragment slot="tags">
<span class="tool-tag">🔴 Advanced</span>
<span class="tool-tag">Amnesic USB</span>
<span class="tool-tag">🌍 · all via Tor</span>
</Fragment>
<Fragment slot="what">
A system that boots from a USB stick, routes all traffic through Tor and leaves <b>no trace</b>{' '}
when shut down.
</Fragment>
<Fragment slot="why">
On shutdown, everything is forgotten: it's "amnesic." Ideal for sensitive, one-off work on a
computer that isn't yours, leaving nothing behind.
</Fragment>
<Fragment slot="who">
Whistleblowers, journalists, sources. The reference tool for high-risk work.
</Fragment>
<ol slot="install">
<li>
Download Tails from <b>tails.net</b> and follow the wizard to create the USB stick.
</li>
<li>Reboot the computer from that USB. Use it, then shut down: everything vanishes.</li>
</ol>
</ToolCard>
<ToolCard tool="t-qubes">
<Fragment slot="tags">
<span class="tool-tag">🔴 Expert</span>
<span class="tool-tag">Compartmentalisation</span>
<span class="tool-tag">🌍 · open-source</span>
</Fragment>
<Fragment slot="what">
Two niche systems: Qubes compartmentalises your PC into sealed virtual machines; postmarketOS
runs Linux on old phones.
</Fragment>
<Fragment slot="why">
Qubes isolates each activity (work, banking, risky browsing) in its own compartment: a
compromise doesn't reach the rest. postmarketOS extends the life of phones abandoned by their
maker.
</Fragment>
<Fragment slot="who">Expert users with a very high threat model.</Fragment>
</ToolCard>
#### Harden your device
Even without switching OS, you gain a lot: install apps via **F-Droid** (free store) or **Aurora Store**, replace Google services with **microG**, create separate profiles, cut needless network permissions, disable automatic cloud backup and the advertising ID.
+46
View File
@@ -0,0 +1,46 @@
---
id: 'telephonie'
part: 12
order: 20
title: 'Telephony & physical device'
---
<p class="part-num">
PART 19 · HARDWARE · <span class="lvl lvl-3">🔴</span>
</p>
## Telephony &amp; physical device
The best app is useless if the device itself betrays you. Here are the hardware threats and the moves that neutralise them.
#### The phone number is a tracker
Your number ties together your SIM card, your device (its IMEI identifier), your location and your identity (most countries require ID to buy a SIM). It's the thread that lets everything be cross-referenced.
- Use **number-free** messengers (SimpleX, Session) for sensitive contacts, and always prefer Signal over SMS.
- For a separate identity, a "data-only" SIM or prepaid eSIM limits the link at the point of sale (check your country's rules).
#### IMSI-catchers &amp; the phone network
"IMSI-catchers" (or "stingrays") are fake cell towers that force phones to connect so they can log their identifier and sometimes intercept communications, often by downgrading to weakly encrypted 2G. In parallel, an old network flaw (SS7) still allows SMS interception and remote phone location: one more reason to drop SMS.
- **Disable 2G** in settings (possible on Android and GrapheneOS) to cut the main interception vector.
- At a protest or in a sensitive area, switch to **airplane mode** or slip the phone into a **Faraday bag** (which blocks all signal). The EFF even publishes a free tool, Rayhunter, to detect IMSI-catchers.
#### Biometrics or passcode?
<div class="box warn">
<span class="lab">A finger can be forced, a passcode can't</span>
<p>
Your face or finger can be applied to the sensor while you're restrained (at a border, during an
arrest); a password in your head cannot. Before a risky situation, force a return to the
passcode: on iPhone, hold the side button and a volume button (the "SOS" screen); on
Android/GrapheneOS, use <b>Lockdown</b> in the power menu, which disables biometrics until the
PIN is entered. Choose a long passphrase, not a four-digit PIN. GrapheneOS even offers a{' '}
<b>duress PIN</b> that wipes the phone.
</p>
</div>
#### De-Microsoft, de-Apple
Don't forget the computer: Windows streams telemetry nonstop (and its "Recall" feature tried to screenshot the screen continuously), macOS reports the apps you launch. The real exit is Linux (see section 12). Short of that, disable telemetry, the advertising ID and "Recall," and add an outbound firewall (like Little Snitch on Mac).
+37
View File
@@ -0,0 +1,37 @@
---
id: 'opsec'
part: 13
order: 21
title: 'Anonymity & OPSEC'
---
<p class="part-num">
PART 20 · <span class="lvl lvl-3">🔴</span>
</p>
## Anonymity &amp; OPSEC
For the pseudonymous account and the whistleblower. Here you no longer protect just a message: you protect an **identity**.
#### Pseudonymity vs anonymity
The golden rule: **never cross your real identity with your public one**. Not the same email, number, device, network, posting hours or writing style. A single leak links the two.
- **Identity-less accounts** : SimpleX and Session need no number; pair them with disposable email aliases. Beware resold, traceable "virtual numbers".
- **Clean metadata** : a posted photo often carries the date, device model and sometimes GPS coordinates (EXIF data). Strip it with _Metadata Cleaner_, _mat2_ or _ExifTool_ before posting; watch file names and document metadata too.
- **Network anti-correlation** : use Tor/Tails to decouple your activity from your home IP. Never mix your personal and pseudonymous networks. A SIM in your name betrays your location no matter what else you do.
- **Compartmentalisation** : a device, or at least a profile, dedicated to the public identity, a separate password manager, and never a cross-login between the two worlds.
#### Passing documents as a source
**SecureDrop** is the anonymous submission system many newsrooms use to receive documents from sources. Many outlets also publish a PGP key and a Signal contact. Never submit from your work hardware or usual network.
<div class="box honest">
<span class="lab">Honesty, don't overestimate yourself</span>
<p>
Strong anonymity against a state adversary is <strong>hard and fallible</strong>. This guide
gives bearings, not guarantees. If lives depend on it, train with the authoritative references:{' '}
<em>EFF Surveillance Self-Defense</em>, <em>Freedom of the Press Foundation</em>,{' '}
<em>Privacy Guides</em>. Strictly defensive and journalistic context.
</p>
</div>
+72
View File
@@ -0,0 +1,72 @@
---
id: 'ecosysteme'
part: 14
order: 22
title: 'The full free ecosystem'
---
<p class="part-num">PART 21 · GOING FURTHER</p>
## The full free ecosystem
Fully de-Googling means replacing each brick with a free equivalent. The common logic (**free software + control of your device + self-hosting**) is the real counter to client-side scanning.
<div class="eco">
<div class="eco-cat">
<h4>Office</h4>
<ul>
<li>LibreOffice</li>
<li>OnlyOffice</li>
</ul>
</div>
<div class="eco-cat">
<h4>Media</h4>
<ul>
<li>VLC</li>
<li>Jellyfin</li>
<li>FreeTube / NewPipe</li>
<li>Audacity · OBS</li>
<li>GIMP · Inkscape</li>
<li>Calibre · Shotcut</li>
</ul>
</div>
<div class="eco-cat">
<h4>Cloud &amp; network</h4>
<ul>
<li>Nextcloud</li>
<li>Pi-hole</li>
<li>KDE Connect</li>
</ul>
</div>
<div class="eco-cat">
<h4>Free mobile</h4>
<ul>
<li>F-Droid · Aurora</li>
<li>microG</li>
<li>postmarketOS</li>
</ul>
</div>
<div class="eco-cat">
<h4>Security</h4>
<ul>
<li>Bitwarden</li>
<li>KeePassXC</li>
<li>Wireshark</li>
</ul>
</div>
<div class="eco-cat">
<h4>Email &amp; desktop</h4>
<ul>
<li>Thunderbird</li>
<li>FairEmail</li>
</ul>
</div>
<div class="eco-cat">
<h4>Dev &amp; advanced</h4>
<ul>
<li>Termux · git</li>
<li>QEMU / KVM · Wine</li>
<li>Flatpak · GNU/Linux</li>
</ul>
</div>
</div>
+24
View File
@@ -0,0 +1,24 @@
---
id: 'action'
part: 15
order: 23
title: 'Migration & digital civil disobedience'
---
<p class="part-num">PART 22 · TAKE ACTION</p>
## Migration &amp; digital civil disobedience
#### A step-by-step plan
1. **Week 1 🟢** : Install Signal and bring your close ones over. Move to Proton Mail or Tuta. Set up a password manager and uBlock Origin.
2. **Week 2 🟡** : Move files to an encrypted cloud, replace Chrome/Google Search, get a VPN, open a Mastodon account.
3. **Then 🔴** : Depending on your profile: GrapheneOS, Tor/Tails, self-hosting, OPSEC discipline.
<div class="box warn">
<span class="lab">Common mistakes</span>
<p>
Believing one tool is enough; reusing your real number for an anonymous account; installing ten
apps without changing habits; forgetting the weak link is often the device itself.
</p>
</div>
+162
View File
@@ -0,0 +1,162 @@
---
id: 'menace'
part: 0
order: 1
title: 'Comprendre la menace'
---
<p class="part-num">PARTIE 00 · LE POURQUOI</p>
## Comprendre la menace
Avant de changer d'outils, il faut comprendre ce contre quoi on se protège. Sinon, on installe des applications au hasard et on se croit protégé alors qu'on ne l'est pas.
### Chat Control 1.0 et 2.0, en clair
« Chat Control » est le surnom donné à deux textes européens qui autorisent (ou imposeraient) le scan de vos messages privés à la recherche de contenus pédocriminels (CSAM). L'objectif affiché est légitime ; le moyen employé, le scan généralisé des communications de personnes non suspectes, revient à une surveillance de masse.
<div class="tablewrap">
<table>
<thead>
<tr>
<th></th>
<th>Chat Control 1.0</th>
<th>Chat Control 2.0 (CSAR)</th>
</tr>
</thead>
<tbody>
<tr>
<td>Texte</td>
<td>Règlement (UE) 2021/1232, dérogation à la directive ePrivacy</td>
<td>Proposition COM/2022/209 (Ylva Johansson, mai 2022)</td>
</tr>
<tr>
<td>Nature du scan</td>
<td>
Volontaire, les plateformes <em>peuvent</em> scanner
</td>
<td>Obligatoire via « ordres de détection » et « mesures d'atténuation des risques »</td>
</tr>
<tr>
<td>Qui est visé</td>
<td>
Surtout services US non chiffrés : Gmail, Messenger/Instagram, Skype, Snapchat, iCloud
Mail, Xbox
</td>
<td>
<strong>Toutes</strong> les plateformes, y compris les messageries chiffrées de bout en
bout
</td>
</tr>
</tbody>
</table>
</div>
### Le scan côté client : le mouchard légal
Le cœur de Chat Control 2.0 est une technique appelée **scan côté client** (_client-side scanning_). L'idée : au lieu de casser le chiffrement pendant le transport, on installe un logiciel **directement sur votre téléphone** qui inspecte chaque message, photo ou lien **avant** qu'il ne soit chiffré et envoyé. Signal résume ça d'une phrase : c'est « comme un malware sur votre appareil ».
<div class="box honest">
<span class="lab">Honnêteté technique, à lire deux fois</span>
<p>
Contre le scan côté client,{' '}
<strong>ni un VPN ni le chiffrement de bout en bout ne suffisent</strong> si l'application ou le
système d'exploitation coopère. Le scan a lieu sur l'appareil, avant chiffrement : le VPN ne
voit rien à protéger, et le chiffrement intervient trop tard. Ce qui protège réellement, c'est
de choisir des logiciels <strong>libres qui refusent d'implémenter le scan</strong>, des{' '}
<strong>juridictions</strong> favorables, <strong>l'auto-hébergement</strong>, et de{' '}
<strong>reprendre le contrôle de son appareil</strong> (un OS non piégé). Tout le reste de ce
guide découle de cette vérité.
</p>
</div>
<div class="box warn">
<span class="lab">Le pire : l'outil ne marche même pas</span>
<p>
On sacrifie la vie privée de tous pour une technologie qui échoue. La propre étude du Parlement
européen conclut qu'aucun système ne détecte ce contenu sans un taux d'erreur élevé (à cause du
très grand nombre de messages, un faible taux de faux positifs produit des millions de fausses
accusations). Les chiffres de la police irlandaise l'illustrent : sur les signalements
automatiques, environ 20 % seulement correspondaient à du vrai contenu, et plus de 11 % étaient
des faux positifs manifestes. Des travaux de référence (« Bugs in Our Pockets », 2021) montrent
en plus que le scan côté client, une fois installé, est inévitablement détourné vers d'autres
usages (terrorisme, droit d'auteur, opinions).
</p>
</div>
### Le prétexte : « protéger les enfants »
Personne n'est contre la protection des mineurs, et c'est précisément ce qui en fait un levier si efficace. La lutte contre la pédocriminalité sert de **cheval de Troie émotionnel** : qui oserait s'y opposer ? Sous cette bannière, on fait accepter un principe qui, présenté seul, serait rejeté en bloc, l'inspection automatisée des communications privées de **centaines de millions de personnes non suspectes**. Les enfants sont le motif affiché ; la cible réelle, c'est le chiffrement et la vie privée de tous.
Le plus révélateur : les entreprises qui poussent le plus fort pour ce scan sont celles dont le modèle économique **est** la surveillance. Le 19 mars 2026, un appel commun a exhorté les législateurs européens à pérenniser la détection « volontaire », signé par&nbsp;:
<div class="namewall" aria-label="Google, LinkedIn, Snapchat, Microsoft, TikTok, Meta">
<span>Google</span>
<span>LinkedIn</span>
<span>Snapchat</span>
<span>Microsoft</span>
<span>TikTok</span>
<span>Meta</span>
</div>
<blockquote class="pull">
« Ne pas agir serait irresponsable. » L'argument des géants de la tech pour maintenir le scan des
messages.
</blockquote>
Ces mêmes acteurs ont d'ailleurs annoncé vouloir **continuer à scanner** les messages même après l'expiration de la base légale, le 4 avril 2026. On demande donc aux citoyens de confier l'inspection de leurs conversations intimes aux entreprises précisément connues pour aspirer et monétiser leurs données. Voilà le vrai visage de Chat Control : une **attaque contre la vie privée** emballée dans un motif que personne ne peut refuser.
### Ce n'est pas « juste » de la surveillance
On cherche à vous rassurer : « ce n'est que Gmail, Instagram, Snapchat, Messenger ». C'est faux, et c'est même le plus scandaleux. Trois basculements se cachent derrière cette minimisation.
1. **Ce n'est pas du ciblage, c'est du ratissage.** On ne surveille pas des suspects : on installe une collecte systématique des communications de populations entières. C'est de la surveillance à l'échelle étatique, en continu.
2. **Ce n'est plus lire, c'est pouvoir bloquer.** Un logiciel qui inspecte un message avant son envoi peut aussi **refuser de l'envoyer**. Le scan côté client crée l'infrastructure de la censure préalable : bloquer une parole avant même qu'elle existe pour son destinataire.
3. **Une fois l'infrastructure posée, elle sert à autre chose.** Un dispositif construit « pour les enfants » devient un outil polyvalent de contrôle. Le motif change, la machine reste.
<div class="box warn">
<span class="lab">La suite logique : l'euro numérique</span>
<p>
La même logique s'apprête à toucher votre argent. Le projet d'euro numérique de la BCE repose
sur une monnaie <strong>traçable</strong>, interdit aux entreprises d'en détenir, et prévoit un{' '}
<strong>plafond de détention</strong> : la BCE a évoqué environ 3 000 € par personne comme
hypothèse de travail, et la position votée en commission au Parlement européen (juin 2026)
confie à la Commission le soin de fixer ce plafond, révisable tous les deux ans. La BCE jure que
la monnaie ne sera pas « programmable », mais le plafond et la traçabilité, eux, sont bien au
programme. Le jour venu, entendrez-vous « tranquille, ce n'est qu'un plafond » ? C'est
exactement le même piège rhétorique que « ce n'est que Gmail ». La vraie question n'est jamais
ce qui est contrôlé aujourd'hui, mais l'infrastructure de contrôle que l'on installe pour
demain.
</p>
</div>
### À quel profil appartenez-vous ?
Aucun outil n'est magique et personne n'a besoin de tout faire. Repérez votre profil : chaque section indiquera jusqu'où aller.
<div class="profiles">
<div class="profile p1">
<div class="lvl lvl-1">Débutant</div>
<h4>🟢 Le citoyen ordinaire</h4>
<p>
Vous voulez simplement que vos conversations et votre vie privée cessent d'être scannées et
monétisées. Objectif : la confidentialité au quotidien, sans devenir expert.
</p>
</div>
<div class="profile p2">
<div class="lvl lvl-2">Intermédiaire</div>
<h4>🟡 Le compte pseudonyme</h4>
<p>
Compte d'information, page militante, créateur : vous craignez d'être déanonymisé, doxxé, ou
de perdre votre compte. Objectif : séparer votre identité réelle de votre identité publique.
</p>
</div>
<div class="profile p3">
<div class="lvl lvl-3">Avancé</div>
<h4>🔴 Le lanceur d'alerte</h4>
<p>
Journaliste, activiste, source, face à un adversaire puissant (État, employeur). Objectif :
anonymat fort, anti-corrélation, transmettre des documents sans se faire prendre.
</p>
</div>
</div>
+64
View File
@@ -0,0 +1,64 @@
---
id: 'memo'
part: 0
order: 2
title: 'À supprimer / À adopter'
---
<p class="part-num">PARTIE 01 · MÉMO · LE GRAND REMPLACEMENT NUMÉRIQUE</p>
## À supprimer / À adopter
La vue d'ensemble en un coup d'œil. Le détail de chaque outil suit dans les sections numérotées.
<div class="swap">
<div class="swap-col del">
<div class="swap-h">À supprimer</div>
<ul>
<li>
WhatsApp <b>(Meta)</b>
</li>
<li>
Messenger <b>(Meta)</b>
</li>
<li>
Instagram <b>(Meta)</b>
</li>
<li>Snapchat</li>
<li>
Skype <b>(Microsoft)</b>
</li>
<li>Discord</li>
<li>
Gmail <b>(Google)</b>
</li>
<li>
Outlook <b>(Microsoft)</b>
</li>
<li>Google Drive / Photos</li>
<li>
OneDrive <b>(Microsoft)</b>
</li>
<li>TikTok</li>
<li>Telegram (chats normaux)</li>
</ul>
</div>
<div class="swap-col keep">
<div class="swap-h">À adopter</div>
<ul>
<li>Signal</li>
<li>SimpleX Chat</li>
<li>Session</li>
<li>Bitchat</li>
<li>
Element <b>(Matrix)</b>
</li>
<li>Nostr</li>
<li>Mastodon</li>
<li>Proton Mail</li>
<li>Tuta Mail</li>
<li>Mullvad (VPN &amp; navigateur)</li>
<li>GrapheneOS</li>
</ul>
</div>
</div>
+252
View File
@@ -0,0 +1,252 @@
---
id: 'messagerie'
part: 1
order: 3
title: 'Messagerie chiffrée'
---
<p class="part-num">
PARTIE 02 · LES FONDATIONS · <span class="lvl lvl-1">🟢</span>
</p>
## Messagerie chiffrée
Le premier geste, celui qui protège le plus vite : quitter WhatsApp, Messenger et Telegram pour une messagerie réellement chiffrée et, idéalement, libre.
<div class="tablewrap">
<table>
<thead>
<tr>
<th>Vous quittez</th>
<th>Vous adoptez</th>
<th>Pourquoi</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<span class="old">WhatsApp</span>
</td>
<td>
<span class="new">Signal</span>
</td>
<td>Même simplicité, sans Meta ni collecte de métadonnées</td>
</tr>
<tr>
<td>
<span class="old">Messenger</span>
</td>
<td>
<span class="new">Signal / SimpleX</span>
</td>
<td>Messenger n'est pas chiffré par défaut et fut scanné sous Chat Control 1.0</td>
</tr>
<tr>
<td>
<span class="old">Telegram</span>
</td>
<td>
<span class="new">Signal / SimpleX</span>
</td>
<td>Telegram n'est pas chiffré de bout en bout par défaut</td>
</tr>
</tbody>
</table>
</div>
<ToolCard tool="t-signal">
<Fragment slot="tags">
<span class="tool-tag">🟢 Débutant</span>
<span class="tool-tag">Remplace WhatsApp</span>
<span class="tool-tag">🇺🇸 · open-source</span>
</Fragment>
<Fragment slot="what">
Une messagerie chiffrée pour vos textos, appels, visios et groupes. C'est le remplaçant direct
de WhatsApp, en aussi simple.
</Fragment>
<Fragment slot="why">
Chiffrement de bout en bout par défaut, à but non lucratif, protocole audité qui sert de
référence mondiale. Presque aucune métadonnée conservée, et l'équipe a promis de quitter l'UE
plutôt que d'installer un scan.
</Fragment>
<Fragment slot="who">
Tout le monde, dès aujourd'hui. C'est le premier geste et le plus utile. Seule contrainte : un
numéro de téléphone, que l'on peut masquer derrière un nom d'utilisateur.
</Fragment>
<ol slot="install">
<li>
Installez depuis <b>signal.org</b> (App Store, Google Play, ou l'APK direct sur Android).
</li>
<li>Confirmez votre numéro par SMS, puis choisissez un code PIN.</li>
<li>
Réglages &gt; Confidentialité : créez un <b>nom d'utilisateur</b> pour cacher votre numéro, et
activez le <b>verrou d'inscription</b>.
</li>
<li>Invitez vos proches. Sur ordinateur, liez l'application de bureau à votre téléphone.</li>
</ol>
</ToolCard>
<ToolCard tool="t-simplex">
<Fragment slot="tags">
<span class="tool-tag">🟡 Intermédiaire</span>
<span class="tool-tag">Sans identifiant</span>
<span class="tool-tag">🌍 · open-source</span>
</Fragment>
<Fragment slot="what">
Une messagerie chiffrée sans aucun compte, sans numéro et sans identifiant. On se connecte en
partageant un lien ou un QR code.
</Fragment>
<Fragment slot="why">
Par conception, même les serveurs ignorent qui parle à qui. C'est aujourd'hui l'option la plus
protectrice contre la corrélation des métadonnées.
</Fragment>
<Fragment slot="who">
Comptes pseudonymes, contacts sensibles, haut risque. Un peu plus jeune que Signal, avec
quelques aspérités.
</Fragment>
<ol slot="install">
<li>
Installez depuis <b>simplex.chat</b> (F-Droid, Google Play, App Store ou APK).
</li>
<li>
Choisissez un nom d'affichage <b>local</b> (jamais votre vrai nom : il ne quitte pas votre
appareil).
</li>
<li>
Pour ajouter un contact, partagez un <b>lien d'invitation à usage unique</b> ou un QR code.
</li>
<li>Activez le verrou par code, et (avancé) configurez vos propres serveurs SMP.</li>
</ol>
</ToolCard>
<ToolCard tool="t-session">
<Fragment slot="tags">
<span class="tool-tag">🟡 Intermédiaire</span>
<span class="tool-tag">Sans numéro</span>
<span class="tool-tag">🌍 · open-source</span>
</Fragment>
<Fragment slot="what">
Un chiffrement à la Signal, mais sans numéro de téléphone et avec un routage en oignon.
</Fragment>
<Fragment slot="why">
Votre identité est un « Session ID » aléatoire. Le trafic passe par un réseau décentralisé
(Lokinet) qui réduit fortement les métadonnées.
</Fragment>
<Fragment slot="who">
Quand un numéro de téléphone est un risque. Écosystème plus petit, à réserver aux échanges qui
comptent.
</Fragment>
<ol slot="install">
<li>
Installez depuis <b>getsession.org</b> (toutes plateformes).
</li>
<li>
« Create account » génère votre Session ID et une <b>phrase de récupération</b>.
</li>
<li>Notez la phrase de récupération sur papier : c'est la seule clé de votre compte.</li>
<li>Partagez votre Session ID (ou QR) à vos contacts.</li>
</ol>
</ToolCard>
<ToolCard tool="t-briar">
<Fragment slot="tags">
<span class="tool-tag">🔴 Avancé</span>
<span class="tool-tag">Hors-ligne / P2P</span>
<span class="tool-tag">Android · open-source</span>
</Fragment>
<Fragment slot="what">
Une messagerie pair-à-pair qui fonctionne <b>sans internet</b> : par Bluetooth, Wi-Fi Direct ou
Tor.
</Fragment>
<Fragment slot="why">
Aucun serveur, donc rien à couper ni à saisir. Résiste aux coupures d'internet et à la censure
réseau.
</Fragment>
<Fragment slot="who">
Manifestations, catastrophes, zones isolées, blackout. Android uniquement, et les deux personnes
doivent avoir l'application.
</Fragment>
<ol slot="install">
<li>
Installez depuis <b>briarproject.org</b> ou F-Droid (pas d'iOS).
</li>
<li>
Créez un compte <b>local</b> (pseudo + mot de passe), stocké seulement sur le téléphone.
</li>
<li>Ajoutez un contact proche en scannant son QR code, ou à distance via un lien.</li>
<li>
Quand le réseau est coupé, activez le Bluetooth : les messages passent d'appareil à appareil.
</li>
</ol>
</ToolCard>
<ToolCard tool="t-bitchat">
<Fragment slot="tags">
<span class="tool-tag">🔴 Avancé</span>
<span class="tool-tag">Mesh Bluetooth</span>
<span class="tool-tag">🌍 · open-source</span>
</Fragment>
<Fragment slot="what">
La messagerie mesh de Jack Dorsey : les téléphones proches se relaient les messages de proche en
proche, sans internet ni serveur ni compte.
</Fragment>
<Fragment slot="why">
Chiffrement de bout en bout (AES-256-GCM) et un « mode panique » qui efface tout en trois
tapotements sur le logo.
</Fragment>
<Fragment slot="who">
Manifestations et blackout, en complément de Briar. À utiliser avec prudence.
</Fragment>
<div class="box warn" slot="extra">
<span class="lab">Prudence : non audité</span>
<p>
Son propre dépôt avertit qu'il « n'a pas reçu de revue de sécurité externe ». Génial pour la
résilience, mais n'en faites pas dépendre des vies pour l'instant.
</p>
</div>
<ol slot="install">
<li>Installez depuis l'App Store (iOS) ou l'APK/GitHub (Android).</li>
<li>Ouvrez l'application et choisissez un pseudo. Aucun compte à créer.</li>
<li>Les appareils proches se découvrent automatiquement en Bluetooth.</li>
<li>En cas de danger, triple-tapez le logo pour tout effacer (mode panique).</li>
</ol>
</ToolCard>
<ToolCard tool="t-molly">
<Fragment slot="tags">
<span class="tool-tag">🔴 Avancé</span>
<span class="tool-tag">Signal durci</span>
<span class="tool-tag">Android · open-source</span>
</Fragment>
<Fragment slot="what">
Une version durcie de Signal pour Android, compatible avec le même réseau.
</Fragment>
<Fragment slot="why">
Base de données chiffrée au repos, verrouillage automatique, et une variante « FOSS »
entièrement sans services Google.
</Fragment>
<Fragment slot="who">
Utilisateurs avancés, notamment sur GrapheneOS, avec un modèle de menace élevé. Android
uniquement.
</Fragment>
<ol slot="install">
<li>
Ajoutez le dépôt Molly dans F-Droid, ou récupérez l'APK sur <b>molly.im</b>.
</li>
<li>
Choisissez <b>Molly-FOSS</b> si vous voulez zéro dépendance Google.
</li>
<li>Enregistrez-vous avec votre numéro (même réseau que Signal).</li>
<li>Définissez un mot de passe de base de données et le verrouillage automatique.</li>
</ol>
</ToolCard>
<div class="box">
<span class="lab">Face à Chat Control</span>
<p>
Privilégiez des applications <strong>libres, hors des grandes plateformes américaines</strong>,
dont les équipes ont publiquement promis de quitter l'UE plutôt que d'installer un scan côté
client (c'est le cas de Signal). Rappel : si l'OS lui-même impose le scan, l'application n'y
peut rien, d'où l'importance de la section 12.
</p>
</div>
+104
View File
@@ -0,0 +1,104 @@
---
id: 'email'
part: 2
order: 4
title: 'E-mail chiffré & PGP'
---
<p class="part-num">
PARTIE 03 · <span class="lvl lvl-1">🟢</span>
</p>
## E-mail chiffré &amp; PGP
Gmail lit vos e-mails et vit aux États-Unis, sous la juridiction des « Five Eyes ». Quitter Gmail/Outlook est un gain énorme pour un effort minime.
<ToolCard tool="t-protonmail">
<Fragment slot="tags">
<span class="tool-tag">🟢 Débutant</span>
<span class="tool-tag">Remplace Gmail</span>
<span class="tool-tag">🇨🇭 · open-source · OpenPGP</span>
</Fragment>
<Fragment slot="what">
Une boîte mail chiffrée qui remplace Gmail ou Outlook, et le compte pivot de tout l'écosystème
Proton.
</Fragment>
<Fragment slot="why">
Basé en Suisse, hors juridiction des « Five Eyes ». Compatible OpenPGP : chiffrement automatique
entre comptes Proton et vers les autres services PGP.
</Fragment>
<Fragment slot="who">
Tout le monde. C'est le meilleur point de départ pour quitter Google (voir section 05 pour le
reste de la suite).
</Fragment>
<ol slot="install">
<li>
Créez un compte sur <b>proton.me</b> (offre gratuite suffisante pour commencer).
</li>
<li>
Importez vos anciens messages et contacts avec <b>Easy Switch</b> (intégré).
</li>
<li>Mettez une redirection depuis Gmail et prévenez vos contacts de votre nouvelle adresse.</li>
<li>
Installez l'application mobile, activez la <b>double authentification</b>, et utilisez Proton
Bridge si vous tenez à Thunderbird.
</li>
</ol>
</ToolCard>
<ToolCard tool="t-tuta">
<Fragment slot="tags">
<span class="tool-tag">🟢 Débutant</span>
<span class="tool-tag">Remplace Gmail</span>
<span class="tool-tag">🇩🇪 · open-source · post-quantique</span>
</Fragment>
<Fragment slot="what">
Une messagerie e-mail allemande, entièrement open-source et sans aucun service Google.
</Fragment>
<Fragment slot="why">
Elle chiffre aussi <b>l'objet et une partie des métadonnées</b>, avec un chiffrement résistant à
l'informatique quantique. Juridiction UE.
</Fragment>
<Fragment slot="who">
Ceux qui veulent le maximum de métadonnées chiffrées et du 100 % libre. Elle n'utilise pas PGP :
pour écrire chiffré à l'extérieur, on protège le message par mot de passe.
</Fragment>
<ol slot="install">
<li>
Créez un compte sur <b>tuta.com</b> et installez l'application (disponible sur F-Droid).
</li>
<li>
Pour écrire à un non-utilisateur de façon chiffrée : cliquez sur le cadenas et définissez un
mot de passe, transmis à votre correspondant par un autre canal.
</li>
<li>Activez la double authentification.</li>
</ol>
</ToolCard>
<ToolCard tool="t-mailbox">
<Fragment slot="tags">
<span class="tool-tag">🟢 Débutant</span>
<span class="tool-tag">Mail classique éthique</span>
<span class="tool-tag">🇩🇪 · UE · PGP</span>
</Fragment>
<Fragment slot="what">
Deux fournisseurs de mail européens, éthiques et peu coûteux, avec support PGP côté serveur.
</Fragment>
<Fragment slot="why">
Respectueux de la vie privée et de l'écologie, sur des standards ouverts (IMAP, PGP). Ils
fonctionnent avec n'importe quel logiciel de messagerie.
</Fragment>
<Fragment slot="who">
Ceux qui veulent un mail « classique » (relevé dans Thunderbird) mais éthique, plutôt qu'une
messagerie chiffrée fermée.
</Fragment>
<ol slot="install">
<li>Créez un compte (payant, de l'ordre de 1 à 3 € par mois).</li>
<li>Activez le chiffrement PGP côté serveur (fonction « Guard » chez mailbox.org).</li>
<li>Configurez le compte dans Thunderbird ou l'application mobile de votre choix.</li>
</ol>
</ToolCard>
#### PGP en une minute
**PGP** (Pretty Good Privacy) est le principe du chiffrement à clés : vous avez une clé _publique_ que vous distribuez, et une clé _privée_ que vous gardez secrète. Quiconque a votre clé publique peut vous écrire un message que **vous seul** pouvez déchiffrer. C'est la base de l'e-mail chiffré indépendamment de tout fournisseur. Proton Mail le gère automatiquement ; pour un usage manuel, on utilise **OpenPGP** (via Thunderbird, intégré depuis la version 78).
+160
View File
@@ -0,0 +1,160 @@
---
id: 'navigateur'
part: 3
order: 5
title: 'Navigateur & recherche'
---
<p class="part-num">
PARTIE 04 · <span class="lvl lvl-1">🟢</span>
</p>
## Navigateur &amp; recherche
Chrome est un mouchard publicitaire. Google Search profile chaque requête. On remplace les deux.
<ToolCard tool="t-mullvadbrowser">
<Fragment slot="tags">
<span class="tool-tag">🟡🔴 Interm. / Avancé</span>
<span class="tool-tag">Anti-empreinte</span>
<span class="tool-tag">🇸🇪 · open-source</span>
</Fragment>
<Fragment slot="what">
Le navigateur du Tor Browser, mais sans le réseau Tor : à utiliser avec votre VPN pour un
ordinateur difficile à pister.
</Fragment>
<Fragment slot="why">
Développé avec le Tor Project, il est conçu pour que tous ses utilisateurs présentent la{' '}
<b>même empreinte numérique</b>. Résultat : au lieu d'être unique et donc traçable, vous vous
fondez dans la masse. C'est le meilleur choix de vie privée sur ordinateur.
</Fragment>
<Fragment slot="who">
Ceux qui veulent aller au-delà du simple blocage de pub, notamment les comptes pseudonymes et
les profils exposés.
</Fragment>
<ol slot="install">
<li>
Téléchargez-le sur <b>mullvad.net/browser</b> (Windows, macOS, Linux).
</li>
<li>
Utilisez-le tel quel, sans le personnaliser : chaque extension ou réglage ajouté vous rend à
nouveau identifiable.
</li>
<li>Associez-le à votre VPN pour masquer aussi votre adresse IP.</li>
</ol>
</ToolCard>
<ToolCard tool="t-firefox">
<Fragment slot="name">Firefox (durci)</Fragment>
<Fragment slot="tags">
<span class="tool-tag">🟢 Débutant</span>
<span class="tool-tag">Remplace Chrome</span>
<span class="tool-tag">🌍 · open-source</span>
</Fragment>
<Fragment slot="what">
Le navigateur libre de référence pour un usage quotidien respectueux de la vie privée.
</Fragment>
<Fragment slot="why">
Contrairement à Chrome (un mouchard publicitaire de Google), Firefox est développé par une
fondation et n'a pas d'intérêt à vous profiler. Avec quelques réglages (le guide{' '}
<em>arkenfox</em>) et l'extension uBlock Origin, il devient très solide.
</Fragment>
<Fragment slot="who">Tout le monde, comme navigateur principal au quotidien.</Fragment>
<ol slot="install">
<li>
Installez Firefox depuis <b>mozilla.org/firefox</b>.
</li>
<li>
Ajoutez l'extension <b>uBlock Origin</b> (blocage des pubs et traqueurs).
</li>
<li>
Dans les réglages de vie privée, choisissez « Stricte », désactivez la télémétrie, et videz
les cookies à la fermeture. Pour aller plus loin, appliquez le guide arkenfox.
</li>
</ol>
</ToolCard>
<ToolCard tool="t-brave">
<Fragment slot="tags">
<span class="tool-tag">🟢 Débutant</span>
<span class="tool-tag">Bloque tout par défaut</span>
<span class="tool-tag">🌍 · open-source</span>
</Fragment>
<Fragment slot="what">
Un navigateur basé sur Chromium qui bloque publicités et traqueurs par défaut, avec en prime une
fenêtre privée connectée à Tor.
</Fragment>
<Fragment slot="why">
C'est l'option la plus simple pour quelqu'un qui vient de Chrome : même ergonomie, mais sans le
pistage. Il bloque les pubs YouTube nativement, propose une visio chiffrée (Brave Talk, basée
sur Jitsi) et un accès Tor en un clic, pratique pour récupérer un site bloqué.
</Fragment>
<Fragment slot="who">
Les débutants qui veulent un changement indolore depuis Chrome. (Ignorez les fonctions
crypto/pubs récompensées si elles ne vous intéressent pas.)
</Fragment>
<ol slot="install">
<li>
Installez Brave depuis <b>brave.com</b>.
</li>
<li>
Réglez les « Boucliers » (Shields) sur « agressif », et désactivez Brave Rewards si vous ne
voulez pas de pubs.
</li>
<li>
Pour Tor : menu &gt; « Nouvelle fenêtre privée avec Tor », puis attendez « Tor connecté ».
</li>
</ol>
</ToolCard>
<ToolCard tool="t-ublock">
<Fragment slot="tags">
<span class="tool-tag">🟢 Débutant</span>
<span class="tool-tag">Extension</span>
<span class="tool-tag">🌍 · open-source</span>
</Fragment>
<Fragment slot="what">
L'extension de navigateur qui bloque publicités, traqueurs et scripts espions. Le geste le plus
rentable, en dix secondes.
</Fragment>
<Fragment slot="why">
La publicité en ligne est le principal vecteur de surveillance et de profilage. La bloquer coupe
l'essentiel du pistage, accélère les pages et réduit les risques de logiciels malveillants.
</Fragment>
<Fragment slot="who">Tout le monde, sur Firefox comme sur les navigateurs Chromium.</Fragment>
<ol slot="install">
<li>
Ouvrez le magasin d'extensions de votre navigateur et cherchez « uBlock Origin » (l'original,
par Raymond Hill).
</li>
<li>Installez-le. Il fonctionne aussitôt, sans réglage nécessaire.</li>
</ol>
</ToolCard>
<ToolCard tool="t-search">
<Fragment slot="tags">
<span class="tool-tag">🟢🟡 Moteurs</span>
<span class="tool-tag">Remplace Google Search</span>
</Fragment>
<Fragment slot="what">
Des moteurs de recherche qui ne profilent pas chaque requête, contrairement à Google.
</Fragment>
<Fragment slot="why">
DuckDuckGo et Brave Search ne conservent pas d'historique lié à votre identité. Startpage vous
sert des résultats Google sans le pistage. SearXNG va plus loin : c'est un métamoteur{' '}
<b>auto-hébergeable</b>, la souveraineté jusque dans la barre de recherche.
</Fragment>
<Fragment slot="who">
Tout le monde. SearXNG vise ceux qui veulent héberger leur propre moteur.
</Fragment>
<ol slot="install">
<li>
Dans les réglages de votre navigateur, changez le moteur par défaut pour DuckDuckGo, Brave
Search ou Startpage.
</li>
<li>
Pour SearXNG : utilisez une instance publique (annuaire sur searx.space) ou hébergez la vôtre
(voir section 10).
</li>
</ol>
</ToolCard>
+124
View File
@@ -0,0 +1,124 @@
---
id: 'dns'
part: 3
order: 6
title: 'DNS chiffré & Cloudflare'
---
<p class="part-num">
PARTIE 05 · RÉSEAU · DNS · <span class="lvl lvl-2">🟡</span>
</p>
## DNS chiffré &amp; Cloudflare
Le DNS, c'est l'annuaire qui traduit un nom de site (exemple.com) en adresse machine. Problème : par défaut, c'est votre fournisseur d'accès qui gère cet annuaire, et il voit donc **chaque site que vous visitez**, même quand la page est en HTTPS. Chiffrer son DNS, c'est reprendre cette liste à son FAI. C'est un réglage discret mais parmi les plus efficaces.
<ToolCard tool="t-quad9">
<Fragment slot="tags">
<span class="tool-tag">🟢 Débutant</span>
<span class="tool-tag">Anti-maliciel</span>
<span class="tool-tag">🇨🇭 à but non lucratif</span>
</Fragment>
<Fragment slot="what">
Un résolveur DNS chiffré, suisse et à but non lucratif, qui bloque en plus les domaines
malveillants connus.
</Fragment>
<Fragment slot="why">
Juridiction suisse, pas de conservation de votre adresse IP, protection contre l'hameçonnage et
les logiciels malveillants. Un excellent réglage « installer et oublier ».
</Fragment>
<Fragment slot="who">
Tout le monde, en particulier ceux qui veulent la simplicité et une bonne juridiction.
</Fragment>
<ol slot="install">
<li>
Sur Android : Réglages &gt; Réseau &gt; <b>DNS privé</b> &gt; saisissez <b>dns.quad9.net</b>.
</li>
<li>
Sur iPhone/Mac : installez le profil DoH depuis quad9.net. Sur PC : configurez le
DNS-over-HTTPS dans le navigateur ou le système.
</li>
</ol>
</ToolCard>
<ToolCard tool="t-mullvaddns">
<Fragment slot="tags">
<span class="tool-tag">🟡 Intermédiaire</span>
<span class="tool-tag">Filtrage réseau</span>
</Fragment>
<Fragment slot="what">
Deux résolveurs chiffrés qui bloquent en plus pubs et traqueurs pour tout l'appareil.
</Fragment>
<Fragment slot="why">
<b>Mullvad DNS</b> (Suède, no-log) est gratuit et propose des listes de blocage. <b>NextDNS</b>{' '}
est très personnalisable, avec un tableau de bord et des profils par appareil, mais il est basé
aux États-Unis et journalise par défaut (à désactiver dans les réglages).
</Fragment>
<Fragment slot="who">
Ceux qui veulent un blocage des pubs à l'échelle du système, sans installer d'application par
navigateur.
</Fragment>
<ol slot="install">
<li>
Mullvad DNS : utilisez l'adresse indiquée sur mullvad.net/help/dns comme DNS privé (même
méthode que Quad9).
</li>
<li>
NextDNS : créez un profil sur nextdns.io, <b>désactivez la journalisation</b>, puis appliquez
la configuration à vos appareils.
</li>
</ol>
</ToolCard>
<ToolCard tool="t-cloudflare">
<Fragment slot="name">Cloudflare 1.1.1.1 (à nuancer)</Fragment>
<Fragment slot="tags">
<span class="tool-tag">🟢 Débutant</span>
<span class="tool-tag">Rapide mais centralisé</span>
<span class="tool-tag">🇺🇸</span>
</Fragment>
<Fragment slot="what">
Le DNS chiffré 1.1.1.1 et l'application WARP de Cloudflare : rapides, gratuits, et un vrai
progrès face au résolveur de votre FAI.
</Fragment>
<Fragment slot="why">
C'est utile, avec un engagement de non-journalisation audité. Mais soyez lucide : Cloudflare se
trouve déjà devant une immense partie du web (comme intermédiaire technique, il peut voir le
trafic en clair vers ces sites). Y router aussi votre DNS revient à{' '}
<b>concentrer encore plus de vos traces</b> chez une seule entreprise américaine soumise au
droit américain.
</Fragment>
<Fragment slot="who">
Bon pour un usage courant et le blocage des maliciels (1.1.1.1 for Families). À éviter ou à
diversifier pour un usage sensible : préférez alors Quad9 ou Mullvad DNS.
</Fragment>
</ToolCard>
<ToolCard tool="t-pihole">
<Fragment slot="tags">
<span class="tool-tag">🔴 Avancé</span>
<span class="tool-tag">Blocage tout le réseau</span>
<span class="tool-tag">🌍 · open-source</span>
</Fragment>
<Fragment slot="what">
Un bloqueur de publicités et de traqueurs qui protège <b>tout votre réseau à la fois</b>,
installé sur un petit ordinateur comme un Raspberry Pi.
</Fragment>
<Fragment slot="why">
Là où uBlock Origin protège un navigateur, Pi-hole filtre <b>chaque appareil</b> de la maison, y
compris ceux où l'on ne peut pas installer d'extension : téléphones, téléviseurs connectés,
objets connectés. Les pubs et traqueurs sont bloqués au niveau du DNS, avant même de se charger.{' '}
<b>AdGuard Home</b> est une alternative à l'interface plus moderne.
</Fragment>
<Fragment slot="who">
Les foyers qui veulent nettoyer tous leurs appareils d'un coup, et qui ont (ou veulent) un
Raspberry Pi ou un petit serveur.
</Fragment>
<ol slot="install">
<li>Sur un Raspberry Pi (ou un conteneur), lancez l'installeur officiel de Pi-hole.</li>
<li>
Dans les réglages de votre box/routeur, indiquez l'adresse du Pi-hole comme serveur DNS.
</li>
<li>Désormais, tous les appareils connectés à votre réseau sont filtrés automatiquement.</li>
</ol>
</ToolCard>
+146
View File
@@ -0,0 +1,146 @@
---
id: 'vpn'
part: 4
order: 7
title: 'VPN : la vérité'
---
<p class="part-num">
PARTIE 06 · <span class="lvl lvl-1">🟢</span>
</p>
## VPN : la vérité
Un VPN est utile, mais vendu avec beaucoup de mensonges. Voici ce qu'il protège vraiment.
<div class="box warn">
<span class="lab">Ce qu'un VPN ne fait PAS</span>
<p>
Un VPN <strong>ne vous protège pas du scan côté client</strong> de Chat Control : celui-ci lit
vos messages sur votre appareil, avant le chiffrement et donc avant le VPN. Ce n'est pas non
plus une cape d'invisibilité : votre système et vos applications en voient plus que votre
fournisseur de VPN.
</p>
</div>
<div class="box ok">
<span class="lab">Ce qu'un VPN fait bien</span>
<p>
Il cache votre activité à votre <strong>fournisseur d'accès</strong> et masque votre{' '}
<strong>adresse IP</strong> (donc votre localisation) aux sites visités. Utile contre la
surveillance réseau, la géolocalisation et la censure. Une brique du puzzle, pas la solution.
</p>
</div>
<ToolCard tool="t-mullvad">
<Fragment slot="tags">
<span class="tool-tag">🟢🟡🔴 Tous niveaux</span>
<span class="tool-tag">Sans compte · cash/Monero</span>
<span class="tool-tag">🇸🇪 · open-source</span>
</Fragment>
<Fragment slot="what">
Un VPN qui masque votre adresse IP et chiffre votre trafic jusqu'à ses serveurs, sans jamais
vous demander la moindre information personnelle.
</Fragment>
<Fragment slot="why">
C'est l'étalon-or de la vie privée. Pas d'e-mail, pas de nom : à l'inscription, on vous attribue
un simple numéro de compte. Politique « no-log » auditée, prix unique et honnête (5 € par mois,
sans palier ni fausse promesse), et paiement possible en espèces ou en Monero. C'est précisément
ce qui compte le jour où un État tente de couper l'accès aux VPN : un compte impossible à relier
à votre identité, et un paiement que les banques ne peuvent pas bloquer.
</Fragment>
<Fragment slot="who">
Tout le monde, du citoyen qui veut contourner une vérification d'identité au profil à haut
risque. C'est le VPN à recommander en priorité.
</Fragment>
<ol slot="install">
<li>
Allez sur <b>mullvad.net</b>. Si le site est bloqué dans votre pays, ouvrez-le via le
navigateur Tor ou son adresse <b>.onion</b>. Cliquez sur « Générer un numéro de compte » :
aucun e-mail ni nom n'est demandé. Notez ce numéro dans votre gestionnaire de mots de passe et
ne le partagez jamais, c'est votre unique clé d'accès.
</li>
<li>
Choisissez la durée et le mode de paiement. Le prix est fixe. Trois voies : carte bancaire (le
plus simple si elle n'est pas bloquée), espèces envoyées par courrier, ou cryptomonnaie.
</li>
<li>
<b>Paiement anonyme en crypto :</b> cliquez sur « Créer une adresse de paiement à usage unique
». Mullvad affiche une adresse (Bitcoin ou Monero) et un montant exact. Envoyez ce montant
depuis votre portefeuille. Pour l'anonymat maximal, préférez <b>Monero</b> (confidentiel par
défaut) ; Bitcoin est plus simple mais traçable. Voir la section 09 pour acheter de la crypto.
Comptez environ 30 minutes de confirmation.
</li>
<li>
Téléchargez l'application sur <b>mullvad.net/download</b> (via Tor si le site est filtré) et
installez-la. Sur mobile, passez par l'App Store, Google Play, ou l'APK officiel si
l'application a été retirée de votre magasin.
</li>
<li>
Lancez l'application, entrez votre numéro de compte, puis connectez-vous à un serveur situé{' '}
<b>hors de votre pays</b>, idéalement hors Union européenne (Suisse, États-Unis…). Activez le
« kill switch » (qui coupe Internet si le VPN tombe) et le DNS de Mullvad.
</li>
</ol>
</ToolCard>
<ToolCard tool="t-protonvpn">
<Fragment slot="tags">
<span class="tool-tag">🟢 Débutant</span>
<span class="tool-tag">Offre gratuite honnête</span>
<span class="tool-tag">🇨🇭 · open-source</span>
</Fragment>
<Fragment slot="what">
Le VPN de l'écosystème Proton, avec une véritable offre gratuite (rare et honnête).
</Fragment>
<Fragment slot="why">
Basé en Suisse, audité, open-source. Son offre gratuite est sans publicité, sans revente de
données et sans limite de volume (le nombre de pays est simplement réduit). C'est la porte
d'entrée idéale pour un débutant, surtout si vous utilisez déjà Proton Mail.
</Fragment>
<Fragment slot="who">
Débutants, et toute personne déjà dans l'écosystème Proton qui veut un seul compte pour tout.
</Fragment>
<ol slot="install">
<li>
Rendez-vous sur <b>protonvpn.com</b> et connectez-vous avec votre compte Proton (ou créez-en
un).
</li>
<li>Installez l'application (Windows, macOS, Linux, Android, iOS).</li>
<li>
Utilisez « Quick Connect » ou choisissez un pays, puis activez le kill switch et NetShield
(blocage des pubs et traqueurs).
</li>
</ol>
</ToolCard>
<ToolCard tool="t-ivpn">
<Fragment slot="tags">
<span class="tool-tag">🟡🔴 Interm. / Avancé</span>
<span class="tool-tag">Sans e-mail · no-log</span>
<span class="tool-tag">🇬🇮 · open-source</span>
</Fragment>
<Fragment slot="what">
Un petit fournisseur de VPN particulièrement rigoureux et transparent, sur le même modèle que
Mullvad.
</Fragment>
<Fragment slot="why">
Politique no-log auditée, pas d'e-mail obligatoire, paiement en crypto ou en espèces. Il propose
même des options anti-traçage (blocage des trackers au niveau réseau) et une inscription sans
aucun identifiant.
</Fragment>
<Fragment slot="who">
Une alternative solide à Mullvad, pour les profils pseudonymes et à haut risque qui veulent
diversifier.
</Fragment>
<ol slot="install">
<li>
Sur <b>ivpn.net</b>, générez un compte (un identifiant est créé pour vous, sans e-mail).
</li>
<li>Payez en cryptomonnaie ou en espèces, comme pour Mullvad.</li>
<li>
Installez l'application, connectez-vous hors UE, activez le kill switch et le protocole
WireGuard.
</li>
</ol>
</ToolCard>
+40
View File
@@ -0,0 +1,40 @@
---
id: 'censure'
part: 4
order: 8
title: "Censure & vérification d'identité"
---
<p class="part-num">
PARTIE 07 · CENSURE · IDENTITÉ NUMÉRIQUE · <span class="lvl lvl-2">🟡</span>
</p>
## Censure &amp; vérification d'identité
Le même prétexte (« protéger les mineurs ») sert à imposer la vérification d'identité pour accéder à Internet. C'est la fin programmée de l'anonymat en ligne, donc une forme de censure. Voici l'état des lieux, puis comment y échapper légalement.
#### Où en est-on (2025-2026)
- **France.** La loi SREN (mai 2024) confie à l'Arcom la vérification d'âge ; depuis avril 2025, les sites concernés doivent la mettre en place. Un décret imposant la vérification d'âge a été validé par le Conseil d'État le 15 juillet 2025, et une proposition interdisant les réseaux sociaux aux moins de 15 ans a été votée à l'Assemblée le 26 janvier 2026, ce qui suppose de vérifier l'âge, donc l'identité, de tout le monde.
- **Royaume-Uni.** Depuis le 25 juillet 2025, l'Online Safety Act impose une vérification d'âge « hautement efficace » (pièce d'identité, carte bancaire, estimation faciale). Résultat immédiat : les inscriptions VPN ont bondi de plus de 1 400 % en quelques heures. La Chambre des Lords a même débattu, début 2026, d'un âge minimum pour utiliser un VPN.
- **Union européenne.** La Commission a présenté une application de vérification d'âge (avril 2025), pilotée dans cinq pays, pensée pour s'articuler avec le portefeuille d'identité numérique européen (EUDI Wallet, eIDAS 2) que chaque État doit proposer d'ici fin 2026. L'EFF et EDRi alertent : la preuve « à divulgation nulle » n'est qu'optionnelle, et cela construit une infrastructure d'identité en ligne bien au-delà de la protection de l'enfance.
#### Y échapper légalement
La parade tient en une idée : prendre une adresse IP dans un pays qui n'impose pas ces contrôles, et se procurer les outils de façon anonyme, même si un jour ils sont bloqués.
- **Un VPN hors juridiction.** Connectez-vous à un serveur situé hors du pays qui filtre (idéalement hors UE et hors « 14 Eyes »), avec une politique no-log auditée. C'est ce qui vous rend l'accès aux réseaux qui exigent une pièce d'identité.
- **Un paiement anonyme.** Payez le VPN en cryptomonnaie ou en espèces (Mullvad, IVPN, Proton l'acceptent). Crucial : si un jour les VPN sont « interdits », les processeurs de paiement pourraient refuser les cartes ; le cash et la crypto resteront les seuls moyens.
- **Tor pour récupérer un VPN bloqué.** Si le site du fournisseur devient inaccessible depuis votre pays, passez par le navigateur Tor (ou une adresse .onion) pour télécharger le client. Une fois installé, le VPN est bien plus rapide pour l'usage quotidien.
- **Changer le pays du compte.** Un compte Apple/Google réglé sur un autre pays fait réapparaître les applications retirées de votre magasin local.
<div class="box warn">
<span class="lab">Le droit bouge, vérifiez</span>
<p>
Contourner une restriction géographique est légal dans la plupart des pays européens, mais le
terrain change vite : l'Utah (États-Unis) a criminalisé le contournement par VPN, et les Lords
britanniques envisagent d'encadrer l'usage des VPN. Vérifiez la loi de votre pays avant de vous
reposer sur une méthode. Ce guide vise la protection de la vie privée, pas la dissimulation d'un
délit.
</p>
</div>
+75
View File
@@ -0,0 +1,75 @@
---
id: 'proton'
part: 5
order: 9
title: 'Quitter Google'
---
<p class="part-num">
PARTIE 08 · REPRENDRE LE CONTRÔLE · <span class="lvl lvl-2">🟡</span>
</p>
## Quitter Google
Google, c'est un compte unique qui connaît vos e-mails, votre agenda, vos fichiers, vos déplacements et vos recherches. On remplace la suite entière.
<div class="tablewrap">
<table>
<thead>
<tr>
<th>Google</th>
<th>Proton</th>
<th>Autres</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<span class="old">Gmail</span>
</td>
<td>
<span class="new">Proton Mail</span>
</td>
<td>Tuta, mailbox.org</td>
</tr>
<tr>
<td>
<span class="old">Google Drive</span>
</td>
<td>
<span class="new">Proton Drive</span>
</td>
<td>Nextcloud, Cryptomator</td>
</tr>
<tr>
<td>
<span class="old">Google Calendar</span>
</td>
<td>
<span class="new">Proton Calendar</span>
</td>
<td>Tuta Calendar</td>
</tr>
<tr>
<td>
<span class="old">Google Password</span>
</td>
<td>
<span class="new">Proton Pass</span>
</td>
<td>Bitwarden, KeePassXC</td>
</tr>
<tr>
<td>
<span class="old">Google One VPN</span>
</td>
<td>
<span class="new">Proton VPN</span>
</td>
<td>Mullvad, IVPN</td>
</tr>
</tbody>
</table>
</div>
L'intérêt de **Proton** (Suisse, à but non lucratif via une fondation, open-source) : un seul compte remplace tout Google, avec chiffrement de bout en bout et une juridiction hors « Five Eyes ». On peut migrer progressivement, service par service. Pour qui préfère éviter de recentraliser chez un seul acteur, chaque ligne du tableau a une alternative indépendante.
+83
View File
@@ -0,0 +1,83 @@
---
id: 'stockage'
part: 6
order: 10
title: 'Stockage chiffré'
---
<p class="part-num">
PARTIE 09 · <span class="lvl lvl-2">🟡</span>
</p>
## Stockage chiffré
<ToolCard tool="t-protondrive">
<Fragment slot="tags">
<span class="tool-tag">🟢 Débutant</span>
<span class="tool-tag">Remplace Google Drive / iCloud</span>
<span class="tool-tag">🇨🇭 · E2EE</span>
</Fragment>
<Fragment slot="what">
Un cloud chiffré de bout en bout pour vos fichiers et vos photos, intégré à Proton.
</Fragment>
<Fragment slot="why">
Contrairement à Google Drive ou iCloud, Proton ne peut pas lire vos fichiers : ils sont chiffrés
avant de quitter votre appareil. Juridiction suisse, même compte que Proton Mail.
</Fragment>
<Fragment slot="who">
Tout le monde, comme remplacement direct et simple du cloud de Google ou d'Apple.
</Fragment>
<ol slot="install">
<li>Activez Proton Drive dans votre compte Proton et installez l'application.</li>
<li>Activez la sauvegarde automatique de vos photos, puis désactivez celle de Google/Apple.</li>
</ol>
</ToolCard>
<ToolCard tool="t-cryptomator">
<Fragment slot="tags">
<span class="tool-tag">🟡 Intermédiaire</span>
<span class="tool-tag">Chiffre avant l'envoi</span>
<span class="tool-tag">🇩🇪 · open-source</span>
</Fragment>
<Fragment slot="what">
Un coffre qui chiffre vos fichiers <b>avant</b> de les envoyer sur n'importe quel cloud, même
Google Drive ou Dropbox.
</Fragment>
<Fragment slot="why">
L'astuce parfaite si vous devez garder un cloud existant : vous conservez le service pratique,
mais le fournisseur ne voit plus que du charabia chiffré. Vous gardez seul la clé.
</Fragment>
<Fragment slot="who">
Ceux qui ne peuvent pas quitter un cloud grand public tout de suite, mais veulent protéger leurs
fichiers dès maintenant.
</Fragment>
<ol slot="install">
<li>Installez Cryptomator (PC et mobile) depuis cryptomator.org.</li>
<li>
Créez un « coffre » dans le dossier synchronisé de votre cloud, choisissez un mot de passe
fort.
</li>
<li>
Placez vos fichiers dans le coffre : ils sont chiffrés puis synchronisés automatiquement.
</li>
</ol>
</ToolCard>
<ToolCard tool="t-nc-storage">
<Fragment slot="tags">
<span class="tool-tag">🔴 Avancé</span>
<span class="tool-tag">Votre propre cloud</span>
<span class="tool-tag">🌍 · open-source</span>
</Fragment>
<Fragment slot="what">
Votre propre nuage (fichiers, agenda, contacts, notes) hébergé sur votre serveur.
</Fragment>
<Fragment slot="why">
Le degré ultime de contrôle : vos données ne quittent jamais votre matériel. Détaillé dans la
section 10 (Auto-hébergement).
</Fragment>
<Fragment slot="who">Les auto-hébergeurs. Voir la fiche complète en section 10.</Fragment>
<a slot="links" class="tool-link" href="#selfhost">
→ Section 10
</a>
</ToolCard>
@@ -0,0 +1,90 @@
---
id: 'motsdepasse'
part: 7
order: 11
title: 'Gestionnaire de mots de passe'
---
<p class="part-num">
PARTIE 10 · <span class="lvl lvl-2">🟡</span>
</p>
## Gestionnaire de mots de passe
Un mot de passe unique et fort par service : c'est la base de toute la sécurité qui suit. Arrêtez le carnet, arrêtez le même mot de passe partout.
<ToolCard tool="t-bitwarden">
<Fragment slot="tags">
<span class="tool-tag">🟢 Débutant</span>
<span class="tool-tag">Le meilleur pour débuter</span>
<span class="tool-tag">🌍 · open-source</span>
</Fragment>
<Fragment slot="what">
Un coffre-fort à mots de passe qui les mémorise, les génère et les remplit pour vous, sur tous
vos appareils.
</Fragment>
<Fragment slot="why">
Gratuit, audité, multiplateforme, et chiffré de bout en bout. Vous n'avez plus qu'un seul mot de
passe fort à retenir. Il est même <b>auto-hébergeable</b> (via Vaultwarden) pour ne dépendre de
personne.
</Fragment>
<Fragment slot="who">
Tout le monde. C'est le point de départ de toute la sécurité : un mot de passe unique et fort
par service.
</Fragment>
<ol slot="install">
<li>
Créez un compte sur bitwarden.com et choisissez un mot de passe maître <b>long</b> (une
phrase). Ne l'oubliez jamais : il n'est pas récupérable.
</li>
<li>Installez l'extension de navigateur et l'application mobile.</li>
<li>
Au fil de vos connexions, laissez Bitwarden enregistrer puis remplacer vos anciens mots de
passe par des mots de passe générés.
</li>
</ol>
</ToolCard>
<ToolCard tool="t-keepassxc">
<Fragment slot="tags">
<span class="tool-tag">🔴 Avancé</span>
<span class="tool-tag">100% local</span>
<span class="tool-tag">🌍 · open-source</span>
</Fragment>
<Fragment slot="what">
Un coffre-fort <b>local</b> : un fichier chiffré que vous seul détenez, sans aucun cloud ni
compte.
</Fragment>
<Fragment slot="why">
Rien ne quitte votre appareil, sauf si vous décidez de synchroniser le fichier vous-même (par
exemple via Cryptomator). C'est le choix des puristes qui ne veulent aucun intermédiaire.
</Fragment>
<Fragment slot="who">
Les profils avancés qui veulent le contrôle total et zéro dépendance en ligne.
</Fragment>
<ol slot="install">
<li>
Installez KeePassXC (PC) et une application compatible sur mobile (KeePassDX sur Android,
Strongbox sur iOS).
</li>
<li>Créez un fichier de base de données protégé par un mot de passe maître.</li>
<li>Pour l'avoir sur tous vos appareils, synchronisez ce fichier via un cloud chiffré.</li>
</ol>
</ToolCard>
<ToolCard tool="t-protonpass">
<Fragment slot="tags">
<span class="tool-tag">🟢 Débutant</span>
<span class="tool-tag">Avec alias e-mail</span>
<span class="tool-tag">🇨🇭 · open-source</span>
</Fragment>
<Fragment slot="what">
Le gestionnaire de mots de passe de l'écosystème Proton, avec des alias e-mail jetables
intégrés.
</Fragment>
<Fragment slot="why">
Idéal si vous êtes déjà chez Proton : un seul compte pour le mail, le cloud et les mots de
passe. Ses alias e-mail vous évitent de donner votre vraie adresse partout.
</Fragment>
<Fragment slot="who">Ceux qui veulent tout regrouper chez Proton.</Fragment>
</ToolCard>
+83
View File
@@ -0,0 +1,83 @@
---
id: 'deuxfa'
part: 7
order: 12
title: 'Double authentification & clés matérielles'
---
<p class="part-num">
PARTIE 11 · SÉCURITÉ · 2FA · <span class="lvl lvl-2">🟡</span>
</p>
## Double authentification &amp; clés matérielles
Un mot de passe, même fort, peut fuiter. La double authentification (2FA) ajoute une seconde preuve à la connexion : même si votre mot de passe est volé, le compte reste fermé. C'est indispensable sur vos comptes sensibles (e-mail, gestionnaire de mots de passe, réseaux).
<div class="box warn">
<span class="lab">Évitez le 2FA par SMS</span>
<p>
Le code reçu par SMS est le maillon faible : il est vulnérable au « SIM-swap » (un attaquant
fait transférer votre numéro) et à l'interception via le réseau téléphonique (SS7). Des études
estiment que la majorité des tentatives de SIM-swap réussissent. Utilisez le SMS seulement en
dernier recours, jamais comme protection principale.
</p>
</div>
<ToolCard tool="t-yubikey">
<Fragment slot="tags">
<span class="tool-tag">🟡🔴 Interm. / Avancé</span>
<span class="tool-tag">Clé matérielle FIDO2</span>
</Fragment>
<Fragment slot="what">
Une petite clé physique (format USB, souvent avec NFC) qui prouve votre identité d'un simple
contact du doigt.
</Fragment>
<Fragment slot="why">
C'est la 2FA la plus solide : elle résiste à l'hameçonnage, car la clé vérifie l'adresse réelle
du site avant de répondre. <b>Nitrokey</b> est l'alternative à matériel et micrologiciel
entièrement ouverts. Un faux site ne peut pas vous piéger.
</Fragment>
<Fragment slot="who">
Ceux qui veulent le maximum de sécurité sur leurs comptes clés. Achetez-en <b>deux</b> (une
principale, une de secours).
</Fragment>
<ol slot="install">
<li>Procurez-vous deux clés sur yubico.com ou nitrokey.com.</li>
<li>
Dans les réglages de sécurité de chaque compte (e-mail, gestionnaire de mots de passe…),
ajoutez une « clé de sécurité » ou « passkey ». Enregistrez vos deux clés.
</li>
<li>Gardez la clé de secours dans un lieu sûr, séparé.</li>
</ol>
</ToolCard>
<ToolCard tool="t-aegis">
<Fragment slot="tags">
<span class="tool-tag">🟢 Débutant</span>
<span class="tool-tag">Codes TOTP</span>
<span class="tool-tag">🌍 · open-source</span>
</Fragment>
<Fragment slot="what">
Des applications qui génèrent les codes à six chiffres qui changent toutes les 30 secondes, en
remplacement de Google Authenticator.
</Fragment>
<Fragment slot="why">
<b>Aegis</b> (Android) garde vos codes dans un coffre chiffré local, sans cloud.{' '}
<b>Ente Auth</b> ajoute une synchronisation chiffrée de bout en bout entre appareils, et a été
audité. Bien plus sûrs que le SMS, et gratuits.
</Fragment>
<Fragment slot="who">
Tout le monde : c'est le niveau de 2FA à adopter par défaut, avant les clés matérielles.
</Fragment>
<ol slot="install">
<li>Installez Aegis (F-Droid) ou Ente Auth (toutes plateformes).</li>
<li>
Sur chaque compte, activez la 2FA « application d'authentification » et scannez le QR code
affiché.
</li>
<li>
Notez les <b>codes de secours</b> sur papier et faites une sauvegarde chiffrée de votre
coffre.
</li>
</ol>
</ToolCard>
+130
View File
@@ -0,0 +1,130 @@
---
id: 'social'
part: 8
order: 13
title: 'Réseaux sociaux décentralisés'
---
<p class="part-num">
PARTIE 12 · <span class="lvl lvl-2">🟡</span>
</p>
## Réseaux sociaux décentralisés
Instagram, X et Facebook appartiennent à des entreprises qui vous profilent et peuvent vous censurer ou vous supprimer du jour au lendemain. Le « fédiverse » propose des réseaux appartenant à leurs utilisateurs.
<ToolCard tool="t-mastodon">
<Fragment slot="tags">
<span class="tool-tag">🟢 Débutant</span>
<span class="tool-tag">Remplace X / Twitter</span>
<span class="tool-tag">🌍 · open-source</span>
</Fragment>
<Fragment slot="what">
L'alternative à X/Twitter : un réseau social fait de milliers de serveurs indépendants qui
communiquent entre eux (le « fédiverse »).
</Fragment>
<Fragment slot="why">
Pas de patron unique, pas d'algorithme qui décide à votre place, pas de bannissement arbitraire
par une seule entreprise. Le fil est chronologique, sans publicité ni manipulation.
</Fragment>
<Fragment slot="who">
Tout le monde. Idéal pour les comptes d'information qui veulent une présence qu'aucune
entreprise ne peut couper.
</Fragment>
<ol slot="install">
<li>
Sur joinmastodon.org, choisissez un serveur (ou « instance ») qui vous correspond, puis créez
un compte.
</li>
<li>
Installez une application (l'officielle, ou Ivory, Tusky…) et suivez des comptes : vous voyez
tout le fédiverse, quel que soit leur serveur.
</li>
</ol>
</ToolCard>
<ToolCard tool="t-nostr">
<Fragment slot="tags">
<span class="tool-tag">🟡🔴</span>
<span class="tool-tag">Incensurable</span>
<span class="tool-tag">🌍 · protocole ouvert</span>
</Fragment>
<Fragment slot="what">
Pas une application mais un protocole : un réseau social où votre identité est une simple paire
de clés, comme pour Bitcoin.
</Fragment>
<Fragment slot="why">
Zéro e-mail, zéro mot de passe, aucun compte qu'on puisse supprimer. Vos messages voyagent sur
des relais décentralisés et vous possédez vraiment votre audience : personne ne peut vous bannir
durablement. Vous pouvez même recevoir des pourboires en Bitcoin (les « zaps ») et changer
d'application quand vous voulez sans perdre vos abonnés.
</Fragment>
<Fragment slot="who">
Comptes d'information et créateurs qui craignent la censure de plateforme et veulent une
présence vraiment à eux.
</Fragment>
<ol slot="install">
<li>Installez un client : Damus (iPhone), Amethyst ou Primal (Android), ou une version web.</li>
<li>
L'application génère votre paire de clés. <b>Sauvegardez votre clé privée (nsec)</b> comme une
phrase de récupération Bitcoin : sur papier, jamais partagée.
</li>
<li>Créez votre profil, suivez des gens, activez les zaps pour recevoir des sats.</li>
</ol>
</ToolCard>
<ToolCard tool="t-element">
<Fragment slot="tags">
<span class="tool-tag">🟡🔴</span>
<span class="tool-tag">Remplace Discord / Slack</span>
<span class="tool-tag">🌍 · fédéré · E2EE</span>
</Fragment>
<Fragment slot="what">
Une messagerie de communautés, dans l'esprit de Discord ou Slack, mais fédérée et chiffrable de
bout en bout. Element est l'application, Matrix le réseau.
</Fragment>
<Fragment slot="why">
Vous pouvez héberger votre propre serveur (Synapse) et contrôler vos données. Parfait pour un
collectif, une rédaction, une association qui veut son espace indépendant.
</Fragment>
<Fragment slot="who">
Communautés et groupes. Voir la nuance sur les métadonnées ci-dessous.
</Fragment>
<ol slot="install">
<li>
Installez Element (element.io) et créez un compte sur un serveur public, ou sur le vôtre
(section 10).
</li>
<li>
Rejoignez ou créez des salons, et activez le chiffrement de bout en bout pour les
conversations privées.
</li>
</ol>
</ToolCard>
<ToolCard tool="t-fediverse">
<Fragment slot="tags">
<span class="tool-tag">🟡</span>
<span class="tool-tag">Insta · YouTube · Reddit</span>
<span class="tool-tag">🌍 · open-source</span>
</Fragment>
<Fragment slot="what">
Les cousins fédérés d'Instagram (Pixelfed), de YouTube (PeerTube) et de Reddit (Lemmy).
</Fragment>
<Fragment slot="why">
Même logique que Mastodon : pas de propriétaire unique, pas d'algorithme publicitaire, pas de
traçage. Vous publiez photos, vidéos ou discussions sans nourrir une machine à profiler.
</Fragment>
<Fragment slot="who">
Ceux qui veulent quitter Instagram, YouTube ou Reddit sans renoncer au format.
</Fragment>
</ToolCard>
<div class="box">
<span class="lab">Nuance métadonnées</span>
<p>
Matrix chiffre bien le <em>contenu</em>, mais en fédération, les serveurs participants voient
l'appartenance aux salons et l'horodatage des messages. Pour un usage très sensible, préférez
SimpleX/Session ou auto-hébergez votre serveur.
</p>
</div>
+79
View File
@@ -0,0 +1,79 @@
---
id: 'argent'
part: 9
order: 14
title: 'Souveraineté financière'
---
<p class="part-num">
PARTIE 13 · <span class="lvl lvl-2">🟡</span>
</p>
## Souveraineté financière
L'argent aussi est surveillé et censurable. Des comptes de militants ont été gelés, des dons bloqués, chaque paiement par carte est tracé. La vie privée financière fait partie de la souveraineté.
<ToolCard tool="t-bitcoin">
<Fragment slot="name">Bitcoin (auto-conservation)</Fragment>
<Fragment slot="tags">
<span class="tool-tag">🟡🔴</span>
<span class="tool-tag">Résistant à la censure</span>
</Fragment>
<Fragment slot="what">
Une monnaie numérique que vous détenez vous-même, sans passer par une banque.
</Fragment>
<Fragment slot="why">
En <b>auto-conservation</b> (vos clés dans un portefeuille que vous seul contrôlez), personne ne
peut geler ni bloquer vos fonds. Sa confidentialité n'est pas parfaite (le registre est public),
mais il échappe à la censure bancaire, utile le jour où un paiement est refusé.
</Fragment>
<Fragment slot="who">
Se prémunir contre le gel de compte ou la dé-bancarisation, et payer anonymement un service
comme un VPN.
</Fragment>
<ol slot="install">
<li>Procurez-vous des bitcoins (plateforme d'échange, ou entre particuliers).</li>
<li>
Transférez-les aussitôt vers un portefeuille que <b>vous</b> contrôlez : un portefeuille
matériel (Trezor, ColdCard) ou une application libre. Ne les laissez pas sur la plateforme.
</li>
<li>Sauvegardez votre phrase de récupération sur papier, jamais en photo ni en ligne.</li>
</ol>
</ToolCard>
<ToolCard tool="t-monero">
<Fragment slot="tags">
<span class="tool-tag">🔴 Avancé</span>
<span class="tool-tag">Confidentiel par défaut</span>
</Fragment>
<Fragment slot="what">
La cryptomonnaie de la vie privée : montants, expéditeur et destinataire sont masqués par
défaut.
</Fragment>
<Fragment slot="why">
C'est l'exact opposé de Bitcoin sur ce point : les transactions sont confidentielles par
conception. C'est le meilleur moyen de payer un service sans laisser de trace reliable à vous.
</Fragment>
<Fragment slot="who">
Ceux qui veulent le maximum de confidentialité financière. Note : Monero est déjà retiré de
plusieurs plateformes en Europe, il faut souvent passer par un échange décentralisé.
</Fragment>
<ol slot="install">
<li>Installez un portefeuille (l'officiel sur getmonero.org, ou Cake Wallet sur mobile).</li>
<li>
Obtenez des XMR via un service d'échange décentralisé (par exemple un « swap » depuis une
autre crypto).
</li>
<li>Sauvegardez votre phrase de récupération sur papier.</li>
</ol>
</ToolCard>
<div class="box warn">
<span class="lab">Légalité &amp; prudence</span>
<p>
La confidentialité financière est <strong>légale</strong>. Ne la confondez pas avec l'évasion
fiscale : déclarez ce qui doit l'être. Les cryptomonnaies sont <strong>volatiles</strong> et les
arnaques nombreuses ; ne placez jamais ce que vous ne pouvez pas perdre, et formez-vous avant
d'agir.
</p>
</div>
+95
View File
@@ -0,0 +1,95 @@
---
id: 'ia'
part: 9
order: 15
title: "L'IA conversationnelle"
---
<p class="part-num">
PARTIE 14 · ANGLE MORT · LA FOLIE DE L'IA · <span class="lvl lvl-2">🟡</span>
</p>
## L'IA conversationnelle
Pendant qu'on se bat pour chiffrer nos messages, des centaines de millions de gens confient leurs pensées les plus intimes à ChatGPT, Gemini ou Copilot, sur des serveurs américains. C'est l'angle mort de toute cette histoire. Une pure folie.
Ce que vous tapez dans une IA cloud est une **confession écrite, horodatée et stockée**. Pire qu'un message : vous y déballez vos angoisses, votre santé, vos finances, vos secrets professionnels, souvent plus honnêtement qu'à un proche. Et contrairement à une messagerie chiffrée, tout est lisible en clair côté serveur.
<div class="box warn">
<span class="lab">Ce que disent les faits (2025-2026)</span>
<p>
Les offres grand public <strong>s'entraînent sur vos données par défaut</strong>. En janvier
2026, un juge américain a ordonné à OpenAI de produire{' '}
<strong>20 millions de conversations ChatGPT</strong> comme preuves : les utilisateurs concernés
n'ont été ni prévenus ni consultés. Supprimer une conversation <strong>ne garantit pas</strong>{' '}
son effacement. Et lors d'une fuite, 47 000 conversations exposées contenaient e-mails, numéros
et détails intimes ré-identifiables.
</p>
</div>
#### La parade : l'IA locale
<ToolCard tool="t-localai">
<Fragment slot="tags">
<span class="tool-tag">🟡🔴</span>
<span class="tool-tag">Remplace ChatGPT</span>
<span class="tool-tag">🌍 · 100% local</span>
</Fragment>
<Fragment slot="what">
Des logiciels pour faire tourner un modèle d'intelligence artificielle directement sur votre
ordinateur.
</Fragment>
<Fragment slot="why">
Vos questions ne quittent jamais l'appareil : aucun serveur, aucun compte, aucune télémétrie, et
ça marche hors ligne. La qualité dépend de votre matériel, mais rien ne fuit. <b>Ollama</b> et{' '}
<b>LM Studio</b> sont les plus simples ; <b>Jan</b> et <b>GPT4All</b> visent la vie privée
maximale.
</Fragment>
<Fragment slot="who">
Tous ceux qui utilisent l'IA pour des sujets un tant soit peu personnels et ne veulent pas les
confier à un serveur américain.
</Fragment>
<ol slot="install">
<li>
Pour débuter en douceur, installez <b>LM Studio</b> ou <b>Jan</b> (interface graphique, comme
une application classique).
</li>
<li>
Téléchargez un modèle proposé dans l'application (par exemple Llama ou Mistral), adapté à la
puissance de votre machine.
</li>
<li>
Discutez : tout se passe en local. Ollama est la version en ligne de commande pour les plus
techniques.
</li>
</ol>
</ToolCard>
<ToolCard tool="t-cloudai">
<Fragment slot="tags">
<span class="tool-tag">🟢🟡</span>
<span class="tool-tag">Cloud orienté vie privée</span>
</Fragment>
<Fragment slot="what">
Des accès à l'IA dans le cloud, mais conçus pour la vie privée, quand une IA locale n'est pas
possible.
</Fragment>
<Fragment slot="why">
<b>Duck.ai</b> (DuckDuckGo) donne un accès anonymisé à plusieurs modèles. <b>Lumo</b> (Proton)
chiffre les échanges et ne s'en sert pas pour entraîner. Bien mieux que ChatGPT grand public,
mais cela reste un serveur distant.
</Fragment>
<Fragment slot="who">
Ceux qui veulent la commodité du cloud sans nourrir les géants. Gardez-y les sujets non
sensibles.
</Fragment>
</ToolCard>
<div class="box honest">
<span class="lab">La règle simple</span>
<p>
Ne collez jamais dans une IA cloud ce que vous ne diriez pas à un inconnu qui enregistre :
identité, santé, mots de passe, secrets professionnels, aveux. Pour tout le reste de sensible,
une IA locale.
</p>
</div>
+219
View File
@@ -0,0 +1,219 @@
---
id: 'boiteaoutils'
part: 9
order: 16
title: 'La boîte à outils du quotidien'
---
<p class="part-num">
PARTIE 15 · REMPLACER LE RESTE · <span class="lvl lvl-2">🟡</span>
</p>
## La boîte à outils du quotidien
Google et Apple ne sont pas que des e-mails : cartes, notes, agenda, photos, visio, tout est relié à votre identité. Voici de quoi remplacer chaque brique, une par une, sans rien perdre en confort.
<ToolCard tool="t-maps">
<Fragment slot="tags">
<span class="tool-tag">🟢 Débutant</span>
<span class="tool-tag">Remplace Google Maps</span>
<span class="tool-tag">🌍 · open-source</span>
</Fragment>
<Fragment slot="what">
Des applications de cartes et de navigation, fondées sur OpenStreetMap, qui fonctionnent hors
ligne.
</Fragment>
<Fragment slot="why">
Google Maps enregistre chacun de vos trajets et bâtit un historique de lieux d'une précision
redoutable. <b>Organic Maps</b> ne trace rien et n'affiche aucune publicité ; <b>OsmAnd</b> vise
les utilisateurs avancés (randonnée, courbes de niveau, navigation détaillée).
</Fragment>
<Fragment slot="who">
Tout le monde. Le trafic en temps réel et les transports sont moins complets que chez Google,
mais la navigation quotidienne est excellente.
</Fragment>
<ol slot="install">
<li>Installez depuis F-Droid, l'App Store ou Google Play.</li>
<li>
Téléchargez à l'avance les cartes des régions qui vous intéressent pour l'usage hors ligne.
</li>
</ol>
</ToolCard>
<ToolCard tool="t-notes">
<Fragment slot="tags">
<span class="tool-tag">🟢🟡</span>
<span class="tool-tag">Remplace Docs / Notion</span>
<span class="tool-tag">🌍 · open-source</span>
</Fragment>
<Fragment slot="what">
Des notes et documents chiffrés de bout en bout, pour remplacer Google Docs, Notion ou Evernote.
</Fragment>
<Fragment slot="why">
<b>Standard Notes</b> (par Proton) chiffre vos notes par défaut. <b>Joplin</b> gère des carnets
en Markdown avec chiffrement optionnel et la synchronisation de votre choix. <b>CryptPad</b>{' '}
(français) offre l'équivalent de Google Docs en temps réel, entièrement chiffré.
</Fragment>
<Fragment slot="who">
Tout le monde pour les notes ; CryptPad pour la collaboration à plusieurs.
</Fragment>
<ol slot="install">
<li>
Standard Notes / Joplin : créez un compte, installez l'application, et activez le chiffrement
(par défaut sur Standard Notes, à activer dans Joplin).
</li>
<li>
CryptPad : utilisez cryptpad.fr ou une autre instance, aucun compte requis pour commencer.
</li>
</ol>
</ToolCard>
<ToolCard tool="t-visio">
<Fragment slot="tags">
<span class="tool-tag">🟢🟡</span>
<span class="tool-tag">Remplace Zoom / Meet</span>
<span class="tool-tag">🌍 · open-source</span>
</Fragment>
<Fragment slot="what">
Des outils de visioconférence sans compte ni installation lourde, pour remplacer Zoom, Google
Meet ou Teams.
</Fragment>
<Fragment slot="why">
<b>Jitsi Meet</b> se lance dans le navigateur, sans compte, et peut être auto-hébergé (c'est
aussi la base de Brave Talk). <b>Element Call</b> est chiffré de bout en bout et fédéré via
Matrix. Pour un appel simple et totalement chiffré, les appels <b>Signal</b> font aussi le
travail.
</Fragment>
<Fragment slot="who">
Tout le monde. Sur un serveur Jitsi public, les appels à plusieurs sont chiffrés en transport ;
le chiffrement de bout en bout est en option.
</Fragment>
<ol slot="install">
<li>
Jitsi : allez sur meet.jit.si, créez un nom de salon, partagez le lien. Rien à installer.
</li>
<li>Element Call : depuis l'application Element (Matrix), lancez un appel dans un salon.</li>
</ol>
</ToolCard>
<ToolCard tool="t-photos">
<Fragment slot="tags">
<span class="tool-tag">🟡🔴</span>
<span class="tool-tag">Remplace Google Photos</span>
<span class="tool-tag">🌍 · open-source</span>
</Fragment>
<Fragment slot="what">
Deux façons de garder vos photos sans les confier à Google ou Apple.
</Fragment>
<Fragment slot="why">
<b>Ente</b> est un service géré, chiffré de bout en bout, avec reconnaissance et recherche
faites sur l'appareil : simple et sûr. <b>Immich</b> est un clone de Google Photos que vous{' '}
<b>hébergez vous-même</b> (recherche par visages et objets incluse), à réserver à ceux qui
savent gérer un serveur.
</Fragment>
<Fragment slot="who">
Ente pour tous ; Immich pour les auto-hébergeurs. Attention : Immich n'est pas chiffré de bout
en bout, sa sécurité dépend de votre serveur.
</Fragment>
<ol slot="install">
<li>
Ente : installez l'application, créez un compte, activez la sauvegarde automatique de votre
pellicule.
</li>
<li>
Immich : déployez-le sur votre serveur (voir section 10) via Docker, puis connectez
l'application mobile.
</li>
</ol>
</ToolCard>
<ToolCard tool="t-alias">
<Fragment slot="tags">
<span class="tool-tag">🟢🟡</span>
<span class="tool-tag">Alias e-mail</span>
<span class="tool-tag">🌍 · open-source</span>
</Fragment>
<Fragment slot="what">
Des alias e-mail jetables : une adresse unique par site, qui redirige vers votre vraie boîte
sans jamais la révéler.
</Fragment>
<Fragment slot="why">
Vous ne donnez plus votre vraie adresse partout. Si un site est piraté ou vous spamme, vous
coupez l'alias correspondant, et vous savez immédiatement qui a fait fuiter vos données.{' '}
<b>SimpleLogin</b> est intégré à Proton ; <b>addy.io</b> propose des alias illimités dès l'offre
gratuite.
</Fragment>
<Fragment slot="who">
Tout le monde, et particulièrement les comptes pseudonymes qui veulent cloisonner leurs
inscriptions.
</Fragment>
<ol slot="install">
<li>Créez un compte, installez l'extension de navigateur.</li>
<li>À chaque inscription, générez un nouvel alias au lieu de saisir votre vraie adresse.</li>
</ol>
</ToolCard>
<ToolCard tool="t-backups">
<Fragment slot="name">Sauvegardes chiffrées</Fragment>
<Fragment slot="tags">
<span class="tool-tag">🟡🔴</span>
<span class="tool-tag">Cryptomator · restic</span>
<span class="tool-tag">🌍 · open-source</span>
</Fragment>
<Fragment slot="what">
De quoi sauvegarder votre téléphone et votre ordinateur en chiffrant les données <b>avant</b>{' '}
qu'elles ne partent dans un cloud.
</Fragment>
<Fragment slot="why">
Les sauvegardes iCloud/Google sont souvent accessibles au fournisseur, donc à la justice.{' '}
<b>Cryptomator</b> chiffre vos fichiers avant de les envoyer sur n'importe quel cloud ;{' '}
<b>restic</b> fait des sauvegardes chiffrées automatiques ; <b>Proton Drive</b> est chiffré de
bout en bout. Sur iPhone, activez la « Protection avancée des données » pour chiffrer vos
sauvegardes iCloud.
</Fragment>
<Fragment slot="who">
Tout le monde devrait chiffrer ses sauvegardes. Règle d'or : deux copies chiffrées, sur deux
supports, en deux lieux.
</Fragment>
<ol slot="install">
<li>
iPhone : Réglages &gt; votre nom &gt; iCloud &gt; Protection avancée des données : activez-la.
</li>
<li>
PC : installez Cryptomator, créez un coffre, placez-y vos fichiers avant de synchroniser vers
le cloud.
</li>
</ol>
</ToolCard>
<ToolCard tool="t-databrokers">
<Fragment slot="name">Effacer ses données (RGPD)</Fragment>
<Fragment slot="tags">
<span class="tool-tag">🟡</span>
<span class="tool-tag">Courtiers en données</span>
</Fragment>
<Fragment slot="what">
Faire retirer vos informations personnelles des « courtiers en données » qui les collectent et
les revendent.
</Fragment>
<Fragment slot="why">
En Europe, le RGPD (article 17) vous donne un <b>droit à l'effacement</b> : vous pouvez exiger,
gratuitement, qu'une entreprise supprime vos données, en principe sous un mois. Des services
comme <b>Incogni</b> automatisent ces demandes en masse, moyennant paiement.
</Fragment>
<Fragment slot="who">
Ceux qui veulent réduire leur exposition. Attention : les données réapparaissent avec le temps,
et cela ne touche ni les registres publics ni les réseaux sociaux. Le faire soi-même est gratuit
mais fastidieux.
</Fragment>
<ol slot="install">
<li>
Pour une demande manuelle : écrivez au courtier en invoquant l'article 17 du RGPD et demandez
la suppression.
</li>
<li>
Pour automatiser : souscrivez à un service de retrait et laissez-le envoyer les demandes en
votre nom.
</li>
</ol>
</ToolCard>
+164
View File
@@ -0,0 +1,164 @@
---
id: 'selfhost'
part: 10
order: 17
title: 'Auto-hébergement'
---
<p class="part-num">
PARTIE 16 · AUTODÉFENSE AVANCÉE · <span class="lvl lvl-3">🔴</span>
</p>
## Auto-hébergement
Le niveau ultime de souveraineté : héberger vos services vous-même. Vos données vivent sur votre matériel, sous la juridiction que vous choisissez.
<ToolCard tool="t-yunohost">
<Fragment slot="tags">
<span class="tool-tag">🔴 Avancé</span>
<span class="tool-tag">Serveur clé en main</span>
<span class="tool-tag">🌍 · open-source</span>
</Fragment>
<Fragment slot="what">
Des systèmes qui transforment un vieux PC ou un Raspberry Pi en serveur personnel, avec un
catalogue d'applications à installer en quelques clics.
</Fragment>
<Fragment slot="why">
L'auto-hébergement fait peur, mais ces outils font le gros du travail. <b>YunoHost</b> gère même
votre propre e-mail et une authentification unique. <b>Umbrel</b> offre un magasin de plus de
300 applications, très prisé des amateurs de vie privée et de Bitcoin. <b>Start9</b> chiffre les
sauvegardes et donne une adresse Tor à chaque service par défaut.
</Fragment>
<Fragment slot="who">
Les profils avancés prêts à consacrer un après-midi à monter leur propre cloud. C'est la parade
structurelle la plus radicale à Chat Control.
</Fragment>
<ol slot="install">
<li>
Récupérez un vieil ordinateur, un Raspberry Pi, ou louez un petit serveur (VPS) dans un pays
protecteur.
</li>
<li>Installez YunoHost, Umbrel ou Start9 en suivant leur guide officiel.</li>
<li>Depuis le catalogue, installez Nextcloud, un serveur Matrix, une galerie photo, etc.</li>
<li>
Accédez-y en privé avec Tailscale (fiche ci-dessous) plutôt que d'exposer le serveur au
public.
</li>
</ol>
</ToolCard>
<ToolCard tool="t-nextcloud">
<Fragment slot="tags">
<span class="tool-tag">🔴 Avancé</span>
<span class="tool-tag">Remplace toute la suite Google</span>
<span class="tool-tag">🇩🇪 · open-source</span>
</Fragment>
<Fragment slot="what">
Votre propre nuage : fichiers, agenda, contacts, photos, notes et documents collaboratifs, sur
votre serveur.
</Fragment>
<Fragment slot="why">
C'est le remplacement complet de Google Drive, Agenda et Contacts, mais chez vous. Vous décidez
de la juridiction et personne d'autre n'a la main sur vos fichiers. À savoir : c'est la
confidentialité « votre serveur », pas un chiffrement de bout en bout par défaut ; vous devez le
maintenir à jour.
</Fragment>
<Fragment slot="who">
Les auto-hébergeurs. Le plus simple est de l'installer via YunoHost ou Umbrel.
</Fragment>
</ToolCard>
<ToolCard tool="t-synapse">
<Fragment slot="tags">
<span class="tool-tag">🔴 Avancé</span>
<span class="tool-tag">Votre serveur de chat</span>
<span class="tool-tag">🌍 · open-source</span>
</Fragment>
<Fragment slot="what">
Votre propre serveur de messagerie Matrix, sur lequel tournent Element et les appels chiffrés.
</Fragment>
<Fragment slot="why">
En hébergeant le serveur, vous contrôlez aussi les <b>métadonnées</b> (qui parle à qui, quand),
le point faible de Matrix en fédération. C'est la messagerie communautaire dont vous êtes le
seul maître.
</Fragment>
<Fragment slot="who">
Communautés, collectifs, rédactions qui veulent leur espace fédéré indépendant.
</Fragment>
</ToolCard>
<ToolCard tool="t-tailscale">
<Fragment slot="tags">
<span class="tool-tag">🔴 Avancé</span>
<span class="tool-tag">Accès privé à son serveur</span>
<span class="tool-tag">🌍 · open-source</span>
</Fragment>
<Fragment slot="what">
Un réseau privé chiffré qui relie vos appareils à votre serveur, sans jamais l'exposer sur
l'Internet public.
</Fragment>
<Fragment slot="why">
Au lieu d'ouvrir des ports (et de vous faire attaquer), <b>Tailscale</b> crée un tunnel
WireGuard entre vos seuls appareils autorisés : votre serveur n'a aucune surface d'attaque
publique. <b>Headscale</b> est la version que vous hébergez vous-même, pour ne dépendre d'aucun
tiers. <b>WireGuard</b> seul offre le contrôle total, au prix d'une configuration manuelle.
</Fragment>
<Fragment slot="who">
Tout auto-hébergeur. C'est la façon sûre d'atteindre son Nextcloud ou ses photos depuis
l'extérieur.
</Fragment>
<ol slot="install">
<li>
Installez Tailscale sur votre serveur et sur votre téléphone/PC, connectez-les au même compte.
</li>
<li>
Vos appareils se voient aussitôt sur un réseau privé ; accédez à votre serveur par son adresse
Tailscale.
</li>
<li>Pour zéro dépendance, remplacez le serveur de coordination par Headscale, auto-hébergé.</li>
</ol>
</ToolCard>
<ToolCard tool="t-website">
<Fragment slot="name">Votre propre site web</Fragment>
<Fragment slot="tags">
<span class="tool-tag">🟡🔴</span>
<span class="tool-tag">Résister au bannissement</span>
</Fragment>
<Fragment slot="what">
Un site à vous, sur votre nom de domaine, où votre contenu ne dépend d'aucune plateforme.
</Fragment>
<Fragment slot="why">
Le jour où un réseau supprime ou suspend votre compte, tout votre travail disparaît. Un site
personnel est votre point d'ancrage : vos articles y restent, archivés et à jour, quoi qu'il
arrive. C'est exactement ce que font les comptes d'information prudents. Un site statique
(généré par Hugo, Astro ou Jekyll) suffit et se publie presque gratuitement ; pour un blog
dynamique, un WordPress ou un Ghost auto-hébergé fait l'affaire.
</Fragment>
<Fragment slot="who">
Comptes d'information, créateurs, militants, quiconque publie et craint la censure de
plateforme.
</Fragment>
<ol slot="install">
<li>
Achetez un nom de domaine (idéalement chez un registraire respectueux de la vie privée).
</li>
<li>
Choisissez un générateur de site statique (Astro, Hugo) et hébergez le résultat, ou installez
WordPress/Ghost sur votre serveur.
</li>
<li>
Renvoyez-y systématiquement depuis vos réseaux : votre audience vous retrouve même si un
compte tombe.
</li>
</ol>
</ToolCard>
<div class="box">
<span class="lab">Le point juridiction</span>
<p>
Auto-héberger, c'est aussi choisir <em>où</em> vivent vos données. Un serveur chez vous ou dans
un pays protecteur échappe aux obligations de scan imposées à une grande plateforme. C'est la
parade structurelle la plus radicale à Chat Control.
</p>
</div>
+57
View File
@@ -0,0 +1,57 @@
---
id: 'tor'
part: 11
order: 18
title: 'Tor'
---
<p class="part-num">
PARTIE 17 · <span class="lvl lvl-3">🔴</span>
</p>
## Tor
Le réseau qui sépare qui vous êtes de ce que vous faites en ligne.
<ToolCard tool="t-tor">
<Fragment slot="tags">
<span class="tool-tag">🔴 Avancé</span>
<span class="tool-tag">Anonymat réseau</span>
<span class="tool-tag">🌍 · open-source</span>
</Fragment>
<Fragment slot="what">
Un réseau qui sépare qui vous êtes de ce que vous faites en ligne, accessible via le Tor
Browser.
</Fragment>
<Fragment slot="why">
Votre trafic rebondit à travers plusieurs relais chiffrés dans le monde : aucun ne connaît à la
fois votre identité et votre destination. C'est l'outil des journalistes et des sources, et le
moyen d'atteindre un site bloqué (par exemple pour télécharger un VPN censuré).
</Fragment>
<Fragment slot="who">
Profils à haut risque, et quiconque doit dissocier son activité de son adresse IP réelle. À
utiliser ponctuellement, pas comme navigateur de tous les jours.
</Fragment>
<ol slot="install">
<li>
Téléchargez le Tor Browser sur <b>torproject.org</b> (Windows, macOS, Linux, Android).
</li>
<li>
Lancez-le et cliquez « Se connecter ». Si Tor est bloqué dans votre pays, activez un « pont »
(bridge).
</li>
<li>
Naviguez sans maximiser la fenêtre, sans installer d'extension, et{' '}
<b>sans vous connecter à vos vrais comptes</b>.
</li>
</ol>
</ToolCard>
<div class="box warn">
<span class="lab">Limites, pas magique</span>
<p>
Tor protège le transport, pas vos habitudes : si vous vous connectez à votre vrai compte, vous
vous déanonymisez vous-même. Il est plus lent, et le nœud de sortie voit le trafic non chiffré
(utilisez HTTPS). Pour un anonymat sérieux, associez-le à Tails (section 12).
</p>
</div>
+144
View File
@@ -0,0 +1,144 @@
---
id: 'os'
part: 12
order: 19
title: "Systèmes d'exploitation libres"
---
<p class="part-num">
PARTIE 18 · <span class="lvl lvl-3">🔴</span>
</p>
## Systèmes d'exploitation libres
La pièce maîtresse. Si le scan côté client peut être imposé par le système d'exploitation lui-même, la seule vraie parade est de contrôler cet OS. C'est vrai sur le téléphone (GrapheneOS) comme sur l'ordinateur (Linux). Ne sous-estimez pas ce point : tant que vous restez sous Windows, macOS ou un Android Google, vous ne contrôlez pas vraiment votre machine.
<ToolCard tool="t-grapheneos">
<Fragment slot="tags">
<span class="tool-tag">🔴 Avancé</span>
<span class="tool-tag">Mobile dégooglisé</span>
<span class="tool-tag">Android · Pixel · open-source</span>
</Fragment>
<Fragment slot="what">
Un Android entièrement dégooglisé, installé sur un téléphone Pixel : la souveraineté sur mobile.
</Fragment>
<Fragment slot="why">
C'est la défense structurelle par excellence contre un OS ou un magasin d'applications qui
voudrait vous scanner. Services Google en bac à sable optionnel,{' '}
<b>permissions réseau par application</b>, profils cloisonnés, redémarrage automatique qui purge
les clés de la mémoire, code PIN de contrainte qui efface le téléphone. Réputé pour sa sécurité
au point d'être utilisé par des cibles de logiciels espions.
</Fragment>
<Fragment slot="who">
Profils exposés, mais aussi tout citoyen prêt à acheter un Pixel pour reprendre le contrôle de
son téléphone.
</Fragment>
<ol slot="install">
<li>
Procurez-vous un téléphone <b>Google Pixel</b> compatible (c'est le seul matériel supporté,
pour des raisons de sécurité).
</li>
<li>
Sur un ordinateur, allez sur <b>grapheneos.org/install</b> et suivez l'installeur web
(quelques clics, aucun terminal requis).
</li>
<li>
Pour vos applications, installez le magasin libre F-Droid ; ajoutez Google Play en bac à sable
seulement si nécessaire.
</li>
<li>
Réglez un long mot de passe (pas un code à 4 chiffres) et découvrez le mode « Lockdown ».
</li>
</ol>
</ToolCard>
<ToolCard tool="t-linux">
<Fragment slot="name">Linux (sur ordinateur)</Fragment>
<Fragment slot="tags">
<span class="tool-tag">🟡🔴</span>
<span class="tool-tag">Remplace Windows / macOS</span>
<span class="tool-tag">🌍 · libre &amp; gratuit</span>
</Fragment>
<Fragment slot="what">
Un système d'exploitation libre et gratuit pour votre ordinateur, en remplacement de Windows ou
de macOS. Il en existe de nombreuses variantes, appelées « distributions ».
</Fragment>
<Fragment slot="why">
C'est le point aveugle de beaucoup de gens : ils chiffrent leurs messages mais gardent un
Windows qui transmet en continu de la télémétrie à Microsoft (et dont la fonction « Recall » a
voulu photographier l'écran en permanence), ou un macOS qui signale les applications que vous
lancez. Linux, lui, ne vous espionne pas, il est gratuit, il ressuscite les vieux ordinateurs et
il vous rend enfin maître de votre machine. C'est plus facile que sa réputation : les
distributions modernes ressemblent à Windows ou macOS.
</Fragment>
<Fragment slot="who">
Tout le monde peut franchir le pas. Pour débuter, <b>Linux Mint</b> (le plus proche de Windows)
ou <b>Fedora</b> ; <b>Debian</b> pour la stabilité. Pas besoin de tout casser : on peut d'abord
tester, puis installer à côté de son système actuel.
</Fragment>
<ol slot="install">
<li>
Pas sûr de la distribution ? Répondez au questionnaire <b>distrochooser.de/fr</b>, qui vous
oriente selon vos besoins.
</li>
<li>
Testez-la <b>sans rien installer</b> directement dans votre navigateur sur{' '}
<b>distrosea.com</b>.
</li>
<li>
Une fois convaincu, téléchargez l'image de la distribution et créez une clé USB de démarrage
(avec Ventoy ou Balena Etcher).
</li>
<li>
Démarrez sur la clé pour essayer le système « en live », puis lancez l'installation. Activez
le chiffrement du disque proposé.
</li>
</ol>
</ToolCard>
<ToolCard tool="t-tails">
<Fragment slot="tags">
<span class="tool-tag">🔴 Avancé</span>
<span class="tool-tag">Clé USB amnésique</span>
<span class="tool-tag">🌍 · tout via Tor</span>
</Fragment>
<Fragment slot="what">
Un système qui démarre depuis une clé USB, fait passer tout le trafic par Tor et ne laisse{' '}
<b>aucune trace</b> à l'extinction.
</Fragment>
<Fragment slot="why">
À l'arrêt, tout est oublié : c'est « amnésique ». Idéal pour un travail sensible et ponctuel sur
un ordinateur qui n'est pas le vôtre, sans rien y laisser.
</Fragment>
<Fragment slot="who">
Lanceurs d'alerte, journalistes, sources. L'outil de référence pour les missions à haut risque.
</Fragment>
<ol slot="install">
<li>
Téléchargez Tails sur <b>tails.net</b> et suivez l'assistant pour créer la clé USB.
</li>
<li>Redémarrez l'ordinateur sur cette clé. Utilisez-le, puis éteignez : tout disparaît.</li>
</ol>
</ToolCard>
<ToolCard tool="t-qubes">
<Fragment slot="tags">
<span class="tool-tag">🔴 Expert</span>
<span class="tool-tag">Cloisonnement</span>
<span class="tool-tag">🌍 · open-source</span>
</Fragment>
<Fragment slot="what">
Deux systèmes de niche : Qubes cloisonne votre PC en machines virtuelles étanches ; postmarketOS
fait tourner du Linux sur d'anciens téléphones.
</Fragment>
<Fragment slot="why">
Qubes isole chaque activité (travail, banque, navigation risquée) dans son propre compartiment :
une compromission n'atteint pas le reste. postmarketOS prolonge la vie de téléphones abandonnés
par leur constructeur.
</Fragment>
<Fragment slot="who">Utilisateurs experts avec un modèle de menace très élevé.</Fragment>
</ToolCard>
#### Durcir l'appareil
Sans changer d'OS, on gagne déjà beaucoup : installer les applications via **F-Droid** (magasin libre) ou **Aurora Store**, remplacer les services Google par **microG**, créer des profils séparés, couper les permissions réseau inutiles, désactiver la sauvegarde cloud automatique et l'identifiant publicitaire.
+47
View File
@@ -0,0 +1,47 @@
---
id: 'telephonie'
part: 12
order: 20
title: 'Téléphonie & appareil physique'
---
<p class="part-num">
PARTIE 19 · MATÉRIEL · <span class="lvl lvl-3">🔴</span>
</p>
## Téléphonie &amp; appareil physique
La meilleure application ne sert à rien si l'appareil lui-même vous trahit. Voici les menaces matérielles et les gestes qui les neutralisent.
#### Le numéro de téléphone est un traceur
Votre numéro relie entre eux votre carte SIM, votre appareil (son identifiant IMEI), votre localisation et votre identité (la plupart des pays exigent une pièce d'identité à l'achat d'une SIM). C'est le fil qui permet de tout recouper.
- Utilisez des messageries **sans numéro** (SimpleX, Session) pour vos contacts sensibles, et préférez toujours Signal au SMS.
- Pour une identité séparée, une carte SIM « data uniquement » ou une eSIM prépayée limite le lien au point de vente (à vérifier selon les pays).
#### IMSI-catchers &amp; réseau téléphonique
Les « IMSI-catchers » (ou « stingrays ») sont de fausses antennes-relais qui forcent les téléphones à s'y connecter pour enregistrer leur identifiant et parfois intercepter les communications, souvent en rétrogradant vers la 2G, peu chiffrée. En parallèle, une faille ancienne du réseau (SS7) permet encore d'intercepter des SMS et de localiser un téléphone à distance : une raison de plus d'abandonner le SMS.
- **Désactivez la 2G** dans les réglages (possible sur Android et GrapheneOS) pour couper le principal vecteur d'interception.
- En manifestation ou en zone sensible, passez en **mode avion** ou glissez le téléphone dans un **sac de Faraday** (qui bloque tout signal). L'EFF publie même un outil libre, Rayhunter, pour détecter les IMSI-catchers.
#### Biométrie ou code ?
<div class="box warn">
<span class="lab">Un doigt se force, pas un code</span>
<p>
On peut appliquer votre visage ou votre doigt sur le capteur pendant qu'on vous immobilise (à
une frontière, lors d'une interpellation) ; un mot de passe dans votre tête, non. Avant une
situation à risque, forcez le retour au code : sur iPhone, maintenez le bouton latéral et un
bouton de volume (écran « SOS ») ; sur Android/GrapheneOS, utilisez le mode <b>Lockdown</b> du
menu d'alimentation, qui désactive la biométrie jusqu'à saisie du code. Choisissez un mot de
passe long, pas un code à quatre chiffres. GrapheneOS propose même un <b>code de contrainte</b>{' '}
qui efface le téléphone.
</p>
</div>
#### Dé-Microsoft, dé-Apple
N'oubliez pas l'ordinateur : Windows transmet en continu de la télémétrie (et sa fonction « Recall » a voulu photographier l'écran en permanence), macOS signale les applications que vous lancez. La vraie sortie, c'est Linux (voir section 12). À défaut, désactivez la télémétrie, l'identifiant publicitaire et « Recall », et ajoutez un pare-feu sortant (comme Little Snitch sur Mac).
+38
View File
@@ -0,0 +1,38 @@
---
id: 'opsec'
part: 13
order: 21
title: 'Anonymat & OPSEC'
---
<p class="part-num">
PARTIE 20 · <span class="lvl lvl-3">🔴</span>
</p>
## Anonymat &amp; OPSEC
Pour le compte pseudonyme et le lanceur d'alerte. Ici, on ne protège plus seulement un message : on protège une **identité**.
#### Pseudonymat contre anonymat
La règle d'or : **ne jamais croiser votre identité réelle et votre identité publique**. Pas le même e-mail, pas le même numéro, pas le même appareil, pas le même réseau, pas les mêmes horaires, pas le même style d'écriture. Une seule fuite suffit à relier les deux.
- **Comptes sans identité** : SimpleX et Session ne demandent aucun numéro ; associez-les à des alias e-mail jetables. Méfiez-vous des « numéros virtuels » revendus et traçables.
- **Nettoyer les métadonnées** : une photo publiée contient souvent la date, le modèle d'appareil et parfois les coordonnées GPS (données EXIF). Nettoyez avec _Metadata Cleaner_, _mat2_ ou _ExifTool_ avant de publier ; attention aussi aux noms de fichiers et aux métadonnées de documents.
- **Anti-corrélation réseau** : utilisez Tor/Tails pour dissocier votre activité de votre IP domestique. Ne mélangez jamais réseau personnel et réseau pseudonyme. Une carte SIM à votre nom trahit votre localisation, peu importe le reste.
- **Cloisonnement** : un appareil ou au moins un profil dédié à l'identité publique, un gestionnaire de mots de passe séparé, jamais de connexion croisée entre les deux mondes.
#### Transmettre des documents en tant que source
**SecureDrop** est le système de dépôt anonyme utilisé par de nombreuses rédactions pour recevoir des documents de sources. Beaucoup de journaux publient aussi une clé PGP et un contact Signal. Ne transmettez jamais depuis votre matériel professionnel ni votre réseau habituel.
<div class="box honest">
<span class="lab">Honnêteté, ne vous surestimez pas</span>
<p>
L'anonymat fort contre un adversaire étatique est <strong>difficile et faillible</strong>. Ce
guide donne des repères, pas des garanties. Si des vies en dépendent, formez-vous auprès des
références d'autorité : <em>EFF Surveillance Self-Defense</em>,{' '}
<em>Freedom of the Press Foundation</em>, <em>Privacy Guides</em>. Cadre strictement défensif et
journalistique.
</p>
</div>
+72
View File
@@ -0,0 +1,72 @@
---
id: 'ecosysteme'
part: 14
order: 22
title: "L'écosystème libre complet"
---
<p class="part-num">PARTIE 21 · POUR ALLER PLUS LOIN</p>
## L'écosystème libre complet
Se dégoogliser à fond, c'est remplacer chaque brique par un équivalent libre. La logique commune (**logiciel libre + contrôle de son appareil + auto-hébergement**) est la vraie parade au scan côté client.
<div class="eco">
<div class="eco-cat">
<h4>Bureautique</h4>
<ul>
<li>LibreOffice</li>
<li>OnlyOffice</li>
</ul>
</div>
<div class="eco-cat">
<h4>Média</h4>
<ul>
<li>VLC</li>
<li>Jellyfin</li>
<li>FreeTube / NewPipe</li>
<li>Audacity · OBS</li>
<li>GIMP · Inkscape</li>
<li>Calibre · Shotcut</li>
</ul>
</div>
<div class="eco-cat">
<h4>Cloud &amp; réseau</h4>
<ul>
<li>Nextcloud</li>
<li>Pi-hole</li>
<li>KDE Connect</li>
</ul>
</div>
<div class="eco-cat">
<h4>Mobile libre</h4>
<ul>
<li>F-Droid · Aurora</li>
<li>microG</li>
<li>postmarketOS</li>
</ul>
</div>
<div class="eco-cat">
<h4>Sécurité</h4>
<ul>
<li>Bitwarden</li>
<li>KeePassXC</li>
<li>Wireshark</li>
</ul>
</div>
<div class="eco-cat">
<h4>E-mail &amp; bureau</h4>
<ul>
<li>Thunderbird</li>
<li>FairEmail</li>
</ul>
</div>
<div class="eco-cat">
<h4>Dev &amp; avancé</h4>
<ul>
<li>Termux · git</li>
<li>QEMU / KVM · Wine</li>
<li>Flatpak · GNU/Linux</li>
</ul>
</div>
</div>
+25
View File
@@ -0,0 +1,25 @@
---
id: 'action'
part: 15
order: 23
title: 'Migration & désobéissance civile numérique'
---
<p class="part-num">PARTIE 22 · PASSER À L'ACTION</p>
## Migration &amp; désobéissance civile numérique
#### Un plan progressif
1. **Semaine 1 🟢** : Installez Signal et faites-y venir vos proches. Passez à Proton Mail ou Tuta. Installez un gestionnaire de mots de passe et uBlock Origin.
2. **Semaine 2 🟡** : Migrez vos fichiers vers un cloud chiffré, remplacez Chrome/Google Search, prenez un VPN, créez un compte Mastodon.
3. **Ensuite 🔴** : Selon votre profil : GrapheneOS, Tor/Tails, auto-hébergement, discipline OPSEC.
<div class="box warn">
<span class="lab">Erreurs classiques</span>
<p>
Croire qu'un seul outil suffit ; réutiliser son vrai numéro pour un compte anonyme ; installer
dix applications sans changer ses habitudes ; oublier que le maillon faible, c'est souvent
l'appareil lui-même.
</p>
</div>
+160
View File
@@ -0,0 +1,160 @@
---
id: 'menace'
part: 0
order: 1
title: 'Begrijp de dreiging'
---
<p class="part-num">DEEL 00 · HET WAAROM</p>
## Begrijp de dreiging
Voordat u van hulpmiddelen wisselt, moet u begrijp waartegen u zich beschermt. Anders installeert u lukraak apps en denkt u veilig te zijn terwijl dat niet zo is.
### Chat Control 1.0 en 2.0, in klare taal
"Chat Control" is de bijnaam voor twee Europese teksten die het scannen van uw privégescans toestaan (of zouden verplichten) op zoek naar kinderporno (CSAM). Het opgegeven doel is legitiem; het gebruikte middel, het blind scannen van de communicatie van niet-verdachte personen, komt neer op massasurveillance.
<div class="tablewrap">
<table>
<thead>
<tr>
<th></th>
<th>Chat Control 1.0</th>
<th>Chat Control 2.0 (CSAR)</th>
</tr>
</thead>
<tbody>
<tr>
<td>Tekst</td>
<td>Verordening (EU) 2021/1232, ePrivacy-uitzondering</td>
<td>Voorstel COM/2022/209 (Ylva Johansson, mei 2022)</td>
</tr>
<tr>
<td>Aard van de scan</td>
<td>
Vrijwillig, platforms <em>mogen</em> scannen
</td>
<td>Verplicht via "detectiebevelen" en "risicobeperkende maatregelen"</td>
</tr>
<tr>
<td>Doelwit</td>
<td>
Vooral niet-versleutelde Amerikaanse diensten: Gmail, Messenger/Instagram, Skype,
Snapchat, iCloud Mail, Xbox
</td>
<td>
<strong>Alle</strong> platforms, ook end-to-end versleutelde berichtendiensten
</td>
</tr>
</tbody>
</table>
</div>
### Client-side scannen: de wettelijke tap
De kern van Chat Control 2.0 is een techniek die **client-side scanning** heet. Het idee: in plaats van de versleuteling tijdens het transport te breken, wordt software **direct op uw telefoon** geïnstalleerd die elk bericht, elke foto of elke link inspecteert **voor** het wordt versleuteld en verstuurd. Signal vat het in één zin samen: het is "zoals malware op uw apparaat".
<div class="box honest">
<span class="lab">Technische eerlijkheid, lees twee keer</span>
<p>
Tegen client-side scannen zijn <strong>noch een VPN noch end-to-end-encryptie voldoende</strong>{' '}
als de app of het besturingssysteem meewerkt. De scan vindt op het apparaat plaats, vóór de
versleuteling: de VPN heeft niets te beschermen, en de versleuteling komt te laat. Wat u echt
beschermt, is kiezen voor <strong>vrije software die weigert scanning in te bouwen</strong>,
gunstige <strong>jurisdicties</strong>, <strong>zelfhosting</strong>, en{' '}
<strong>de controle over uw apparaat terugwinnen</strong> (een ongeknoeid besturingssysteem). Al
het andere in deze gids volgt uit deze waarheid.
</p>
</div>
<div class="box warn">
<span class="lab">Het ergste: het werkt zelfs niet</span>
<p>
Ieders privacy wordt opgeofferd voor een technologie die faalt. De eigen studie van het Europees
Parlement concludeert dat geen enkel systeem deze inhoud kan detecteren zonder hoge
foutpercentages (omdat over miljarden berichten zelfs een klein percentage foutpositieven
miljoenen valse beschuldigingen oplevert). De Ierse politiecijfers illustreren het: van de
automatische meldingen was slechts zo'n 20% echt materiaal, en ruim 11% was overduidelijk
foutpositief. Baanbrekend onderzoek ("Bugs in Our Pockets", 2021) toont bovendien aan dat
client-side scanning, eenmaal geïnstalleerd, onvermijdelijk voor andere doelen wordt ingezet
(terrorisme, auteursrecht, meningen).
</p>
</div>
### Het voorwendsel: "kinderen beschermen"
Niemand is tegen de bescherming van minderjarigen, en dat is precies wat het zo'n effectieve hefboom maakt. De strijd tegen kindermisbruik dient als **emotioneel Trojaans paard**: wie zou het durven tegenspreken? Onder die vlag wordt een principe aanvaardbaar gemaakt dat op zichzelf resoluut verworpen zou worden: de geautomatiseerde inspectie van de privécommunicatie van **honderden miljoenen niet-verdachte mensen**. Kinderen zijn het opgegeven motief; het echte doelwit is ieders versleuteling en privacy.
Het meest veelzeggend: de bedrijven die het hardst voor deze scan duwen, zijn de bedrijven wier verdienmodel **surveillance** is. Op 19 maart 2026 riep een gezamenlijke oproep EU-wetgevers op om "vrijwillige" detectie te verankeren, ondertekend door:
<div class="namewall" aria-label="Google, LinkedIn, Snapchat, Microsoft, TikTok, Meta">
<span>Google</span>
<span>LinkedIn</span>
<span>Snapchat</span>
<span>Microsoft</span>
<span>TikTok</span>
<span>Meta</span>
</div>
<blockquote class="pull">
"Niets doen zou onverantwoord zijn." Het argument van de techreuzen om het scannen van berichten
in stand te houden.
</blockquote>
Dezelfde spelers hebben overigens aangekondigd berichten te willen **blijven scannen** zelfs nadat de wettelijke grondslag op 4 april 2026 verviel. Aan burgers wordt dus gevraagd om de inspectie van hun intieme gesprekken toe te vertrouwen aan precies de bedrijven die erom bekend staan hun gegevens te verzamelen en te gelde te maken. Dit is het echte gezicht van Chat Control: een **aanval op de privacy** verpakt in een motief dat niemand kan weigeren.
### Dit is niet "gewoon" surveillance
Men probeert u gerust te stellen: "het gaat alleen om Gmail, Instagram, Snapchat, Messenger." Dat is onwaar, en het is juist het meest alarmerende. Drie verschuivingen schuilen achter die bagatellisering.
1. **Dit is geen gerichte aanpak, dit is een sleepnet.** Hier worden geen verdachten gevolgd: er wordt een systematische verzameling van de communicatie van hele bevolkingsgroepen geïnstalleerd. Surveillance op staatsschaal, voortdurend.
2. **Het is niet langer lezen, het is de macht om te blokkeren.** Software die een bericht vóór het versturen inspecteert, kan het ook **weigeren te versturen**. Client-side scanning bouwt de infrastructuur van voorafgaande censuur: spreek blokkeren voordat het zelfs maar bij de ontvanger bestaat.
3. **Is de infrastructuur er eenmaal, dan wordt ze voor iets anders gebruikt.** Een systeem dat "voor de kinderen" is gebouwd, wordt een universeel controlemiddel. Het motief verandert; de machine blijft.
<div class="box warn">
<span class="lab">De logische volgende stap: de digitale euro</span>
<p>
Dezelfde logiek staat op het punt ook uw geld te bereiken. De digitale euro van de ECB rust op
een <strong>traceerbare</strong> munteenheid, verbiedt bedrijven om er een aan te houden, en
komt met een <strong>bezitplafond</strong>: de ECB noemde eerder ongeveer €3.000 per persoon als
werkhypothese, en de in commissie gestemde positie van het Europees Parlement (juni 2026) laat
het plafond vaststellen door de Commissie op aanbeveling van de ECB, elke twee jaar te herzien.
De ECB zweert dat de munt niet "programmeerbaar" zal zijn, maar het plafond en de
traceerbaarheid staan wel degelijk op het menu. Wanneer het zover is, zult u dan zeggen "kalm,
het is maar een plafond"? Dat is precies dezelfde retorische valstrik als "het is maar Gmail".
De echte vraag is nooit wat vandaag wordt gecontroleerd, maar welke controle-infrastructuur voor
morgen wordt gebouwd.
</p>
</div>
### Welk profiel bent u?
Geen enkel hulpmiddel is magisch en niemand hoeft alles te doen. Bepaal uw profiel: elke sectie geeft aan hoe ver u moet gaan.
<div class="profiles">
<div class="profile p1">
<div class="lvl lvl-1">Beginner</div>
<h4>🟢 De gewone burger</h4>
<p>
U wilt simpelweg dat uw gesprekken en uw privéleven niet langer worden gescand en te gelde
gemaakt. Doel: dagelijkse privacy, zonder expert te worden.
</p>
</div>
<div class="profile p2">
<div class="lvl lvl-2">Gevorderd</div>
<h4>🟡 Het pseudoniem-account</h4>
<p>
Informatieaccount, activistenpagina, maker: u vreest gedéanonimiseerd, gedoxxt of uw account
te verliezen. Doel: uw echte identiteit gescheiden houden van uw publieke identiteit.
</p>
</div>
<div class="profile p3">
<div class="lvl lvl-3">Expert</div>
<h4>🔴 De klokkenluider</h4>
<p>
Journalist, activist, bron, tegenover een machtige tegenstander (staat, werkgever). Doel:
sterke anonimiteit, anti-correlatie, documenten doorspelen zonder gepakt te worden.
</p>
</div>
</div>
+64
View File
@@ -0,0 +1,64 @@
---
id: 'memo'
part: 0
order: 2
title: 'Verwijderen / Overstappen'
---
<p class="part-num">DEEL 01 · MEMO · DE DIGITALE OMMEZWAAI</p>
## Verwijderen / Overstappen
Het grote geheel in één oogopslag. Elke tool wordt in de genummerde secties hieronder gedetailleerd.
<div class="swap">
<div class="swap-col del">
<div class="swap-h">Verwijderen</div>
<ul>
<li>
WhatsApp <b>(Meta)</b>
</li>
<li>
Messenger <b>(Meta)</b>
</li>
<li>
Instagram <b>(Meta)</b>
</li>
<li>Snapchat</li>
<li>
Skype <b>(Microsoft)</b>
</li>
<li>Discord</li>
<li>
Gmail <b>(Google)</b>
</li>
<li>
Outlook <b>(Microsoft)</b>
</li>
<li>Google Drive / Photos</li>
<li>
OneDrive <b>(Microsoft)</b>
</li>
<li>TikTok</li>
<li>Telegram (normale chats)</li>
</ul>
</div>
<div class="swap-col keep">
<div class="swap-h">Overstappen</div>
<ul>
<li>Signal</li>
<li>SimpleX Chat</li>
<li>Session</li>
<li>Bitchat</li>
<li>
Element <b>(Matrix)</b>
</li>
<li>Nostr</li>
<li>Mastodon</li>
<li>Proton Mail</li>
<li>Tuta Mail</li>
<li>Mullvad (VPN &amp; browser)</li>
<li>GrapheneOS</li>
</ul>
</div>
</div>
+253
View File
@@ -0,0 +1,253 @@
---
id: 'messagerie'
part: 1
order: 3
title: 'Versleutelde berichten'
---
<p class="part-num">
DEEL 02 · DE FUNDAMENTEN · <span class="lvl lvl-1">🟢</span>
</p>
## Versleutelde berichten
De eerste stap, degene die u het snelst beschermt: weg van WhatsApp, Messenger en Telegram, naar een echt versleutelde (en idealiter vrije) berichtendienst.
<div class="tablewrap">
<table>
<thead>
<tr>
<th>U stapt weg van</th>
<th>U stapt over op</th>
<th>Waarom</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<span class="old">WhatsApp</span>
</td>
<td>
<span class="new">Signal</span>
</td>
<td>Even eenvoudig, zonder Meta of metadata-verzameling</td>
</tr>
<tr>
<td>
<span class="old">Messenger</span>
</td>
<td>
<span class="new">Signal / SimpleX</span>
</td>
<td>
Messenger is niet standaard end-to-end versleuteld en werd gescand onder Chat Control 1.0
</td>
</tr>
<tr>
<td>
<span class="old">Telegram</span>
</td>
<td>
<span class="new">Signal / SimpleX</span>
</td>
<td>Telegram is niet standaard end-to-end versleuteld</td>
</tr>
</tbody>
</table>
</div>
<ToolCard tool="t-signal">
<Fragment slot="tags">
<span class="tool-tag">🟢 Beginner</span>
<span class="tool-tag">Vervangt WhatsApp</span>
<span class="tool-tag">🇺🇸 · open-source</span>
</Fragment>
<Fragment slot="what">
Een versleutelde berichtendienst voor uw sms'jes, oproepen, video's en groepen. De directe
vervanger van WhatsApp, even eenvoudig.
</Fragment>
<Fragment slot="why">
Standaard end-to-end-encryptie, non-profit, een geauditeerd protocol dat de wereldwijde
standaard is. Vrijwel geen metadata bewaard, en het team heeft beloofd de EU te verlaten liever
dan scanning in te bouwen.
</Fragment>
<Fragment slot="who">
Iedereen, vandaag nog. Het is de eerste en nuttigste stap. Eén voorwaarde: een telefoonnummer,
dat u kunt verbergen achter een gebruikersnaam.
</Fragment>
<ol slot="install">
<li>
Installeer vanaf <b>signal.org</b> (App Store, Google Play, of de directe APK op Android).
</li>
<li>Bevestig uw nummer via sms, en kies dan een pincode.</li>
<li>
Instellingen &gt; Privacy: maak een <b>gebruikersnaam</b> aan om uw nummer te verbergen, en
schakel het <b>registratieslot</b> in.
</li>
<li>Nodig uw naasten uit. Koppel op de computer de desktop-app aan uw telefoon.</li>
</ol>
</ToolCard>
<ToolCard tool="t-simplex">
<Fragment slot="tags">
<span class="tool-tag">🟡 Gevorderd</span>
<span class="tool-tag">Zonder identificatie</span>
<span class="tool-tag">🌍 · open-source</span>
</Fragment>
<Fragment slot="what">
Een versleutelde berichtendienst zonder account, nummer of identificatie. U maakt verbinding
door een link of QR-code te delen.
</Fragment>
<Fragment slot="why">
Per ontwerp weten zelfs de servers niet wie met wie praat. Het is op dit moment de sterkste
optie tegen metadata-correlatie.
</Fragment>
<Fragment slot="who">
Pseudoniem-accounts, gevoelige contacten, hoog risico. Iets jonger dan Signal, met wat ruwe
kantjes.
</Fragment>
<ol slot="install">
<li>
Installeer vanaf <b>simplex.chat</b> (F-Droid, Google Play, App Store of APK).
</li>
<li>
Kies een <b>lokale</b> weergavenaam (nooit uw echte naam: die blijft op uw apparaat).
</li>
<li>
Deel om een contact toe te voegen een <b>eenmalige uitnodigingslink</b> of QR-code.
</li>
<li>Schakel de toegangscode in, en (voor gevorderden) configureer uw eigen SMP-servers.</li>
</ol>
</ToolCard>
<ToolCard tool="t-session">
<Fragment slot="tags">
<span class="tool-tag">🟡 Gevorderd</span>
<span class="tool-tag">Zonder nummer</span>
<span class="tool-tag">🌍 · open-source</span>
</Fragment>
<Fragment slot="what">
Versleuteling op Signal-niveau, maar zonder telefoonnummer en met onion-routing.
</Fragment>
<Fragment slot="why">
Uw identiteit is een willekeurige "Session ID". Het verkeer gaat via een gedecentraliseerd
netwerk (Lokinet) dat metadata sterk vermindert.
</Fragment>
<Fragment slot="who">
Wanneer een telefoonnummer een risico is. Kleiner ecosysteem, het beste voor gesprekken die
ertoe doen.
</Fragment>
<ol slot="install">
<li>
Installeer vanaf <b>getsession.org</b> (alle platforms).
</li>
<li>
"Create account" genereert uw Session ID en een <b>herstelzin</b>.
</li>
<li>Noteer de herstelzin op papier: het is de enige sleutel tot uw account.</li>
<li>Deel uw Session ID (of QR) met uw contacten.</li>
</ol>
</ToolCard>
<ToolCard tool="t-briar">
<Fragment slot="tags">
<span class="tool-tag">🔴 Expert</span>
<span class="tool-tag">Offline / P2P</span>
<span class="tool-tag">Android · open-source</span>
</Fragment>
<Fragment slot="what">
Een peer-to-peer berichtendienst die werkt <b>zonder internet</b>: via Bluetooth, Wi-Fi Direct
of Tor.
</Fragment>
<Fragment slot="why">
Geen server, dus niets om af te sluiten of in beslag te nemen. Bestand tegen internetstoringen
en netwerkcensuur.
</Fragment>
<Fragment slot="who">
Betogingen, rampen, afgelegen gebieden, black-outs. Alleen Android, en beide personen moeten de
app hebben.
</Fragment>
<ol slot="install">
<li>
Installeer vanaf <b>briarproject.org</b> of F-Droid (geen iOS).
</li>
<li>
Maak een <b>lokaal</b> account aan (bijnaam + wachtwoord), alleen op de telefoon opgeslagen.
</li>
<li>Voeg een nabij contact toe door de QR-code te scannen, of op afstand via een link.</li>
<li>
Wanneer het netwerk uitligt, zet Bluetooth aan: berichten springen van apparaat naar apparaat.
</li>
</ol>
</ToolCard>
<ToolCard tool="t-bitchat">
<Fragment slot="tags">
<span class="tool-tag">🔴 Expert</span>
<span class="tool-tag">Bluetooth-mesh</span>
<span class="tool-tag">🌍 · open-source</span>
</Fragment>
<Fragment slot="what">
De mesh-berichtendienst van Jack Dorsey: nabijgelegen telefoons geven berichten van apparaat
naar apparaat door, zonder internet, server of account.
</Fragment>
<Fragment slot="why">
End-to-end-encryptie (AES-256-GCM) en een "paniekmodus" die alles wist met drie tikken op het
logo.
</Fragment>
<Fragment slot="who">
Betogingen en black-outs, als aanvulling op Briar. Met voorzichtigheid te gebruiken.
</Fragment>
<div class="box warn" slot="extra">
<span class="lab">Voorzichtig: niet geauditeerd</span>
<p>
De eigen repository waarschuwt dat het "geen externe beveiligingsreview heeft ontvangen".
Geweldig voor veerkracht, maar zet er voorlopig geen levens op het spel.
</p>
</div>
<ol slot="install">
<li>Installeer via de App Store (iOS) of de APK/GitHub (Android).</li>
<li>Open de app en kies een bijnaam. Geen account aan te maken.</li>
<li>Nabijgelegen apparaten vinden elkaar automatisch via Bluetooth.</li>
<li>Tik in gevaar driemaal op het logo om alles te wissen (paniekmodus).</li>
</ol>
</ToolCard>
<ToolCard tool="t-molly">
<Fragment slot="tags">
<span class="tool-tag">🔴 Expert</span>
<span class="tool-tag">Geharde Signal</span>
<span class="tool-tag">Android · open-source</span>
</Fragment>
<Fragment slot="what">
Een geharde versie van Signal voor Android, compatibel met hetzelfde netwerk.
</Fragment>
<Fragment slot="why">
Database in rust versleuteld, automatische vergrendeling, en een "FOSS"-variant volledig zonder
Google-diensten.
</Fragment>
<Fragment slot="who">
Gevorderde gebruikers, vooral op GrapheneOS, met een hoog dreigingsmodel. Alleen Android.
</Fragment>
<ol slot="install">
<li>
Voeg de Molly-repo toe in F-Droid, of haal de APK van <b>molly.im</b>.
</li>
<li>
Kies <b>Molly-FOSS</b> als u geen Google-afhankelijkheden wilt.
</li>
<li>Registreer met uw nummer (hetzelfde netwerk als Signal).</li>
<li>Stel een databasewachtwoord en automatische vergrendeling in.</li>
</ol>
</ToolCard>
<div class="box">
<span class="lab">Tegen Chat Control</span>
<p>
Geef de voorkeur aan <strong>vrije software</strong>{' '}
<strong>buiten de grote Amerikaanse platforms</strong>, waarvan de teams publiekelijk hebben
beloofd de EU te verlaten liever dan client-side scanning in te bouwen (Signal heeft dat
gedaan). Herinnering: als het besturingssysteem zelf scanning afdwingt, kan de app niet helpen,
vandaar sectie 12.
</p>
</div>
+106
View File
@@ -0,0 +1,106 @@
---
id: 'email'
part: 2
order: 4
title: 'Versleutelde e-mail & PGP'
---
<p class="part-num">
DEEL 03 · <span class="lvl lvl-1">🟢</span>
</p>
## Versleutelde e-mail &amp; PGP
Gmail leest uw e-mails en is gevestigd in de VS, onder de jurisdictie van de "Five Eyes". Gmail/Outlook verlaten is een enorme winst voor minimale inspanning.
<ToolCard tool="t-protonmail">
<Fragment slot="tags">
<span class="tool-tag">🟢 Beginner</span>
<span class="tool-tag">Vervangt Gmail</span>
<span class="tool-tag">🇨🇭 · open-source · OpenPGP</span>
</Fragment>
<Fragment slot="what">
Een versleutelde inbox die Gmail of Outlook vervangt, en het spilaccount voor het hele
Proton-ecosysteem.
</Fragment>
<Fragment slot="why">
Gevestigd in Zwitserland, buiten de "Five Eyes"-jurisdictie. OpenPGP-compatibel: automatische
versleuteling tussen Proton-accounts en naar andere PGP-diensten.
</Fragment>
<Fragment slot="who">
Iedereen. Het is het beste startpunt om Google te verlaten (zie sectie 05 voor de rest van de
suite).
</Fragment>
<ol slot="install">
<li>
Maak een account aan op <b>proton.me</b> (het gratis abonnement is voldoende om te starten).
</li>
<li>
Importeer uw oude berichten en contacten met <b>Easy Switch</b> (ingebouwd).
</li>
<li>
Stel een doorzending in vanuit Gmail en breng uw contacten op de hoogte van uw nieuwe adres.
</li>
<li>
Installeer de mobiele app, schakel <strong>tweestapsverificatie</strong> in, en gebruik Proton
Bridge als u Thunderbird wilt blijven gebruiken.
</li>
</ol>
</ToolCard>
<ToolCard tool="t-tuta">
<Fragment slot="tags">
<span class="tool-tag">🟢 Beginner</span>
<span class="tool-tag">Vervangt Gmail</span>
<span class="tool-tag">🇩🇪 · open-source · post-quantum</span>
</Fragment>
<Fragment slot="what">
Een Duitse e-mailservice, volledig open-source en vrij van elke Google-dienst.
</Fragment>
<Fragment slot="why">
Het versleutelt ook <b>het onderwerp en een deel van de metadata</b>, met
post-quantum-bestendige versleuteling. EU-jurisdictie.
</Fragment>
<Fragment slot="who">
Wie maximale versleutelde metadata en 100% vrije software wil. Het gebruikt geen PGP: om
versleuteld naar externen te schrijven, beveiligt u het bericht met een wachtwoord.
</Fragment>
<ol slot="install">
<li>
Maak een account aan op <b>tuta.com</b> en installeer de app (beschikbaar op F-Droid).
</li>
<li>
Om versleuteld te schrijven naar een niet-gebruiker: klik op het slot en stel een wachtwoord
in, dat u via een ander kanaal aan uw correspondent doorgeeft.
</li>
<li>Schakel tweestapsverificatie in.</li>
</ol>
</ToolCard>
<ToolCard tool="t-mailbox">
<Fragment slot="tags">
<span class="tool-tag">🟢 Beginner</span>
<span class="tool-tag">Ethische klassieke mail</span>
<span class="tool-tag">🇩🇪 · UE · PGP</span>
</Fragment>
<Fragment slot="what">
Twee ethische, goedkope Europese e-mailproviders, met PGP-ondersteuning aan serverzijde.
</Fragment>
<Fragment slot="why">
Privacy- en milieubewust, gebouwd op open standaarden (IMAP, PGP). Ze werken met elke
mailclient.
</Fragment>
<Fragment slot="who">
Wie een "klassieke" mailbox (in Thunderbird) wil, maar dan ethisch, in plaats van een gesloten
versleutelde app.
</Fragment>
<ol slot="install">
<li>Maak een account aan (betaald, ongeveer €1 tot €3 per maand).</li>
<li>Schakel PGP-versleuteling aan serverzijde in (de "Guard"-functie bij mailbox.org).</li>
<li>Configureer het account in Thunderbird of de mobiele app van uw keuze.</li>
</ol>
</ToolCard>
#### PGP in één minuut
**PGP** (Pretty Good Privacy) is versleuteling op basis van sleutels: u hebt een _publieke_ sleutel die u uitdeelt, en een _privésleutel_ die u geheim houdt. Iedereen met uw publieke sleutel kan u een bericht sturen dat **alleen u** kunt ontsleutelen. Het is de basis van provider-onafhankelijke versleutelde e-mail. Proton Mail regelt het automatisch; voor handmatig gebruik werkt **OpenPGP** via Thunderbird (ingebouwd sinds v78).
+158
View File
@@ -0,0 +1,158 @@
---
id: 'navigateur'
part: 3
order: 5
title: 'Browser & zoeken'
---
<p class="part-num">
DEEL 04 · <span class="lvl lvl-1">🟢</span>
</p>
## Browser &amp; zoeken
Chrome is een reclametracker. Google Search profieleert elke zoekopdracht. Vervang beide.
<ToolCard tool="t-mullvadbrowser">
<Fragment slot="tags">
<span class="tool-tag">🟡🔴 Gevorderd / Expert</span>
<span class="tool-tag">Anti-vingerafdruk</span>
<span class="tool-tag">🇸🇪 · open-source</span>
</Fragment>
<Fragment slot="what">
De browser van de Tor Browser, maar dan zonder het Tor-netwerk: gebruik hem met uw VPN voor een
moeilijk te volgen computer.
</Fragment>
<Fragment slot="why">
Ontworpen met het Tor-project: alle gebruikers hebben dezelfde <b>digitale vingerafdruk</b>. Het
resultaat: in plaats van uniek en dus traceerbaar te zijn, lost u op in de massa. De beste
privék euze op de desktop.
</Fragment>
<Fragment slot="who">
Wie verder wil gaan dan eenvoudig adblocken, vooral pseudoniem-accounts en blootgestelde
profielen.
</Fragment>
<ol slot="install">
<li>
Download hem van <b>mullvad.net/browser</b> (Windows, macOS, Linux).
</li>
<li>
Gebruik hem standaard, zonder aanpassingen: elke toegevoegde extensie of instelling maakt u
opnieuw identificeerbaar.
</li>
<li>Combineer hem met uw VPN om ook uw IP-adres te verbergen.</li>
</ol>
</ToolCard>
<ToolCard tool="t-firefox">
<Fragment slot="name">Firefox (gehard)</Fragment>
<Fragment slot="tags">
<span class="tool-tag">🟢 Beginner</span>
<span class="tool-tag">Vervangt Chrome</span>
<span class="tool-tag">🌍 · open-source</span>
</Fragment>
<Fragment slot="what">
De referentie-vrije browser voor privacyvriendelijk dagelijks gebruik.
</Fragment>
<Fragment slot="why">
In tegenstelling tot Chrome (een reclametracker van Google) wordt Firefox ontwikkeld door een
stichting die er geen belang bij heeft u te profileren. Met enkele aanpassingen (de{' '}
<em>arkenfox</em>-gids) en de extensie uBlock Origin wordt hij heel solide.
</Fragment>
<Fragment slot="who">Iedereen, als dagelijkse hoofd browser.</Fragment>
<ol slot="install">
<li>
Installeer Firefox vanaf <b>mozilla.org/firefox</b>.
</li>
<li>
Voeg de extensie <b>uBlock Origin</b> toe (blokkeert advertenties en trackers).
</li>
<li>
Kies bij privacy-instellingen "Streng", schakel telemetrie uit en wis cookies bij het
afsluiten. Voor wie verder wil: pas de arkenfox-gids toe.
</li>
</ol>
</ToolCard>
<ToolCard tool="t-brave">
<Fragment slot="tags">
<span class="tool-tag">🟢 Beginner</span>
<span class="tool-tag">Blokkeert standaard alles</span>
<span class="tool-tag">🌍 · open-source</span>
</Fragment>
<Fragment slot="what">
Een op Chromium gebaseerde browser die standaard advertenties en trackers blokkeert, met een
privévenster dat met Tor is verbonden.
</Fragment>
<Fragment slot="why">
Het is de eenvoudigste optie voor wie van Chrome komt: dezelfde ergonomie, maar zonder tracking.
Het blokkeert YouTube-advertenties standaard, biedt versleutelde video (Brave Talk, gebaseerd op
Jitsi) en Tor-toegang met één klik, handig om een geblokkeerde site te bereiken.
</Fragment>
<Fragment slot="who">
Beginners die een pijnloze overstap vanuit Chrome willen. (Negeer de
crypto-/beloningsadvertentiefuncties als ze u niet interesseren.)
</Fragment>
<ol slot="install">
<li>
Installeer Brave vanaf <b>brave.com</b>.
</li>
<li>
Stel "Shields" in op "agressief", en schakel Brave Rewards uit als u geen advertenties wilt.
</li>
<li>Voor Tor: menu &gt; "Nieuw privévenster met Tor", wacht tot "Tor verbonden" verschijnt.</li>
</ol>
</ToolCard>
<ToolCard tool="t-ublock">
<Fragment slot="tags">
<span class="tool-tag">🟢 Beginner</span>
<span class="tool-tag">Extensie</span>
<span class="tool-tag">🌍 · open-source</span>
</Fragment>
<Fragment slot="what">
De browserextensie die advertenties, trackers en spionagescripts blokkeert. De actie met het
hoogste rendement, in tien seconden.
</Fragment>
<Fragment slot="why">
Online advertenties zijn de belangrijkste vector van surveillance en profilering. Het blokkeren
ervan snijdt het leeuwendeel van de tracking weg, versnelt pagina's en verkleint het risico op
malware.
</Fragment>
<Fragment slot="who">Iedereen, op Firefox en op Chromium-browsers.</Fragment>
<ol slot="install">
<li>
Open de extensiewinkel van uw browser en zoek "uBlock Origin" (het origineel, van Raymond
Hill).
</li>
<li>Installeer hem. Hij werkt meteen, geen instellingen nodig.</li>
</ol>
</ToolCard>
<ToolCard tool="t-search">
<Fragment slot="tags">
<span class="tool-tag">🟢🟡 Zoekmachines</span>
<span class="tool-tag">Vervangt Google Search</span>
</Fragment>
<Fragment slot="what">
Zoekmachines die elke zoekopdracht niet profileren, in tegenstelling tot Google.
</Fragment>
<Fragment slot="why">
DuckDuckGo en Brave Search bewaren geen geschiedenis die aan uw identiteit is gekoppeld.
Startpage levert Google-resultaten zonder de tracking. SearXNG gaat verder: een{' '}
<b>zelf-hostbare</b> metazoekmachine, soevereiniteit tot in uw zoekbalk.
</Fragment>
<Fragment slot="who">
Iedereen. SearXNG is bedoeld voor wie zijn eigen engine wil hosten.
</Fragment>
<ol slot="install">
<li>
Wijzig in uw browserinstellingen de standaardzoekmachine in DuckDuckGo, Brave Search of
Startpage.
</li>
<li>
Voor SearXNG: gebruik een publieke instance (gids op searx.space) of host uw eigen (zie sectie
10).
</li>
</ol>
</ToolCard>
+121
View File
@@ -0,0 +1,121 @@
---
id: 'dns'
part: 3
order: 6
title: 'Versleutelde DNS & Cloudflare'
---
<p class="part-num">
DEEL 05 · NETWERK · DNS · <span class="lvl lvl-2">🟡</span>
</p>
## Versleutelde DNS &amp; Cloudflare
DNS is de telefoongids die een sitenaam (example.com) omzet in een machineadres. Het addertje: standaard beheert uw internetaanbieder die gids, dus ziet hij **elke site die u bezoekt**, zelfs wanneer de pagina HTTPS gebruikt. Uw DNS versleutelen haalt die lijst terug bij uw provider. Het is een stille instelling, maar een van de meest effectieve.
<ToolCard tool="t-quad9">
<Fragment slot="tags">
<span class="tool-tag">🟢 Beginner</span>
<span class="tool-tag">Anti-malware</span>
<span class="tool-tag">🇨🇭 non-profit</span>
</Fragment>
<Fragment slot="what">
Een versleutelde, Zwitserse, non-profit DNS-resolver die ook bekende kwaadaardige domeinen
blokkeert.
</Fragment>
<Fragment slot="why">
Zwitserse jurisdictie, geen bewaring van uw IP-adres, bescherming tegen phishing en malware. Een
uitstekende "instellen en vergeten"-keuze.
</Fragment>
<Fragment slot="who">Iedereen, vooral wie eenvoud en een goede jurisdictie wil.</Fragment>
<ol slot="install">
<li>
Op Android: Instellingen &gt; Netwerk &gt; <b>Privé-DNS</b> &gt; voer <b>dns.quad9.net</b> in.
</li>
<li>
Op iPhone/Mac: installeer het DoH-profiel van quad9.net. Op pc: stel DNS-over-HTTPS in de
browser of het systeem in.
</li>
</ol>
</ToolCard>
<ToolCard tool="t-mullvaddns">
<Fragment slot="tags">
<span class="tool-tag">🟡 Gevorderd</span>
<span class="tool-tag">Netwerkfiltering</span>
</Fragment>
<Fragment slot="what">
Twee versleutelde resolvers die ook advertenties en trackers blokkeren voor het hele apparaat.
</Fragment>
<Fragment slot="why">
<b>Mullvad DNS</b> (Zweden, no-log) is gratis en biedt blokkeerlijsten. <b>NextDNS</b> is zeer
aanpasbaar, met een dashboard en profielen per apparaat, maar is in de VS gevestigd en logt
standaard (schakel dit uit in de instellingen).
</Fragment>
<Fragment slot="who">
Wie systeembrede advertentieblokkering wil zonder per browser een extensie te installeren.
</Fragment>
<ol slot="install">
<li>
Mullvad DNS: gebruik het adres op mullvad.net/help/dns als uw privé-DNS (dezelfde methode als
Quad9).
</li>
<li>
NextDNS: maak een profiel op nextdns.io, <b>schakel logging uit</b> en pas de configuratie toe
op uw apparaten.
</li>
</ol>
</ToolCard>
<ToolCard tool="t-cloudflare">
<Fragment slot="name">Cloudflare 1.1.1.1 (met nuance)</Fragment>
<Fragment slot="tags">
<span class="tool-tag">🟢 Beginner</span>
<span class="tool-tag">Snel maar gecentraliseerd</span>
<span class="tool-tag">🇺🇸</span>
</Fragment>
<Fragment slot="what">
De versleutelde DNS 1.1.1.1 en de WARP-app van Cloudflare: snel, gratis, en een echte
verbetering ten opzichte van de resolver van uw provider.
</Fragment>
<Fragment slot="why">
Het is nuttig, met een geauditeerde belofte van geen logging. Maar wees reëel: Cloudflare staat
al vóór een enorm deel van het web (als technische tussenpersoon kan het het platte tekstverkeer
naar die sites zien). Ook uw DNS daarheen routeren betekent{' '}
<b>nog meer van uw sporen concentreren</b> bij één Amerikaans bedrijf onder Amerikaans recht.
</Fragment>
<Fragment slot="who">
Goed voor dagelijks gebruik en malware-blokkering (1.1.1.1 for Families). Vermijden of
diversifiëren voor gevoelig gebruik: kies liever Quad9 of Mullvad DNS.
</Fragment>
</ToolCard>
<ToolCard tool="t-pihole">
<Fragment slot="tags">
<span class="tool-tag">🔴 Expert</span>
<span class="tool-tag">Blokkering voor het hele netwerk</span>
<span class="tool-tag">🌍 · open-source</span>
</Fragment>
<Fragment slot="what">
Een advertentie- en trackerblokkering die <b>uw hele netwerk in één keer</b> beschermt,
geïnstalleerd op een kleine computer zoals een Raspberry Pi.
</Fragment>
<Fragment slot="why">
Waar uBlock Origin één browser beschermt, filtert Pi-hole <b>elk apparaat</b> in huis, inclusief
apparaten waarop u geen extensie kunt installeren: telefoons, smart-tv's, connected objects.
Advertenties en trackers worden op DNS-niveau geblokkeerd, nog vóór ze laden.{' '}
<b>AdGuard Home</b> is een alternatief met een modernere interface.
</Fragment>
<Fragment slot="who">
Huishoudens die al hun apparaten in één keer willen opschonen, en die een (of willen) Raspberry
Pi of kleine server hebben.
</Fragment>
<ol slot="install">
<li>
Voer op een Raspberry Pi (of een container) het officiële installatieprogramma van Pi-hole
uit.
</li>
<li>Stel in uw router-instellingen het adres van de Pi-hole in als DNS-server.</li>
<li>Voortaan worden alle apparaten op uw netwerk automatisch gefilterd.</li>
</ol>
</ToolCard>
+144
View File
@@ -0,0 +1,144 @@
---
id: 'vpn'
part: 4
order: 7
title: 'VPN: de waarheid'
---
<p class="part-num">
DEEL 06 · <span class="lvl lvl-1">🟢</span>
</p>
## VPN: de waarheid
Een VPN is nuttig, maar wordt met veel leugens verkocht. Dit is wat het daadwerkelijk beschermt.
<div class="box warn">
<span class="lab">Wat een VPN NIET doet</span>
<p>
Een VPN <strong>beschermt u niet tegen de client-side scanning</strong> van Chat Control: die
leest uw berichten op uw apparaat, vóór de versleuteling en dus vóór de VPN. Het is ook geen
onzichtbaarheidsmantel: uw besturingssysteem en apps zien meer dan uw VPN-provider.
</p>
</div>
<div class="box ok">
<span class="lab">Wat een VPN wél goed doet</span>
<p>
Het verbergt uw activiteit voor uw <strong>internetaanbieder</strong> en maskeert uw{' '}
<strong>IP-adres</strong> (en dus locatie) voor de sites die u bezoekt. Nuttig tegen
netwerksurveillance, geolocatie en censuur. Eén stukje van de puzzel, niet de oplossing.
</p>
</div>
<ToolCard tool="t-mullvad">
<Fragment slot="tags">
<span class="tool-tag">🟢🟡🔴 Alle niveaus</span>
<span class="tool-tag">Zonder account · cash/Monero</span>
<span class="tool-tag">🇸🇪 · open-source</span>
</Fragment>
<Fragment slot="what">
Een VPN die uw IP-adres maskeert en uw verkeer versleutelt tot aan zijn servers, zonder ooit ook
maar één stukje persoonlijke informatie te vragen.
</Fragment>
<Fragment slot="why">
Het is de gouden standaard voor privacy. Geen e-mail, geen naam: bij inschrijving krijgt u een
eenvoudig accountnummer. Geauditeerd no-log-beleid, één eerlijke prijs (€5 per maand, geen
niveaus, geen valse beloften), en betaling mogelijk in cash of Monero. Dat is precies wat ertoe
doet op de dag dat een staat de VPN-toegang probeert af te snijden: een account dat niet aan uw
identiteit te koppelen is, en een betaling die banken niet kunnen blokkeren.
</Fragment>
<Fragment slot="who">
Iedereen, van de burger die een identiteitscontrole wil omzeilen tot het hoogrisicoprofiel. Dit
is de VPN om als eerste aan te bevelen.
</Fragment>
<ol slot="install">
<li>
Ga naar <b>mullvad.net</b>. Als de site in uw land geblokkeerd is, open hem dan via de Tor
Browser of het <b>.onion</b>-adres. Klik op "Generate account number": er wordt niet om een
e-mail of naam gevraagd. Bewaar dit nummer in uw wachtwoordmanager en deel het nooit, het is
uw enige toegangssleutel.
</li>
<li>
Kies de looptijd en de betaalmethode. De prijs staat vast. Drie wegen: bankkaart (het
eenvoudigst indien niet geblokkeerd), per post verzonden contanten, of cryptocurrency.
</li>
<li>
<b>Anonieme cryptobetaling:</b> klik op "Create a one-time payment address". Mullvad toont een
adres (Bitcoin of Monero) en een exact bedrag. Stuur dat bedrag vanuit uw portemonnee. Voor
maximale anonimiteit kiest u <b>Monero</b> (standaard privé); Bitcoin is eenvoudiger maar
traceerbaar. Zie sectie 09 om crypto te kopen. Reken op circa 30 minuten bevestiging.
</li>
<li>
Download de app van <b>mullvad.net/download</b> (via Tor als de site wordt gefilterd) en
installeer hem. Op mobiel: App Store, Google Play, of de officiële APK als de app uit uw store
is verwijderd.
</li>
<li>
Start de app, voer uw accountnummer in en maak verbinding met een server <b>buiten uw land</b>
, idealiter buiten de Europese Unie (Zwitserland, VS…). Schakel de "kill switch" in (die het
internet afsluit als de VPN wegvalt) en de DNS van Mullvad.
</li>
</ol>
</ToolCard>
<ToolCard tool="t-protonvpn">
<Fragment slot="tags">
<span class="tool-tag">🟢 Beginner</span>
<span class="tool-tag">Eerlijk gratis abonnement</span>
<span class="tool-tag">🇨🇭 · open-source</span>
</Fragment>
<Fragment slot="what">
De VPN uit het Proton-ecosysteem, met een echt gratis abonnement (zeldzaam en eerlijk).
</Fragment>
<Fragment slot="why">
In Zwitserland gevestigd, geauditeerd, open-source. Het gratis abonnement heeft geen
advertenties, geen doorverkoop van gegevens en geen datalimiet (alleen het aantal landen is
beperkt). De ideale opstap voor een beginner, vooral als u al Proton Mail gebruikt.
</Fragment>
<Fragment slot="who">
Beginners, en iedereen die al in het Proton-ecosysteem zit en één account voor alles wil.
</Fragment>
<ol slot="install">
<li>
Ga naar <b>protonvpn.com</b> en meld u aan met uw Proton-account (of maak er een aan).
</li>
<li>Installeer de app (Windows, macOS, Linux, Android, iOS).</li>
<li>
Gebruik "Quick Connect" of kies een land, schakel de kill switch en NetShield in (blokkering
van advertenties en trackers).
</li>
</ol>
</ToolCard>
<ToolCard tool="t-ivpn">
<Fragment slot="tags">
<span class="tool-tag">🟡🔴 Gevorderd / Expert</span>
<span class="tool-tag">Zonder e-mail · no-log</span>
<span class="tool-tag">🇬🇮 · open-source</span>
</Fragment>
<Fragment slot="what">
Een kleine, bijzonder rigoureuze en transparante VPN-provider, volgens hetzelfde model als
Mullvad.
</Fragment>
<Fragment slot="why">
Geauditeerd no-log-beleid, geen verplichte e-mail, betaling in crypto of contanten. Het biedt
zelfs anti-trackingopties (blokkering van trackers op netwerkniveau) en inschrijving zonder
enige identificatie.
</Fragment>
<Fragment slot="who">
Een solide alternatief voor Mullvad, voor pseudoniem- en hoogrisicoprofielen die willen
diversifiëren.
</Fragment>
<ol slot="install">
<li>
Genereer op <b>ivpn.net</b> een account (er wordt een ID voor u aangemaakt, geen e-mail
nodig).
</li>
<li>Betaal in crypto of contanten, net als bij Mullvad.</li>
<li>
Installeer de app, maak verbinding buiten de EU, schakel de kill switch en het
WireGuard-protocol in.
</li>
</ol>
</ToolCard>
+39
View File
@@ -0,0 +1,39 @@
---
id: 'censure'
part: 4
order: 8
title: 'Censuur & identiteitscontroles'
---
<p class="part-num">
DEEL 07 · CENSURE · DIGITALE IDENTITEIT · <span class="lvl lvl-2">🟡</span>
</p>
## Censuur &amp; identiteitscontroles
Hetzelfde voorwendsel ("bescherm minderjarigen") wordt gebruikt om identiteitscontroles af te dwingen om toegang tot internet te krijgen. Het is het geplande einde van online anonimiteit, en dus een vorm van censuur. Hier is de stand van zaken, en hoe u er wettelijk aan kunt ontsnappen.
#### Stand van zaken (2025-2026)
- **Frankrijk.** De SREN-wet (mei 2024) geeft toezichthouder Arcom de leiding over leeftijdsverificatie; sinds april 2025 moeten de betrokken sites dit invoeren. Een decreet dat leeftijdscontroles oplegt, werd op 15 juli 2025 bekrachtigd door de Raad van State, en een wetsvoorstel dat sociale media verbiedt voor -15-jarigen werd op 26 januari 2026 aangenomen in de Assemblée, wat betekent dat de leeftijd, en dus de identiteit, van iedereen moet worden geverifieerd.
- **Verenigd Koninkrijk.** Sinds 25 juli 2025 vereist de Online Safety Act "hoogst effectieve" leeftijdsverificatie (ID, creditcard, gezichtsschatting). Het directe resultaat: VPN-aanmeldingen schoten binnen enkele uren met meer dan 1.400% omhoog. Het House of Lords debatteerde begin 2026 zelfs over een minimumleeftijd voor VPN-gebruik zelf.
- **Europese Unie.** De Commissie presenteerde een leeftijdsverificatie-app (april 2025), gepiloteerd in vijf landen, ontworpen om aan te sluiten op de Europese digitale-identiteitsportemonnee (EUDI Wallet, eIDAS 2) die elke staat eind 2026 moet aanbieden. EFF en EDRi waarschuwen: het "zero-knowledge"-bewijs is slechts optioneel, en dit bouwt een online-ID-infrastructuur die veel verder gaat dan kinderbescherming.
#### Er wettelijk aan ontsnappen
De tegenzet komt neer op één idee: neem een IP-adres in een land dat deze controles niet oplegt, en verkrijg de hulpmiddelen anoniem, zelfs als ze op een dag worden geblokkeerd.
- **Een VPN buiten de jurisdictie.** Maak verbinding met een server buiten het filterende land (idealiter buiten de EU en de "14 Eyes"), met een geauditeerd no-log-beleid. Dit herstelt de toegang tot netwerken die om een identiteitsbewijs vragen.
- **Anonieme betaling.** Betaal de VPN in crypto of contanten (Mullvad, IVPN, Proton accepteren dit). Cruciaal: als VPN's ooit worden "verboden", kunnen betalingsverwerkers kaarten weigeren; cash en crypto zouden dan de enige opties zijn.
- **Tor om een geblokkeerde VPN op te halen.** Als de site van de provider vanuit uw land onbereikbaar wordt, gebruik dan de Tor Browser (of een .onion-adres) om de client te downloaden. Eenmaal geïnstalleerd is de VPN veel sneller voor dagelijks gebruik.
- **Wijzig het land van uw account.** Een Apple/Google-account dat op een ander land is ingesteld, laat apps die uit uw lokale store zijn verwijderd opnieuw verschijnen.
<div class="box warn">
<span class="lab">De wet verandert, controleer</span>
<p>
Het omzeilen van een geografische beperking is in de meeste Europese landen legaal, maar het
terrein verschuift snel: Utah (VS) heeft VPN-omzeiling strafbaar gesteld, en de Britse Lords
kijken naar VPN-beperkingen. Controleer de wet van uw land voordat u op een methode vertrouwt.
Deze gids gaat over privacybescherming, niet over het verbergen van een misdrijf.
</p>
</div>
+75
View File
@@ -0,0 +1,75 @@
---
id: 'proton'
part: 5
order: 9
title: 'Google verlaten'
---
<p class="part-num">
DEEL 08 · NEEM DE CONTROLE TERUG · <span class="lvl lvl-2">🟡</span>
</p>
## Google verlaten
Google is één account dat uw e-mail, agenda, bestanden, bewegingen en zoekopdrachten kent. Vervang de hele suite.
<div class="tablewrap">
<table>
<thead>
<tr>
<th>Google</th>
<th>Proton</th>
<th>Overige</th>
</tr>
</thead>
<tbody>
<tr>
<td>
<span class="old">Gmail</span>
</td>
<td>
<span class="new">Proton Mail</span>
</td>
<td>Tuta, mailbox.org</td>
</tr>
<tr>
<td>
<span class="old">Google Drive</span>
</td>
<td>
<span class="new">Proton Drive</span>
</td>
<td>Nextcloud, Cryptomator</td>
</tr>
<tr>
<td>
<span class="old">Google Calendar</span>
</td>
<td>
<span class="new">Proton Calendar</span>
</td>
<td>Tuta Calendar</td>
</tr>
<tr>
<td>
<span class="old">Google Password</span>
</td>
<td>
<span class="new">Proton Pass</span>
</td>
<td>Bitwarden, KeePassXC</td>
</tr>
<tr>
<td>
<span class="old">Google One VPN</span>
</td>
<td>
<span class="new">Proton VPN</span>
</td>
<td>Mullvad, IVPN</td>
</tr>
</tbody>
</table>
</div>
De aantrekkingskracht van **Proton** (Zwitserland, non-profit stichting, open-source): één account vervangt heel Google, met end-to-end-encryptie en een jurisdictie buiten de "Five Eyes". U kunt geleidelijk migreren, dienst per dienst. Wie liever niet opnieuw centraliseert bij één aanbieder, vindt in elke rij een onafhankelijk alternatief.
+80
View File
@@ -0,0 +1,80 @@
---
id: 'stockage'
part: 6
order: 10
title: 'Versleutelde opslag'
---
<p class="part-num">
DEEL 09 · <span class="lvl lvl-2">🟡</span>
</p>
## Versleutelde opslag
<ToolCard tool="t-protondrive">
<Fragment slot="tags">
<span class="tool-tag">🟢 Beginner</span>
<span class="tool-tag">Vervangt Google Drive / iCloud</span>
<span class="tool-tag">🇨🇭 · E2EE</span>
</Fragment>
<Fragment slot="what">
Een end-to-end versleutelde cloud voor uw bestanden en foto's, onderdeel van Proton.
</Fragment>
<Fragment slot="why">
In tegenstelling tot Google Drive of iCloud kan Proton uw bestanden niet lezen: ze worden
versleuteld voordat ze uw apparaat verlaten. Zwitserse jurisdictie, hetzelfde account als Proton
Mail.
</Fragment>
<Fragment slot="who">
Iedereen, als eenvoudige, directe vervanging van de cloud van Google of Apple.
</Fragment>
<ol slot="install">
<li>Activeer Proton Drive in uw Proton-account en installeer de app.</li>
<li>Schakel automatische back-up van uw foto's in, en schakel die van Google/Apple uit.</li>
</ol>
</ToolCard>
<ToolCard tool="t-cryptomator">
<Fragment slot="tags">
<span class="tool-tag">🟡 Gevorderd</span>
<span class="tool-tag">Versleutelt vóór upload</span>
<span class="tool-tag">🇩🇪 · open-source</span>
</Fragment>
<Fragment slot="what">
Een kluis die uw bestanden <b>vóór</b> het uploaden versleutelt, naar elke cloud, zelfs Google
Drive of Dropbox.
</Fragment>
<Fragment slot="why">
De perfecte truc als u een bestaande cloud moet behouden: u houdt de handige dienst, maar de
provider ziet alleen versleutelde brij. Alleen u heeft de sleutel.
</Fragment>
<Fragment slot="who">
Wie nog niet van een grote publieke cloud af kan, maar zijn bestanden nu al wil beschermen.
</Fragment>
<ol slot="install">
<li>Installeer Cryptomator (desktop en mobiel) vanaf cryptomator.org.</li>
<li>
Maak een "kluis" aan in de gesynchroniseerde map van uw cloud, kies een sterk wachtwoord.
</li>
<li>Plaats uw bestanden in de kluis: ze worden versleuteld en automatisch gesynchroniseerd.</li>
</ol>
</ToolCard>
<ToolCard tool="t-nc-storage">
<Fragment slot="tags">
<span class="tool-tag">🔴 Expert</span>
<span class="tool-tag">Uw eigen cloud</span>
<span class="tool-tag">🌍 · open-source</span>
</Fragment>
<Fragment slot="what">
Uw eigen cloud (bestanden, agenda, contacten, notities) gehost op uw eigen server.
</Fragment>
<Fragment slot="why">
De ultieme graad van controle: uw gegevens verlaten nooit uw hardware. Gedetailleerd in sectie
10 (zelfhosting).
</Fragment>
<Fragment slot="who">Zelf-hosters. Zie de volledige kaart in sectie 10.</Fragment>
<a slot="links" class="tool-link" href="#selfhost">
→ Sectie 10
</a>
</ToolCard>
@@ -0,0 +1,90 @@
---
id: 'motsdepasse'
part: 7
order: 11
title: 'Wachtwoordmanager'
---
<p class="part-num">
DEEL 10 · <span class="lvl lvl-2">🟡</span>
</p>
## Wachtwoordmanager
Eén sterk, uniek wachtwoord per dienst: de basis van alle beveiliging die volgt. Weg met het notitieboekje, weg met het hergebruikte wachtwoord.
<ToolCard tool="t-bitwarden">
<Fragment slot="tags">
<span class="tool-tag">🟢 Beginner</span>
<span class="tool-tag">Beste om mee te starten</span>
<span class="tool-tag">🌍 · open-source</span>
</Fragment>
<Fragment slot="what">
Een wachtwoordkluis die uw wachtwoorden onthoudt, genereert en voor u invult, op al uw
apparaten.
</Fragment>
<Fragment slot="why">
Gratis, geauditeerd, platformonafhankelijk en end-to-end versleuteld. U hoeft nog maar één sterk
wachtwoord te onthouden. Hij is zelfs <b>zelf-hostbaar</b> (via Vaultwarden), zodat u van
niemand afhankelijk bent.
</Fragment>
<Fragment slot="who">
Iedereen. Het is de basis van alle beveiliging: één sterk, uniek wachtwoord per dienst.
</Fragment>
<ol slot="install">
<li>
Maak een account aan op bitwarden.com en kies een <b>lang</b> hoofdwachtwoord (een
wachtwoordzin). Vergeet het nooit: het kan niet worden hersteld.
</li>
<li>Installeer de browserextensie en de mobiele app.</li>
<li>
Laat Bitwarden terwijl u inlogt uw oude wachtwoorden opslaan en ze vervangen door gegenereerde
wachtwoorden.
</li>
</ol>
</ToolCard>
<ToolCard tool="t-keepassxc">
<Fragment slot="tags">
<span class="tool-tag">🔴 Expert</span>
<span class="tool-tag">100% lokaal</span>
<span class="tool-tag">🌍 · open-source</span>
</Fragment>
<Fragment slot="what">
Een <b>lokale</b> kluis: een versleuteld bestand dat alleen u bezit, zonder cloud en zonder
account.
</Fragment>
<Fragment slot="why">
Niets verlaat uw apparaat, tenzij u er zelf voor kiest het bestand te synchroniseren
(bijvoorbeeld via Cryptomator). De keuze van de purist, zonder enige tussenpersoon.
</Fragment>
<Fragment slot="who">
Gevorderde profielen die volledige controle willen en nul online-afhankelijkheid.
</Fragment>
<ol slot="install">
<li>
Installeer KeePassXC (desktop) en een compatibele mobiele app (KeePassDX op Android, Strongbox
op iOS).
</li>
<li>Maak een databasebestand dat met een hoofdwachtwoord is beveiligd.</li>
<li>
Om het op alle apparaten te hebben, synchroniseert u dit bestand via een versleutelde cloud.
</li>
</ol>
</ToolCard>
<ToolCard tool="t-protonpass">
<Fragment slot="tags">
<span class="tool-tag">🟢 Beginner</span>
<span class="tool-tag">Met e-mailaliassen</span>
<span class="tool-tag">🇨🇭 · open-source</span>
</Fragment>
<Fragment slot="what">
De wachtwoordmanager uit het Proton-ecosysteem, met ingebouwde wegwerpbare e-mailaliassen.
</Fragment>
<Fragment slot="why">
Ideaal als u al bij Proton zit: één account voor mail, cloud en wachtwoorden. De e-mailaliassen
besparen u overal uw echte adres te geven.
</Fragment>
<Fragment slot="who">Wie alles bij Proton wil bundelen.</Fragment>
</ToolCard>
+77
View File
@@ -0,0 +1,77 @@
---
id: 'deuxfa'
part: 7
order: 12
title: 'Tweestapsverificatie & hardwaretokens'
---
<p class="part-num">
DEEL 11 · BEVEILIGING · 2FA · <span class="lvl lvl-2">🟡</span>
</p>
## Tweestapsverificatie &amp; hardwaretokens
Een wachtwoord, zelfs een sterk, kan uitlekken. Tweestapsverificatie (2FA) voegt een tweede bewijs toe bij het inloggen: zelfs als uw wachtwoord is gestolen, blijft het account vergrendeld. Het is essentieel op uw gevoelige accounts (e-mail, wachtwoordmanager, sociale media).
<div class="box warn">
<span class="lab">Vermijd 2FA via sms</span>
<p>
Een code per sms is de zwakke schakel: hij is kwetsbaar voor "SIM-swap" (een aanvaller laat uw
nummer overzetten) en voor interceptie via het telefoonnetwerk (SS7). Studies schatten dat de
meeste SIM-swap-pogingen slagen. Gebruik sms alleen als laatste redmiddel, nooit als uw
belangrijkste bescherming.
</p>
</div>
<ToolCard tool="t-yubikey">
<Fragment slot="tags">
<span class="tool-tag">🟡🔴 Gevorderd / Expert</span>
<span class="tool-tag">FIDO2-hardwaretoken</span>
</Fragment>
<Fragment slot="what">
Een kleine fysieke sleutel (USB, vaak met NFC) die uw identiteit bewijst met één aanraking.
</Fragment>
<Fragment slot="why">
Dit is de sterkste 2FA: hij is phishing-bestendig, omdat de sleutel het echte adres van de site
controleert voordat hij antwoordt. <b>Nitrokey</b> is het volledig open alternatief qua hardware
en firmware. Een nepsite kan u niet misleiden.
</Fragment>
<Fragment slot="who">
Wie maximale beveiliging op sleutelaccounts wil. Koop er <b>twee</b> (één hoofd, één back-up).
</Fragment>
<ol slot="install">
<li>Schaf twee sleutels aan via yubico.com of nitrokey.com.</li>
<li>
Voeg in de beveiligingsinstellingen van elk account (e-mail, wachtwoordmanager…) een
"beveiligingssleutel" of "passkey" toe. Registreer beide sleutels.
</li>
<li>Bewaar de back-upsleutel op een veilige, afzonderlijke plek.</li>
</ol>
</ToolCard>
<ToolCard tool="t-aegis">
<Fragment slot="tags">
<span class="tool-tag">🟢 Beginner</span>
<span class="tool-tag">TOTP-codes</span>
<span class="tool-tag">🌍 · open-source</span>
</Fragment>
<Fragment slot="what">
Apps die elke 30 seconden de zescijferige codes genereren, ter vervanging van Google
Authenticator.
</Fragment>
<Fragment slot="why">
<b>Aegis</b> (Android) bewaart uw codes in een lokale versleutelde kluis, geen cloud.{' '}
<b>Ente Auth</b> voegt end-to-end versleutelde synchronisatie tussen apparaten toe, en is
geauditeerd. Veel veiliger dan sms, en gratis.
</Fragment>
<Fragment slot="who">
Iedereen: dit is het standaard 2FA-niveau om aan te nemen, vóór hardwaretokens.
</Fragment>
<ol slot="install">
<li>Installeer Aegis (F-Droid) of Ente Auth (alle platforms).</li>
<li>Schakel op elk account 2FA via een "authenticator-app" in en scan de getoonde QR-code.</li>
<li>
Noteer de <b>back-upcodes</b> op papier en maak een versleutelde back-up van uw kluis.
</li>
</ol>
</ToolCard>
+123
View File
@@ -0,0 +1,123 @@
---
id: 'social'
part: 8
order: 13
title: 'Gedecentraliseerde sociale netwerken'
---
<p class="part-num">
DEEL 12 · <span class="lvl lvl-2">🟡</span>
</p>
## Gedecentraliseerde sociale netwerken
Instagram, X en Facebook zijn van bedrijven die u profileren en u van de ene op de andere dag kunnen censureren of verwijderen. Het "fediverse" biedt netwerken die van hun gebruikers zijn.
<ToolCard tool="t-mastodon">
<Fragment slot="tags">
<span class="tool-tag">🟢 Beginner</span>
<span class="tool-tag">Vervangt X / Twitter</span>
<span class="tool-tag">🌍 · open-source</span>
</Fragment>
<Fragment slot="what">
Het alternatief voor X/Twitter: een sociaal netwerk dat bestaat uit duizenden onafhankelijke
servers die met elkaar communiceren (het "fediverse").
</Fragment>
<Fragment slot="why">
Geen enkele eigenaar, geen algoritme dat voor u beslist, geen willekeurige ban door één bedrijf.
De tijdlijn is chronologisch, zonder advertenties of manipulatie.
</Fragment>
<Fragment slot="who">
Iedereen. Ideaal voor informatieaccounts die een aanwezigheid willen die geen enkel bedrijf kan
afsnijden.
</Fragment>
<ol slot="install">
<li>
Kies op joinmastodon.org een server (of "instance") die bij u past, en maak een account aan.
</li>
<li>
Installeer een app (de officiële, of Ivory, Tusky…) en volg accounts: u ziet het hele
fediverse, op welke server ze ook zitten.
</li>
</ol>
</ToolCard>
<ToolCard tool="t-nostr">
<Fragment slot="tags">
<span class="tool-tag">🟡🔴</span>
<span class="tool-tag">Oncensureerbaar</span>
<span class="tool-tag">🌍 · open protocol</span>
</Fragment>
<Fragment slot="what">
Geen app maar een protocol: een sociaal netwerk waarin uw identiteit een eenvoudig sleutelpaar
is, zoals bij Bitcoin.
</Fragment>
<Fragment slot="why">
Geen e-mail, geen wachtwoord, geen account dat iemand kan verwijderen. Uw berichten reizen via
gedecentraliseerde relays en u bezit uw publiek echt: niemand kan u blijvend verbannen. U kunt
zelfs fooien in Bitcoin ontvangen ("zaps") en op elk moment van app wisselen zonder uw volgers
te verliezen.
</Fragment>
<Fragment slot="who">
Informatieaccounts en makers die platformcensuur vrezen en een echt eigen aanwezigheid willen.
</Fragment>
<ol slot="install">
<li>Installeer een client: Damus (iPhone), Amethyst of Primal (Android), of een webversie.</li>
<li>
De app genereert uw sleutelpaar. <b>Maak een back-up van uw privésleutel (nsec)</b> zoals een
Bitcoin-herstelzin: op papier, nooit delen.
</li>
<li>Maak uw profiel aan, volg mensen, schakel zaps in om sats te ontvangen.</li>
</ol>
</ToolCard>
<ToolCard tool="t-element">
<Fragment slot="tags">
<span class="tool-tag">🟡🔴</span>
<span class="tool-tag">Vervangt Discord / Slack</span>
<span class="tool-tag">🌍 · gefedereerd · E2EE</span>
</Fragment>
<Fragment slot="what">
Communitychat, in de geest van Discord of Slack, maar dan gefedereerd en end-to-end
versleutelbaar. Element is de app, Matrix is het netwerk.
</Fragment>
<Fragment slot="why">
U kunt uw eigen server hosten (Synapse) en uw gegevens beheren. Perfect voor een collectief, een
redactie of een vereniging die een eigen onafhankelijke ruimte wil.
</Fragment>
<Fragment slot="who">Gemeenschappen en groepen. Zie de metadata-kanttekening hieronder.</Fragment>
<ol slot="install">
<li>
Installeer Element (element.io) en maak een account aan op een publieke server, of op uw eigen
(sectie 10).
</li>
<li>Word lid van of maak ruimtes, en schakel end-to-end-encryptie in voor privégesprekken.</li>
</ol>
</ToolCard>
<ToolCard tool="t-fediverse">
<Fragment slot="tags">
<span class="tool-tag">🟡</span>
<span class="tool-tag">Insta · YouTube · Reddit</span>
<span class="tool-tag">🌍 · open-source</span>
</Fragment>
<Fragment slot="what">
De gefedereerde neven van Instagram (Pixelfed), YouTube (PeerTube) en Reddit (Lemmy).
</Fragment>
<Fragment slot="why">
Dezelfde logica als Mastodon: geen enkele eigenaar, geen advertentie-algoritme, geen tracking. U
plaatst foto's, video's of discussies zonder een profileringsmachine te voeden.
</Fragment>
<Fragment slot="who">
Wie Instagram, YouTube of Reddit wil verlaten zonder het formaat op te geven.
</Fragment>
</ToolCard>
<div class="box">
<span class="lab">Metadata-kanttekening</span>
<p>
Matrix versleutelt de <em>inhoud</em> goed, maar in federatie zien deelnemende servers het
lidmaatschap van ruimtes en de tijdstempels van berichten. Voor zeer gevoelig gebruik kiest u
liever SimpleX/Session of host u uw eigen server.
</p>
</div>
+77
View File
@@ -0,0 +1,77 @@
---
id: 'argent'
part: 9
order: 14
title: 'Financiële soevereiniteit'
---
<p class="part-num">
DEEL 13 · <span class="lvl lvl-2">🟡</span>
</p>
## Financiële soevereiniteit
Ook geld wordt in de gaten gehouden en kan worden gecensureerd. Accounts van activisten zijn bevroren, donaties geblokkeerd, en elke kaartbetaling wordt gevolgd. Financiële privacy maakt deel uit van soevereiniteit.
<ToolCard tool="t-bitcoin">
<Fragment slot="name">Bitcoin (zelfbewaring)</Fragment>
<Fragment slot="tags">
<span class="tool-tag">🟡🔴</span>
<span class="tool-tag">Censuurbestendig</span>
</Fragment>
<Fragment slot="what">
Een digitaal geld dat u zelf bewaart, zonder via een bank te gaan.
</Fragment>
<Fragment slot="why">
Bij <b>zelfbewaring</b> (uw sleutels in een portemonnee die alleen u beheert) kan niemand uw
tegoeden bevriezen of blokkeren. De privacy is niet perfect (het grootboek is openbaar), maar
het ontsnapt aan bankcensuur, handig op de dag dat een betaling wordt geweigerd.
</Fragment>
<Fragment slot="who">
Zich beschermen tegen het bevriezen van accounts of de-banking, en anoniem betalen voor een
dienst zoals een VPN.
</Fragment>
<ol slot="install">
<li>Schaf bitcoins aan (via een exchange, of peer-to-peer).</li>
<li>
Verplaats ze meteen naar een portemonnee die <b>u</b> beheert: een hardwareportemonnee
(Trezor, ColdCard) of een open-source-app. Laat ze niet op de exchange staan.
</li>
<li>Maak een back-up van uw herstelzin op papier, nooit als foto of online.</li>
</ol>
</ToolCard>
<ToolCard tool="t-monero">
<Fragment slot="tags">
<span class="tool-tag">🔴 Expert</span>
<span class="tool-tag">Standaard privé</span>
</Fragment>
<Fragment slot="what">
De privacycryptocurrency: bedragen, afzender en ontvanger zijn standaard verborgen.
</Fragment>
<Fragment slot="why">
Het is op dit punt het exacte tegenovergestelde van Bitcoin: transacties zijn privé per ontwerp.
Het is de beste manier om een dienst te betalen zonder een spoor naar u achter te laten.
</Fragment>
<Fragment slot="who">
Wie maximale financiële privacy wil. Let op: Monero is al van verschillende Europese exchanges
gehaald, dus u heeft vaak een gedecentraliseerde swap nodig.
</Fragment>
<ol slot="install">
<li>Installeer een portemonnee (de officiële op getmonero.org, of Cake Wallet op mobiel).</li>
<li>
Verkrijg XMR via een gedecentraliseerde exchange-dienst (bijvoorbeeld een "swap" vanuit een
andere crypto).
</li>
<li>Maak een back-up van uw herstelzin op papier.</li>
</ol>
</ToolCard>
<div class="box warn">
<span class="lab">Wettigheid &amp; voorzichtigheid</span>
<p>
Financiële privacy is <strong>legaal</strong>. Verwar het niet met belastingontduiking: geef op
wat opgegeven moet worden. Cryptocurrencies zijn <strong>volatiel</strong> en oplichting komt
veel voor; zet nooit in wat u niet kunt verliezen, en leer voordat u handelt.
</p>
</div>
+91
View File
@@ -0,0 +1,91 @@
---
id: 'ia'
part: 9
order: 15
title: 'Conversationele AI'
---
<p class="part-num">
DEEL 14 · BLINDE VLEK · DE AI-WAANZIN · <span class="lvl lvl-2">🟡</span>
</p>
## Conversationele AI
Terwijl we vechten om onze berichten te versleutelen, geven honderden miljoenen mensen hun meest intieme gedachten in ChatGPT, Gemini of Copilot, op Amerikaanse servers. Dit is de blinde vlek van het hele verhaal. Pure waanzin.
Wat u in een cloud-AI typt, is een **geschreven, van een tijdstempel voorziene, opgeslagen bekentenis**. Erger dan een bericht: u stort er uw angsten, gezondheid, financiën, werkgeheimen in uit, vaak eerlijker dan bij een vriend. En in tegenstelling tot een versleutelde messenger is alles in platte tekst leesbaar op de server.
<div class="box warn">
<span class="lab">Wat de feiten zeggen (2025-2026)</span>
<p>
Consumentenabonnementen <strong>trainen standaard op uw gegevens</strong>. In januari 2026 beval
een Amerikaanse rechter OpenAI om <strong>20 miljoen ChatGPT-gesprekken</strong> als bewijs te
overleggen: de getroffen gebruikers werden niet geïnformeerd noch geraadpleegd. Een gesprek
verwijderen <strong>garandeert niet</strong> dat het weg is. Bij één lek bevatten 47.000
blootgelegde gesprekken e-mails, telefoonnummers en herleidbare intieme details.
</p>
</div>
#### De tegenzet: lokale AI
<ToolCard tool="t-localai">
<Fragment slot="tags">
<span class="tool-tag">🟡🔴</span>
<span class="tool-tag">Vervangt ChatGPT</span>
<span class="tool-tag">🌍 · 100% lokaal</span>
</Fragment>
<Fragment slot="what">
Software om een AI-model rechtstreeks op uw eigen computer te draaien.
</Fragment>
<Fragment slot="why">
Uw vragen verlaten het apparaat nooit: geen server, geen account, geen telemetrie, en het werkt
offline. De kwaliteit hangt af van uw hardware, maar er lekt niets. <b>Ollama</b> en{' '}
<b>LM Studio</b> zijn het eenvoudigst; <b>Jan</b> en <b>GPT4All</b> mikken op maximale privacy.
</Fragment>
<Fragment slot="who">
Iedereen die AI gebruikt voor zelfs maar enigszins persoonlijke onderwerpen en ze niet aan een
Amerikaanse server wil toevertrouwen.
</Fragment>
<ol slot="install">
<li>
Installeer voor een zachte start <b>LM Studio</b> of <b>Jan</b> (een grafische interface, als
een gewone app).
</li>
<li>
Download een model dat in de app wordt aangeboden (bijvoorbeeld Llama of Mistral), afgestemd
op de kracht van uw machine.
</li>
<li>
Chat weg: alles gebeurt lokaal. Ollama is de opdrachtpromptversie voor de meer technische
gebruikers.
</li>
</ol>
</ToolCard>
<ToolCard tool="t-cloudai">
<Fragment slot="tags">
<span class="tool-tag">🟢🟡</span>
<span class="tool-tag">Privacybewuste cloud</span>
</Fragment>
<Fragment slot="what">
Cloud-AI-toegang, maar dan gebouwd voor privacy, wanneer een lokale AI niet mogelijk is.
</Fragment>
<Fragment slot="why">
<b>Duck.ai</b> (DuckDuckGo) biedt geanonimiseerde toegang tot meerdere modellen. <b>Lumo</b>{' '}
(Proton) versleutelt de uitwisselingen en traint er niet op. Veel beter dan consumenten-ChatGPT,
maar het blijft een server op afstand.
</Fragment>
<Fragment slot="who">
Wie de gemakken van de cloud wil zonder de reuzen te voeden. Houd niet-gevoelige onderwerpen
daar.
</Fragment>
</ToolCard>
<div class="box honest">
<span class="lab">De simpele regel</span>
<p>
Plak nooit iets in een cloud-AI dat u niet zou vertellen aan een vreemde die meeluistert:
identiteit, gezondheid, wachtwoorden, werkgeheimen, bekentenissen. Voor al het andere dat
gevoelig is, gebruikt u een lokale AI.
</p>
</div>
+208
View File
@@ -0,0 +1,208 @@
---
id: 'boiteaoutils'
part: 9
order: 16
title: 'De dagelijkse gereedschapskist'
---
<p class="part-num">
DEEL 15 · VERVANG DE REST · <span class="lvl lvl-2">🟡</span>
</p>
## De dagelijkse gereedschapskist
Google en Apple zijn niet alleen e-mail: kaarten, notities, agenda, foto's, videogesprekken, alles is aan uw identiteit gekoppeld. Hier leest u hoe u elke bouwsteen één voor één vervangt, zonder in te leveren op gemak.
<ToolCard tool="t-maps">
<Fragment slot="tags">
<span class="tool-tag">🟢 Beginner</span>
<span class="tool-tag">Vervangt Google Maps</span>
<span class="tool-tag">🌍 · open-source</span>
</Fragment>
<Fragment slot="what">
Kaart- en navigatie-apps, gebouwd op OpenStreetMap, die offline werken.
</Fragment>
<Fragment slot="why">
Google Maps legt elke reis vast en bouwt een griezelig nauwkeurige locatiegeschiedenis op.{' '}
<b>Organic Maps</b> volgt niets en toont geen advertenties; <b>OsmAnd</b> is gericht op
gevorderde gebruikers (wandelen, hoogtelijnen, gedetailleerde navigatie).
</Fragment>
<Fragment slot="who">
Iedereen. Live verkeersinformatie en openbaar vervoer zijn minder compleet dan bij Google, maar
de dagelijkse navigatie is uitstekend.
</Fragment>
<ol slot="install">
<li>Installeer vanuit F-Droid, de App Store of Google Play.</li>
<li>Download vooraf de kaarten van de regio's die u nodig heeft voor offline gebruik.</li>
</ol>
</ToolCard>
<ToolCard tool="t-notes">
<Fragment slot="tags">
<span class="tool-tag">🟢🟡</span>
<span class="tool-tag">Vervangt Docs / Notion</span>
<span class="tool-tag">🌍 · open-source</span>
</Fragment>
<Fragment slot="what">
End-to-end versleutelde notities en documenten, ter vervanging van Google Docs, Notion of
Evernote.
</Fragment>
<Fragment slot="why">
<b>Standard Notes</b> (van Proton) versleutelt uw notities standaard. <b>Joplin</b> beheert
Markdown-notitieboeken met optionele versleuteling en de synchronisatie van uw keuze.{' '}
<b>CryptPad</b> (Frans) biedt een real-time, volledig versleuteld Google Docs-alternatief.
</Fragment>
<Fragment slot="who">
Iedereen voor notities; CryptPad voor samenwerking met meerdere personen.
</Fragment>
<ol slot="install">
<li>
Standard Notes / Joplin: maak een account aan, installeer de app en schakel versleuteling in
(standaard aan bij Standard Notes, aan te zetten in Joplin).
</li>
<li>
CryptPad: gebruik cryptpad.fr of een andere instance, geen account nodig om te beginnen.
</li>
</ol>
</ToolCard>
<ToolCard tool="t-visio">
<Fragment slot="tags">
<span class="tool-tag">🟢🟡</span>
<span class="tool-tag">Vervangt Zoom / Meet</span>
<span class="tool-tag">🌍 · open-source</span>
</Fragment>
<Fragment slot="what">
Videoconferentietools zonder account of zware installatie, ter vervanging van Zoom, Google Meet
of Teams.
</Fragment>
<Fragment slot="why">
<b>Jitsi Meet</b> draait in de browser, geen account, en kan zelf worden gehost (het is ook de
basis van Brave Talk). <b>Element Call</b> is end-to-end versleuteld en gefedereerd via Matrix.
Voor een eenvoudig, volledig versleuteld gesprek voldoen <b>Signal</b>-gesprekken ook.
</Fragment>
<Fragment slot="who">
Iedereen. Op een publieke Jitsi-server zijn gesprekken met meerdere deelnemers in het transport
versleuteld; end-to-end-encryptie is optioneel.
</Fragment>
<ol slot="install">
<li>Jitsi: ga naar meet.jit.si, maak een kamernaam aan, deel de link. Niets te installeren.</li>
<li>Element Call: start vanuit de Element (Matrix)-app een gesprek in een ruimte.</li>
</ol>
</ToolCard>
<ToolCard tool="t-photos">
<Fragment slot="tags">
<span class="tool-tag">🟡🔴</span>
<span class="tool-tag">Vervangt Google Photos</span>
<span class="tool-tag">🌍 · open-source</span>
</Fragment>
<Fragment slot="what">
Twee manieren om uw foto's te bewaren zonder ze aan Google of Apple toe te vertrouwen.
</Fragment>
<Fragment slot="why">
<b>Ente</b> is een beheerde, end-to-end versleutelde dienst, met herkenning en zoeken op het
apparaat: eenvoudig en veilig. <b>Immich</b> is een Google Photos-kloon die u <b>zelf host</b>{' '}
(inclusief gezichts- en objectherkenning), voor wie een server kan beheren.
</Fragment>
<Fragment slot="who">
Ente voor iedereen; Immich voor zelf-hosters. Let op: Immich is niet end-to-end versleuteld, de
beveiliging hangt af van uw server.
</Fragment>
<ol slot="install">
<li>
Ente: installeer de app, maak een account aan en schakel automatische back-up van uw fotorol
in.
</li>
<li>Immich: zet het via Docker op uw server (zie sectie 10) en koppel de mobiele app.</li>
</ol>
</ToolCard>
<ToolCard tool="t-alias">
<Fragment slot="tags">
<span class="tool-tag">🟢🟡</span>
<span class="tool-tag">E-mailaliassen</span>
<span class="tool-tag">🌍 · open-source</span>
</Fragment>
<Fragment slot="what">
Wegwerpbare e-mailaliassen: een uniek adres per site, dat doorstuurt naar uw echte inbox zonder
deze ooit te onthullen.
</Fragment>
<Fragment slot="why">
U geeft niet langer overal uw echte adres op. Als een site wordt gehackt of u spamt, knipt u de
bijbehorende alias en weet u meteen wie uw gegevens heeft gelekt. <b>SimpleLogin</b> is
geïntegreerd met Proton; <b>addy.io</b> biedt onbeperkte aliassen in het gratis abonnement.
</Fragment>
<Fragment slot="who">
Iedereen, en vooral pseudoniem-accounts die hun aanmeldingen willen compartimenteren.
</Fragment>
<ol slot="install">
<li>Maak een account aan, installeer de browserextensie.</li>
<li>Genereer bij elke aanmelding een nieuwe alias in plaats van uw echte adres in te typen.</li>
</ol>
</ToolCard>
<ToolCard tool="t-backups">
<Fragment slot="name">Versleutelde back-ups</Fragment>
<Fragment slot="tags">
<span class="tool-tag">🟡🔴</span>
<span class="tool-tag">Cryptomator · restic</span>
<span class="tool-tag">🌍 · open-source</span>
</Fragment>
<Fragment slot="what">
Een manier om een back-up te maken van uw telefoon en computer, waarbij de gegevens <b>vóór</b>{' '}
vertrek naar de cloud worden versleuteld.
</Fragment>
<Fragment slot="why">
iCloud/Google-back-ups zijn vaak toegankelijk voor de provider, en dus voor rechtbanken.{' '}
<b>Cryptomator</b> versleutelt uw bestanden vóór ze naar een cloud worden gestuurd;{' '}
<b>restic</b> maakt automatische versleutelde back-ups; <b>Proton Drive</b> is end-to-end
versleuteld. Schakel op de iPhone "Geavanceerde gegevensbescherming" in om uw iCloud-back-ups te
versleutelen.
</Fragment>
<Fragment slot="who">
Iedereen zou zijn back-ups moeten versleutelen. Gouden regel: twee versleutelde kopieën, op twee
media, op twee locaties.
</Fragment>
<ol slot="install">
<li>
iPhone: Instellingen &gt; uw naam &gt; iCloud &gt; Geavanceerde gegevensbescherming: schakel
in.
</li>
<li>
PC: installeer Cryptomator, maak een kluis aan, plaats er uw bestanden in vóór synchronisatie
met de cloud.
</li>
</ol>
</ToolCard>
<ToolCard tool="t-databrokers">
<Fragment slot="name">Wis uw gegevens (AVG)</Fragment>
<Fragment slot="tags">
<span class="tool-tag">🟡</span>
<span class="tool-tag">Databrokers</span>
</Fragment>
<Fragment slot="what">
Uw persoonlijke gegevens laten verwijderen uit de "databrokers" die ze verzamelen en
doorverkopen.
</Fragment>
<Fragment slot="why">
In Europa geeft de AVG (artikel 17) u een <b>recht op gegevenswissing</b>: u kunt gratis eisen
dat een bedrijf uw gegevens verwijdert, in principe binnen een maand. Diensten als{' '}
<b>Incogni</b> automatiseren deze verzoeken op grote schaal, tegen betaling.
</Fragment>
<Fragment slot="who">
Wie zijn blootstelling wil verminderen. Let op: gegevens komen na verloop van tijd terug, en dit
raakt geen openbare registers of sociale media. Het zelf doen is gratis maar tijdrovend.
</Fragment>
<ol slot="install">
<li>
Voor een handmatig verzoek: schrijf de broker, verwijs naar AVG-artikel 17 en vraag om
verwijdering.
</li>
<li>
Om te automatiseren: abonneer u op een verwijderservice en laat die de verzoeken namens u
versturen.
</li>
</ol>
</ToolCard>
+158
View File
@@ -0,0 +1,158 @@
---
id: 'selfhost'
part: 10
order: 17
title: 'Zelfhosting'
---
<p class="part-num">
DEEL 16 · GEAVANCEERDE ZELFVERDEDIGING · <span class="lvl lvl-3">🔴</span>
</p>
## Zelfhosting
Het ultieme niveau van soevereiniteit: host uw diensten zelf. Uw gegevens leven op uw eigen hardware, onder de jurisdictie die u kiest.
<ToolCard tool="t-yunohost">
<Fragment slot="tags">
<span class="tool-tag">🔴 Expert</span>
<span class="tool-tag">Kant-en-klare server</span>
<span class="tool-tag">🌍 · open-source</span>
</Fragment>
<Fragment slot="what">
Systemen die een oude pc of Raspberry Pi omtoveren tot een persoonlijke server, met een
app-catalogus die u in een paar klikken installeert.
</Fragment>
<Fragment slot="why">
Zelfhosting klinkt eng, maar deze tools doen het zware werk. <b>YunoHost</b> beheert zelfs uw
eigen e-mail en single sign-on. <b>Umbrel</b> biedt een app-store met meer dan 300 apps,
populair bij privacy- en Bitcoin-liefhebbers. <b>Start9</b> versleutelt back-ups en geeft elke
dienst standaard een Tor-adres.
</Fragment>
<Fragment slot="who">
Gevorderde profielen die een middag willen besteden aan het opzetten van hun eigen cloud. Het is
de meest radicale structurele tegenzet tegen Chat Control.
</Fragment>
<ol slot="install">
<li>
Pak een oude computer, een Raspberry Pi, of huur een kleine server (VPS) in een beschermend
land.
</li>
<li>Installeer YunoHost, Umbrel of Start9 volgens hun officiële handleiding.</li>
<li>Installeer vanuit de catalogus Nextcloud, een Matrix-server, een fotogalerij, enz.</li>
<li>
Bereik het privé met Tailscale (kaart hieronder) in plaats van de server bloot te stellen aan
het publieke internet.
</li>
</ol>
</ToolCard>
<ToolCard tool="t-nextcloud">
<Fragment slot="tags">
<span class="tool-tag">🔴 Expert</span>
<span class="tool-tag">Vervangt de hele Google-suite</span>
<span class="tool-tag">🇩🇪 · open-source</span>
</Fragment>
<Fragment slot="what">
Uw eigen cloud: bestanden, agenda, contacten, foto's, notities en samenwerkingsdocumenten, op uw
server.
</Fragment>
<Fragment slot="why">
Het is de volledige vervanging van Google Drive, Agenda en Contacten, maar dan thuis. U kiest de
jurisdictie en niemand anders heeft zeggenschap over uw bestanden. Let op: het is "uw
server"-privacy, niet standaard end-to-end versleuteld; u moet het up-to-date houden.
</Fragment>
<Fragment slot="who">
Zelf-hosters. De eenvoudigste weg is installatie via YunoHost of Umbrel.
</Fragment>
</ToolCard>
<ToolCard tool="t-synapse">
<Fragment slot="tags">
<span class="tool-tag">🔴 Expert</span>
<span class="tool-tag">Uw eigen chatserver</span>
<span class="tool-tag">🌍 · open-source</span>
</Fragment>
<Fragment slot="what">
Uw eigen Matrix-chatserver, waarop Element en versleutelde gesprekken draaien.
</Fragment>
<Fragment slot="why">
Door de server te hosten, beheert u ook de <b>metadata</b> (wie met wie praat, wanneer), het
zwakke punt van Matrix in federatie. Het is communitychat waarvan u alleen de eigenaar bent.
</Fragment>
<Fragment slot="who">
Gemeenschappen, collectieven, redacties die hun eigen onafhankelijke gefedereerde ruimte willen.
</Fragment>
</ToolCard>
<ToolCard tool="t-tailscale">
<Fragment slot="tags">
<span class="tool-tag">🔴 Expert</span>
<span class="tool-tag">Privétoegang tot uw server</span>
<span class="tool-tag">🌍 · open-source</span>
</Fragment>
<Fragment slot="what">
Een privé versleuteld netwerk dat uw apparaten aan uw server koppelt, zonder deze ooit bloot te
stellen aan het publieke internet.
</Fragment>
<Fragment slot="why">
In plaats van poorten te openen (en aangevallen te worden), bouwt <b>Tailscale</b> een
WireGuard-tunnel tussen alleen uw geautoriseerde apparaten: uw server heeft geen publiek
aanvalsoppervlak. <b>Headscale</b> is de zelf-gehoste versie, zodat u van geen enkele derde
partij afhankelijk bent. <b>WireGuard</b> alleen biedt volledige controle, ten koste van
handmatige configuratie.
</Fragment>
<Fragment slot="who">
Elke zelf-hoster. Het is de veilige manier om van buitenaf uw Nextcloud of foto's te bereiken.
</Fragment>
<ol slot="install">
<li>
Installeer Tailscale op uw server en op uw telefoon/pc, en koppel ze aan hetzelfde account.
</li>
<li>
Uw apparaten zien elkaar meteen op een privénetwerk; bereik uw server via het Tailscale-adres.
</li>
<li>Voor nul afhankelijkheid vervangt u de coördinatieserver door zelf-gehoste Headscale.</li>
</ol>
</ToolCard>
<ToolCard tool="t-website">
<Fragment slot="name">Uw eigen website</Fragment>
<Fragment slot="tags">
<span class="tool-tag">🟡🔴</span>
<span class="tool-tag">Ban-bestendig uw stem</span>
</Fragment>
<Fragment slot="what">
Een eigen site, op uw eigen domeinnaam, waar uw inhoud van geen enkel platform afhangt.
</Fragment>
<Fragment slot="why">
Op de dag dat een netwerk uw account verwijdert of schorst, verdwijnt al uw werk. Een
persoonlijke site is uw anker: uw berichten blijven daar, gearchiveerd en up-to-date, wat er ook
gebeurt. Dat is precies wat voorzichtige informatieaccounts doen. Een statische site (gebouwd
met Hugo, Astro of Jekyll) is voldoende en publiceert bijna gratis; voor een dynamische blog
voldoet een zelf-gehoste WordPress of Ghost.
</Fragment>
<Fragment slot="who">
Informatieaccounts, makers, activisten, iedereen die publiceert en platformcensuur vreest.
</Fragment>
<ol slot="install">
<li>Koop een domeinnaam (idealiter bij een privacyrespecterende registrar).</li>
<li>
Kies een statische-sitegenerator (Astro, Hugo) en host het resultaat, of installeer
WordPress/Ghost op uw server.
</li>
<li>
Verwijs er systematisch naar vanuit uw sociale netwerken: uw publiek vindt u zelfs als een
account wegvalt.
</li>
</ol>
</ToolCard>
<div class="box">
<span class="lab">Het jurisdictiepunt</span>
<p>
Zelfhosten betekent ook kiezen <em>waar</em> uw gegevens leven. Een server thuis of in een
beschermend land ontsnapt aan de scanverplichtingen die aan grote platforms worden opgelegd. Het
is de meest radicale structurele tegenzet tegen Chat Control.
</p>
</div>
+56
View File
@@ -0,0 +1,56 @@
---
id: 'tor'
part: 11
order: 18
title: 'Tor'
---
<p class="part-num">
DEEL 17 · <span class="lvl lvl-3">🔴</span>
</p>
## Tor
Het netwerk dat scheidt wie u bent van wat u online doet.
<ToolCard tool="t-tor">
<Fragment slot="tags">
<span class="tool-tag">🔴 Expert</span>
<span class="tool-tag">Netwerkanonimiteit</span>
<span class="tool-tag">🌍 · open-source</span>
</Fragment>
<Fragment slot="what">
Een netwerk dat scheidt wie u bent van wat u online doet, toegankelijk via de Tor Browser.
</Fragment>
<Fragment slot="why">
Uw verkeer stuitert via meerdere versleutelde relays wereldwijd: geen enkele kent zowel uw
identiteit als uw bestemming. Het is het gereedschap van journalisten en bronnen, en de manier
om een geblokkeerde site te bereiken (bijvoorbeeld om een gecensureerde VPN te downloaden).
</Fragment>
<Fragment slot="who">
Hoogrisicoprofielen, en iedereen die zijn activiteit moet loskoppelen van zijn echte IP. Gebruik
het af en toe, niet als dagelijkse browser.
</Fragment>
<ol slot="install">
<li>
Download de Tor Browser van <b>torproject.org</b> (Windows, macOS, Linux, Android).
</li>
<li>
Start hem en klik op "Verbinden". Als Tor in uw land geblokkeerd is, schakel dan een "bridge"
in.
</li>
<li>
Blader zonder het venster te maximaliseren, zonder extensies te installeren, en{' '}
<b>zonder u aan te melden bij uw echte accounts</b>.
</li>
</ol>
</ToolCard>
<div class="box warn">
<span class="lab">Beperkingen, geen magie</span>
<p>
Tor beschermt het transport, niet uw gewoonten: meld u aan bij uw echte account en u
de-anonimiseert uzelf. Het is trager, en de exit-node ziet onversleuteld verkeer (gebruik
HTTPS). Voor serieuze anonimiteit, combineer het met Tails (sectie 12).
</p>
</div>
+141
View File
@@ -0,0 +1,141 @@
---
id: 'os'
part: 12
order: 19
title: 'Vrije besturingssystemen'
---
<p class="part-num">
DEEL 18 · <span class="lvl lvl-3">🔴</span>
</p>
## Vrije besturingssystemen
De hoeksteen. Als client-side scanning kan worden opgelegd door het besturingssysteem zelf, is de enige echte tegenzet dat besturingssysteem beheersen. Dat geldt zowel voor de telefoon (GrapheneOS) als voor de computer (Linux). Onderschat dit niet: zolang u op Windows, macOS of een Google-Android blijft, beheerst u uw machine niet echt.
<ToolCard tool="t-grapheneos">
<Fragment slot="tags">
<span class="tool-tag">🔴 Expert</span>
<span class="tool-tag">Ontgooglede mobiel</span>
<span class="tool-tag">Android · Pixel · open-source</span>
</Fragment>
<Fragment slot="what">
Een volledig ontgooglede Android, geïnstalleerd op een Pixel-telefoon: mobiele soevereiniteit.
</Fragment>
<Fragment slot="why">
Het is de structurele verdediging bij uitstek tegen een besturingssysteem of app-store die u zou
willen scannen. Google-diensten in een optionele sandbox, <b>netwerkpermissies per app</b>,
geïsoleerde profielen, automatische herstart die sleutels uit het geheugen wist, een dwang-PIN
die de telefoon wist. Zo gerespecteerd om zijn beveiliging dat het wordt gebruikt door
spyware-doelen.
</Fragment>
<Fragment slot="who">
Blootgestelde profielen, maar ook elke burger die een Pixel wil kopen om de controle over zijn
telefoon terug te nemen.
</Fragment>
<ol slot="install">
<li>
Schaf een compatibele <b>Google Pixel</b>-telefoon aan (de enige ondersteunde hardware, om
veiligheidsredenen).
</li>
<li>
Ga op een computer naar <b>grapheneos.org/install</b> en volg de webinstaller (een paar
klikken, geen terminal nodig).
</li>
<li>
Installeer voor uw apps de vrije F-Droid-winkel; voeg alleen indien nodig Google Play in een
sandbox toe.
</li>
<li>Stel een lange wachtwoordzin in (geen 4-cijferige PIN) en leer de "Lockdown"-modus.</li>
</ol>
</ToolCard>
<ToolCard tool="t-linux">
<Fragment slot="name">Linux (op desktop)</Fragment>
<Fragment slot="tags">
<span class="tool-tag">🟡🔴</span>
<span class="tool-tag">Vervangt Windows / macOS</span>
<span class="tool-tag">🌍 · vrij &amp; gratis</span>
</Fragment>
<Fragment slot="what">
Een vrij en gratis besturingssysteem voor uw computer, ter vervanging van Windows of macOS. Het
bestaat in vele smaken, "distributies" genaamd.
</Fragment>
<Fragment slot="why">
Het is de blinde vlek van veel mensen: ze versleutelen hun berichten, maar houden een Windows
die onophoudelijk telemetrie naar Microsoft streamt (wiens "Recall"-functie het scherm continu
probeerde te fotograferen), of een macOS die rapporteert welke apps u opent. Linux bespioneert u
niet, is gratis, doet oude computers herleven, en maakt u eindelijk meester van uw machine. Het
is eenvoudiger dan zijn reputatie: moderne distributies lijken op Windows of macOS.
</Fragment>
<Fragment slot="who">
Iedereen kan de overstap maken. Om te beginnen: <b>Linux Mint</b> (het dichtst bij Windows) of{' '}
<b>Fedora</b>; <b>Debian</b> voor stabiliteit. U hoeft niets te wissen: u kunt eerst testen en
daarnaast uw huidige systeem installeren.
</Fragment>
<ol slot="install">
<li>
Niet zeker welke distributie? Beantwoord de <b>distrochooser.de/fr</b>-vragenlijst, die u op
de juiste weg helpt op basis van uw behoeften.
</li>
<li>
Probeer het <b>zonder iets te installeren</b>, rechtstreeks in uw browser, op{' '}
<b>distrosea.com</b>.
</li>
<li>
Eenmaal overtuigd, download de image van de distributie en maak een opstartbare USB (met
Ventoy of Balena Etcher).
</li>
<li>
Start vanaf de USB om het systeem "live" te proberen, voer dan de installatie uit. Schakel de
aangeboden schijfversleuteling in.
</li>
</ol>
</ToolCard>
<ToolCard tool="t-tails">
<Fragment slot="tags">
<span class="tool-tag">🔴 Expert</span>
<span class="tool-tag">Amnesische USB</span>
<span class="tool-tag">🌍 · alles via Tor</span>
</Fragment>
<Fragment slot="what">
Een systeem dat opstart vanaf een USB-stick, al het verkeer via Tor leidt en bij het afsluiten{' '}
<b>geen spoor</b> achterlaat.
</Fragment>
<Fragment slot="why">
Bij het afsluiten wordt alles vergeten: het is "amnesisch". Ideaal voor gevoelig, eenmalig werk
op een computer die niet van u is, zonder iets achter te laten.
</Fragment>
<Fragment slot="who">
Klokkenluiders, journalisten, bronnen. Het referentiegereedschap voor werk met hoog risico.
</Fragment>
<ol slot="install">
<li>
Download Tails van <b>tails.net</b> en volg de wizard om de USB-stick te maken.
</li>
<li>Start de computer opnieuw op vanaf die USB. Gebruik het, en sluit af: alles verdwijnt.</li>
</ol>
</ToolCard>
<ToolCard tool="t-qubes">
<Fragment slot="tags">
<span class="tool-tag">🔴 Expert</span>
<span class="tool-tag">Compartimentering</span>
<span class="tool-tag">🌍 · open-source</span>
</Fragment>
<Fragment slot="what">
Twee nichesystemen: Qubes compartimenteert uw pc in verzegelde virtuele machines; postmarketOS
draait Linux op oude telefoons.
</Fragment>
<Fragment slot="why">
Qubes isoleert elke activiteit (werk, bankieren, risicovol browsen) in een eigen compartiment:
een compromittering bereikt de rest niet. postmarketOS verlengt de levensduur van telefoons die
door hun fabrikant zijn afgedankt.
</Fragment>
<Fragment slot="who">Expertgebruikers met een zeer hoog dreigingsmodel.</Fragment>
</ToolCard>
#### Hard uw apparaat
Zonder van besturingssysteem te wisselen wint u al veel: installeer apps via **F-Droid** (vrije winkel) of **Aurora Store**, vervang Google-diensten door **microG**, maak gescheiden profielen, knip onnodige netwerkpermissies, schakel automatische cloud-back-up en de advertentie-ID uit.
+46
View File
@@ -0,0 +1,46 @@
---
id: 'telephonie'
part: 12
order: 20
title: 'Telefonie & fysiek apparaat'
---
<p class="part-num">
DEEL 19 · HARDWARE · <span class="lvl lvl-3">🔴</span>
</p>
## Telefonie &amp; fysiek apparaat
De beste app is nutteloos als het apparaat zelf u verraadt. Hier zijn de hardwaredreigingen en de stappen die ze neutraliseren.
#### Het telefoonnummer is een tracker
Uw nummer verbindt uw SIM-kaart, uw apparaat (de IMEI-identifier), uw locatie en uw identiteit (de meeste landen eisen identiteitsbewijs bij aankoop van een SIM). Het is de draad die alles aan elkaar knoopt.
- Gebruik **nummerloze** messengers (SimpleX, Session) voor gevoelige contacten, en geef altijd de voorkeur aan Signal boven sms.
- Voor een gescheiden identiteit beperkt een "alleen-data"-SIMkaart of prepaid eSIM de koppeling op het verkooppunt (controleer de regels van uw land).
#### IMSI-catchers &amp; het telefoonnetwerk
"IMSI-catchers" (of "stingrays") zijn nep-zendmasten die telefoons dwingen verbinding te maken om hun identificatie te registreren en soms communicatie te onderscheppen, vaak door terug te schakelen naar zwak versleuteld 2G. Tegelijk maakt een oude netwerkfout (SS7) het nog steeds mogelijk sms'jes te onderscheppen en telefoons op afstand te lokaliseren: een reden te meer om sms te laten vallen.
- **Schakel 2G uit** in de instellingen (mogelijk op Android en GrapheneOS) om de belangrijkste interceptievector te blokkeren.
- Schakel op een betoging of in een gevoelig gebied de **vliegtuigmodus** in of stop de telefoon in een **Faraday-zak** (die alle signalen blokkeert). De EFF publiceert zelfs een vrij hulpmiddel, Rayhunter, om IMSI-catchers te detecteren.
#### Biometrie of toegangscode?
<div class="box warn">
<span class="lab">Een vinger kan worden afgedwongen, een code niet</span>
<p>
Uw gezicht of vinger kan op de sensor worden gedrukt terwijl u wordt vastgehouden (aan een
grens, tijdens een arrestatie); een wachtwoord in uw hoofd kan dat niet. Dwing vóór een
risicovolle situatie een terugkeer naar de toegangscode af: houd op de iPhone de zijknop en een
volumeknop ingedrukt (het "SOS"-scherm); gebruik op Android/GrapheneOS <b>Lockdown</b> in het
stroommenu, wat biometrie uitschakelt totdat de code is ingevoerd. Kies een lange wachtwoordzin,
geen viercijferige PIN. GrapheneOS biedt zelfs een <b>dwang-PIN</b> die de telefoon wist.
</p>
</div>
#### De-Microsoft, de-Apple
Vergeet de computer niet: Windows streamt onophoudelijk telemetrie (en de "Recall"-functie probeerde het scherm continu te fotograferen), macOS rapporteert welke apps u opent. De echte uitweg is Linux (zie sectie 12). Zo niet, schakel dan telemetrie, advertentie-ID en "Recall" uit, en voeg een uitgaande firewall toe (zoals Little Snitch op de Mac).
+37
View File
@@ -0,0 +1,37 @@
---
id: 'opsec'
part: 13
order: 21
title: 'Anonimiteit & OPSEC'
---
<p class="part-num">
DEEL 20 · <span class="lvl lvl-3">🔴</span>
</p>
## Anonimiteit &amp; OPSEC
Voor het pseudoniem-account en de klokkenluider. Hier beschermt u niet langer alleen een bericht: u beschermt een **identiteit**.
#### Pseudonimiteit versus anonimiteit
De gouden regel: **kruis uw echte identiteit nooit met uw publieke**. Niet hetzelfde e-mailadres, nummer, apparaat, netwerk, posttijdstip of schrijfstijl. Eén lek koppelt de twee.
- **Identiteitloze accounts**: SimpleX en Session vragen geen nummer; combineer ze met wegwerpbare e-mailaliassen. Pas op voor doorverkochte, traceerbare "virtuele nummers".
- **Metadata opschonen**: een geplaatste foto bevat vaak de datum, het apparaatmodel en soms GPS-coördinaten (EXIF-gegevens). Verwijder ze met _Metadata Cleaner_, _mat2_ of _ExifTool_ voordat u iets plaatst; let ook op bestandsnamen en documentmetadata.
- **Netwerk-anti-correlatie**: gebruik Tor/Tails om uw activiteit los te koppelen van uw thuis-IP. Meng nooit uw persoonlijke en pseudonimennetwerken. Een SIM op uw naam verraadt uw locatie, wat u ook doet.
- **Compartimentering**: een apparaat, of minstens een profiel, gewijd aan de publieke identiteit, een aparte wachtwoordmanager, en nooit kruislings inloggen tussen de twee werelden.
#### Documenten doorspelen als bron
**SecureDrop** is het anonieme indienensysteem dat veel redacties gebruiken om documenten van bronnen te ontvangen. Veel media publiceren ook een PGP-sleutel en een Signal-contact. Dien nooit in vanaf uw werkmaterialen of uw gebruikelijke netwerk.
<div class="box honest">
<span class="lab">Eerlijkheid, overschat uzelf niet</span>
<p>
Sterke anonimiteit tegen een staatsvijand is <strong>moeilijk en feilbaar</strong>. Deze gids
geeft bakens, geen garanties. Als er levens van afhangen, train dan met de gezaghebbende
bronnen: <em>EFF Surveillance Self-Defense</em>, <em>Freedom of the Press Foundation</em>,{' '}
<em>Privacy Guides</em>. Strikt defensieve en journalistieke context.
</p>
</div>
+72
View File
@@ -0,0 +1,72 @@
---
id: 'ecosysteme'
part: 14
order: 22
title: 'Het complete vrije-software-ecosysteem'
---
<p class="part-num">DEEL 21 · VERDER GAAN</p>
## Het complete vrije-software-ecosysteem
Volledig ontgoogelen betekent elke bouwsteen vervangen door een vrij equivalent. De gemeenschappelijke logica (**vrije software + controle over uw apparaat + zelfhosting**) is de echte tegenzet tegen client-side scanning.
<div class="eco">
<div class="eco-cat">
<h4>Kantoorsoftware</h4>
<ul>
<li>LibreOffice</li>
<li>OnlyOffice</li>
</ul>
</div>
<div class="eco-cat">
<h4>Media</h4>
<ul>
<li>VLC</li>
<li>Jellyfin</li>
<li>FreeTube / NewPipe</li>
<li>Audacity · OBS</li>
<li>GIMP · Inkscape</li>
<li>Calibre · Shotcut</li>
</ul>
</div>
<div class="eco-cat">
<h4>Cloud &amp; netwerk</h4>
<ul>
<li>Nextcloud</li>
<li>Pi-hole</li>
<li>KDE Connect</li>
</ul>
</div>
<div class="eco-cat">
<h4>Vrije mobiel</h4>
<ul>
<li>F-Droid · Aurora</li>
<li>microG</li>
<li>postmarketOS</li>
</ul>
</div>
<div class="eco-cat">
<h4>Beveiliging</h4>
<ul>
<li>Bitwarden</li>
<li>KeePassXC</li>
<li>Wireshark</li>
</ul>
</div>
<div class="eco-cat">
<h4>E-mail &amp; desktop</h4>
<ul>
<li>Thunderbird</li>
<li>FairEmail</li>
</ul>
</div>
<div class="eco-cat">
<h4>Dev &amp; gevorderd</h4>
<ul>
<li>Termux · git</li>
<li>QEMU / KVM · Wine</li>
<li>Flatpak · GNU/Linux</li>
</ul>
</div>
</div>
+25
View File
@@ -0,0 +1,25 @@
---
id: 'action'
part: 15
order: 23
title: 'Migratie & digitale burgerlijke ongehoorzaamheid'
---
<p class="part-num">DEEL 22 · IN ACTIE KOMEN</p>
## Migratie &amp; digitale burgerlijke ongehoorzaamheid
#### Een stapsgewijs plan
1. **Week 1 🟢**: Installeer Signal en haal uw naasten over. Stap over op Proton Mail of Tuta. Stel een wachtwoordmanager en uBlock Origin in.
2. **Week 2 🟡**: Migreer bestanden naar een versleutelde cloud, vervang Chrome/Google Search, neem een VPN, open een Mastodon-account.
3. **Daarna 🔴**: Afhankelijk van uw profiel: GrapheneOS, Tor/Tails, zelfhosting, OPSEC-discipline.
<div class="box warn">
<span class="lab">Veelgemaakte fouten</span>
<p>
Denken dat één hulpmiddel genoeg is; uw echte nummer hergebruiken voor een anoniem account; tien
apps installeren zonder gewoontes te veranderen; vergeten dat de zwakke schakel vaak het
apparaat zelf is.
</p>
</div>
+114
View File
@@ -0,0 +1,114 @@
[
{
"id": "fight-chat-control",
"group": "campaigns",
"name": "Fight Chat Control",
"url": "https://fightchatcontrol.eu",
"displayUrl": "fightchatcontrol.eu"
},
{
"id": "stop-scanning-me",
"group": "campaigns",
"name": "Stop Scanning Me · EDRi",
"url": "https://stopscanningme.eu",
"displayUrl": "stopscanningme.eu"
},
{
"id": "patrick-breyer",
"group": "campaigns",
"name": "Patrick Breyer · chatcontrol.eu",
"url": "https://www.patrick-breyer.de/en/posts/chat-control/",
"displayUrl": "patrick-breyer.de"
},
{
"id": "edri",
"group": "campaigns",
"name": "EDRi",
"url": "https://edri.org",
"displayUrl": "edri.org"
},
{
"id": "la-quadrature-du-net",
"group": "campaigns",
"name": "La Quadrature du Net",
"url": "https://www.laquadrature.net",
"displayUrl": "laquadrature.net"
},
{
"id": "noyb",
"group": "campaigns",
"name": "noyb",
"url": "https://noyb.eu",
"displayUrl": "noyb.eu"
},
{
"id": "eff",
"group": "campaigns",
"name": "EFF",
"url": "https://www.eff.org",
"displayUrl": "eff.org"
},
{
"id": "signal-foundation",
"group": "campaigns",
"name": "Signal Foundation",
"url": "https://signal.org/blog/",
"displayUrl": "signal.org"
},
{
"id": "eff-nsa-timeline",
"group": "chroniclers",
"name": "EFF · NSA Spying Timeline",
"url": "https://nsa-timeline.eff.org/",
"displayUrl": "nsa-timeline.eff.org"
},
{
"id": "atlas-of-surveillance",
"group": "chroniclers",
"name": "Atlas of Surveillance",
"url": "https://atlasofsurveillance.org",
"displayUrl": "atlasofsurveillance.org"
},
{
"id": "technopolice",
"group": "chroniclers",
"name": "Technopolice",
"url": "https://technopolice.fr",
"displayUrl": "technopolice.fr"
},
{
"id": "ooni",
"group": "chroniclers",
"name": "OONI",
"url": "https://ooni.org",
"displayUrl": "ooni.org"
},
{
"id": "digital-violence",
"group": "chroniclers",
"name": "Digital Violence · Forensic Architecture",
"url": "https://forensic-architecture.org/investigation/digital-violence-how-the-nso-group-enables-state-terror",
"displayUrl": "forensic-architecture.org"
},
{
"id": "surveillance-watch",
"group": "chroniclers",
"name": "Surveillance Watch",
"url": "https://www.surveillancewatch.io",
"displayUrl": "surveillancewatch.io"
},
{
"id": "netblocks",
"group": "chroniclers",
"name": "NetBlocks",
"url": "https://netblocks.org",
"displayUrl": "netblocks.org"
},
{
"id": "big-brother-awards",
"group": "chroniclers",
"name": "Big Brother Awards",
"url": "https://bigbrotherawards.de",
"displayUrl": "bigbrotherawards.de"
}
]
+16
View File
@@ -0,0 +1,16 @@
[
{ "id": "do-signal", "level": "green" },
{ "id": "do-email", "level": "green" },
{ "id": "do-pass", "level": "green" },
{ "id": "do-ublock", "level": "green" },
{ "id": "do-browser", "level": "green" },
{ "id": "do-twofa", "level": "yellow" },
{ "id": "do-cloud", "level": "yellow" },
{ "id": "do-vpn", "level": "yellow" },
{ "id": "do-dns", "level": "yellow" },
{ "id": "do-social", "level": "yellow" },
{ "id": "do-linux", "level": "red" },
{ "id": "do-graphene", "level": "red" },
{ "id": "do-selfhost", "level": "red" },
{ "id": "do-opsec", "level": "red" }
]
+513
View File
@@ -0,0 +1,513 @@
[
{
"id": "signal",
"category": "messagerie",
"name": "Signal",
"url": "https://signal.org",
"license": "AGPL-3.0",
"iconSlug": "signal"
},
{
"id": "simplex-chat",
"category": "messagerie",
"name": "SimpleX Chat",
"url": "https://simplex.chat",
"license": "AGPL-3.0",
"iconSlug": "simplex"
},
{
"id": "session",
"category": "messagerie",
"name": "Session",
"url": "https://getsession.org",
"license": "GPL-3.0",
"iconSlug": "session"
},
{
"id": "element-matrix",
"category": "messagerie",
"name": "Element · Matrix",
"url": "https://element.io",
"license": "AGPL-3.0",
"iconSlug": "element"
},
{
"id": "briar",
"category": "messagerie",
"name": "Briar",
"url": "https://briarproject.org",
"license": "GPL-3.0"
},
{
"id": "molly",
"category": "messagerie",
"name": "Molly",
"url": "https://molly.im",
"license": "GPL-3.0"
},
{
"id": "thunderbird",
"category": "email",
"name": "Thunderbird",
"url": "https://www.thunderbird.net",
"license": "MPL-2.0",
"iconSlug": "thunderbird"
},
{
"id": "proton-mail",
"category": "email",
"name": "Proton Mail (apps)",
"url": "https://proton.me/mail",
"license": "GPL-3.0",
"iconSlug": "protonmail"
},
{
"id": "tuta",
"category": "email",
"name": "Tuta (apps)",
"url": "https://tuta.com",
"license": "GPL-3.0",
"iconSlug": "tuta"
},
{
"id": "firefox",
"category": "navigation",
"name": "Firefox",
"url": "https://www.mozilla.org/firefox",
"license": "MPL-2.0",
"iconSlug": "firefox"
},
{
"id": "tor-browser",
"category": "navigation",
"name": "Tor Browser",
"url": "https://www.torproject.org",
"license": "MPL-2.0",
"iconSlug": "torbrowser"
},
{
"id": "mullvad-browser",
"category": "navigation",
"name": "Mullvad Browser",
"url": "https://mullvad.net/browser",
"license": "MPL-2.0",
"iconSlug": "mullvad"
},
{
"id": "brave",
"category": "navigation",
"name": "Brave",
"url": "https://brave.com",
"license": "MPL-2.0",
"iconSlug": "brave"
},
{
"id": "ublock-origin",
"category": "navigation",
"name": "uBlock Origin",
"url": "https://ublockorigin.com",
"license": "GPL-3.0",
"iconSlug": "ublockorigin"
},
{
"id": "searxng",
"category": "navigation",
"name": "SearXNG",
"url": "https://docs.searxng.org",
"license": "AGPL-3.0",
"iconSlug": "searxng"
},
{
"id": "wireguard",
"category": "vpn-reseau",
"name": "WireGuard",
"url": "https://www.wireguard.com",
"license": "GPL-2.0",
"iconSlug": "wireguard"
},
{
"id": "mullvad-vpn",
"category": "vpn-reseau",
"name": "Mullvad VPN (app)",
"url": "https://mullvad.net",
"license": "GPL-3.0",
"iconSlug": "mullvad"
},
{
"id": "proton-vpn",
"category": "vpn-reseau",
"name": "Proton VPN (apps)",
"url": "https://protonvpn.com",
"license": "GPL-3.0",
"iconSlug": "protonvpn"
},
{
"id": "tor",
"category": "vpn-reseau",
"name": "Tor",
"url": "https://www.torproject.org",
"license": "BSD-3-Clause",
"iconSlug": "torproject"
},
{
"id": "tailscale",
"category": "vpn-reseau",
"name": "Tailscale",
"url": "https://tailscale.com",
"license": "BSD-3-Clause",
"iconSlug": "tailscale"
},
{
"id": "headscale",
"category": "vpn-reseau",
"name": "Headscale",
"url": "https://headscale.net",
"license": "BSD-3-Clause"
},
{
"id": "pi-hole",
"category": "dns",
"name": "Pi-hole",
"url": "https://pi-hole.net",
"license": "EUPL-1.2",
"iconSlug": "pihole"
},
{
"id": "adguard-home",
"category": "dns",
"name": "AdGuard Home",
"url": "https://adguard.com/adguard-home.html",
"license": "GPL-3.0",
"iconSlug": "adguard"
},
{
"id": "bitwarden",
"category": "mots-de-passe",
"name": "Bitwarden",
"url": "https://bitwarden.com",
"license": "GPL-3.0",
"iconSlug": "bitwarden"
},
{
"id": "vaultwarden",
"category": "mots-de-passe",
"name": "Vaultwarden",
"url": "https://github.com/dani-garcia/vaultwarden",
"license": "AGPL-3.0",
"iconSlug": "vaultwarden"
},
{
"id": "keepassxc",
"category": "mots-de-passe",
"name": "KeePassXC",
"url": "https://keepassxc.org",
"license": "GPL-2.0/3.0",
"iconSlug": "keepassxc"
},
{
"id": "aegis",
"category": "mots-de-passe",
"name": "Aegis",
"url": "https://getaegis.app",
"license": "GPL-3.0"
},
{
"id": "ente-auth",
"category": "mots-de-passe",
"name": "Ente Auth",
"url": "https://ente.io/auth",
"license": "AGPL-3.0",
"iconSlug": "ente"
},
{
"id": "nextcloud",
"category": "stockage-photos",
"name": "Nextcloud",
"url": "https://nextcloud.com",
"license": "AGPL-3.0",
"iconSlug": "nextcloud"
},
{
"id": "cryptomator",
"category": "stockage-photos",
"name": "Cryptomator",
"url": "https://cryptomator.org",
"license": "GPL-3.0",
"iconSlug": "cryptomator"
},
{
"id": "syncthing",
"category": "stockage-photos",
"name": "Syncthing",
"url": "https://syncthing.net",
"license": "MPL-2.0",
"iconSlug": "syncthing"
},
{
"id": "restic",
"category": "stockage-photos",
"name": "restic",
"url": "https://restic.net",
"license": "BSD-2-Clause"
},
{
"id": "immich",
"category": "stockage-photos",
"name": "Immich",
"url": "https://immich.app",
"license": "AGPL-3.0",
"iconSlug": "immich"
},
{
"id": "ente-photos",
"category": "stockage-photos",
"name": "Ente Photos",
"url": "https://ente.io",
"license": "AGPL-3.0",
"iconSlug": "ente"
},
{
"id": "libreoffice",
"category": "quotidien",
"name": "LibreOffice",
"url": "https://www.libreoffice.org",
"license": "MPL-2.0",
"iconSlug": "libreoffice"
},
{
"id": "onlyoffice",
"category": "quotidien",
"name": "OnlyOffice",
"url": "https://www.onlyoffice.com",
"license": "AGPL-3.0",
"iconSlug": "onlyoffice"
},
{
"id": "joplin",
"category": "quotidien",
"name": "Joplin",
"url": "https://joplinapp.org",
"license": "AGPL-3.0",
"iconSlug": "joplin"
},
{
"id": "standard-notes",
"category": "quotidien",
"name": "Standard Notes",
"url": "https://standardnotes.com",
"license": "AGPL-3.0"
},
{
"id": "cryptpad",
"category": "quotidien",
"name": "CryptPad",
"url": "https://cryptpad.org",
"license": "AGPL-3.0",
"iconSlug": "cryptpad"
},
{
"id": "organic-maps",
"category": "quotidien",
"name": "Organic Maps",
"url": "https://organicmaps.app",
"license": "Apache-2.0",
"iconSlug": "organicmaps"
},
{
"id": "osmand",
"category": "quotidien",
"name": "OsmAnd",
"url": "https://osmand.net",
"license": "GPL-3.0",
"iconSlug": "osmand"
},
{
"id": "jitsi-meet",
"category": "quotidien",
"name": "Jitsi Meet",
"url": "https://jitsi.org",
"license": "Apache-2.0",
"iconSlug": "jitsi"
},
{
"id": "mastodon",
"category": "social",
"name": "Mastodon",
"url": "https://joinmastodon.org",
"license": "AGPL-3.0",
"iconSlug": "mastodon"
},
{
"id": "pixelfed",
"category": "social",
"name": "Pixelfed",
"url": "https://pixelfed.org",
"license": "AGPL-3.0",
"iconSlug": "pixelfed"
},
{
"id": "peertube",
"category": "social",
"name": "PeerTube",
"url": "https://joinpeertube.org",
"license": "AGPL-3.0",
"iconSlug": "peertube"
},
{
"id": "lemmy",
"category": "social",
"name": "Lemmy",
"url": "https://join-lemmy.org",
"license": "AGPL-3.0",
"iconSlug": "lemmy"
},
{
"id": "damus",
"category": "social",
"name": "Damus (Nostr)",
"url": "https://damus.io",
"license": "GPL-3.0"
},
{
"id": "ollama",
"category": "ia-locale-agentique",
"name": "Ollama",
"url": "https://ollama.com",
"license": "MIT",
"iconSlug": "ollama"
},
{
"id": "llama-cpp",
"category": "ia-locale-agentique",
"name": "llama.cpp",
"url": "https://github.com/ggml-org/llama.cpp",
"license": "MIT"
},
{
"id": "jan",
"category": "ia-locale-agentique",
"name": "Jan",
"url": "https://jan.ai",
"license": "AGPL-3.0"
},
{
"id": "gpt4all",
"category": "ia-locale-agentique",
"name": "GPT4All",
"url": "https://gpt4all.io",
"license": "MIT"
},
{
"id": "grapheneos",
"category": "os-mobile",
"name": "GrapheneOS",
"url": "https://grapheneos.org",
"license": "MIT",
"iconSlug": "grapheneos"
},
{
"id": "tails",
"category": "os-mobile",
"name": "Tails",
"url": "https://tails.net",
"license": "GPL-3.0",
"iconSlug": "tails"
},
{
"id": "qubes-os",
"category": "os-mobile",
"name": "Qubes OS",
"url": "https://www.qubes-os.org",
"license": "GPL-2.0",
"iconSlug": "qubesos"
},
{
"id": "f-droid",
"category": "os-mobile",
"name": "F-Droid",
"url": "https://f-droid.org",
"license": "GPL-3.0",
"iconSlug": "fdroid"
},
{
"id": "postmarketos",
"category": "os-mobile",
"name": "postmarketOS",
"url": "https://postmarketos.org",
"license": "GPL-3.0"
},
{
"id": "yunohost",
"category": "selfhost",
"name": "YunoHost",
"url": "https://yunohost.org",
"license": "AGPL-3.0",
"iconSlug": "yunohost"
},
{
"id": "startos",
"category": "selfhost",
"name": "StartOS (Start9)",
"url": "https://start9.com",
"license": "MIT"
},
{
"id": "synapse",
"category": "selfhost",
"name": "Synapse (Matrix)",
"url": "https://element.io/server-suite",
"license": "AGPL-3.0",
"iconSlug": "matrix"
},
{
"id": "bitcoin-core",
"category": "finance",
"name": "Bitcoin Core",
"url": "https://bitcoincore.org",
"license": "MIT",
"iconSlug": "bitcoin"
},
{
"id": "monero",
"category": "finance",
"name": "Monero",
"url": "https://www.getmonero.org",
"license": "BSD-3-Clause",
"iconSlug": "monero"
},
{
"id": "securedrop",
"category": "opsec",
"name": "SecureDrop",
"url": "https://securedrop.org",
"license": "AGPL-3.0"
},
{
"id": "onionshare",
"category": "opsec",
"name": "OnionShare",
"url": "https://onionshare.org",
"license": "GPL-3.0"
},
{
"id": "rayhunter",
"category": "opsec",
"name": "Rayhunter (EFF)",
"url": "https://github.com/EFForg/rayhunter",
"license": "GPL-3.0"
},
{
"id": "mat2",
"category": "opsec",
"name": "mat2",
"url": "https://0xacab.org/jvoisin/mat2",
"license": "LGPL-3.0"
},
{
"id": "exiftool",
"category": "opsec",
"name": "ExifTool",
"url": "https://exiftool.org",
"license": "Artistic/GPL"
}
]
+148
View File
@@ -0,0 +1,148 @@
{
"_comment": "Every external domain the built site may link to. Adding one is a reviewable diff — see CONTRIBUTING.md. Sorted, unique (tested).",
"domains": [
"0xacab.org",
"addy.io",
"adguard.com",
"appleinsider.com",
"archive.epic.org",
"astro.build",
"atlasofsurveillance.org",
"bigbrotherawards.de",
"bitchat.free",
"bitcoin.org",
"bitcoincore.org",
"bitwarden.com",
"brave.com",
"briarproject.org",
"citizenlab.ca",
"cryptomator.org",
"cryptpad.org",
"csa-scientist-open-letter.org",
"damus.io",
"digital-strategy.ec.europa.eu",
"distrochooser.de",
"distrosea.com",
"dl.acm.org",
"docs.searxng.org",
"duck.ai",
"duckduckgo.com",
"ec.europa.eu",
"edri.org",
"element.io",
"ente.io",
"euperspectives.eu",
"eur-lex.europa.eu",
"exiftool.org",
"f-droid.org",
"fightchatcontrol.eu",
"forensic-architecture.org",
"freedom.press",
"getaegis.app",
"getsession.org",
"ghost.org",
"github.com",
"gpt4all.io",
"grapheneos.org",
"headscale.net",
"home-affairs.ec.europa.eu",
"howtheyvote.eu",
"immich.app",
"incogni.com",
"jan.ai",
"jitsi.org",
"join-lemmy.org",
"joinmastodon.org",
"joinpeertube.org",
"joplinapp.org",
"keepassxc.org",
"last-chance-for-eidas.org",
"lcp.fr",
"linuxmint.com",
"lmstudio.ai",
"lumo.proton.me",
"mailbox.org",
"molly.im",
"mullvad.net",
"netblocks.org",
"nextcloud.com",
"nextdns.io",
"nostr.com",
"noyb.eu",
"nsa-timeline.eff.org",
"ollama.com",
"one.one.one.one",
"onionshare.org",
"ooni.org",
"organicmaps.app",
"osmand.net",
"pi-hole.net",
"pixelfed.org",
"posteo.de",
"postmarketos.org",
"proton.me",
"protonvpn.com",
"quad9.net",
"restic.net",
"search.brave.com",
"searx.space",
"securedrop.org",
"signal.org",
"simplelogin.io",
"simplex.chat",
"ssd.eff.org",
"standardnotes.com",
"start9.com",
"statewatch.org",
"stopscanningme.eu",
"syncthing.net",
"tails.net",
"tailscale.com",
"techcrunch.com",
"technopolice.fr",
"therecord.media",
"travel.state.gov",
"tuta.com",
"ublockorigin.com",
"umbrel.com",
"values.snap.com",
"www.amnesty.org",
"www.brennancenter.org",
"www.cnil.fr",
"www.conseil-etat.fr",
"www.consilium.europa.eu",
"www.ecb.europa.eu",
"www.edps.europa.eu",
"www.eff.org",
"www.europarl.europa.eu",
"www.getmonero.org",
"www.gov.uk",
"www.ivpn.net",
"www.laquadrature.net",
"www.legislation.gov.au",
"www.legislation.gov.uk",
"www.lemonde.fr",
"www.libreoffice.org",
"www.mozilla.org",
"www.nitrokey.com",
"www.ofcom.org.uk",
"www.onlyoffice.com",
"www.patrick-breyer.de",
"www.pm.gov.au",
"www.privacyguides.org",
"www.qubes-os.org",
"www.reuters.com",
"www.scmp.com",
"www.surveillancewatch.io",
"www.techradar.com",
"www.theguardian.com",
"www.thunderbird.net",
"www.torproject.org",
"www.unodc.org",
"www.washingtonpost.com",
"www.wired.com",
"www.wireguard.com",
"www.yubico.com",
"yunohost.org"
]
}
+200
View File
@@ -0,0 +1,200 @@
[
{
"id": "clipper-chip",
"date": "1993",
"kind": "promise",
"src": { "label": "EPIC · Clipper Chip", "href": "https://archive.epic.org/crypto/clipper/" }
},
{
"id": "echelon",
"date": "2001-09-05",
"kind": "revealed",
"src": {
"label": "European Parliament · A5-0264/2001",
"href": "https://www.europarl.europa.eu/doceo/document/A-5-2001-0264_EN.html"
}
},
{
"id": "nsa-warrantless",
"date": "2001-10-04",
"kind": "creep",
"src": { "label": "EFF · NSA Spying Timeline", "href": "https://nsa-timeline.eff.org/" }
},
{
"id": "room-641a",
"date": "2006-01-20",
"kind": "revealed",
"src": { "label": "EFF · Jewel v. NSA evidence", "href": "https://nsa-timeline.eff.org/" }
},
{
"id": "retention-directive",
"date": "2006-03-15",
"kind": "creep",
"src": {
"label": "Directive 2006/24/EC",
"href": "https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=celex%3A32006L0024"
}
},
{
"id": "snowden",
"date": "2013-06-05",
"kind": "revealed",
"src": {
"label": "The Guardian · 5 June 2013",
"href": "https://www.theguardian.com/world/2013/jun/06/nsa-phone-records-verizon-court-order"
}
},
{
"id": "digital-rights-ireland",
"date": "2014-04-08",
"kind": "struck",
"src": {
"label": "CJEU · C-293/12 & C-594/12",
"href": "https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A62012CJ0293"
}
},
{
"id": "snoopers-charter",
"date": "2016-11-29",
"kind": "creep",
"src": {
"label": "legislation.gov.uk",
"href": "https://www.legislation.gov.uk/ukpga/2016/25/contents/enacted"
}
},
{
"id": "australia-aaa",
"date": "2018-12-06",
"kind": "creep",
"src": {
"label": "legislation.gov.au · C2018A00148",
"href": "https://www.legislation.gov.au/Details/C2018A00148"
}
},
{
"id": "crypto-ag",
"date": "2020-02-11",
"kind": "revealed",
"src": {
"label": "Washington Post · Operation Rubicon",
"href": "https://www.washingtonpost.com/graphics/2020/world/national-security/cia-crypto-encryption-machines-espionage/"
}
},
{
"id": "lqdn-cjeu",
"date": "2020-10-06",
"kind": "struck",
"src": {
"label": "CJEU · C-511/18, C-512/18 & C-520/18",
"href": "https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A62018CJ0511"
}
},
{
"id": "chatcontrol-1",
"date": "2021-07-14",
"kind": "promise",
"src": {
"label": "Regulation (EU) 2021/1232",
"href": "https://eur-lex.europa.eu/eli/reg/2021/1232/oj"
}
},
{
"id": "pegasus-project",
"date": "2021-07-18",
"kind": "revealed",
"src": {
"label": "Amnesty · Forensic Methodology Report",
"href": "https://www.amnesty.org/en/latest/research/2021/07/forensic-methodology-report-how-to-catch-nso-groups-pegasus/"
}
},
{
"id": "apple-csam",
"date": "2021-08-05",
"kind": "struck",
"src": {
"label": "WIRED · Apple kills CSAM scanning",
"href": "https://www.wired.com/story/apple-photo-scanning-csam-communication-safety-messages/"
}
},
{
"id": "chatcontrol-2",
"date": "2022-05-11",
"kind": "creep",
"src": {
"label": "COM/2022/209",
"href": "https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX%3A52022PC0209"
}
},
{
"id": "osa-spy-clause",
"date": "2023-10-26",
"kind": "creep",
"src": {
"label": "Online Safety Act 2023 · s.121",
"href": "https://www.legislation.gov.uk/ukpga/2023/50/section/121"
}
},
{
"id": "first-extension",
"date": "2024-04-29",
"kind": "creep",
"src": {
"label": "Regulation (EU) 2024/1307",
"href": "https://eur-lex.europa.eu/eli/reg/2024/1307/oj"
}
},
{
"id": "uk-age-checks",
"date": "2025-07-25",
"kind": "creep",
"src": {
"label": "Ofcom · age assurance",
"href": "https://www.ofcom.org.uk/online-safety/protecting-children/age-checks-to-protect-children-online"
}
},
{
"id": "council-sunset-delete",
"date": "2025-11-13",
"kind": "creep",
"src": {
"label": "EDPS · Opinion 7/2026",
"href": "https://www.edps.europa.eu/system/files/2026-02/26-02-16_opinion-extending-application-regulation-2021-1232_en.pdf"
}
},
{
"id": "ep-says-no",
"date": "2026-03-26",
"kind": "struck",
"src": {
"label": "European Parliament · 26 March 2026",
"href": "https://www.europarl.europa.eu/news/en/press-room/20260325IPR39207/child-sexual-abuse-online-voluntary-detection-measures-will-not-be-extended"
}
},
{
"id": "scanning-continues",
"date": "2026-04-04",
"kind": "revealed",
"src": {
"label": "The Record · Big Tech vows to keep scanning",
"href": "https://therecord.media/big-tech-vows-to-continue-csam-scanning"
}
},
{
"id": "council-resurrects",
"date": "2026-07-02",
"kind": "creep",
"src": {
"label": "Council of the EU · 2 July 2026",
"href": "https://www.consilium.europa.eu/en/press/press-releases/2026/07/02/council-moves-to-reinstate-interim-measure-to-combat-child-sexual-abuse-online/"
}
},
{
"id": "ep-e2ee-carveout",
"date": "2026-07-09",
"kind": "struck",
"src": {
"label": "European Parliament · 9 July 2026",
"href": "https://www.europarl.europa.eu/news/en/press-room/20260706IPR46318/"
}
}
]
+387
View File
@@ -0,0 +1,387 @@
[
{
"id": "prum-2",
"date": "2024-03-13",
"region": "eu",
"themes": ["aibio"],
"status": "en_vigueur",
"src": {
"label": "Regulation (EU) 2024/982 · Prüm II",
"href": "https://eur-lex.europa.eu/EN/legal-content/summary/police-cooperation-automated-search-and-exchange-of-data.html"
}
},
{
"id": "eidas-wallet",
"date": "2024-05-20",
"region": "eu",
"themes": ["identity"],
"status": "en_vigueur",
"src": {
"label": "Commission · EUDI regulation",
"href": "https://digital-strategy.ec.europa.eu/en/policies/eudi-regulation"
}
},
{
"id": "going-dark",
"date": "2024-05-21",
"region": "eu",
"themes": ["messaging", "identity"],
"status": "propose",
"src": {
"label": "Commission · HLG recommendations",
"href": "https://home-affairs.ec.europa.eu/document/download/1105a0ef-535c-44a7-a6d4-a8478fce1d29_en"
}
},
{
"id": "roumanie-tiktok",
"date": "2024-12-17",
"region": "eu",
"themes": ["media"],
"status": "en_vigueur",
"src": {
"label": "Commission · DSA proceedings v. TikTok",
"href": "https://digital-strategy.ec.europa.eu/en/news/commission-opens-formal-proceedings-against-tiktok-election-risks-under-digital-services-act"
}
},
{
"id": "vietnam-decret-147",
"date": "2024-12-25",
"region": "vn",
"themes": ["identity", "media"],
"status": "en_vigueur",
"src": {
"label": "The Guardian · Dec 2024",
"href": "https://www.theguardian.com/world/2024/dec/23/vietnam-identity-verification-internet-law-reactions-decree-147-censorship"
}
},
{
"id": "uk-apple-adp",
"date": "2025-02-21",
"region": "uk",
"themes": ["messaging"],
"status": "en_vigueur",
"src": {
"label": "EFF · Deeplinks · Oct 2025",
"href": "https://www.eff.org/deeplinks/2025/10/uk-still-trying-backdoor-encryption-apple-users"
}
},
{
"id": "fr-narcotrafic-8ter",
"date": "2025-03-20",
"region": "fr",
"themes": ["messaging"],
"status": "rejete",
"src": {
"label": "La Quadrature du Net · March 2025",
"href": "https://www.laquadrature.net/2025/03/18/le-gouvernement-pret-a-tout-pour-casser-le-droit-au-chiffrement/"
}
},
{
"id": "protecteu",
"date": "2025-04-01",
"region": "eu",
"themes": ["messaging"],
"status": "propose",
"src": {
"label": "COM(2025) 148 · ProtectEU",
"href": "https://eur-lex.europa.eu/legal-content/EN/TXT/HTML/?uri=CELEX:52025DC0148"
}
},
{
"id": "ice-palantir",
"date": "2025-04-18",
"region": "us",
"themes": ["aibio", "identity"],
"status": "en_vigueur",
"src": {
"label": "WIRED · April 2025",
"href": "https://www.wired.com/story/ice-palantir-immigrationos/"
}
},
{
"id": "ch-vupf",
"date": "2025-05",
"region": "ch",
"themes": ["messaging", "identity"],
"status": "suspendu",
"src": {
"label": "Statewatch · Feb 2026",
"href": "https://statewatch.org/news/2026/february/swiss-government-urged-to-rethink-mass-telecoms-surveillance-plan/"
}
},
{
"id": "us-visa-vetting",
"date": "2025-06-18",
"region": "us",
"themes": ["media", "identity"],
"status": "en_vigueur",
"src": {
"label": "US State Department · June 2025",
"href": "https://travel.state.gov/content/travel/en/News/visas-news/announcement-of-expanded-screening-and-vetting-for-visa-applicants.html"
}
},
{
"id": "roadmap-lawful-access",
"date": "2025-06-24",
"region": "eu",
"themes": ["messaging", "aibio"],
"status": "propose",
"src": {
"label": "Commission · 24 June 2025",
"href": "https://home-affairs.ec.europa.eu/news/commission-presents-roadmap-effective-and-lawful-access-data-law-enforcement-2025-06-24_en"
}
},
{
"id": "age-blueprint",
"date": "2025-07-14",
"region": "eu",
"themes": ["identity"],
"status": "adopte",
"src": {
"label": "Commission · blueprint · July 2025",
"href": "https://digital-strategy.ec.europa.eu/en/news/commission-makes-available-age-verification-blueprint"
}
},
{
"id": "fr-pornhub",
"date": "2025-07-15",
"region": "fr",
"themes": ["identity"],
"status": "en_vigueur",
"src": {
"label": "Conseil d’État · 15 July 2025",
"href": "https://www.conseil-etat.fr/actualites/sites-pornographiques-l-arrete-imposant-de-verifier-l-age-des-utilisateurs-est-maintenu"
}
},
{
"id": "cn-cyber-id",
"date": "2025-07-15",
"region": "cn",
"themes": ["identity"],
"status": "en_vigueur",
"src": {
"label": "South China Morning Post · July 2025",
"href": "https://www.scmp.com/tech/tech-trends/article/3318302/china-rolls-out-voluntary-cyber-id-system-amid-concerns-over-privacy-censorship"
}
},
{
"id": "emfa-article-4",
"date": "2025-08-08",
"region": "eu",
"themes": ["media", "messaging"],
"status": "en_vigueur",
"src": {
"label": "Regulation (EU) 2024/1083 · EMFA",
"href": "https://eur-lex.europa.eu/EN/legal-content/summary/european-media-freedom-act.html"
}
},
{
"id": "ru-max",
"date": "2025-09-01",
"region": "ru",
"themes": ["messaging", "identity"],
"status": "en_vigueur",
"src": {
"label": "Reuters · Aug 2025",
"href": "https://www.reuters.com/technology/russia-orders-state-backed-max-messenger-app-whatsapp-rival-pre-installed-phones-2025-08-21/"
}
},
{
"id": "ru-recherche-punie",
"date": "2025-09-01",
"region": "ru",
"themes": ["media"],
"status": "en_vigueur",
"src": {
"label": "Reuters · July 2025",
"href": "https://www.reuters.com/world/russia-passes-law-punishing-searches-extremist-content-2025-07-22/"
}
},
{
"id": "scientifiques-csar",
"date": "2025-09-09",
"region": "eu",
"themes": ["messaging"],
"status": "negociation",
"src": {
"label": "Open letter · Sept 2025",
"href": "https://csa-scientist-open-letter.org/Sep2025"
}
},
{
"id": "uk-britcard",
"date": "2025-09-26",
"region": "uk",
"themes": ["identity"],
"status": "negociation",
"src": {
"label": "gov.uk · Sept 2025",
"href": "https://www.gov.uk/government/news/new-digital-id-scheme-to-be-rolled-out-across-uk"
}
},
{
"id": "berlin-bloque",
"date": "2025-10-12",
"region": "eu",
"themes": ["messaging"],
"status": "rejete",
"src": {
"label": "EU Perspectives · Oct 2025",
"href": "https://euperspectives.eu/2025/10/berlin-forces-delay-whatsapp-spying-vote/"
}
},
{
"id": "ees-biometrie",
"date": "2025-10-12",
"region": "eu",
"themes": ["aibio", "identity"],
"status": "en_vigueur",
"src": {
"label": "Commission · EES",
"href": "https://home-affairs.ec.europa.eu/policies/schengen/smart-borders/entry-exit-system_en"
}
},
{
"id": "onu-cybercrime",
"date": "2025-10-25",
"region": "world",
"themes": ["messaging"],
"status": "adopte",
"src": {
"label": "UN · UNODC · Oct 2025",
"href": "https://www.unodc.org/unodc/frontpage/2025/October/seventy-two-nations-sign-first-un-treaty-to-fight-cybercrime--in-milestone-for-digital-cooperation.html"
}
},
{
"id": "euro-numerique-pilote",
"date": "2025-10-30",
"region": "eu",
"themes": ["money"],
"status": "negociation",
"src": {
"label": "ECB · 30 Oct 2025",
"href": "https://www.ecb.europa.eu/press/pr/date/2025/html/ecb.pr251030~8c5b5beef0.en.html"
}
},
{
"id": "au-ban-16",
"date": "2025-12-10",
"region": "au",
"themes": ["identity", "aibio", "media"],
"status": "en_vigueur",
"src": {
"label": "Australian PM · Jan 2026",
"href": "https://www.pm.gov.au/media/4-7-million-accounts-deactivated-removed-or-restricted"
}
},
{
"id": "fr-vsa-prolongee",
"date": "2025-12-17",
"region": "fr",
"themes": ["aibio"],
"status": "en_vigueur",
"src": {
"label": "Le Monde · 18 Dec 2025",
"href": "https://www.lemonde.fr/pixels/article/2025/12/18/les-deputes-votent-la-prolongation-de-l-experimentation-de-la-videosurveillance-algorithmique-jusqu-a-la-fin-de-2027_6658502_4408996.html"
}
},
{
"id": "pl-ziobro-asile",
"date": "2026-01-12",
"region": "eu",
"themes": ["media", "messaging"],
"status": "revele",
"src": {
"label": "Le Monde · 12 Jan 2026",
"href": "https://www.lemonde.fr/international/article/2026/01/12/pologne-ancien-ministre-de-la-justice-et-procureur-general-zbigniew-ziobro-dit-avoir-obtenu-l-asile-en-hongrie_6661475_3210.html"
}
},
{
"id": "ru-whatsapp-bloque",
"date": "2026-02-12",
"region": "ru",
"themes": ["messaging"],
"status": "en_vigueur",
"src": {
"label": "Reuters · Feb 2026",
"href": "https://www.reuters.com/technology/russia-blocks-metas-whatsapp-messaging-service-ft-reports-2026-02-12/"
}
},
{
"id": "gr-intellexa",
"date": "2026-02-26",
"region": "eu",
"themes": ["media", "messaging"],
"status": "revele",
"src": {
"label": "Amnesty International · Feb 2026",
"href": "https://www.amnesty.org/en/latest/news/2026/02/greece-spyware-scandal/"
}
},
{
"id": "fr-boites-noires-urls",
"date": "2026-05",
"region": "fr",
"themes": ["messaging", "media"],
"status": "negociation",
"src": {
"label": "Le Monde · 7 May 2026",
"href": "https://www.lemonde.fr/pixels/article/2026/05/07/surveillance-les-deputes-elargissent-a-nouveau-le-dispositif-des-boites-noires_6686538_4408996.html"
}
},
{
"id": "palantir-europe",
"date": "2026-05-19",
"region": "eu",
"themes": ["aibio"],
"status": "en_vigueur",
"src": {
"label": "Le Monde · 19 May 2026",
"href": "https://www.lemonde.fr/economie/article/2026/05/19/les-services-secrets-allemands-se-tournent-vers-le-francais-chapsvision-pour-leur-logiciel-d-analyse-de-donnees-afin-d-eviter-palantir_6691466_3234.html"
}
},
{
"id": "us-fisa-702",
"date": "2026-06-12",
"region": "us",
"themes": ["messaging"],
"status": "negociation",
"src": {
"label": "Brennan Center · 2026",
"href": "https://www.brennancenter.org/our-work/research-reports/section-702-foreign-intelligence-surveillance-act-fisa-2026-resource-page"
}
},
{
"id": "euro-numerique-econ",
"date": "2026-06-23",
"region": "eu",
"themes": ["money"],
"status": "negociation",
"src": {
"label": "European Parliament · 23 June 2026",
"href": "https://www.europarl.europa.eu/news/en/press-room/20260622IPR45912/digital-euro-meps-want-to-ensure-sovereignty-privacy-and-financial-stability"
}
},
{
"id": "europol-reforme",
"date": "2026-06-24",
"region": "eu",
"themes": ["messaging", "money", "aibio"],
"status": "propose",
"src": {
"label": "Commission · 24 June 2026",
"href": "https://ec.europa.eu/commission/presscorner/detail/en/ip_26_1420"
}
},
{
"id": "pega-kouloglou",
"date": "2026-07",
"region": "eu",
"themes": ["media", "messaging"],
"status": "revele",
"src": {
"label": "Citizen Lab · July 2026",
"href": "https://citizenlab.ca/research/member-of-committee-investigating-spyware-hacked-with-pegasus/"
}
}
]
+974
View File
@@ -0,0 +1,974 @@
[
{
"id": "t-signal",
"name": "Signal",
"url": "https://signal.org",
"links": [
{
"label": "signal.org",
"href": "https://signal.org"
}
],
"iconSlug": "signal",
"monogram": "S",
"color": "#3a76f0",
"level": 1,
"profiles": ["🟢", "🟡", "🔴"]
},
{
"id": "t-simplex",
"name": "SimpleX Chat",
"url": "https://simplex.chat",
"links": [
{
"label": "simplex.chat",
"href": "https://simplex.chat"
}
],
"iconSlug": "simplex",
"monogram": "SX",
"color": "#1e63d0",
"level": 2,
"profiles": ["🟡", "🔴"]
},
{
"id": "t-session",
"name": "Session",
"url": "https://getsession.org",
"links": [
{
"label": "getsession.org",
"href": "https://getsession.org"
}
],
"iconSlug": "session",
"monogram": "Se",
"color": "#178a5a",
"level": 2,
"profiles": ["🟡", "🔴"]
},
{
"id": "t-briar",
"name": "Briar",
"url": "https://briarproject.org",
"links": [
{
"label": "briarproject.org",
"href": "https://briarproject.org"
}
],
"iconSlug": null,
"monogram": "Br",
"color": "#c1272d",
"level": 3,
"profiles": ["🔴"]
},
{
"id": "t-bitchat",
"name": "Bitchat",
"url": "https://bitchat.free",
"links": [
{
"label": "bitchat",
"href": "https://bitchat.free"
}
],
"iconSlug": null,
"monogram": "bit",
"color": "#e8871e",
"level": 3,
"profiles": ["🔴"]
},
{
"id": "t-molly",
"name": "Molly",
"url": "https://molly.im",
"links": [
{
"label": "molly.im",
"href": "https://molly.im"
}
],
"iconSlug": null,
"monogram": "M",
"color": "#6d4bb3",
"level": 3,
"profiles": ["🔴"]
},
{
"id": "t-protonmail",
"name": "Proton Mail",
"url": "https://proton.me/mail",
"links": [
{
"label": "proton.me/mail",
"href": "https://proton.me/mail"
}
],
"iconSlug": "protonmail",
"monogram": "Pm",
"color": "#6d4aff",
"level": 1,
"profiles": ["🟢", "🟡"]
},
{
"id": "t-tuta",
"name": "Tuta",
"url": "https://tuta.com",
"links": [
{
"label": "tuta.com",
"href": "https://tuta.com"
}
],
"iconSlug": "tuta",
"monogram": "Tu",
"color": "#b01e2e",
"level": 1,
"profiles": ["🟢", "🟡"]
},
{
"id": "t-mailbox",
"name": "mailbox.org · Posteo",
"url": "https://mailbox.org",
"links": [
{
"label": "mailbox.org",
"href": "https://mailbox.org"
},
{
"label": "posteo.de",
"href": "https://posteo.de"
}
],
"iconSlug": null,
"monogram": "mx",
"color": "#2470d4",
"level": 1,
"profiles": ["🟢"]
},
{
"id": "t-mullvadbrowser",
"name": "Mullvad Browser",
"url": "https://mullvad.net/browser",
"links": [
{
"label": "mullvad.net/browser",
"href": "https://mullvad.net/browser"
}
],
"iconSlug": "mullvad",
"monogram": "Mb",
"color": "#2b4b8f",
"level": null,
"profiles": ["🟡", "🔴"]
},
{
"id": "t-firefox",
"name": "Firefox (hardened)",
"url": "https://www.mozilla.org/firefox",
"links": [
{
"label": "mozilla.org/firefox",
"href": "https://www.mozilla.org/firefox"
}
],
"iconSlug": "firefoxbrowser",
"monogram": "Fx",
"color": "#e66000",
"level": 1,
"profiles": ["🟢"]
},
{
"id": "t-brave",
"name": "Brave",
"url": "https://brave.com",
"links": [
{
"label": "brave.com",
"href": "https://brave.com"
}
],
"iconSlug": "brave",
"monogram": "Bv",
"color": "#fb542b",
"level": 1,
"profiles": ["🟢"]
},
{
"id": "t-ublock",
"name": "uBlock Origin",
"url": "https://ublockorigin.com",
"links": [
{
"label": "ublockorigin.com",
"href": "https://ublockorigin.com"
}
],
"iconSlug": "ublockorigin",
"monogram": "uB",
"color": "#7a0d0d",
"level": 1,
"profiles": ["🟢"]
},
{
"id": "t-search",
"name": "DuckDuckGo · Brave Search · SearXNG",
"url": "https://duckduckgo.com",
"links": [
{
"label": "duckduckgo.com",
"href": "https://duckduckgo.com"
},
{
"label": "search.brave.com",
"href": "https://search.brave.com"
},
{
"label": "searx.space",
"href": "https://searx.space"
}
],
"iconSlug": "duckduckgo",
"monogram": "🔎",
"color": "#de5833",
"level": null,
"profiles": ["🟢", "🟡"]
},
{
"id": "t-quad9",
"name": "Quad9",
"url": "https://quad9.net",
"links": [
{
"label": "quad9.net",
"href": "https://quad9.net"
}
],
"iconSlug": "quad9",
"monogram": "9",
"color": "#1a5fb4",
"level": 1,
"profiles": ["🟢", "🟡"]
},
{
"id": "t-mullvaddns",
"name": "Mullvad DNS · NextDNS",
"url": "https://mullvad.net/help/dns-over-https-and-dns-over-tls",
"links": [
{
"label": "mullvad.net/dns",
"href": "https://mullvad.net/help/dns-over-https-and-dns-over-tls"
},
{
"label": "nextdns.io",
"href": "https://nextdns.io"
}
],
"iconSlug": "mullvad",
"monogram": "DNS",
"color": "#2b4b8f",
"level": 2,
"profiles": ["🟡"]
},
{
"id": "t-cloudflare",
"name": "Cloudflare 1.1.1.1 (with nuance)",
"url": "https://one.one.one.one",
"links": [
{
"label": "1.1.1.1",
"href": "https://one.one.one.one"
}
],
"iconSlug": "cloudflare",
"monogram": "CF",
"color": "#f38020",
"level": 1,
"profiles": ["🟢"]
},
{
"id": "t-pihole",
"name": "Pi-hole · AdGuard Home",
"url": "https://pi-hole.net",
"links": [
{
"label": "pi-hole.net",
"href": "https://pi-hole.net"
},
{
"label": "adguard home",
"href": "https://adguard.com/adguard-home"
}
],
"iconSlug": "pihole",
"monogram": "π",
"color": "#96060c",
"level": 3,
"profiles": ["🔴"]
},
{
"id": "t-mullvad",
"name": "Mullvad VPN",
"url": "https://mullvad.net",
"links": [
{
"label": "mullvad.net",
"href": "https://mullvad.net"
}
],
"iconSlug": "mullvad",
"monogram": "Mv",
"color": "#2b4b8f",
"level": null,
"profiles": ["🟢", "🟡", "🔴"]
},
{
"id": "t-protonvpn",
"name": "Proton VPN",
"url": "https://protonvpn.com",
"links": [
{
"label": "protonvpn.com",
"href": "https://protonvpn.com"
}
],
"iconSlug": "protonvpn",
"monogram": "Pv",
"color": "#6d4aff",
"level": 1,
"profiles": ["🟢"]
},
{
"id": "t-ivpn",
"name": "IVPN",
"url": "https://www.ivpn.net",
"links": [
{
"label": "ivpn.net",
"href": "https://www.ivpn.net"
}
],
"iconSlug": null,
"monogram": "iv",
"color": "#3b5bdb",
"level": null,
"profiles": ["🟡", "🔴"]
},
{
"id": "t-protondrive",
"name": "Proton Drive",
"url": "https://proton.me/drive",
"links": [
{
"label": "proton.me/drive",
"href": "https://proton.me/drive"
}
],
"iconSlug": "protondrive",
"monogram": "Pd",
"color": "#6d4aff",
"level": 1,
"profiles": ["🟢", "🟡"]
},
{
"id": "t-cryptomator",
"name": "Cryptomator",
"url": "https://cryptomator.org",
"links": [
{
"label": "cryptomator.org",
"href": "https://cryptomator.org"
}
],
"iconSlug": "cryptomator",
"monogram": "Cy",
"color": "#26a69a",
"level": 2,
"profiles": ["🟡", "🔴"]
},
{
"id": "t-nc-storage",
"name": "Nextcloud",
"url": "https://nextcloud.com",
"links": [
{
"label": "nextcloud.com",
"href": "https://nextcloud.com"
}
],
"iconSlug": "nextcloud",
"monogram": "Nc",
"color": "#0082c9",
"level": 3,
"profiles": ["🔴"]
},
{
"id": "t-bitwarden",
"name": "Bitwarden",
"url": "https://bitwarden.com",
"links": [
{
"label": "bitwarden.com",
"href": "https://bitwarden.com"
}
],
"iconSlug": "bitwarden",
"monogram": "Bw",
"color": "#175ddc",
"level": 1,
"profiles": ["🟢", "🟡", "🔴"]
},
{
"id": "t-keepassxc",
"name": "KeePassXC",
"url": "https://keepassxc.org",
"links": [
{
"label": "keepassxc.org",
"href": "https://keepassxc.org"
}
],
"iconSlug": "keepassxc",
"monogram": "Kp",
"color": "#2c6b9e",
"level": 3,
"profiles": ["🔴"]
},
{
"id": "t-protonpass",
"name": "Proton Pass",
"url": "https://proton.me/pass",
"links": [
{
"label": "proton.me/pass",
"href": "https://proton.me/pass"
}
],
"iconSlug": null,
"monogram": "Pp",
"color": "#6d4aff",
"level": 1,
"profiles": ["🟢", "🟡"]
},
{
"id": "t-yubikey",
"name": "YubiKey · Nitrokey",
"url": "https://www.yubico.com",
"links": [
{
"label": "yubico.com",
"href": "https://www.yubico.com"
},
{
"label": "nitrokey.com",
"href": "https://www.nitrokey.com"
}
],
"iconSlug": "yubico",
"monogram": "Yk",
"color": "#84bd00",
"level": null,
"profiles": ["🟡", "🔴"]
},
{
"id": "t-aegis",
"name": "Aegis · Ente Auth",
"url": "https://getaegis.app",
"links": [
{
"label": "getaegis.app",
"href": "https://getaegis.app"
},
{
"label": "ente.io/auth",
"href": "https://ente.io/auth"
}
],
"iconSlug": "aegisauthenticator",
"monogram": "Ae",
"color": "#2c5c9c",
"level": 1,
"profiles": ["🟢", "🟡"]
},
{
"id": "t-mastodon",
"name": "Mastodon",
"url": "https://joinmastodon.org",
"links": [
{
"label": "joinmastodon.org",
"href": "https://joinmastodon.org"
}
],
"iconSlug": "mastodon",
"monogram": "Ma",
"color": "#6364ff",
"level": 1,
"profiles": ["🟢", "🟡"]
},
{
"id": "t-nostr",
"name": "Nostr",
"url": "https://nostr.com",
"links": [
{
"label": "nostr.com",
"href": "https://nostr.com"
}
],
"iconSlug": null,
"monogram": "No",
"color": "#8e30eb",
"level": null,
"profiles": ["🟡", "🔴"]
},
{
"id": "t-element",
"name": "Matrix / Element",
"url": "https://element.io",
"links": [
{
"label": "element.io",
"href": "https://element.io"
}
],
"iconSlug": "element",
"monogram": "El",
"color": "#0dbd8b",
"level": null,
"profiles": ["🟡", "🔴"]
},
{
"id": "t-fediverse",
"name": "Pixelfed · PeerTube · Lemmy",
"url": "https://pixelfed.org",
"links": [
{
"label": "pixelfed.org",
"href": "https://pixelfed.org"
},
{
"label": "peertube",
"href": "https://joinpeertube.org"
},
{
"label": "lemmy",
"href": "https://join-lemmy.org"
}
],
"iconSlug": "pixelfed",
"monogram": "Pi",
"color": "#ea580c",
"level": null,
"profiles": ["🟡"]
},
{
"id": "t-bitcoin",
"name": "Bitcoin (self-custody)",
"url": "https://bitcoin.org",
"links": [
{
"label": "bitcoin.org",
"href": "https://bitcoin.org"
}
],
"iconSlug": "bitcoin",
"monogram": "₿",
"color": "#f7931a",
"level": null,
"profiles": ["🟡", "🔴"]
},
{
"id": "t-monero",
"name": "Monero (XMR)",
"url": "https://www.getmonero.org",
"links": [
{
"label": "getmonero.org",
"href": "https://www.getmonero.org"
}
],
"iconSlug": "monero",
"monogram": "ɱ",
"color": "#ff6600",
"level": 3,
"profiles": ["🔴"]
},
{
"id": "t-localai",
"name": "Ollama · LM Studio · Jan · GPT4All",
"url": "https://lmstudio.ai",
"links": [
{
"label": "lmstudio.ai",
"href": "https://lmstudio.ai"
},
{
"label": "jan.ai",
"href": "https://jan.ai"
},
{
"label": "ollama.com",
"href": "https://ollama.com"
}
],
"iconSlug": "ollama",
"monogram": "Ai",
"color": "#111111",
"level": null,
"profiles": ["🟡", "🔴"]
},
{
"id": "t-cloudai",
"name": "Duck.ai · Lumo (Proton)",
"url": "https://duck.ai",
"links": [
{
"label": "duck.ai",
"href": "https://duck.ai"
},
{
"label": "lumo",
"href": "https://lumo.proton.me"
}
],
"iconSlug": "duckduckgo",
"monogram": "☁",
"color": "#de5833",
"level": null,
"profiles": ["🟢", "🟡"]
},
{
"id": "t-maps",
"name": "Organic Maps · OsmAnd",
"url": "https://organicmaps.app",
"links": [
{
"label": "organicmaps.app",
"href": "https://organicmaps.app"
},
{
"label": "osmand.net",
"href": "https://osmand.net"
}
],
"iconSlug": "openstreetmap",
"monogram": "Om",
"color": "#0a7d33",
"level": 1,
"profiles": ["🟢"]
},
{
"id": "t-notes",
"name": "Standard Notes · Joplin · CryptPad",
"url": "https://standardnotes.com",
"links": [
{
"label": "standardnotes.com",
"href": "https://standardnotes.com"
},
{
"label": "joplinapp.org",
"href": "https://joplinapp.org"
},
{
"label": "cryptpad.org",
"href": "https://cryptpad.org"
}
],
"iconSlug": null,
"monogram": "No",
"color": "#2e7d6b",
"level": null,
"profiles": ["🟢", "🟡"]
},
{
"id": "t-visio",
"name": "Jitsi Meet · Element Call",
"url": "https://jitsi.org",
"links": [
{
"label": "jitsi.org",
"href": "https://jitsi.org"
},
{
"label": "element.io/element-call",
"href": "https://element.io/element-call"
}
],
"iconSlug": "jitsi",
"monogram": "Vi",
"color": "#1d6fb8",
"level": null,
"profiles": ["🟢", "🟡"]
},
{
"id": "t-photos",
"name": "Ente · Immich",
"url": "https://ente.io",
"links": [
{
"label": "ente.io",
"href": "https://ente.io"
},
{
"label": "immich.app",
"href": "https://immich.app"
}
],
"iconSlug": "immich",
"monogram": "Ph",
"color": "#7b3fbf",
"level": null,
"profiles": ["🟡", "🔴"]
},
{
"id": "t-alias",
"name": "SimpleLogin · addy.io",
"url": "https://simplelogin.io",
"links": [
{
"label": "simplelogin.io",
"href": "https://simplelogin.io"
},
{
"label": "addy.io",
"href": "https://addy.io"
}
],
"iconSlug": "simplelogin",
"monogram": "@",
"color": "#c0392b",
"level": null,
"profiles": ["🟢", "🟡"]
},
{
"id": "t-backups",
"name": "Encrypted backups",
"url": "https://cryptomator.org",
"links": [
{
"label": "cryptomator.org",
"href": "https://cryptomator.org"
},
{
"label": "restic.net",
"href": "https://restic.net"
}
],
"iconSlug": "cryptomator",
"monogram": "Bk",
"color": "#5a6570",
"level": null,
"profiles": ["🟡", "🔴"]
},
{
"id": "t-databrokers",
"name": "Erase your data (GDPR)",
"url": "https://www.cnil.fr",
"links": [
{
"label": "cnil.fr",
"href": "https://www.cnil.fr"
},
{
"label": "incogni.com",
"href": "https://incogni.com"
}
],
"iconSlug": null,
"monogram": "RG",
"color": "#b8860b",
"level": null,
"profiles": ["🟡"]
},
{
"id": "t-yunohost",
"name": "YunoHost · Umbrel · Start9",
"url": "https://yunohost.org",
"links": [
{
"label": "yunohost.org",
"href": "https://yunohost.org"
},
{
"label": "umbrel.com",
"href": "https://umbrel.com"
},
{
"label": "start9.com",
"href": "https://start9.com"
}
],
"iconSlug": null,
"monogram": "Yh",
"color": "#e29100",
"level": 3,
"profiles": ["🔴"]
},
{
"id": "t-nextcloud",
"name": "Nextcloud",
"url": "https://nextcloud.com",
"links": [
{
"label": "nextcloud.com",
"href": "https://nextcloud.com"
}
],
"iconSlug": "nextcloud",
"monogram": "Nc",
"color": "#0082c9",
"level": 3,
"profiles": ["🔴"]
},
{
"id": "t-synapse",
"name": "Matrix Synapse",
"url": "https://element.io/server",
"links": [
{
"label": "element.io/server",
"href": "https://element.io/server"
}
],
"iconSlug": "matrix",
"monogram": "Mx",
"color": "#0dbd8b",
"level": 3,
"profiles": ["🔴"]
},
{
"id": "t-tailscale",
"name": "Tailscale · Headscale · WireGuard",
"url": "https://tailscale.com",
"links": [
{
"label": "tailscale.com",
"href": "https://tailscale.com"
},
{
"label": "headscale.net",
"href": "https://headscale.net"
}
],
"iconSlug": "tailscale",
"monogram": "Ts",
"color": "#242424",
"level": 3,
"profiles": ["🔴"]
},
{
"id": "t-website",
"name": "Your own website",
"url": "https://astro.build",
"links": [
{
"label": "astro.build",
"href": "https://astro.build"
},
{
"label": "ghost.org",
"href": "https://ghost.org"
}
],
"iconSlug": null,
"monogram": "www",
"color": "#7a4ddb",
"level": null,
"profiles": ["🟡", "🔴"]
},
{
"id": "t-tor",
"name": "Tor Browser",
"url": "https://www.torproject.org",
"links": [
{
"label": "torproject.org",
"href": "https://www.torproject.org"
}
],
"iconSlug": "torbrowser",
"monogram": "Tor",
"color": "#7d4698",
"level": 3,
"profiles": ["🔴"]
},
{
"id": "t-grapheneos",
"name": "GrapheneOS",
"url": "https://grapheneos.org",
"links": [
{
"label": "grapheneos.org",
"href": "https://grapheneos.org"
}
],
"iconSlug": "grapheneos",
"monogram": "Gr",
"color": "#1f8a70",
"level": 3,
"profiles": ["🔴"]
},
{
"id": "t-linux",
"name": "Linux (on desktop)",
"url": "https://distrochooser.de/fr",
"links": [
{
"label": "distrochooser.de/fr",
"href": "https://distrochooser.de/fr"
},
{
"label": "distrosea.com",
"href": "https://distrosea.com"
},
{
"label": "linuxmint.com",
"href": "https://linuxmint.com"
}
],
"iconSlug": "linux",
"monogram": "🐧",
"color": "#2b2b2b",
"level": null,
"profiles": ["🟡", "🔴"]
},
{
"id": "t-tails",
"name": "Tails",
"url": "https://tails.net",
"links": [
{
"label": "tails.net",
"href": "https://tails.net"
}
],
"iconSlug": "tails",
"monogram": "Ta",
"color": "#56347c",
"level": 3,
"profiles": ["🔴"]
},
{
"id": "t-qubes",
"name": "Qubes OS · postmarketOS",
"url": "https://www.qubes-os.org",
"links": [
{
"label": "qubes-os.org",
"href": "https://www.qubes-os.org"
},
{
"label": "postmarketos.org",
"href": "https://postmarketos.org"
}
],
"iconSlug": "qubesos",
"monogram": "Qb",
"color": "#3874d8",
"level": null,
"profiles": ["🔴"]
}
]
+39
View File
@@ -0,0 +1,39 @@
import en from './en.json'
import fr from './fr.json'
import nl from './nl.json'
import { defaultLocale, locales, type Locale } from './locales'
export { locales, defaultLocale, localeNames, localeFlags, type Locale } from './locales'
type Dict = typeof en
// fr/nl are type-checked against the English shape: a missing key is a
// build error, not a silent English fallback.
const dicts: Record<Locale, Dict> = { en, fr, nl }
function lookup(dict: Dict, path: string): unknown {
return path.split('.').reduce<unknown>((node, key) => {
if (node && typeof node === 'object' && key in node) {
return (node as Record<string, unknown>)[key]
}
return undefined
}, dict)
}
/** Returns the UI string for `path` in `locale`, falling back to English. */
export function useT(locale: Locale) {
return (path: string): string => {
const hit = lookup(dicts[locale], path) ?? lookup(dicts[defaultLocale], path)
if (typeof hit !== 'string') {
throw new Error(`Missing i18n key "${path}" (locale: ${locale})`)
}
return hit
}
}
/** Path prefix for a locale: '' for the default locale (served at /). */
export function localePath(locale: Locale): string {
return locale === defaultLocale ? '' : `/${locale}`
}
/** The non-default locales, e.g. for getStaticPaths of the [lang] route. */
export const translatedLocales = locales.filter((l) => l !== defaultLocale)
+50
View File
@@ -0,0 +1,50 @@
{
"fight-chat-control": {
"role": "Citizen-led platform (anonymous collective): MEP contact tool, per-member-state position tracking, 1.0 vs 2.0 comparison. Relaunched for every vote."
},
"stop-scanning-me": {
"role": "Coalition of 60+ organisations: 200,000+ signature petition, open letter grown from 300 to 450 scientists, joint letter of 133 NGOs."
},
"patrick-breyer": {
"role": "The former Pirate MEP who coined \"Chat Control\". The reference chronicle of the file, vote by vote, document by document, since 2020."
},
"edri": {
"role": "The European digital rights network (50+ NGOs). Legal analysis, Brussels advocacy, campaign coordination."
},
"la-quadrature-du-net": {
"role": "Since 2008: CJEU litigation (the 2020 retention ruling), the Technopolice campaign, analysis of French surveillance laws."
},
"noyb": {
"role": "Max Schrems NGO: systematic GDPR litigation that brought down two EU-US transfer deals (Schrems I and II)."
},
"eff": {
"role": "Thirty years of litigation and tools (Jewel v. NSA, Certbot, Privacy Badger, Rayhunter) and the Surveillance Self-Defense guide."
},
"signal-foundation": {
"role": "Pledged to leave the EU rather than install scanning. Meta/WhatsApp (Oct 2025) and Threema (\"all options\") followed with opposition."
},
"eff-nsa-timeline": {
"role": "US surveillance chronology 1791-2015, built on the Jewel v. NSA evidence record: every entry dated and sourced. The receipts model our Precedents section borrows."
},
"atlas-of-surveillance": {
"role": "14,900+ documented police deployments across 6,000+ US jurisdictions (drones, face recognition, IMSI catchers…), compiled by 1,000+ students and volunteers. Geographic rather than chronological."
},
"technopolice": {
"role": "La Quadratures 2019 campaign documenting the \"Safe City\" city by city, company by company: procurement records, participatory forum, leak channel."
},
"ooni": {
"role": "The largest open dataset on internet censorship: millions of measurements since 2012, 200+ countries, CC-licensed data and a public API. Censorship, proven in real time."
},
"digital-violence": {
"role": "The interactive map of the Pegasus/NSO ecosystem: export licenses, infections, and the physical consequences for the people targeted."
},
"surveillance-watch": {
"role": "Interactive map of the spyware industry: who builds, who funds, who buys."
},
"netblocks": {
"role": "Real-time observatory of internet shutdowns and blocking, country by country, incident by incident."
},
"big-brother-awards": {
"role": "Since 2000, the annual \"award\" for the worst privacy offenders (editions in several countries): a chronicle by example, year after year."
}
}
+18
View File
@@ -0,0 +1,18 @@
{
"do-signal": { "body": "**Install Signal** and bring your three most frequent contacts over." },
"do-email": { "body": "**Open a Proton Mail or Tuta**, import, set up forwarding from Gmail." },
"do-pass": { "body": "**Install Bitwarden** with a long master password (a phrase)." },
"do-ublock": { "body": "**Add uBlock Origin** to your browser (ten seconds)." },
"do-browser": { "body": "**Replace Chrome and Google Search** (Firefox/Brave + DuckDuckGo)." },
"do-twofa": {
"body": "**Turn on 2FA** (Aegis / Ente Auth, never SMS) on email + password manager."
},
"do-cloud": { "body": "**Move your files** to an encrypted cloud (Proton Drive / Cryptomator)." },
"do-vpn": { "body": "**Get a VPN** (Mullvad), ideally paid anonymously." },
"do-dns": { "body": "**Encrypt your DNS** (Quad9 / Mullvad DNS) on phone and computer." },
"do-social": { "body": "**Open your Mastodon account** and anchor your presence off-platform." },
"do-linux": { "body": "**Try Linux** (distrosea.com), then install it (Mint to start)." },
"do-graphene": { "body": "**Move the phone to GrapheneOS** (Pixel needed) or harden Android." },
"do-selfhost": { "body": "**Self-host** a first service (YunoHost / Umbrel + Tailscale)." },
"do-opsec": { "body": "**Adopt OPSEC discipline** if you publish pseudonymously." }
}
+68
View File
@@ -0,0 +1,68 @@
{
"signal": { "body": "Replaces WhatsApp. E2EE by default, non-profit foundation." },
"simplex-chat": { "body": "No identifier at all: even servers cant know who talks to whom." },
"session": { "body": "No phone number, onion routing." },
"element-matrix": { "body": "Replaces Discord/Slack. Federated, self-hostable." },
"briar": { "body": "P2P with no internet (Bluetooth/Tor): protests, blackouts." },
"molly": { "body": "Hardened Signal for Android (fully FOSS variant)." },
"thunderbird": { "body": "The reference free mail client, OpenPGP built in." },
"proton-mail": { "body": "Open-source apps of the Swiss encrypted service." },
"tuta": { "body": "Free apps, post-quantum encryption, EU jurisdiction." },
"firefox": { "body": "Replaces Chrome. The independent engine." },
"tor-browser": { "body": "Network anonymity, anti-fingerprinting." },
"mullvad-browser": { "body": "The Tor Projects browser, without the Tor network." },
"brave": { "body": "Chromium that blocks ads and trackers by default." },
"ublock-origin": { "body": "THE ad and tracker blocker." },
"searxng": { "body": "Self-hostable metasearch engine." },
"wireguard": { "body": "The modern VPN protocol everyone builds on." },
"mullvad-vpn": { "body": "Client of the no-account VPN (cash/Monero accepted)." },
"proton-vpn": { "body": "Free clients, honest free tier." },
"tor": { "body": "The network that separates who you are from what you do." },
"tailscale": { "body": "Private WireGuard network between your devices." },
"headscale": { "body": "The Tailscale coordination server, on your hardware." },
"pi-hole": { "body": "Blocks ads and trackers for the whole network." },
"adguard-home": { "body": "Pi-hole alternative with a modern UI." },
"bitwarden": { "body": "Cross-platform password manager." },
"vaultwarden": { "body": "Lightweight self-hosted Bitwarden server." },
"keepassxc": { "body": "100% local vault, zero cloud." },
"aegis": { "body": "2FA codes (TOTP) in a local encrypted vault (Android)." },
"ente-auth": { "body": "2FA with end-to-end encrypted sync." },
"nextcloud": { "body": "Replaces the whole Google suite, at home." },
"cryptomator": { "body": "Encrypts your files BEFORE any cloud." },
"syncthing": { "body": "Device-to-device sync, no server." },
"restic": { "body": "Encrypted, deduplicated, automatic backups." },
"immich": { "body": "Self-hosted Google Photos (faces, search)." },
"ente-photos": { "body": "E2EE photos, on-device recognition." },
"libreoffice": { "body": "The free office suite." },
"onlyoffice": { "body": "Self-hostable collaborative office." },
"joplin": { "body": "Markdown notes, optional encryption and sync." },
"standard-notes": { "body": "Notes encrypted by default." },
"cryptpad": { "body": "Collaborative Google Docs, fully encrypted." },
"organic-maps": { "body": "Offline maps with zero tracking (OpenStreetMap)." },
"osmand": { "body": "Power-user maps (hiking, contour lines)." },
"jitsi-meet": { "body": "Video calls with no account, self-hostable." },
"mastodon": { "body": "Replaces X/Twitter. Federated, no imposed algorithm." },
"pixelfed": { "body": "The fediverses Instagram." },
"peertube": { "body": "Federated YouTube." },
"lemmy": { "body": "Federated Reddit." },
"damus": { "body": "Nostr client: your identity is a key pair." },
"ollama": { "body": "Run LLMs locally, one command." },
"llama-cpp": { "body": "The local inference engine that made it all possible." },
"jan": { "body": "100% local ChatGPT-like, simple UI." },
"gpt4all": { "body": "Privacy-minded local LLMs, CPU-friendly." },
"grapheneos": { "body": "De-Googled, hardened Android (Pixel)." },
"tails": { "body": "Amnesic USB OS, everything through Tor." },
"qubes-os": { "body": "Compartmentalisation via sealed VMs." },
"f-droid": { "body": "The 100% free app store." },
"postmarketos": { "body": "Linux on abandoned phones." },
"yunohost": { "body": "Turnkey personal server (email included)." },
"startos": { "body": "Sovereign server, Tor by default." },
"synapse": { "body": "Your federated chat server." },
"bitcoin-core": { "body": "Money you hold yourself." },
"monero": { "body": "Private transactions by default." },
"securedrop": { "body": "Anonymous document drop for newsrooms." },
"onionshare": { "body": "Share files over Tor, no middleman." },
"rayhunter": { "body": "IMSI-catcher detector." },
"mat2": { "body": "Strips metadata before publishing." },
"exiftool": { "body": "Read and erase EXIF metadata." }
}
+94
View File
@@ -0,0 +1,94 @@
{
"clipper-chip": {
"title": "The Clipper Chip",
"body": "The NSA pushes an encryption chip with a government-held key escrow, \"for law enforcement, under warrant only\". Flaws demonstrated ([Blaze, 1994](https://dl.acm.org/doi/pdf/10.1145/191177.191193)), massive rejection: abandoned by 1996. The first crypto war, same script as today."
},
"echelon": {
"title": "ECHELON confirmed by the European Parliament",
"body": "Six days before 9/11, the European Parliament adopts in plenary (36715939) the report of its temporary committee (approved in committee on 3 July) confirming the existence of a global network intercepting private and commercial communications (US, UK, Canada, Australia, New Zealand)."
},
"nsa-warrantless": {
"title": "23 days after 9/11",
"body": "A secret presidential order starts the NSAs warrantless domestic spying. The crisis creates the program; the program outlives the crisis. The Patriot Act follows on 26 October, also \"temporary\": its sunset clauses get renewed for 14 years."
},
"room-641a": {
"title": "Room 641A",
"body": "AT&T technician Mark Klein hands EFF the documents describing the NSAs secret room in the San Francisco switching hub: interception at the infrastructure level, on all traffic, not on suspects."
},
"retention-directive": {
"title": "EU Data Retention Directive",
"body": "The EU mandates retention of the whole populations telecom metadata (624 months), \"against serious crime\". No one is a suspect, everyone is on file. Chat Controls exact blueprint, twenty years earlier."
},
"snowden": {
"title": "Snowden: \"collect it all\"",
"body": "The Guardian publishes the secret FISA order forcing Verizon to hand over all customers metadata, then PRISM. In March, intelligence director Clapper had sworn to Congress it wasnt happening; days after the leak he calls that the [\"least untruthful\" answer](https://www.washingtonpost.com/blogs/fact-checker/post/james-clappers-least-untruthful-statement-to-the-senate/2013/06/11/e50677a8-d2d8-11e2-a73e-826d299ff459_blog.html) he could give."
},
"digital-rights-ireland": {
"title": "The CJEU strikes down blanket retention",
"body": "Digital Rights Ireland (joined cases C-293/12 and C-594/12): the 2006 directive is annulled outright: indiscriminate surveillance of the whole population violates the Charter of Fundamental Rights. A tiny volunteer NGO brought down an EU directive."
},
"snoopers-charter": {
"title": "The UK \"Snoopers Charter\"",
"body": "The Investigatory Powers Act legalises bulk collection and state hacking, and forces ISPs to keep everyones browsing history. Three weeks later the CJEU (Tele2/Watson) repeats that blanket retention is unlawful; London keeps it anyway."
},
"australia-aaa": {
"title": "Australia vs mathematics",
"body": "The Assistance and Access Act lets the state secretly order a company to re-engineer its products (\"technical capability notices\"). Critics warn this weakens encryption in all but name, even though the Act nominally bans \"systemic weaknesses\". The PM had set the tone: \"the laws of Australia prevail over the laws of mathematics\"."
},
"crypto-ag": {
"title": "Crypto AG: the safe-maker kept the keys",
"body": "The Washington Post reveals (backed by the CIAs own internal history) that the CIA and BND secretly owned Crypto AG, the Swiss encryption vendor of 120 governments, since 1970. In the 1980s, 40% of the diplomatic cables NSA decoded came through it. Moral: a \"trusted\" backdoor is a backdoor."
},
"lqdn-cjeu": {
"title": "La Quadrature du Net at the CJEU",
"body": "The Court upholds the ban on blanket retention against France and Belgium (joined cases C-511/18, C-512/18 and C-520/18), and against the UK the same day in Privacy International (C-623/17), while carving out \"national security\" windows. Twin lesson: lawsuits work, and every exception becomes the next rule. The Commission has never opened an infringement case against states that retain anyway."
},
"chatcontrol-1": {
"title": "Chat Control 1.0, \"temporary\"",
"body": "Regulation 2021/1232 allows \"voluntary\" scanning of private messages, derogating from ePrivacy. Sunset on 3 August 2024, promised. Regulation 2024/1307 extends it to 3 April 2026, where it expires… then rises from the dead (see below)."
},
"pegasus-project": {
"title": "The Pegasus Project",
"body": "80+ journalists across 17 newsrooms in 10 countries document the spying on journalists, lawyers, dissidents and heads of state via NSOs spyware. Amnestys forensics (peer-reviewed by Citizen Lab) prove zero-click infections of fully patched iPhones: when the device is targeted, encryption is not enough. Exactly the client-side scanning logic."
},
"apple-csam": {
"title": "Apple announces on-device scanning… then walks it back",
"body": "Apple unveils on-device CSAM photo scanning for the iPhone. Researchers and NGOs revolt: it is the infrastructure of generalisable surveillance. December 2022: Apple abandons it, and will later invoke, in an [August 2023 letter](https://appleinsider.com/articles/23/08/31/apple-provides-detailed-reasoning-behind-abandoning-iphone-csam-detection), a \"slippery slope of unintended consequences\". The very mechanism Chat Control 2.0 wants to mandate."
},
"chatcontrol-2": {
"title": "Chat Control 2.0: mandatory scanning",
"body": "The Commission proposes the CSAR regulation (COM/2022/209): \"detection orders\" that can force scanning on every platform, including end-to-end encrypted ones. 2021s voluntary becomes 2022s mandatory: scope creep in the literal sense."
},
"osa-spy-clause": {
"title": "Online Safety Act: the \"spy clause\"",
"body": "The UK grants itself the power to order messengers to scan encrypted content (section 121). \"Where technically feasible\" is not in the Act: it was the ministers concession, [Lord Parkinsons statement to the Lords](https://techcrunch.com/2023/09/06/osb-encryption-scanning-feasibility/) (6 September 2023), after Signal and WhatsApp threatened to leave. The government admits it is not feasible, but keeps the power on the books."
},
"first-extension": {
"title": "The \"temporary\" gets its first extension",
"body": "Regulation 2024/1307 pushes Chat Control 1.0s sunset from 3 August 2024 to 3 April 2026. An emergency measure that renews itself is no longer an exception: it is a regime."
},
"uk-age-checks": {
"title": "UK: show ID to use the internet",
"body": "The Online Safety Act switches on \"highly effective\" age verification (ID, credit card, face estimation) for large parts of the web. Proton measures hourly VPN signups jumping [over 1,400%](https://www.techradar.com/vpn/vpn-privacy-security/vpn-demand-skyrockets-in-the-uk-as-age-verification-checks-are-enforced); the Lords are already debating limits on VPNs."
},
"council-sunset-delete": {
"title": "The Council moves to delete the sunset clause",
"body": "The Councils trilogue position (doc. 15318/25): simply delete the sunset clause of \"voluntary\" scanning, making it permanent. The Danish presidency draft contemplated mandatory client-side scanning. In February 2026 the EDPS answers the Commissions December proposal to extend the derogation to 2028 (COM(2025) 797): substantial degradation of confidentiality, indiscriminate analysis disproportionate."
},
"ep-says-no": {
"title": "Parliament says no",
"body": "The European Parliament rejects extending voluntary scanning to 2028 (228 for, 311 against, 92 abstentions). Consequence: the legal basis expires on 3 April 2026. Citizen pressure and NGO work held the line. For three months."
},
"scanning-continues": {
"title": "The law lapses, the scanning continues",
"body": "With the derogation lapsed, the giants that signed the 19 March joint appeal to entrench the regime (Google, Meta, Microsoft, Snap, TikTok) announce they will keep scanning messages, legal basis or not. The admission that \"compliance\" was scenery."
},
"council-resurrects": {
"title": "The Council resurrects the lapsed text",
"body": "Three months after the lapse, the Council adopts its position to reinstate voluntary scanning until 3 April 2028, sent to Parliament at second reading: the procedure where rejection needs an absolute majority (361 of 720), not a majority of votes cast."
},
"ep-e2ee-carveout": {
"title": "Rejection fails, but E2EE is carved out",
"body": "Urgent procedure passed on 7 July (331/304/11), vote on the 9th: 314 MEPs vote to reject the Councils position: a simple majority, short of the 361 required. But Parliament then adopts the amendments excluding end-to-end encrypted communications from the scanning regime (369 and 362 votes), and a last attempt to reject the amended position fails too (276/286/30). The amended text returns to the Council, which has about three months (until around 9 October 2026) to accept the amendments (voluntary scanning of non-E2EE services until 3 April 2028) or open conciliation. As of 10 July 2026, nothing is in force: the derogation that expired on 3 April was never revived ([full roll calls](https://howtheyvote.eu/votes/195775))."
}
}
+142
View File
@@ -0,0 +1,142 @@
{
"prum-2": {
"title": "Prüm II: face search across every police force in Europe",
"body": "Regulation 2024/982 adds facial images, including of suspects never convicted, to the automated exchange of police data between member states, through a central router. A pan-European biometric identification capability, adopted with no real national debate; EDRi calls it a risk of \"state over-reach and mass surveillance\"."
},
"eidas-wallet": {
"title": "eIDAS 2.0: the identity wallet lands, browsers under state trust",
"body": "Every member state must provide a European digital identity wallet (EUDI Wallet) by 24 December 2026; banks, telecoms, health services and very large platforms will have to accept it. The same wallet will prove your age, open the account, sign the payment: one gateway, hence one control point; the EDPS documents cross-use tracking risks. And Article 45 forces browsers to recognise state-designated web certificates: over 500 researchers warned ([last-chance-for-eidas.org](https://last-chance-for-eidas.org/)) this is the infrastructure of encrypted-traffic interception."
},
"going-dark": {
"title": "The \"Going Dark\" plan: police access by design",
"body": "The High-Level Group on \"access to data\", staffed almost entirely by law-enforcement representatives, adopts 42 recommendations on 21 May 2024: \"lawful access by design\" (police access built into products from the drawing board), harmonised metadata retention, a duty to identify every user, messengers included. In December 2024, 55 civil-society organisations, companies and associations sign an open letter calling the outcome a [\"mission failure\"](https://edri.org/our-work/high-level-group-going-dark-outcome-a-mission-failure/): a blueprint for mass surveillance. It is the matrix of everything that follows."
},
"roumanie-tiktok": {
"title": "Romania: election annulled, the DSA arbitrates the visible",
"body": "On 6 December, Romanias Constitutional Court annuls the first round of the presidential election, citing an undeclared coordinated campaign on TikTok; on 17 December the Commission opens formal DSA proceedings against the platform (recommender systems, political advertising), still ongoing in 2026. Whatever the outcome, the precedent stands: \"who decides what is visible during an election\" is now settled between platforms, the Commission and constitutional courts."
},
"vietnam-decret-147": {
"title": "Vietnam: verified identity or silence",
"body": "Decree 147 forces platforms to verify every users identity (phone or ID number), store the data and hand it to the authorities; only verified accounts may post, comment or stream. The equation is stated plainly: no verified identity, no public speech."
},
"uk-apple-adp": {
"title": "London demands a backdoor, Apple pulls its encryption",
"body": "By secret order (a Technical Capability Notice under the Investigatory Powers Act), the Home Office demands access to encrypted iCloud data, with worldwide scope confirmed by case filings. Apple responds by withdrawing Advanced Data Protection (end-to-end encrypted iCloud) from all UK users rather than build the key. Under US pressure London \"withdraws\" the demand in the summer… then issues a fresh order in early September 2025, revealed on 1 October, rescoped to British users data. In mid-2026, UK users still live without E2EE on their backups."
},
"fr-narcotrafic-8ter": {
"title": "France: the Narcotrafic backdoor falls",
"body": "Article 8 ter of the Narcotrafic law would have forced encrypted messengers to give intelligence services access to correspondence: the \"ghost participant\" mechanism. Deleted in committee, its reinstatement is [rejected 119 votes to 24](https://lcp.fr/actualites/narcotrafic-l-assemblee-refuse-l-acces-aux-messageries-chiffrees-contre-l-avis-de-bruno) by a cross-party coalition on the night of 20 March 2025, against the interior ministers wishes. A national parliament can say no; the government has not given up: the access demand returns in cycles, here and then in Brussels."
},
"protecteu": {
"title": "\"ProtectEU\": breaking encryption becomes official policy",
"body": "The Commissions internal security strategy (COM(2025) 148) announces a roadmap for \"lawful and effective access to data\" and a \"Technology Roadmap\" on encryption, plus a beefed-up Europol. Scattered police demands become a multi-year political programme of the Union: access to encrypted communications, in writing."
},
"ice-palantir": {
"title": "ICE buys \"ImmigrationOS\" from Palantir",
"body": "30 million dollars for a platform that cross-references federal databases and provides \"near real-time visibility\" on people slated for removal. Targeted surveillance of an entire population becomes an off-the-shelf software product, operated by a private company."
},
"ch-vupf": {
"title": "Even Switzerland: the ordinance that would drive Proton out",
"body": "The revised surveillance ordinance (VÜPF) would extend user-identification and retention duties (6-month IP logs) to any service above 5,000 users. Protons CEO vows to leave the country if it passes (\"we would be less confidential than Google\") and freezes Swiss investment; Threema protests too. By early 2026 the project is stalled: near-unanimous opposition in consultation, parliament demands a rewrite. The historic haven of confidentiality tried, by mere ordinance, what the EU debates in Chat Control."
},
"us-visa-vetting": {
"title": "US visas: your social media set to public, or nothing",
"body": "The State Department requires student-visa applicants to set their social profiles to public (cable of 18 June 2025), screening for any \"hostility\" toward the United States; the DS-160 form had already required five years of handles since 2019. Extended to H-1B on 15 December, then to 14+ visa categories in March 2026. Entry conditioned on ideological inspection of online speech: a worldwide incentive to self-censor."
},
"roadmap-lawful-access": {
"title": "The roadmap: state decryption scheduled through 2030",
"body": "The Commission publishes its \"lawful access to data\" schedule (COM(2025) 349): new retention rules, cross-border interception by 2027, AI analysis of seized data by 2028, and a \"next-generation decryption capability\" for Europol from 2030. The EU is planning, over five years, the legal and technical bricks to read what is unreadable today. The EFF sums it up: \"this roadmap makes everyone less safe\"."
},
"age-blueprint": {
"title": "Age verification: the pilot app in five countries",
"body": "The Commission publishes its DSA \"Article 28\" guidelines and an age-verification blueprint (a \"mini-wallet\"), piloted with Denmark, France, Greece, Italy and Spain, designed to converge into the EUDI Wallet by late 2026. Even \"privacy-preserving\", the logic installs an identity check at the entrance of the internet: proving a civil-status attribute to view legal content becomes a normal gesture."
},
"fr-pornhub": {
"title": "France: the Conseil d’État reinstates the age check",
"body": "Under the SREN law and the Arcom framework (\"double anonymity\"), adult sites must verify visitors age. Aylo (Pornhub) cuts access to France in protest; the administrative court suspends the decree in June, the Conseil d’État overturns that suspension on 15 July: the obligation stands, the sites re-block. The first full-scale deployment of the \"ID card to enter the internet\", with blocking as the compliance lever."
},
"cn-cyber-id": {
"title": "China: the national internet ID, centralised with the police",
"body": "Launch of the \"cyberspace ID\": a single identifier issued jointly by the Ministry of Public Security and the Cyberspace Administration of China, backed by face recognition and the national ID card, used to log into online services, effective 15 July 2025. Officially voluntary, on top of real-name registration already mandatory everywhere. When online identification is centralised by the state, anonymity disappears by design and internet access becomes a revocable privilege. It is the finished model of what Western age checks and wallets sketch."
},
"emfa-article-4": {
"title": "EMFA: journalist protection, holed by its exceptions",
"body": "The European Media Freedom Act becomes fully applicable. Its Article 4 bans spyware against journalists in principle… then allows it by exception for a list of serious crimes; during negotiations the Council, France in the lead, pushed a blanket \"national security\" carve-out, denounced by RSF. The first European text meant to shield journalists from state spying codifies, in the negative space, the conditions under which that spying stays legal."
},
"ru-max": {
"title": "Russia: the state messenger pre-installed by decree",
"body": "Every smartphone sold in Russia must ship with MAX, the messenger built by VK and designated the \"national app\"; civil servants and teachers are ordered onto it. Independent analyses describe extensive tracking and integration with the FSBs interception system. The end point of the anti-encryption logic: a messenger readable by the services, imposed through the hardware distribution channel itself."
},
"ru-recherche-punie": {
"title": "Russia: searching becomes an offence",
"body": "\"Deliberately\" searching online for content classified as \"extremist\" (a list of 5,000+ entries, opposition included) becomes finable (including through a VPN), and advertising circumvention tools is banned. A historic threshold: the state no longer punishes what you say, but what you try to find out. The logical end point of inspecting individual usage."
},
"scientifiques-csar": {
"title": "500 scientists: \"technically infeasible\"",
"body": "More than 500 cryptographers and researchers from 34 countries (some 800 from 37 countries by October) sign against the Danish CSAR draft: reliable detection is impossible at this scale, circumvention is trivial for criminals, and any client-side scanning \"inherently undermines\" end-to-end encryption. Germanys federal criminal police (BKA) data make the point separately: of 205,728 NCMEC reports received in 2024, 99,375 (48.3%) were \"not criminally relevant\". The scientific consensus is unambiguous. And the project continues."
},
"uk-britcard": {
"title": "\"BritCard\": a digital ID to be allowed to work",
"body": "The Starmer government announces a digital identity (\"BritCard\" is its informal nickname, not an official name) that will become mandatory for right-to-work checks by the end of the parliament, in the name of fighting illegal immigration. A petition passes one million signatures in about two days (2.9 million+ since); the government holds course (a bill features in the May 2026 Kings Speech). Conditioning the right to work on a state identifier installs a central checkpoint on everyones economic life."
},
"berlin-bloque": {
"title": "Berlin brings down mandatory scanning",
"body": "Signal president Meredith Whittaker states publicly that the messenger would leave the European market rather than undermine its encryption; the CDU/CSU group compares suspicionless scanning to steaming open everyones mail. The item is pulled from the agenda of the 14 October JHA Council: the blocking minority holds. The balance of power can flip, but the project never dies: reworked as \"voluntary\", it returns six weeks later."
},
"ees-biometrie": {
"title": "EES: face and fingers become the passport",
"body": "The Entry/Exit System goes live: fingerprints and a facial image of every non-EU traveller are collected into a centralised database, replacing the passport stamp (full rollout 10 April 2026); ETIAS, a paid authorisation built on those databases, is next. The EU shifts to a border-as-database: the body becomes the default travel identifier, stored in systems designed to interconnect."
},
"onu-cybercrime": {
"title": "UN Cybercrime Convention: surveillance exported by treaty",
"body": "Negotiated at Russias initiative and adopted in late 2024, the convention gathers 72 signatories in Hanoi: 71 states plus the EU. EFF and Human Rights Watch warn: broad definitions, mandatory mutual assistance to collect electronic evidence (real-time interception included) for \"serious crimes\" as defined by the requesting countrys law, with optional safeguards. A legalised worldwide channel through which the most repressive regimes standards can travel."
},
"euro-numerique-pilote": {
"title": "Digital euro: the architecture is built before the safeguards",
"body": "The ECB closes its \"preparation phase\" and starts the next one: a pilot exercise in mid-2027, possible first issuance in 2029, while the regulation is not yet passed. The Eurogroup agreed in September on governance and the process for setting holding caps. A central-bank digital currency is an infrastructure where every transaction is natively recordable; it is being built while its legal limits are still unwritten."
},
"au-ban-16": {
"title": "Australia: 4.7 million accounts switched off in a month",
"body": "A world first: from 10 December 2025, under-16s are banned from the ten platforms designated by the eSafety regulator, which must estimate age (behavioural inference, face-scan selfies, ID documents) under penalty of A$49.5M fines. In mid-January 2026 the prime minister announces 4.7 million accounts deactivated, removed or restricted. To exclude minors you must estimate everyones age: biometrics becomes the toll booth of the social web, and governments worldwide are watching the laboratory."
},
"fr-vsa-prolongee": {
"title": "Algorithmic CCTV: the Olympics \"experiment\" heads for year seven",
"body": "Authorised \"experimentally\" by the 2023 Olympics law (expiry March 2025), algorithmic video surveillance is extended to the end of 2027, cleared by the Constitutional Council. By May 2026 the Senate is already voting the sequel (the \"Ripost\" law): extension to the end of 2030 and expansion to every publicly accessible space. The classic ratchet: the exception rolls over, the scope widens, the evaluation can wait."
},
"pl-ziobro-asile": {
"title": "Pegasus in Poland: the accused finds asylum… inside the EU",
"body": "Former justice minister Zbigniew Ziobro, facing 26 charges (including funding Pegasus from a victims aid fund and using it against opponents), says he has been granted political asylum in Hungary after his immunity was lifted; in May 2026 he flees on to the United States. The judicial reckoning for state political spying reaches an unprecedented dead end: an EU member state shelters the alleged culprit, and accountability stops at the internal border."
},
"ru-whatsapp-bloque": {
"title": "Russia: WhatsApp cut off for 100 million users",
"body": "The full sequence took six months: August 2025, WhatsApp and Telegram calls are throttled (the platforms \"refuse to share data with the authorities\"); December, the slowdown widens; February 2026, WhatsApp is fully blocked, confirmed by the Kremlin. The lesson is plain: demand the data, strangle the service that refuses, then cut it off. Refusing to break encryption is punished by exclusion from the country."
},
"gr-intellexa": {
"title": "Predator in Greece: the vendors convicted, the buyers untraceable",
"body": "An Athens court convicts four executives tied to Intellexa (founder Tal Dilian, plus Hamou, Bitzios and Lavranos) for illegal access to private communications in the Predator scandal (~87 targets: journalists, ministers, military officers; a count reported by The Record and ICIJ). The EUs first criminal conviction of spyware merchants. But no political official is convicted: whoever ordered the wiretaps remains officially untraceable."
},
"fr-boites-noires-urls": {
"title": "Black boxes: intelligence wants the full URLs",
"body": "MPs widen the \"black boxes\" (the algorithmic metadata analysis created in 2015 against terrorism, made permanent since) to organised crime and, for the first time, to the full URLs of pages visited. The Constitutional Council struck down a similar scheme in 2025; the government tries again, adjusted. A full URL reveals what you read, not just who you talk to: a qualitative leap toward automated inspection of reading habits, under administrative (not judicial) authorisation."
},
"palantir-europe": {
"title": "Palantir in Europe: the vendor changes, the question doesnt",
"body": "In mid-May 2026, Germanys domestic intelligence service (BfV) drops Palantir for Frances ChapsVision. Frances DGSI (which had renewed its Palantir contract in November 2025, through 2028) takes the same path later: on 16 June 2026 Sébastien Lecornu announces a migration to ChapsVision in the course of 2027. Meanwhile police in Bavaria and Hesse keep using Gotham (North Rhine-Westphalia until October 2026), challenged before the Constitutional Court. The public debate has slid from \"should police files be fused by AI\" to \"which vendor should do it\": sovereignty has replaced proportionality, and mass analysis itself is no longer questioned."
},
"us-fisa-702": {
"title": "FISA 702 lapses, collection carries on anyway",
"body": "Section 702, the warrantless collection of communications transiting US providers, was due to expire in April 2026. Two short extensions later, the authority lapses mid-June with Congress deadlocked over requiring a warrant for FBI searches of Americans. But existing certifications remain valid until March 2027: the machine runs another year on no renewed basis. A \"temporary\" surveillance power never quite switches off."
},
"euro-numerique-econ": {
"title": "Digital euro: \"not programmable\", yet conditional",
"body": "Parliaments ECON committee adopts its position (43 votes to 14, one abstention): course set for a launch by 2029. The ECBs own FAQ swears the digital euro \"will not be programmable money\", while presenting \"conditional payments\" as optional services; under the MEPs position, the holding cap would be set later by the Commission on the ECBs recommendation, reviewed every two years. The gap between the promise and the platform rests on a political decision, not a technical impossibility: the conditionality and traceability infrastructure will exist from day one."
},
"europol-reforme": {
"title": "Europol: budget raised to €3 billion, a mandate on encryption",
"body": "The Commission proposes Europols biggest overhaul in 25 years: budget up from €1.9bn to €3bn, 900 extra staff, a mandate extended to encrypted communications, crypto-assets and AI-assisted fraud; a \"technology and innovation hub\" whose encryption work follows the ProtectEU roadmap (which schedules a Europol decryption capability by 2030); an automated \"European police data space\". ProtectEUs armed wing: a supranational agency one MEP already warns \"must not lead to mass surveillance\"."
},
"pega-kouloglou": {
"title": "Pegasus in Parliament: the watchdog was being watched",
"body": "Citizen Lab reveals that MEP Stelios Kouloglou, a substitute member of the PEGA committee, the very body that investigated Pegasus and spyware abuse in Europe, was hacked with Pegasus while serving on it (infections dated 21 October 2022 and 67 March 2023), with possible access to confidential deliberations. Citizen Lab explicitly declines to attribute the attack; a coalition of NGOs demands an EU response. Spying on the body tasked with overseeing spyware is the ultimate inversion of democratic oversight, and nobody is named responsible."
}
}
+50
View File
@@ -0,0 +1,50 @@
{
"fight-chat-control": {
"role": "Plateforme citoyenne (collectif anonyme) : outil de contact des eurodéputés, suivi des positions par État membre, comparatif 1.0 vs 2.0. Relancée pour chaque vote."
},
"stop-scanning-me": {
"role": "Coalition de 60+ organisations : pétition à 200 000+ signatures, lettre ouverte passée de 300 à 450 scientifiques, lettre commune de 133 ONG."
},
"patrick-breyer": {
"role": "Lex-eurodéputé Pirate qui a nommé « Chat Control ». La chronique de référence du dossier, vote par vote, document par document, depuis 2020."
},
"edri": {
"role": "Le réseau européen des droits numériques (50+ ONG). Analyses juridiques, plaidoyer à Bruxelles, coordination des campagnes."
},
"la-quadrature-du-net": {
"role": "Depuis 2008 : recours devant la CJUE (arrêt de 2020 sur la rétention), campagne Technopolice, analyses des lois françaises de surveillance."
},
"noyb": {
"role": "LONG de Max Schrems : le contentieux RGPD systématique qui a fait tomber deux accords de transfert UE-US (Schrems I et II)."
},
"eff": {
"role": "Trente ans de contentieux et doutils (Jewel v. NSA, Certbot, Privacy Badger, Rayhunter) et le guide Surveillance Self-Defense."
},
"signal-foundation": {
"role": "A promis de quitter lUE plutôt que dinstaller un scan. Meta/WhatsApp (oct. 2025) et Threema (« toutes les options ») ont suivi sur lopposition."
},
"eff-nsa-timeline": {
"role": "Chronologie 1791-2015 de la surveillance américaine, bâtie sur les preuves du procès Jewel v. NSA : chaque entrée datée et sourcée. Le modèle « receipts » dont sinspire notre section Précédents."
},
"atlas-of-surveillance": {
"role": "14 900+ déploiements policiers documentés dans 6 000+ juridictions US (drones, reconnaissance faciale, IMSI-catchers…), compilés par 1 000+ étudiants et bénévoles. Cartographique plutôt que chronologique."
},
"technopolice": {
"role": "Campagne de La Quadrature (2019) qui documente la « Safe City » ville par ville, entreprise par entreprise : marchés publics, forum participatif, canal de fuites."
},
"ooni": {
"role": "Le plus grand jeu de données ouvert sur la censure dInternet : des millions de mesures depuis 2012, 200+ pays, données CC et API publique. La censure, prouvée en temps réel."
},
"digital-violence": {
"role": "La cartographie interactive de l’écosystème Pegasus/NSO : licences dexport, infections, et les conséquences physiques pour les personnes visées."
},
"surveillance-watch": {
"role": "Cartographie interactive de lindustrie du logiciel espion : qui fabrique, qui finance, qui achète."
},
"netblocks": {
"role": "Observatoire en temps réel des coupures dInternet et des blocages, pays par pays, incident par incident."
},
"big-brother-awards": {
"role": "Depuis 2000, le « prix » annuel des pires atteintes à la vie privée (éditions dans plusieurs pays) : une chronique par lexemple, année après année."
}
}

Some files were not shown because too many files have changed in this diff Show More