diff options
Diffstat (limited to 'pages/features/cryptography/ru.text')
-rw-r--r-- | pages/features/cryptography/ru.text | 54 |
1 files changed, 0 insertions, 54 deletions
diff --git a/pages/features/cryptography/ru.text b/pages/features/cryptography/ru.text index 3c4b419..a96a9ef 100644 --- a/pages/features/cryptography/ru.text +++ b/pages/features/cryptography/ru.text @@ -41,44 +41,6 @@ h2. Транспорт - TLS Все TLS-соединения используют шифры PFS. -h2. Хранение - Soledad - -Приложение Bitmask хранит свои данные в [[Soledad => https://leap.se/soledad]], который занимается шифрованием этих данных, надежно делает их резервные копии и синхронизирует их между устройствами пользователя. В Soledad локальное хранилище использует симметричное блочное шифрование всей базы данных с использованием единственного ключа. Для данных, хранящихся удаленно, каждый отдельный документ отдельно шифруется с использованием ключа, уникального для этого документа. - -Оба ключа для локального и удаленного хранилищ получаются из главного "секретного значения хранилища". Это длинное случайное секретное значение хранилища хранится на диске локально, защищенное симметричным шифрованием с помощью ключа, полученного из пароля пользователя (scrypt используется в качестве функции формирования ключа). - -На данный момент параметры scrypt такие: - -bc. N (параметр стоимости соотношения время/память) = 2^14 = 16384 -p (степень параллельности) = 1 -r (длина блока, перемешиваемого SMix()) = 8 -dkLen (длина выходного ключа) = 32 байта = 256 бит - -Мы рассматриваем использование большего значения для N. - -*Локальное хранение* - -p((. Локальная база данных SQLite с блочным шифрованием использует @AES-256-CBC@, используя первые 256 бит [@storage_secret@]. Смотрите https://github.com/kalikaneko/python-u1dbcipher и http://sqlcipher.net. - -*Удаленное хранение* - -p((. Подокументное шифрование документов, хранящихся удаленно, использует симметричное шифрование с AES-256-CTR или шифр XSalsa20, использующий 256-битные ключи. Для этого используется библиотека pycryptopp. Ключ и MAC, используемые для шифрования каждого отдельного документа, получаются следующим образом: - -<pre style="margin-left: 2em"> -storage_secret_a = первые 256 бит секретного значения хранилища -storage_secret_b = все после первых 256 битов секретного значения хранилища -document_key = hmac(document_id, storage_secret_b) -document_mac = hmac(document_id | document_revision | iv | ciphertext, hmac(document_id, storage_secret_a) -</pre> - -p((. Каждый документ имеет свой собственный ключ. [@document_revision@] в MAC документа предотвращает откат к старой версии документа. HMAC использует SHA256. - -p((. Некоторые документы в удаленном хранилище данных пользователя добавляются провайдером, например, в случае нового входящего сообщения электронной почты. Эти документы используют асимметричное шифрование, с каждым документом, зашифрованным с использованием пользовательского открытого OpenPGP-ключа. Библиотекой, которую мы используем для этого, является [[форк Айсис python-gnupg => https://github.com/isislovecruft/python-gnupg]]. Эти документы лишь временно хранятся пободным образом: как только клиент увидит их, они остаются в незашифрованном виде и повторно шифруются с использованием других методов. - -*Транспорт* - -p((. TLS, как описано выше. Скоро будет CurveZMQ. - h2. Зашифрованный туннель - OpenVPN OpenVPN имеет три параметра, которые управляют тем, какие шифры он использует (есть и четвертый, @--tls-auth@, но мы не можем его использовать в публичном многопользовательском окружении). Каждый провайдер может легко выбрать любые опции по своему желанию. Ниже приведены текущие значения по умолчанию, которые идут с leap_platform. @@ -127,24 +89,8 @@ Bitmask пока не поддерживает ECC ключи. Bitmask использует GnuPG. Библиотекой python, которую мы используем, является [[форк Айсис python-gnupg => https://github.com/isislovecruft/python-gnupg]]. -h2. Безопасные обновления - TUF - -Безопасные обновления осуществляется с помощью [[TUF => http://theupdateframework.com/]], они используют 4096-битные RSA-ключи OpenSSL с pyCrypto. Существует три ключа, участвующие в процессе обновления (корневой, целевой и временной метки). - -* Корневой ключ используется для подтверждения остальных ключей, которые живут в автономном хранилище и используются только один раз в год, чтобы обновить сертификацию или в случае ротации другого ключа. -* Целевой ключ используется для подписи всех обновлений. Этот ключ находится в руках менеджера версий и используются для каждой версии приложения. -* Ключ временной метки используется для подписи временной метки файла каждый день, этот файл используется клиентом, чтобы предотвратить противника от воспроизведения устаревших обновлений. Этот ключ живет онлайн на серверах платформы. - h2. Разное h3. OpenSSH По умолчанию, все серверы используют RSA-ключи хостов вместо ECDSA. Если у хоста ECDSA-ключ, платформа предложит системному администратору перейти на RSA. В будущем, когда Curve255219 будет лучше поддерживаться, платформа будем поощрять переход на 25519. - -h3. DNSSec - -Будет написано. - -h3. StartTLS + DANE - -Будет написано.
\ No newline at end of file |