Merge pull request 'master' (#2) from acetone/docs.selfprivacy.org:master into master
continuous-integration/drone/push Build is failing Details

Reviewed-on: #2
master
Illia Chub 2022-01-19 09:06:55 +02:00
commit 9dca256676
11 changed files with 210 additions and 230 deletions

View File

@ -1,31 +1,31 @@
# 🧬 Архитектура проекта # 🧬 Архитектура проекта
Да, можно было бы использовать кубернетес. Но зачем, если иммутабельность обеспечивается NixOS? Да, можно было бы использовать кубернетес. Но зачем, если иммутабельность обеспечивается NixOS?
**Стек**: [NixOS](https://nixos.org/), python, flutter **Стек**: [NixOS](https://nixos.org/) и python (бэкенд), flutter (пользовательское приложение).
## Мобильное приложение ## Мобильное приложение
Flutter/Dart выбрали из-за скорости и плавности работы UI и кроссплатформенности. Flutter/Dart выбрали из-за скорости и плавности работы UI, а также их кроссплатформенность очень соблазнительна.
## Бэкэнд ## Бэкэнд
NixOS + Python. NixOS выбран из-за воспроизводимости, python из-за универсальности и популярности. NixOS + Python. NixOS выбран из-за воспроизводимости, python из-за универсальности и популярности.
## Сервис-провайдеры ## Сервис-провайдеры
Нам не платит ни один сервис-провайдер! Мы никак с ними не аффилированы. Выбирали исключительно из профессиональных соображений. Но не исключаем в будущем партнерства. Нам не платит ни один сервис-провайдер! Мы никак с ними не аффилированы. Выбирали исключительно из профессиональных соображений. Но не исключаем партнерство в будущем.
### Хостинг ### Хостинг
[Hetzer](https://www.hetzner.com/) выбрали из-за низкой цены и приемлемый уровень сервиса, качественного REST API. Не был замечен в проблемах с приватностью и сбором данных. [Hetzer](https://www.hetzner.com/) выбрали из-за низкой цены и приемлемый уровень сервиса, качественного REST API. Не был замечен в проблемах с приватностью и сбором данных.
Кандидаты: Кандидаты:
- Свой личный железный сервер. Сейчас наш основной приоритет. - Свой личный железный сервер. Сейчас наш основной приоритет;
- Сервис-провайдер, который предоставит API для разворачивания железного сервера. Вне [FVEY](https://en.wikipedia.org/wiki/Five_Eyes) - Сервис-провайдер, который предоставит API для разворачивания железного сервера. Вне [FVEY](https://en.wikipedia.org/wiki/Five_Eyes);
- OVH - OVH;
- Scaleway - Scaleway;
- DigitalOcean - DigitalOcean.
Еще есть бесплатный [Oracle Cloud](https://docs.oracle.com/en-us/iaas/Content/FreeTier/freetier_topic-Always_Free_Resources.htm), но там где ВЫ не платите, обычно ВЫ — товар. Еще есть бесплатный [Oracle Cloud](https://docs.oracle.com/en-us/iaas/Content/FreeTier/freetier_topic-Always_Free_Resources.htm), но там где Вы не платите, обычно Вы — товар.
### DNS ### DNS
[Cloudlare](https://cloudflare.com) надежность, бесплатность. Вероятно, собирает данные, иначе сложно объяснить зачем бесплатно проксировать чужой трафик. В нашем случае используем только как DNS-сервер и ничего не проксируем. В будущем заменим на self-hosted DNS, как только решим проблему надежности. [Cloudlare](https://cloudflare.com) надежность, бесплатность. Вероятно, собирает данные, иначе сложно объяснить зачем бесплатно проксировать чужой трафик. В нашем случае используем только как DNS-сервер и ничего не проксируем. В будущем заменим на self-hosted DNS, как только решим проблему надежности.
### Хранилище резервных копий ### Хранилище резервных копий
[Backblaze](https://www.backblaze.com/) бесплатно или в разы дешевле AWS. Не замечен в сборе данных. [Публикует](https://www.backblaze.com/blog/open-source-data-storage-server/) в open source наработки железа на котором работает. А также [делится](https://www.backblaze.com/b2/hard-drive-test-data.html) очень полезной статистикой по отказам дисков, на основе которых можно выбрать себе наиболее надежный и проверенный. В будущем, возможно, заменим на self-hosted решение или p2p. Сейчас это не основной приоритет, т.к. данные шифруются, а сервис-провайдер видит только ip вашего сервера, но не домашний. [Backblaze](https://www.backblaze.com/) бесплатно и в разы дешевле AWS. Не замечен в сборе данных. [Публикует](https://www.backblaze.com/blog/open-source-data-storage-server/) в open source наработки железа, на котором работает. Также, [делится](https://www.backblaze.com/b2/hard-drive-test-data.html) очень полезной статистикой по отказам дисков, на основе которых можно выбрать себе наиболее надежный и проверенный. В будущем, возможно, заменим на self-hosted решение или p2p. Сейчас это не основной приоритет, так как данные шифруются, а сервис-провайдер видит только IP-адрес Вашего сервера (а не домашний).

View File

@ -9,9 +9,9 @@
> С 2019 вкладываю заметную часть семейного бюджета и времени в проект. Потому что уверен в необходимости SelfPrivacy. Кирилл Жольнай (founder). > С 2019 вкладываю заметную часть семейного бюджета и времени в проект. Потому что уверен в необходимости SelfPrivacy. Кирилл Жольнай (founder).
## Криптокошелек Monero ## **Monero** для анонимных пожертвований
`83sxCzpY9Be2a7CCkrML6JamwLoQ6C7h6h9E282LqNJjZC7Gx2aVcNR9Kz8Mqrix8s7zXyUpWgtVYQByraqqopx38Y4xDGQ` `83sxCzpY9Be2a7CCkrML6JamwLoQ6C7h6h9E282LqNJjZC7Gx2aVcNR9Kz8Mqrix8s7zXyUpWgtVYQByraqqopx38Y4xDGQ`
## Для обычных денег Librepay ## **Liberapay** для привычных рублей и долларов
https://liberapay.com/SelfPrivacy.org/ https://liberapay.com/SelfPrivacy.org/

View File

@ -1,11 +1,11 @@
# 🤩 Возможности # 🤩 Возможности
Главное — **контроль собственной цифровой жизни**. Ваши коммуникации, данные, метаинформация принадлежат **только вам**! Главное — **контроль собственной цифровой жизни**. Ваши коммуникации, данные и метаинформация принадлежат **только Вам**!
Для этого мы реализовали: Для этого мы реализовали:
* Разворачивание IT-инфраструктуры без специальных знаний с мобильного телефона * Разворачивание IT-инфраструктуры без специальных знаний с мобильного телефона;
* Массу необходимых и просто полезных [сервисов](services.md). * Массу необходимых и просто полезных [сервисов](services.md);
* Автоматическое резервное копирование * Автоматическое резервное копирование;
* Автоматическое обновление * Автоматическое обновление;
* Включение и выключение сервисов * Включение и выключение сервисов;
* SSH-доступ для опытных пользователей * SSH-доступ для опытных пользователей;
* 🗓️ Автоматическое добавление ресурсов на сервер: диск, память, процессор * Автоматическое добавление ресурсов на сервер: диск, память, процессор.

View File

@ -1,13 +1,13 @@
# 👋 Введение # 👋 Введение
[SelfPrivacy](https://selfprivacy.org) — мобильное [приложение](https://f-droid.org/en/packages/pro.kherel.selfprivacy/) разворачивает сервер с готовыми к использованию сервисами: [SelfPrivacy](https://selfprivacy.org) — мобильное [приложение](https://f-droid.org/en/packages/pro.kherel.selfprivacy/) разворачивает сервер с готовыми к использованию сервисами:
- Электронная почта - Электронная почта;
- Парольный менеджер - Менеджер паролей;
- Мессенджер - Мессенджер;
- VPN - VPN;
- Файловое хранилище - Файловое хранилище;
- Конференции - Конференции...
- ... и многие другие [сервисы](services.md) - ... и многие другие [сервисы](services.md)
## ⚠️ Beta ## ⚠️ Beta
Текущий релиз пока не готов к повседневному использованию неквалифицированным пользователем. Текущий релиз не готов к повседневному использованию неквалифицированным пользователем. Работа продолжается, никто не намерен отступать!

View File

@ -1,14 +1,14 @@
# 🔋Мотивация # 🔋Мотивация
Каждый пользователь интернета вынужден пользоваться централизованными сервисами жертвуя приватностью и личными свободами: Многие из нас вынуждены пользоваться централизованными сервисами корпораций, жертвуя приватностью и личными свободами. Практически каждый пользователь интернета
- Соглашается с непонятными лицензиями - Соглашается с непонятными лицензиями;
- Терпит рекламу - Терпит рекламу;
- Отдает свои данные неизвестно кому - Отдает свои данные неизвестно кому;
- Оказывается в "[рекомендательном пузыре](https://ru.wikipedia.org/wiki/Пузырь_фильтров)" - Оказывается в "[рекомендательном пузыре](https://ru.wikipedia.org/wiki/Пузырь_фильтров)";
- Подвергается цензуре, блокировкам - Подвергается цензуре и блокировкам.
Мы так не хотим. Хотим цифровой независимости и [неприкосновенности](privacy.md) наших данных. Мы так не хотим! Наша борьба — движение за независимость и [неприкосновенность](privacy.md) наших данных.
**Наша миссия — предложить альтернативу. Ваши сервисы - ваши правила**: **Наша миссия — предложить альтернативу. Ваши сервисы Ваши правила**:
- Никаких лицензионных соглашений, рекламы, слежки, телеметрии, банов и цензуры - Никаких лицензионных соглашений, ограничивающих права Пользователей; никакой рекламы, слежки, телеметрии, банов и цензуры;
- Ваши данные хранятся на вашем сервере и принадлежат только вам - Нулевое доверие: Ваши данные хранятся на Вашем сервере и принадлежат только Вам.

View File

@ -1,20 +1,20 @@
# Политика # Политика
Наша миссия гуманитарная — реализация права на неприкосновенность и конфиденциальность частной жизни любому желающему. Наша миссия гуманитарная — реализация права на неприкосновенность и конфиденциальность частной жизни.
Мы не занимаемся политикой, не поддерживаем и не состоим в политических партиях, никого не осуждаем и не участвуем в конфликтах. Мы не занимаемся политикой, не поддерживаем и не состоим в политических партиях, никого не осуждаем и не участвуем в конфликтах.
## Политика конфиденциальности ## Политика конфиденциальности
Мобильное приложение полностью автономно, не подгружает никаких данных с сайтов, не содержит треккеров, взаимодействует только с вашим сервером. Мобильное приложение полностью автономно, не подгружает никаких данных с сайтов, не содержит трекеров, взаимодействует только с вашим сервером.
Сервер взаимодействует с инфраструктурой NixOS Сервер взаимодействует с инфраструктурой NixOS.
Рекомендуемые клиентские приложения взаимодействуют только с вашим сервером. Исключения: Рекомендуемые клиентские приложения взаимодействуют только с вашим сервером. Исключения:
- [Delta.Chat](messenger.md) при использовании публикации геолокации [вынужден](https://support.delta.chat/t/tracker-on-android-app/1814) использовать mapbox - [Delta.Chat](messenger.md) при использовании публикации геолокации [вынужден](https://support.delta.chat/t/tracker-on-android-app/1814) использовать mapbox;
- Есть вопросы к [bitwarden](pass.md) мобильному приложению. Вроде есть библиотеки отслеживающего програмного обеспечения, но трафик не анализировали пока, может не активны. - Есть вопросы к мобильному приложению [bitwarden](pass.md). Оно использует библиотеки отслеживающего програмного обеспечения, но трафик пока не анализировали, вероятно, подозрительной активности нет.
## Наши web-ресурсы ## Наши web-ресурсы
Вы оставляете массу своих данных при посещении любого сайта. Как минимум IP, как максимум все виды трекинга. Вы оставляете массу своих данных при посещении любого сайта. Как минимум — IP-адрес, как максимум — версию ОС и браузера, разрешение экрана, данные о производительности Вашего устройства и некоторое другое.
Мы **не используем трекинг** ни в каком виде, ни на одном из наших публичных сервисов. Мы **не используем трекинг** ни в каком виде ни на одном из наших публичных сервисов.
Но **мы агрегируем access-логи**, чтобы понимать сколько у нас пользователей и из какой страны. Все IP посетителей хранятся в виде подсетей (x.x.x.0) и не могут вас однозначно идентифицировать. Но рекомендуем использовать средства анонимизации трафика, так как мы не гарантируем, что провайдер нашего сервера не собирает метаинформацию. Но **мы агрегируем access-логи**, чтобы понимать сколько у нас пользователей и из какой страны. Все IP-адреса посетителей хранятся в виде подсетей (x.x.x.0) и не могут вас однозначно идентифицировать. Рекомендуем использовать средства анонимизации трафика при повышенном уровне паранойи, так как мы не гарантируем, что провайдер нашего сервера не собирает метаинформацию, также как и Ваш — не мониторит посещение свободолюбивого ресурса.

View File

@ -1,127 +1,107 @@
# Предустановка # Предустановка
Для использования SelfPrivacy необходимы учетные записи сервис-провайдеров. Для использования SelfPrivacy необходимы учетные записи сервис-провайдеров, для которых наше приложение выступит в роли главного управляющего — Вашей правой рукой в деле приватности.
## Установка и настройка ## Установка и настройка
SelfPrivacy — продукт с открытым исходным кодом, система развертки набора свободного программного обеспечения, которое устанавливается на Ваш сервер и в дальнейшем находится под Вашим полным контролем. На выполнение данной инструкции в среднем уходит около часа, но фактически в ней нет ничего сложного. В зависимости от опыта и уже имеющихся аккаунтов на хостинговых площадках, весь процесс может занять пару кружек кофе подряд.
SelfPrivacy сервер создается поэтапно в течение часа. Звучит страшно, но уверяю, учёная степень не понадобится. Процесс не сложнее покупки в интернет-магазине. План выполнения работ и основные требования:
1. Наличие паспорта;
2. Банковская карта с балансом $10-15 в настоящий момент и с возможностью оплаты $5 раз в месяц в дальнейшем;
3. Регистрация учетных записей на хостинговых платформах;
4. Покупка домена и его привязка;
5. Создание API-ключей для автоматизированного управления сервисами через приложение SelfPrivacy;
6. Подключение приложения к Вашим аккаунтам и автоматизированная установка конечных сервисов.
1. Поиск паспорта и карты с балансом $10-15 и $5 в месяц Проект SelfPrivacy нацелен на приватность пользователей, которая гарантирует отсутствие утечек чувствительной информации в пользу корыстных корпораций. Это достигается при полной подконтрольности сервера, который вы используете. Так как мы стараемся сделать решение максимально простым в использовании, мы не призываем всех ставить серверы дома. Вместо этого предлагается использовать услуги хостинг-провайдеров, которые, заключая с Вами договор и будучи юридическими лицами, могут требовать удостоверение личности. Если вы полны скепсиса по этому поводу, взгляните на вопрос под другим углом: хостинговые компании трудятся над защитой своей репутации и соблюдают законы стран, в которых располагаются. Если вы не планируете заниматься криминалом, законы на Вашей стороне. Более того, подход SelfPrivacy обеспечивает сквозное шифрование между Вами и Вашими сервисами. Коммерческие социальные сети торгуют данными не потому, что в их распоряжении жесткие диски сервера, а потому, что вся логика их бизнеса нацелена на это. В нашем случае такого случиться не может: используются только этичные программные решения, а хостер, обеспечивающий дисковое пространство и сетевой канал, найдет себе занятие интереснее, чем снимать дамп неизвестной виртуальной машины и пытаться найти в нем что-то, что можно было бы продать рекламодателям. Это глупо, а также нарушает законодательство цивилизованных стран, так как в Вашем договоре с хостером точно не будет пункта, который даст ему разрешение на шпионаж за файлами на вашем сервере. Законы большинства стран гласят, что хостинг-провайдер предоставляет Вам мощности без юридической ответственности за Ваши дальнейшие действия. Если на Ваш сервер не будут поступать жалобы извне (за спам и т.п.), казусы в отношениях с администрацией хостинга не предвидятся. **Если кому-нибудь поручите эту задачу — лишитесь приватности. Для 100% независимости и контроля необходимо все делать самостоятельно.**
2. Регистрация учётных записей
3. Защита учётных записей
4. Покупка домена
5. Подключение домена к DNS серверу
6. 🔑 Создание ключей
7. Установка
8. Подключение к сервисам 🎉
Если кому-нибудь поручите эту задачу — лишитесь приватности. Для 100% независимости и контроля необходимо всё делать самостоятельно. ## Учетные записи
Для устойчивости и повышения приватности, SelfPrivacy требует много учетных записей. Если все держать в одном месте, получим то, от чего бежали — все возможные данные будут у одной компании. Именно поэтому разные компоненты Вашей небольшой экосистемы будут в разных местах.
## Регистрация учётных записей ### Защита учетных записей
Для устойчивости и приватности SelfPrivacy требует много учётных записей. Если всё держать в одном месте, получаем то, от чего бежали — все данные у одной компании. 🤦‍♀️ Прежде, чем вы приступите к регистрации, подумайте о том, каким образом взламывают большинство аккаунтов на самых различных площадках. Чаще всего для этого не требуется даже обходить систему защиты сервиса! Дело в слабых паролях. Наш мозг подталкивает нас к простым паролям, а также к использованию похожих или даже одинаковых паролей на разных сайтах. Аксиома такова, что пароли должны быть разными и сложными. `MamaDajKushat`, как ни странно, плохой пароль. `MamaDajKushat@100` — чуть лучше, но все равно слабоват. Хорошими паролями являются парольные фразы, состоящие из нескольких несвязанных по смыслу слов, например, `expert repose postwar freestyle effects anytime liability`, либо случайный набор символов вроде `}!@$DSjda12jl34<!`. Важную роль играет длина и непредсказуемость. Если вы последуете совету о парольной фразе и создадите его вручную, наверняка в нем будет какая-то логика, которую смогут угадать знакомые с вами люди. Лучшим решением для создания и хранения паролей является менеджер паролей. [KeePassXC](https://keepassxc.org/download/) — легковесное кроссплатформенное приложение с открытым исходным кодом для генерации случайных паролей и их удобного хранения в зашифрованном виде. При таком подходе, вам придется помнить только один пароль - от менеджера паролей. Забудьте про бумажки под клавиатурой и текстовые файлы для хранения секретной информации. Зашифрованную базу KeePassXC можно назвать любым неприглядным именем вроде "runtime64.dll" и хранить ее резервную копию среди других файлов в любом облачном хранилище. Естественно, для душевного спокойствия для базы KeePassXC следует придумать самый сложный пароль из всех, что вы придумывали, и крепко его запомнить. Всего лишь один! Небольшой файл, представляющий собой базу данных KeePassXC, является AES-контейнером, криптостойкости которого хватит еще нашим внукам. Поэтому пароль забывать нельзя. Наравне с KeePassXC спросом пользуется [Bitwarden](https://bitwarden.com/) — также свободное программное обеспечение, распространяемое в виде приложения с графической оболочкой для компьютеров и смартфонов, приложения с веб-интерфейсом (который открывается через браузер), а также в виде полноценного расширения для браузера и в конце концов в виде CLI-дистрибутива (command line interface, программа без графической оболочки). Главным отличием Bitwarden от KeePassXC является "облачный" подход, в котором база данных с паролями хранится в зашифрованном виде на удаленном сервере, а не на локальном устройстве. На вкус и цвет товарищи находятся не всегда, поэтому начните с чего-то одного и, если выбранный вариант не удовлетворит, попробуйте альтернативу.
Поэтому разные части системы будут в разных местах. Регистрируемся: Также настоятельно рекомендуем включить двухфакторную авторизацию (MFA, 2FA), которая для входа в аккаунт будет требовать помимо пароля что-то еще: код из приложения, электронной почты и тому подобное. Максимально возможная безопасность при создании максимально приватных сервисов!
1. [Hetzner](https://accounts.hetzner.com/login) — хостинг виртуального сервера. Здесь будут жить наши данные и сервисы SelfPrivacy. ### Регистрация учетных записей
2. [NameCheap](https://www.namecheap.com/myaccount/login/) или любой другой регистратор, для покупки личного адреса в интернете — домена, который будет указывать на сервер.
3. [CloudFlare](https://dash.cloudflare.com/login) — DNS сервер, где работает Ваш домен.
4. [Backblaze](https://secure.backblaze.com/user_signin.htm) — IaaS провайдер, для бесплатного хранения резервных копий Ваших данных в зашифрованном виде.
Регистрация заурядна, но иногда проверка учётной записи длится несколько дней или требует дополнительных документов. Поэтому используйте настоящие документы и заполняйте всё аккуратно. Провайдеры так защищаются от спамеров, ничего личного. Сервисы, на которых необходимо завести аккаунт:
1. [Hetzner](https://accounts.hetzner.com/login) — хостинг виртуального сервера. Здесь будут жить наши сервисы и данные SelfPrivacy;
2. [NameCheap](https://www.namecheap.com/myaccount/login/) — для покупки домена — личного адреса в интернете, — который будет указывать на сервер. При желании, можете воспользоваться любым другим регистратором доменных имен.
3. [CloudFlare](https://dash.cloudflare.com/login) — DNS сервер, который будет обслуживать Ваш домен. CloudFlare славится сервисом защиты от DDoS-атаки, который вызывает много упреков в сообществе специалистов по приватности, так как раскрывает внутри себя весь зашифрованный трафик для анализа. Можете быть спокойны, в рамках этой инструкции мы будем использовать от CloudFlare только их DNS с удобным API для автоматизации управления через приложение SelfPrivacy.
4. [Backblaze](https://secure.backblaze.com/user_signin.htm)— IaaS (Infrastructure as a service) провайдер хранения резервных копий Ваших данных в зашифрованном виде. Backblaze предусматривает [тарифный план](https://www.backblaze.com/ru_RU/cloud-storage.html) с оплатой $0.005/ГБ в месяц, однако, первые 10ГБ даются бесплатно. Этого вполне достаточно для наших нужд, поэтому будем считать, что бэкапы за счет заведения.
## Защита учётных записей Регистрация тривиальна, но иногда активация учетной записи может затянуться или потребовать дополнительных документов. Таким образом провайдеры защищаются от спамеров, ничего личного. Если случится трудность, наберитесь терпения и глубоко выдохните — нерешаемых задач не бывает! В крайнем случае обращайтесь в нашу службу поддержки.
Чаще всего системы взламывают через самое слабое звено. Чтобы учётные записи не были таким звеном, пароли должны быть разными и сложными.
`MamaMilaRamu`, как ни странно, плохой пароль, а отличные 🌈 — это парольная фраза:
``` Приведенные сервисы являются мировыми лидерами в своей нише. Выбор объясняется их надежностью, незамеченностью в торговле пользовательскими данными и удобством. В плане приватности существуют более привлекательные сервисы, но в основном мы не можем с ними работать. Далеко не каждый хостинг предоставляет гибкий API — интерфейс для интеграции сторонних приложений, каким пользуется SelfPrivacy для автоматизации дальнейшего управления. Если у вас есть конструктивные предложения альтернативных сервисов, сообщите нам. Мы рассмотрим возможность их поддержки и добавим в этот список.
expert repose postwar anytime glimpse freestyle liability effects
```
или
```
}Rj;EtG:,M!bc4/|
```
Как такой пароль запомнить? Никак! Пароли не нужно запоминать, их надо создавать и хранить в [менеджере паролей](https://keepassxc.org/download/). Хотя один помнить придётся — пароль от менеджера паролей.
Обязательно включите дополнительную защиту учётных записей — второй фактор (MFA, 2FA). Без этого простого шага Ваши данные не будут в безопасности.
Я знаю, было сложно, но теперь Ваши данные защищены лучше, чем у 95% пользователей. Можете собой гордится! Я вот Вами горжусь 🤗
# Покупка домена
> Включили второй фактор? Я серьёзно! Тогда переходим к интересному!
## Покупка домена
![NameCheap](https://selfprivacy.org/img/screencasts/nc-buy-domain.gif) ![NameCheap](https://selfprivacy.org/img/screencasts/nc-buy-domain.gif)
Домен — это кусочек интернета, которому Вы даёте имя. Простор для творчества огромен, у Вас есть 63 символа + .com .org .icu и еще несколько сотен доменов после точки. Можно просто по фамилии выбрать, например ivanov.live или ivanov.health, а можно что-то творческое — shit-happens.shop Домен — это кусочек интернета, которому Вы даете имя. Простор для творчества огромен, у Вас есть 63 символа плюс `.com`, `.org`, `.icu` и еще несколько сотен доменных зон (окончание адреса после последней точки). Домен можно выбрать просто по фамилии, например, `ivanov.live` или `ivanov.health`, а можно что-то творческое вроде `shit-happens.shop`.
## Рекомендации Несколько рекомендаций, которые нужно иметь ввиду при покупке:
1. Обязательно смотреть на цену ежегодного продления, она может в разы превышать стоимость покупки. 1. Обязательно смотрите на цену ежегодного продления, она может в разы превышать стоимость покупки;
2. Нормальная цена домена $8-10 в год. Самые дешёвые — китайские .icu и .cyou — $4-6. 2. Нормальная цена домена $8-10 в год. Самые дешевые — китайские: `.icu` и `.cyou` (по $4-6);
3. Хорошее имя удобно и по телефону диктовать, и на деловой визитке указать. 3. Хорошее доменное имя удобно и по телефону диктовать и на деловой визитке указать не стыдно;
4. Фамилия в домене хороша тем, что можно раздать почту всем однофамильцам, например: name.secondname@surname.com, ns@surname.com или name@surname.com 4. Фамилия в домене хороша тем, что можно раздать почту всем однофамильцам (главным образом, родственникам), например, `name.secondname@surname.com`, `ns@surname.com` или `name@surname.com`;
5. При регистрации домена обязательно указывать реальные почту и телефон, иначе регистрацию могут аннулировать. И если Вы не сможете продлить домен, система не будет работать так, как задумано. 5. При регистрации домена обязательно указывайте реальные почту и телефон, иначе регистрацию могут аннулировать. Если Вы не сможете продлить домен, система SelfPrivacy не будет работать так, как задумано, и почти все нужно будет начинать заново.
6. Я уже говорил про второй фактор?
## Подключение домена к DNS серверу ### Подключение домена к DNS-серверу
После покупки, домен добавляем в CloudFlare: После покупки, добавляем домен в CloudFlare:
![Adding domain to Cloudflare](https://selfprivacy.org/img/screencasts/add-domain-to-cf.gif) ![Adding domain to Cloudflare](https://selfprivacy.org/img/screencasts/add-domain-to-cf.gif)
На примере домена ruleit.stream мы выбрали бесплатный тариф и получили имена серверов: gail.ns.cloudflare.com и mattns.cloudflare.com, которые надо прописать у своего регистратора. В нашем случае NameCheap: На примере домена `ruleit.stream` мы выбрали бесплатный тариф и получили имена серверов: `gail.ns.cloudflare.com` и `mattns.cloudflare.com`, которые надо прописать у своего регистратора. В нашем случае NameCheap:
![Namecheap to Cloudflare](https://selfprivacy.org/img/screencasts/nc-to-cf.gif) ![Namecheap to Cloudflare](https://selfprivacy.org/img/screencasts/nc-to-cf.gif)
Заодно проверяем, что у нас включено автоматическое продление и защита персональных данных — WhoisGuard. Через несколько минут или, в худшем случае, до двух суток настройки применятся. Заодно проверьте, что у Вас включено автопродление и защита персональных данных — WhoisGuard (незамысловатые пункты в меню управления доменом). Через несколько минут или, в худшем случае, в период до двух суток настройки применятся. Как правило, приходится ожидать меньше десяти минут. Можете не останавливаться: пока выполните следующие действия, привязка домена наверняка закончится.
# 🔑 Создание ключей ## API-токены
API ключи — это почти то же самое, что и логин с паролем, только для программы, а не человека. Мобильное приложение SelfPrivacy с их помощью управляет сервисами во всех учётных записях вместо Вас. Удобно! API-токены — это почти то же самое, что и логин с паролем, только для программы, а не человека. Мобильное приложение SelfPrivacy с их помощью управляет сервисами во всех учётных записях вместо Вас. Фактически, токен — это просто длинная строка. Все используемые сервисы позволяют создавать новые токены и удалять старые, поэтому хранить их каким-то особенным образом не нужно: скопируйте полученные токены в текстовый документ, чтобы потом зарегистрировать в SelfPrivacy, либо сразу вставляйте их в приложение.
Ключи хранить в [менеджере паролей](https://keepassxc.org/download/). Для NameCheap специальный ключ не нужен. Управление доменом будет осуществляться через сервис CloudFlare.
Для NameCheap нам ключ не нужен, мы уже всё сделали. А управление доменом будет в CloudFlare. ### CloudFlare
1. Перейдите по [ссылке](https://dash.cloudflare.com/) и авторизуйтесь в ранее созданном аккаунте;
## CloudFlare 2. В правом верхнем углу кликните на иконку профиля (человечек в кружочке). В мобильной версии сайта расположение кнопок отличается: в
верхнем левом углу находится кнопка Меню (три горизонтальных полоски), нажмите на нее. В выпавшем списке найдите пункт "My Profile";
1. Переходим по [ссылке](https://dash.cloudflare.com/) и авторизуемся в ранее созданном аккаунте. 3. Будет предложено выбрать одну из четырех категорий настроек: "Preferences", "Authentication", "API Tokens" и "Sessions". Выберите "API Tokens";
2. В правом углу кликаем на иконку профиля (человечек в кружочке). Для мобильной версии сайта, в верхнем левом углу, нажимаем кнопку **Меню** (три горизонтальных полоски), в выпавшем меню, ищем пункт **My Profile**. 4. Самым первым пунктом является кнопка "Create Token". Нажмите на неё;
3. Нам предлагается на выбор, четыре категории настройки: **Preferences**, **Authentication**, **API Tokens**, **Sessions**. Выбираем **API Tokens**. 5. Спуститесь в самый низ к полю "Create Custom Token" и нажмите кнопку "Get Started" с правой стороны;
4. Самым первым пунктом видим кнопку **Create Token**. С полной уверенностью в себе и желанием обрести приватность, нажимаем на неё. 6. В поле "Token Name" дайте имя новому токену. Можете покреативить и отнестись к этому как к наименованию домашнего зверька :)
5. Спускаемся в самый низ и видим поле **Create Custom Token** и кнопку **Get Started** с правой стороны. Нажимаем. 7. Далее окно "Permissions". В первом поле выберите "Zone". Во втором поле (по центру) выберите DNS. В последнем поле — "Edit";
6. В поле **Token Name** даём своему токену имя. Можете покреативить и отнестись к этому как к наименованию домашнего зверька :) 8. Далее, прямо под этой строчкой, нажмите на "Add More". Появится строка, аналогичная той, которую вы только что заполняли;
7. Далее, у нас **Permissions**. В первом поле выбираем Zone. Во втором поле, по центру, выбираем **DNS**. В последнем поле выбираем **Edit**. 9. В первом поле новой строки выберите "Zone" по аналогии с предыдущим шагом. Во втором поле снова "Zone". В третьем — "Read";
8. Далее смотрим на **Zone Resources**. Под этой надписью есть строка с двумя полями. В первом должно быть **Include**, а во втором — **Specific Zone**. Как только Вы выберите **Specific Zone**, справа появится ещё одно поле. В нём выбираем наш домен. 10. Найдите глазами "Zone Resources". Под этой надписью есть строка с двумя полями. В первом должно быть "Include", а во втором — "Specific Zone". Как только вы выберите "Specific Zone", справа появится ещё одно поле. В нём выбираем наш домен;
9. Листаем в самый низ и нажимаем на синюю кнопку **Continue to Summary**. 11. Пролистайте в самый низ и нажмите на синюю кнопку "Continue to Summary";
10. Проверяем, всё ли мы правильно выбрали. Должна присутствовать подобная строка: ваш.домен — **DNS:Edit, Zone:Read**. 12. Убедитесь, что все поля были заполнены верно: должна присутствовать подобная строка, содержащая ваш домен и "DNS:Edit, Zone:Read";
11. Нажимаем **Create Token**. 13. Если всё на своих местах, завершите операцию нажатием кнопки "Create Token";
12. Копируем созданный токен, и сохраняем его в надёжном месте (желательно — в [менеджере паролей](https://keepassxc.org/download/)). 14. Скопируйте созданный токен во временный текстовый файл, либо сразу в приложение SelfPrivacy.
![Cloudflare token setup](https://selfprivacy.org/img/screencasts/CloudFlare.gif) ![Cloudflare token setup](https://selfprivacy.org/img/screencasts/CloudFlare.gif)
## Hetzner ### Hetzner
1. Перейдите по [ссылке](https://console.hetzner.cloud/) и авторизуйтесь в ранее созданном аккаунте;
1. Переходим по [ссылке](https://accounts.hetzner.com/login) и авторизуемся в ранее созданном аккаунте. 2. Создайте новый проект. Наведите мышкой на боковую панель. Она должна раскрыться, показав пункты меню. Сейчас нас интересует последний — "Security" (с иконкой ключика);
2. Заходим в созданный нами проект. Если такового нет — значит создаём. 3. В верхней части интерфейса увидите примерно такой список: "SSH KEYS", "API TOKENS", "CERTIFICATES", "MEMBERS". Выберите "API TOKENS";
3. Наводим мышкой на боковую панель. Она должна раскрыться, показав нам пункты меню. Нас интересует последний — **Security** (с иконкой ключика). 4. Посередине интерфейса нажмите кнопку "GENERATE API TOKEN";
4. Далее, в верхней части интерфейса видим примерно такой список: **SSH KEYS**, **API TOKENS**, **CERTIFICATES**, **MEMBERS**. Нам нужен **API TOKENS**. Переходим по нему. 5. В поле "Description" дайте новому токену название (это может быть любое слово, которое Вам нравится);
5. По середине в интерфейсе, нас будет ожидать кнопка GENERATE **API TOKEN**. Нажимаем на эту кнопку. 6. Под полем "Description" есть возможность выбрать разрешения ("PERMISSIONS"). Выберите "Read & Write";
6. В поле **Description** даём нашему токену название (это может быть любое название, которое Вам нравится, сути оно не меняет). 8. Завершаем операцию нажатием "GENERATE API TOKEN";
7. Под полем **Description** видим возможность выбрать разрешения **PERMISSIONS**. Выбираем **Read & Write**. 9. После этого появится окно с API-токеном. Скопируйте созданный токен во временный текстовый файл, либо сразу в приложение SelfPrivacy.
8. Нажимаем **GENERATE API TOKEN**.
9. После этого, появиться окно с Вашим ключом. Записываем его в надёжном месте, или ещё лучше, сохраняем в [менеджере паролей](https://keepassxc.org/download/).
![Hetzner token setup](https://selfprivacy.org/img/screencasts/Hetzner.gif) ![Hetzner token setup](https://selfprivacy.org/img/screencasts/Hetzner.gif)
## Backblaze ### Backblaze
1. Перейдите по [ссылке](https://secure.backblaze.com/user_overview.htm) и авторизуйтесь в ранее созданном аккаунте;
1. Переходим по [ссылке](https://secure.backblaze.com/user_signin.htm) и авторизуемся в ранее созданном аккаунте. 2. В левой части интерфейса в подкатегории "Account" выберите "App Keys";
2. В левой части интерфейса выбираем **App Keys** в подкатегории **"Account"** 3. Нажмите на синюю кнопку "Generate New Master Application Key";
3. Нажимаем на синюю кнопку **Generate New Master Application Key** 4. Подтвердите действие во всплывающем окне;
4. Во всплывающем окне подтверждаем генерацию 5. Сохраните "keyID" и "applicationKey" во временном текстовом файле, либо сразу введите их в приложение SelfPrivacy.
5. Сохраняем _keyID_ и _applicationKey_ в надёжном месте. Например - в [менеджере паролей](https://keepassxc.org/download/) :)
![Backblaze token setup](https://selfprivacy.org/img/screencasts/Backblaze.gif) ![Backblaze token setup](https://selfprivacy.org/img/screencasts/Backblaze.gif)
**🎉 Поздравляю! Теперь Вы готовы использовать приватные сервисы.** # Все сделано!
Когда все необходимые API-токены в ваших руках, добавьте их в приложение SelfPrivacy, если еще этого не сделали. Ваши приватные сервисы ждут! Если возникнут вопросы по конфигурации, обратитесь к нашим ответам на часто задаваемые вопросы (FAQ). Если вашего вопроса там нет, либо ответ не помог с решением, обратитесь в поддержку.

View File

@ -2,21 +2,21 @@
_Невозможность доступа к информации третьей стороной. Это наш главный приоритет!_ _Невозможность доступа к информации третьей стороной. Это наш главный приоритет!_
- Сервер арендован вами, принадлежит только вам - Сервер арендован вами, принадлежит только вам;
- **Никаких** телеметрий, куков, логов, лицензий, модерации, пользовательских соглашений, трекингов и т.д. - **Никакой** телеметрии, куков, логов, проприетарных лицензий, модерации, ущемляющих пользовательских соглашений и т.д.;
- Все соединения с сервером надежно зашифрованы - Все соединения с сервером надежно зашифрованы;
- VPN - VPN.
## 🗓️ Как еще будем повышать приватность? ## 🗓️ Как еще будем повышать приватность?
- Шифрование данных на сервере - Шифрование данных на сервере;
- Установка **SelfPrivacy Server** на железный ПК (intel nuc / rpi4) - Установка **SelfPrivacy Server** на железный ПК (intel nuc / rpi4);
- DNS-resolver - DNS-resolver;
- Приватный транспорт межсерверного взаимодействия (yaggdrasil) - Приватный транспорт межсерверного взаимодействия ([Yggdrasil](https://yggdrasil-network.github.io/));
- Резервное копирование в децентрализованное хранилище ([Tahoe-LAFS](https://tahoe-lafs.org) или [NextCloud p2p](https://nextcloud.com/blog/beta-of-peer-to-peer-nextcloud-backup-app-now-available-for-testing/)) - Резервное копирование в децентрализованное хранилище ([Tahoe-LAFS](https://tahoe-lafs.org) или [NextCloud p2p](https://nextcloud.com/blog/beta-of-peer-to-peer-nextcloud-backup-app-now-available-for-testing/)).
## ⚠️ Ограничения ## ⚠️ Ограничения
Виртуальный сервер не является исключительно приватным. Сервис-провайдер технически имеет доступ к памяти и диску вашего сервера. При этом виртуальный сервер куда более приватен, чем централизованные публичные сервисы! Виртуальный сервер не является исключительно приватным. Сервис-провайдер технически имеет доступ к памяти и диску вашего сервера. При этом виртуальный сервер куда более приватен, чем централизованные публичные сервисы!
🗓️ Мы работаем над тем, чтобы SelfPrivacy Server можно было установить на свой сервер дома 🗓️ Мы работаем над тем, чтобы SelfPrivacy Server можно было установить на свой сервер дома.
![Privacy explanation](privacy.svg) ![Privacy explanation](privacy.svg)

View File

@ -5,50 +5,50 @@ _дорожная карта развития проекта_
## ↗️ Векторы развития проекта ## ↗️ Векторы развития проекта
_в порядке убывания приоритета_ _в порядке убывания приоритета_
- [Конфиденциальность](privacy.md) - [Конфиденциальность](privacy.md);
- [Безопасность](security.md) - [Безопасность](security.md);
- [Доступность (UI/UX)](accessibility.md) - [Доступность (UI/UX)](accessibility.md);
- [Функциональность](services.md) - [Функциональность](services.md);
- [Автономность](autonomy.md) - [Автономность](autonomy.md);
- [Анонимность](anon.md) - [Анонимность](anon.md);
- [Маркетинг](marketing.md) - [Коммерческая привлекательность](marketing.md);
- [DevOps](deploy.md) - [DevOps](deploy.md).
## 🗓️ План ## 🗓️ План
### v0 (2020) 🏁 ### v0 (2020) 🏁
- [x] Разворачивание сервера с мобильного телефона - [x] Разворачивание сервера с мобильного телефона;
- [x] Автоматическое резервное копирование - [x] Автоматическое резервное копирование;
- [x] Автоматическое обновление - [x] Автоматическое обновление;
- [x] Включение и выключение сервисов - [x] Включение и выключение сервисов;
- [x] Управление пользователями - [x] Управление пользователями;
- [x] Системные логи внутри приложения - [x] Системные логи внутри приложения;
- [x] Отображение статусов загрузки сервера - [x] Отображение статусов загрузки сервера;
- [x] SSH-доступ для опытных пользователей - [x] SSH-доступ для опытных пользователей.
### v1 (2021) ### v1 (2021)
- [ ] <система поддержки контрибьюторов> - [ ] <система поддержки контрибьюторов>;
- [ ] Автоматическое разворачивание из резервной копии - [ ] Автоматическое разворачивание из резервной копии;
- [ ] Автоматическое расширение диска - [ ] Автоматическое расширение диска;
- [ ] Автоматическое добавление памяти - [ ] Автоматическое добавление памяти;
- [ ] Шифрование диска - [ ] Шифрование диска;
- [ ] Автоматический откат неудачных обновлений - [ ] Автоматический откат неудачных обновлений;
- [ ] Биометрическая аутентификация - [ ] Биометрическая аутентификация;
- [ ] Запуск на Apple Store и Google Play - [ ] Запуск на Apple Store и Google Play;
- [ ] <можно удалять gmail> - [ ] <можно удалять gmail>;
- [ ] <коллаборативные сервисы DNS-slave, p2p backup> - [ ] <коллаборативные сервисы DNS-slave, p2p backup>;
- [ ] <система поддержки> - [ ] <система поддержки>.
### v2 (2021-2022) ### v2 (2021-2022)
- [ ] Установка сервисов по запросу - [ ] Установка сервисов по запросу;
- [ ] Поддержка не только облачного сервера, но и hardware (предположительно Rpi4) - [ ] Поддержка не только облачного сервера, но и hardware (предположительно Rpi4);
- [ ] Управление несколькими серверами из одного мобильного приложения - [ ] Управление несколькими серверами из одного мобильного приложения;
- [ ] Формирование интерфейса сервиса на стороне бэкэнда (json) - [ ] Формирование интерфейса сервиса на стороне бэкэнда (JSON);
- [ ] Рефакторинг UI/UX - [ ] Рефакторинг UI/UX;
- [ ] Обезличивание дебаг-лога для помощи пользователям без раскрытия конфиденциальных данных - [ ] Обезличивание дебаг-лога для помощи пользователям без раскрытия конфиденциальных данных;
- [ ] <понятная система хранения ключей> - [ ] <понятная система хранения ключей>;
- [ ] <можно в энтерпрайз> - [ ] <можно в интерпрайз>.
### v3 (фантазии) ### v3 (фантазии)
- [ ] Кластер (микро-хостинг) - [ ] Кластер (микро-хостинг);
- [ ] Приватный смартфон (PinePhone) - [ ] Приватный смартфон (PinePhone);
- [ ] Приватный десктоп - [ ] Приватный десктоп...

View File

@ -1,22 +1,22 @@
# 🛡️ Безопасность # 🛡️ Безопасность
_Отсутствие возможности у злоумышленника вторгнуться в вашу систему_ _Отсутствие возможности у злоумышленника вторгнуться в вашу систему_
- BugBounty $2000 за RCE найденный на сервере [hackit.one](). $1000 уже выплачена. - На нашем счету успешный BugBounty: $2000 за RCE, найденный в сервере [hackit.one](https://hackit.one);
- Регулярное сканирование на уязвимости - Регулярное сканирование на уязвимости;
- Используем только открытый исходный код, уязвимости в котором сообщество очень быстро устраняет - Используем только открытый исходный код, уязвимости в котором сообщество очень быстро устраняет;
- Регулярное резервное копирование поможет, даже если хакер удалит все ваши данные с сервера. - Регулярное резервное копирование поможет даже если хакер удалит все ваши данные с сервера;
- Оконечное шифрование в [Delta.chat](messenger.md). Невозможно прочесть ваши сообщения даже имея доступ к серверу - Оконечное шифрование в [Delta.chat](messenger.md). Невозможно прочесть ваши сообщения даже имея доступ к серверу;
- Автоматическая установка обновлений - Автоматическая установка обновлений;
- Изоляция приложений на сервере - Изоляция приложений на сервере;
- F-Droid собирает из исходников наше ПО сами и проверяют на наличие зловредных функций. Спасибо команда F-Droid! - F-Droid собирает наше ПО из исходников. Код проходит ревью на предмет зловредных функций. Спасибо, команда F-Droid!
- В exodus можно убедиться в отсуствии каких-либо привелегий на вашем устройстве - В exodus можно убедиться в отсуствии каких-либо привелегий на вашем устройстве;
- Через [TrackerControl](https://f-droid.org/en/packages/net.kollnig.missioncontrol.fdroid/) можете убедиться в отсуствии треккеров или чего-то подобного - Через [TrackerControl](https://f-droid.org/en/packages/net.kollnig.missioncontrol.fdroid/) можете убедиться в отсуствии трекеров или чего-то подобного;
- С помощью [PCAPdroid](https://f-droid.org/en/packages/com.emanuelef.remote_capture/) можете собрать весь трафик с нашего приложения и убдиться в отсутсвии какого-либо трафика кроме как с вашим сервером и сервис-провадерами. - С помощью [PCAPdroid](https://f-droid.org/en/packages/com.emanuelef.remote_capture/) можете собрать весь трафик с нашего приложения и убедиться в отсутсвии какого-либо трафика кроме как с вашим сервером.
## Как еще будем улучшать безопасность? ## Как мы будем еще улучшать безопасность?
- Анонимизация логов на вашем сервере. Вы сам себе VPN-провайдер, который точно не хранит логов - Анонимизация логов на вашем сервере. Вы сам себе VPN-провайдер, который точно не хранит логов;
- SDLC, проверка кода в статических анализаторах - SDLC, проверка кода в статических анализаторах;
- hardware token (Nitrokey) - Hardware token (Nitrokey);
- tang/clavis? - Tang/clavis;
- авто обновления с автоматическим откатом - Автоматические обновления с откатом в случае неудачи;
- kernel hardering - Kernel hardering.

View File

@ -1,32 +1,32 @@
# 🧑‍💻 О нас # 🧑‍💻 О нас
Международная команда независимых профессионалов: Международная команда независимых профессионалов:
- [Жольнай Кирилл](https://s.zholnay.name/@kirill) — Founder/CEO/CISO. Более 15 лет строит и защищает корпоративную инфраструктуру в средних и крупных компаниях - [Жольнай Кирилл](https://s.zholnay.name/@kirill) — Founder/CEO/CISO. Более 15 лет строит и защищает корпоративную инфраструктуру в средних и крупных компаниях;
- **ilchub** — core-team DevOps, Backend-dev - **ilchub** — core-team DevOps, Backend-dev;
- **kherel** — core-team Flutter Dev - **kherel** — core-team Flutter Dev;
- **nikolai** — QA Engeneer - **nikolai** — QA Engeneer;
- и много классных котрибьюторов и [волонтеров](volonteers.md) - и много классных котрибьюторов и [волонтеров](volonteers.md)!
## 🌠 Нам помогают ## 🌠 Нам помогают
- [Роскомсвобода](https://roskomsvoboda.org/). Cпич на русском [youtube](https://www.youtube.com/watch?v=mdeUTUPeJjA). - [Роскомсвобода](https://roskomsvoboda.org/). Спич на русском [Youtube](https://www.youtube.com/watch?v=mdeUTUPeJjA);
- [Privacy Accelerator](https://privacyaccelerator.org/) - [Privacy Accelerator](https://privacyaccelerator.org/);
- Мировое Open Source сообщество - Мировое Open Source сообщество;
- NixOS сообщество - NixOS сообщество.
## 🫂 Единомышленники ## 🫂 Близкие по духу
- [Cloudron](https://www.cloudron.io/) — коммерческий проект, код закрыт, от $15 в месяц за электронную почту и несколько сервисов. Надо самому устанавливать на сервер приложение, следить за ресурсами сервера. - [Cloudron](https://www.cloudron.io/);
- [IndieWeb](https://indieweb.org/) — открытый проект, сложный в конфигурации. - [IndieWeb](https://indieweb.org/);
- [Kubenav](https://kubenav.io/) — управляет docker-контейнерами с мобильного. Перспективно, но для высококвалифицированных пользователей. - [Kubenav](https://kubenav.io/);
- [Yunohsot](https://yunohost.org/) — открытый проект, но не очень стабильно. - [Yunohsot](https://yunohost.org/);
- [FreedomBox](https://freedombox.org) — открытый проект на ARM - [FreedomBox](https://freedombox.org);
- [Tunrkeylinux](https://turnkeylinux.org) — готовое к использованию ПО для опытных пользователей - [Tunrkeylinux](https://turnkeylinux.org);
- [https://framasoft.org](https://framasoft.org) — облачный сервис уважающий приватность. Достойная альтернатива Google-Docs! - [framasoft.org](https://framasoft.org);
- https://sandstorm.io/ - [sandstorm.io](https://sandstorm.io/);
- https://citadel.org - [citadel.org](https://citadel.org);
- https://disroot.org - [disroot.org](https://disroot.org).
### Полезное ### Полезное
- https://ssd.eff.org - [ssd.eff.org](https://ssd.eff.org);
- https://datadetoxkit.org - [datadetoxkit.org](https://datadetoxkit.org);
- https://securityplanner.consumerreports.org/tool - [securityplanner.consumerreports.org](https://securityplanner.consumerreports.org/tool);
- https://www.fordfoundation.org/work/our-grants/building-institutions-and-networks/cybersecurity-assessment-tool/ - [fordfoundation.org](https://www.fordfoundation.org/work/our-grants/building-institutions-and-networks/cybersecurity-assessment-tool/).