Commit 95d25202 authored by cyberta's avatar cyberta
Browse files

remove email and deprecated desktop clients related information

parent 9aa4195a
......@@ -4,7 +4,7 @@
= t(:site_title)
%meta(name="viewport" content="width=device-width, initial-scale=1.0")
%meta(name="description" content="Bitmask is an open source application to provide easy and secure encrypted communication. You can choose among several different service providers or start your own. Currently, Bitmask supports encrypted internet (VPN) and encrypted email.")
%meta(name="description" content="Bitmask is an open source application to provide easy and secure encrypted communication over VPN. You can choose among several different service providers or start your own.")
%meta(name="keywords" content="vpn, openvpn, bitmask, encryption, android, linux")
%link(rel="stylesheet" href="/assets/bootstrap.min.css")
......@@ -9,10 +9,7 @@ en:
download: Download
leap: 'LEAP Encryption Access Project'
warning: >
<b>WARNING:</b> Bitmask is still experimental. Please do not use these beta
releases of Bitmask for situations where a compromise of your data could
put you in danger.
warning_disabled: >
Also, although Bitmask is improving rapidly, it is possible that you could
lose your email when using an early beta release.
......@@ -35,11 +32,7 @@ en:
bitmask_vpn: Bitmask VPN
bitmask_vpn_blurb: >
With [[Bitmask VPN => features#vpn]], all your traffic is securely routed through
your provider before it is decrypted and sent on to the open internet.
encrypted_email: Encrypted Email
encrypted_email_blurb: >
[[Bitmask Encrypted Email => features#email]] is easy to use while still being
backward compatible with the existing OpenPGP protocol for secure email.
your provider before it is decrypted and sent on to the open internet.
# install
......@@ -6,9 +6,7 @@ es:
download_bitmask: Descarga Bitmask
downloads: Descargas
download: Descargar
warning: >
<b>ADVERTENCIA:</b> Bitmask está todavía en fase experimental. Por favor, no uses estas versiones beta
de Bitmask en situaciones en las que un compromiso de tus datos podría ponerte en peligro.
warning_disabled: >
Aunque Bitmask evoluciona rapidamente, es posible que pierdas tus emails usando una version beta.
......@@ -30,7 +28,3 @@ es:
bitmask_vpn_blurb: >
Con [[Bitmask VPN => features#vpn]], todo el tráfico se enruta de forma segura a través de
tu proveedor antes de ser descifrado y enviado a la Internet abierta.
encrypted_email: Correo Electrónico Cifrado
encrypted_email_blurb: >
El [[Mail Cifrado Bitmask => features#email]] es fácil de usar, permaneciendo
compatible con el protocolo OpenPGP existente para correo electrónico seguro.
......@@ -9,8 +9,7 @@ pt:
download: Download
leap: 'LEAP Encryption Access Project'
warning: >
<b>WARNING:</b> O Bitmask ainda é um aplicativo experimental. Favor não usar estes releases betas do Bitmask para situações onde seus dados possam ser colocados em perigo.
warning_disabled: >
E ainda, embora o Bitmask esteja melhorando rapidamente, é possível que talvez você perca seu email ao usar um dos primeiros releases beta.
......@@ -26,6 +25,3 @@ pt:
bitmask_vpn: Bitmask VPN
bitmask_vpn_blurb: >
Com a [[VPN do Bitmask => features#vpn]], todo o seu tráfego é roteado de forma segura pelo seu provedor antes de ser desencriptado e enviado para a internet aberta.
encrypted_email: Email Encriptado
encrypted_email_blurb: >
[[O Email Encriptado do Bitmask => features#email]] é fácil de usar e ainda é compatível com o protocolo OpenPGP existente para emails seguros.
......@@ -9,10 +9,7 @@ ru:
download: Скачать
leap: 'LEAP Encryption Access Project'
warning: >
<b>ВНИМАНИЕ:</b> Bitmask все еще является экспериментальным. Не используйте
эти бета-версии Bitmask для ситуаций, когда компрометация ваших данных
может подвергнуть вас опасности.
warning_disabled: >
Кроме того, несмотря на то, что Bitmask быстро улучшается, возможно, что вы
можете потерять свою электронную почту при использовании ранних бета-версий.
......@@ -35,12 +32,6 @@ ru:
С [[Bitmask VPN => features#vpn]] весь ваш трафик безопасно перенаправляется
через вашего провайдера, прежде чем он расшифровывается и посылается в
открытый интернет.
encrypted_email: Зашифрованная электронная почта
encrypted_email_blurb: >
[[Зашифрованная электронная почта Bitmask => features#email]] проста в
использовании и в то же время обратно совместима с существующим протоколом
OpenPGP для безопасной электронной почты.
# install
......@@ -5,6 +5,8 @@ features
......@@ -16,10 +16,10 @@ function download(platform) {
var link = "install";
switch (platform) {
case "GNU/Linux":
link = "";
link = "";
case "macOS":
link = "";
link = "";
case "Android":
link = "install/android";
......@@ -43,4 +43,4 @@ function platformStr() {
return "Windows";
return "Other";
\ No newline at end of file
- # this is a dummy placeholder file. it can be removed once the pages don't have email information anymore.
......@@ -41,44 +41,6 @@ The provider-specific CA certificates use 4096 bit RSA with SHA256 digest, by de
All TLS connections use PFS ciphers.
h2. Storage - Soledad
The Bitmask application stores its data in [[Soledad =>]], which handles encrypting this data, securely backing it up, and synchronizing it among a user's devices. In Soledad, local storage uses symmetric block encryption of the entire database using a single key. For data stored remotely, each individual document is separately encrypted using a key unique to that document.
Both local storage and remote storage keys are derived from a master "storage secret." This long random storage secret is stored locally on disk, protected by symmetric encryption using a key derived from the user's password (scrypt is used as the key derivation function).
Currently, our scrypt parameters are:
bc. N (CPU/memory cost parameter) = 2^14 = 16384
p (paralelization parameter) = 1
r (length of block mixed by SMix()) = 8
dkLen (length of derived key) = 32 bytes = 256 bits
We are considering using a larger N.
*Local storage*
p((. The block-encrypted local SQLite database uses @AES-256-CBC@ using the first 256 bits of [@storage_secret@]. See and
*Remote storage*
p((. Per-document encryption of documents stored remotely uses symmetric encryption with AES-256-CTR or XSalsa20 cipher using 256 bit keys. The library pycryptopp is used for this. The key and MAC used to encrypt each individual document are derived as follows:
<pre style="margin-left: 2em">
storage_secret_a = first 256 bits of storage secret
storage_secret_b = everything after first 256 bits of storage secret
document_key = hmac(document_id, storage_secret_b)
document_mac = hmac(document_id | document_revision | iv | ciphertext, hmac(document_id, storage_secret_a)
p((. Every document has its own key. The [@document_revision@] in the document MAC prevents a rollback to an old version of the document. HMAC uses SHA256.
p((. Some documents in a user's remote data store are added by the provider, such as in the case of new incoming email. These documents use asymmetric encryption, with each document encrypted using the user's OpenPGP public key. The library we use for this is [[Isis's fork of python-gnupg =>]]. These documents are only temporarily stored this way: as soon as the client sees them, they get unencrypted and re-encrypted using the other methods.
p((. TLS, as above. Soon to be CurveZMQ.
h2. Encrypted Tunnel - OpenVPN
OpenVPN has three settings that control what ciphers it uses (there is a fourth, @--tls-auth@, but we cannot use this in a public multi-user environment). Every provider can easily choose whatever options they want for these. Below are the current defaults that come with the leap_platform.
......@@ -116,36 +78,8 @@ Obfsproxy is optionally used to make VPN traffic not appear as VPN traffic to so
We have chosen the Scramblesuit pluggable transport that uses Uniform Diffie-Hellman for the initial handshake and AES-CTR 256 for application data.
h2. Encrypted Email - OpenPGP
The user's autogenerated key pair uses 4096 bit RSA for the master signing key.
Bitmask will refuse to encrypt to a recipient's public key if the length is 1024 or less.
All keys are stored in Soledad.
Bitmask does not yet support ECC keys.
Bitmask uses GnuPG. The python library we use is [[Isis's fork of python-gnupg =>]].
h2. Secure Updates - TUF
The secure updates are done using [[TUF =>]], they use OpenSSL 4096 RSA keys with pyCrypto. There is three keys involved in the update process (root, targets and timestamp).
* The root key is used to certify the rest of the keys that lives in an offline storage and only gets used once per year to update the certification or in case of rotation of another other key.
* The targets key is used to sign all the updates. This key is in the hands of the release manager and used on every release.
* The timestamp key is used to sing a timestamp file every day, this file is used by the client to prevent an adversary from replaying an out-of-date updates. This key lives online in the platform servers.
h2. Other
h3. OpenSSH
By default, all servers use RSA key host keys instead of ECDSA. If a host has a ECDSA key, the platform will prompt the sysadmin to switch to RSA. In the future, when Curve255219 is better supported, the platform will encourage switching to 25519.
h3. DNSSec
To be written
h3. StartTLS + DANE
To be written
......@@ -41,44 +41,6 @@ Os certificados CA específicos de provedores usam RSA de 4096 bit com digest de
Todas as conexões TLS usan cifras PFS.
h2. Armazenamento - Soledad
A aplicação Bitmask armazena seus próprios dados na [[Soledad =>]], que lida com a encriptação desses dados, fazendo backups seguros, e sincroniza-os entre os dispositivos do usuário. Na Soledad, o armazenamento local utiliza bloco simétrico de encriptação de toda a base de dados usando uma única chave. Para os dados armazenados remotamente, cada documento é encriptado separadamente usando uma chave única para cada um deles.
Tanto as chaves do armazenamento local quanto as do remoto derivam de um "segredo de armazenamento" mestre. Este segredo longo e aleatório é armazenado localmente no disco, protegido por encriptação simétrica usando uma chave derivada da senha de usuário (scrypt é usado como função de derivação da chave).
Atualmente, nossos parâmetros para o scrypt são:
bc. N (CPU/parâmetro de custo de memória) = 2^14 = 16384
p (parâmetro de paralelização) = 1
r (tamanho do bloco misturado pelo SMix()) = 8
dkLen (tamanho da chave derivada) = 32 bytes = 256 bits
Estamos vendo de usar um N maior.
*Armazenamento local*
p((. A base de dados SQLite local encriptada em bloco usa @AES-256-CBC@ usando os primeiros 256 bits do [@segredo de armazenamento@]. Ver and
*Armazenamento remoto*
p((. A encriptação de cada documento no armazenamento remoto usa encriptação simétrica com AES-256-CTR ou cifra XSalsa20 usando chaves de 256 bit. Usamos a biblioteca pycryptopp para isso. A chave e o MAC usados para encriptar cada documento individualmente são derivados da seguinte forma:
<pre style="margin-left: 2em">
storage_secret_a = primeiros 256 bits do segredo de armazenamento
storage_secret_b = tudo que venha depois dos primeiros 256 bits do segredo de armazenamento
document_key = hmac(document_id, storage_secret_b)
document_mac = hmac(document_id | document_revision | iv | ciphertext, hmac(document_id, storage_secret_a)
p((. Cada documento possui sua própria chave. A [@revisão do documento@] no MAC do documento previne a sobreposição de uma antiga versão sobre uma nova. HMAC usa SHA256.
p((. Alguns documentos nos dados remotos de usuário são adicionados pelo provedor, tais como no caso de novos emails. Estes documentos usam encriptação assimétrica, sendo cada documento encriptado usando a chave pública OpenPGP do usuário. Usamos a biblioteca derivada do python-gnupg [[Isis =>]] para isso. Esses documentos são armazenados apenas temporariamente dessa forma: assim que o cliente os tiver visto, eles são desencriptados e re-encriptados usando os outros métodos.
p((. TLS, como acima. Em breve será com CurveZMQ.
h2. Tunel Encriptado - OpenVPN
OpenVPN possui três configurações que controlam quais cifras são usadas (existe uma quarta, @--tls-auth@, mas ainda não podemos usá-la num ambiente público de múltiplos usuários). Cada provedor pode facilmente escolher a opção que quiser. Abaixo estão os padrões atuais que vêm com a plataforma LEAP.
......@@ -128,24 +90,9 @@ O Bitmask ainda não suporta chaves ECC.
O Bitmask usa GnuPG. A biblioteca em python que usamos é a [[ramificação Isis do python-gnupg =>]].
h2. Atualizações de Segurança - TUF
As atualizações de segurança são feitas usando o [[TUF =>]], que usa chaves RSA OpenSSL 4096 com pyCrypto. Existe três chaves envolvidas no processo de atualização (root, targets e timestamp).
* A chave 'root' é usada para certificar o resto das chaves que estão armazenadas offline e é usada somente uma vez por ano para atualizar a certificação ou no caso de mudança de alguma outra chave [key rotation].
* A chave 'targets' é usada para assinar todas as atualizações. Esta chave está nas mãos do gerenciador de lançamentos [release] e é usada a cada nova versão.
* A chave 'timestamp' é usada para assinar um arquivo com data e hora a cada dia. Este arquivo é usada pelo cliente para prevenir que um adversário imponha uma atualização antiga. Esta chave está online nos servidores da plataforma.
h2. Outros
h3. OpenSSH
Por padrão, todos os servidores usam chave RSA para guardar as chaves ao invés de ECDSA. Se um 'host' possui uma chave ECDSA, a plataforma irá sugerir ao 'sysadmin' que mude para RSA. No futuro, quando o Curve255219 for bem suportado, a plataforma instigará a mudar para 25519.
h3. DNSSec
Ainda será escrito.
h3. StartTLS + DANE
Ainda será escrito.
......@@ -41,44 +41,6 @@ h2. Транспорт - TLS
Все TLS-соединения используют шифры PFS.
h2. Хранение - Soledad
Приложение Bitmask хранит свои данные в [[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@]. Смотрите и
*Удаленное хранение*
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)
p((. Каждый документ имеет свой собственный ключ. [@document_revision@] в MAC документа предотвращает откат к старой версии документа. HMAC использует SHA256.
p((. Некоторые документы в удаленном хранилище данных пользователя добавляются провайдером, например, в случае нового входящего сообщения электронной почты. Эти документы используют асимметричное шифрование, с каждым документом, зашифрованным с использованием пользовательского открытого OpenPGP-ключа. Библиотекой, которую мы используем для этого, является [[форк Айсис python-gnupg =>]]. Эти документы лишь временно хранятся пободным образом: как только клиент увидит их, они остаются в незашифрованном виде и повторно шифруются с использованием других методов.
p((. TLS, как описано выше. Скоро будет CurveZMQ.
h2. Зашифрованный туннель - OpenVPN
OpenVPN имеет три параметра, которые управляют тем, какие шифры он использует (есть и четвертый, @--tls-auth@, но мы не можем его использовать в публичном многопользовательском окружении). Каждый провайдер может легко выбрать любые опции по своему желанию. Ниже приведены текущие значения по умолчанию, которые идут с leap_platform.
......@@ -127,24 +89,8 @@ Bitmask пока не поддерживает ECC ключи.
Bitmask использует GnuPG. Библиотекой python, которую мы используем, является [[форк Айсис python-gnupg =>]].
h2. Безопасные обновления - TUF
Безопасные обновления осуществляется с помощью [[TUF =>]], они используют 4096-битные RSA-ключи OpenSSL с pyCrypto. Существует три ключа, участвующие в процессе обновления (корневой, целевой и временной метки).
* Корневой ключ используется для подтверждения остальных ключей, которые живут в автономном хранилище и используются только один раз в год, чтобы обновить сертификацию или в случае ротации другого ключа.
* Целевой ключ используется для подписи всех обновлений. Этот ключ находится в руках менеджера версий и используются для каждой версии приложения.
* Ключ временной метки используется для подписи временной метки файла каждый день, этот файл используется клиентом, чтобы предотвратить противника от воспроизведения устаревших обновлений. Этот ключ живет онлайн на серверах платформы.
h2. Разное
h3. OpenSSH
По умолчанию, все серверы используют RSA-ключи хостов вместо ECDSA. Если у хоста ECDSA-ключ, платформа предложит системному администратору перейти на RSA. В будущем, когда Curve255219 будет лучше поддерживаться, платформа будем поощрять переход на 25519.
h3. DNSSec
Будет написано.
h3. StartTLS + DANE
Будет написано.
\ No newline at end of file
@title = "Bitmask Email Details"
@nav_title = "Email"
h2. How to use it
# Download and install the Bitmask application.
# Run the Bitmask application to log in or sign up with the service provider.
# Configure the user's mail client to connect to the local IMAP and SMTP services provided by the Bitmask application. In case of the Thunderbird email client, this configuration is semi-automatic.
The Bitmask application acts as a local "proxy" between the service provider and the mail client. It handles all the encryption and data synchronization.
h2. Benefits of Bitmask Email
Email features include:
* Bitmask encrypted email is easy to use while still being backward compatible with the existing protocols for secure email (currently OpenPGP, with additional support for S/MIME coming in the future).
* Unless already encrypted, all incoming email is automatically encrypted to the recipient on the server before being stored, so only you can read it (including meta-data). The server is able to read unencrypted incoming email for a brief moment, but no email is ever stored in a manner that the provider can read it.
* Whenever possible, outgoing email is automatically encrypted so that only the recipients can read it (if a valid public keys can be discovered for the recipients). This encryption takes place on the user's device.
* Public keys are [[automatically discovered and validated =>]], allowing you to have confidence your communication is confidential and with the correct person (without the headache of typical key signing).
* The user does not need to worry about key management. Their keys are always kept up-to-date on every device.
* The user is able to use any email client of their choice (e.g. Thunderbird, Apple Mail, Outlook).
* When disconnected from the internet, the user can still interact with a local copy of all their mail. When the internet connect is available again, all their changes will get synchronized with the server storage and to their other devices.
General security features of the Bitmask application include:
* All stored data is encrypted, including local data and cloud backups. This encryption always [[takes place on the user's device =>]], so the service provider cannot read your stored data.
* Although you specify a username and password to login, your [[password is never communicated to the provider => ]].
* If you download the Bitmask application from, your service provider cannot add a backdoor to compromise your security.
* The Bitmask application is always kept up to date with the latest security patches (coming soon).
h2. How it works
NOTE: technical jargon ahead.
h3. Receiving mail
*Message reception and storage*
# An incoming email is received by the provider's MX (mail exchange) server.
# The MX server re-encrypts the incoming email using the public key of the recipient user. This happens even if the email is already encrypted so that the metadata is not stored in a way that anyone but the recipient may access it.
# The user logs in to their Bitmask client:
## The client unlocks the locally encrypted storage database.
## The client asks the server if there is any new data and begins a synchronization process.
# The client downloads the new incoming message.
# The message is decrypted using the user's private key, and then stored in the locally encrypted storage database.
# The local storage database is synchronized with the provider's cloud storage service. To be stored on the server, a unique key generate for each document in the local storage database before it is sent to the server (see [[Soledad =>]] for more details).
# If the user has the Bitmask client running on other devices, then these clients will notice the change to the storage database and re-synchronize.
*Message validation*
# If the received message was signed, the client will attempt to validate the signature.
# If the sender's public key is not already known to the client's key manager, the client will attempt to acquire it:
## If the email was sent from a LEAP-powered provider, the key will be anonymously requested from the sender's provider.
## If the public key is attached to the email, it will be imported.
## If the email contains an OpenPGP header, the client will download the public key from the specified source.
## If all else fails, the client will search OpenPGP keyservers for a key that matches the fingerprint on the signature.
# Once acquire, the sender's public key is stored in the locally encrypted and synchronized storage database.
# Public keys are updated using the rules for [[transitional key validation =>]].
*Reading the message*
The user can read the email in one of two ways:
# By connecting a mail user agent, such as Thunderbird, to the local IMAP server created by Bitmask.
# By launching the built-in mail app (in progress, not part of current stable releases).
h3. Sending mail
*Composing the message*
The user can compose an email in one of two ways:
# By connecting a mail user agent, such as Thunderbird, to the local SMTP server created by Bitmask.
# By launching the built-in mail app (in progress, not part of current stable releases).
*Encrypting the message*
# The client's key manager acquires the public key for each recipient, if not already stored.
## The key manager tries whatever means it can. Currently, this includes anonymously contacting the recipient's provider and searching OpenPGP keyservers, and will include DANE/DNSSec and CONIKS in the future.
## Discovered keys are stored in the locally encrypted storage database, and synchronized among the user's devices.
# The message is duplicated into separate copies, once for each recipient, and each copy is encrypted for one recipient and relayed for delivery.
*Relaying the message*
# The Bitmask client connects to MX server of the sender's provider. This connection is authenticated using a X.509 client certificate stored by the client, a separate one for each sender email address.
# If the client certificate matches the "From" field of the email, then the email is DKIM signed and relayed to the destination MX server.
In the future (currently being developed):
# The Bitmask client checks to see if the recipient supports delivery via Panoramix (anonymous mix network).
** If supported, the client checks to see if the sender has permission to deliver anonymously to the recipient (via special delivery keys).
** If delivery permission is granted, the email message will be directly delivered to the recipient's provider using Panoramix. In this case, the sender's provider will never see the email.
# If Panoramix is not available, the Bitmask client connects to MX server of the sender's provider. This connection is authenticated using a X.509 client certificate stored by the client, a separate one for each sender email address.
# If the client certificate matches the "From" field of the email, then the email is DKIM signed and relayed to the destination MX server.
h2. Limitations
* Missing features: the initial release will not support email aliases, email forwarding, or multiple accounts simultaneously.
* You cannot use Bitmask email from a web browser. It requires the Bitmask application to run.
* The Bitmask application currently requires a compatible provider. We have plans in the future to semi-support commercial providers like gmail. This would provide the user with much less protection than when they use a Bitmask provider, but will still greatly enhance their email security.
* Because all data is synced, if a user has one of their devices compromised, then the attacker has access to all their data. This is obvious, but worth mentioning.
* The user must keep a complete copy of their entire email storage on every device they use. In the future, we plan to support partial syncing for mobile devices.
* We do not plan to support key revocation. Instead, we plan to migrate to shorter and shorter lived keys, as practical.
* With the current implementation, a compromised or nefarious service provider can still gather incoming messages that are not encrypted and meta-data routing information. For the future, we are working on a project called Panoramix that will allow for message routing that is anonymous and exposes zero meta-data information to the service provider (so long as both sender and recipient support Panoramix).
* OpenPGP and S/MIME message encryption has no forward secrecy, although we do use PFS ciphers for StartTLS relay. In the future, we hope to add additional forms of message encryption, such as Axolotl.
* With our current scheme of automatic key validation, there is a chance that a provider could endorse a bogus public key for a short period of time such that the holder of the correct key does not notice the subterfuge. In the future, we hope to add compatibility with CONIKS, which supports an cryptographic append-only log of all key endorsements and allows for strong auditing of these past endorsements.
For more details, please see [[known limitations =>]].
h2. Related projects
There are numerous other projects working on the next generation of secure email. In our view, it is not possible to do secure email alone, it requires new protocols for handing key validation, secure transport, and meta-data protection. We will continue our efforts to reach out to these groups to explore areas of cooperation.
For a detailed report on all the related projects, see
h2. Long term benefits when two Bitmask compatible providers talk to one another
One of the fundamental problems with email is that the meta-data routing information is exposed as cleartext. Encrypting a message with OpenPGP or S/MIME does nothing to help with this.
The email protocol does support an optional method of securely relaying messages using TLS to encrypt the connection. This method, called StartTLS, is easily undermined by attackers and there is no good way for email providers to validate the authenticity of other servers (without relying on the problematic CA certificate authority system).
For now, Bitmask addresses these problems with two enhancements when two compatible providers are talking to one another:
* When relaying email, server keys are discovered and validated using DNSSEC/DANE.
* For these providers, TLS with validated keys becomes required for all communication.
This approach is effective against external network observers, but does not protect the meta-data from the service providers themselves. Also, it does not, by itself, protect against more advanced attacks involving timing and traffic analysis.
In the long term, we plan to adopt one of several different schemes for [[securely routing meta-data =>]].
@title = "Detalhes sobre o Email Bitmask"
@nav_title = "Email"
h2. Como usar
# Baixe e instale o Bitmask.
# Rode o Bitmask para logar ou criar uma conta num provedor de serviços.
# Configure o cliente de email de usuário para se conectar aos serviços de IMAP local e SMTP fornecido pelo Bitmask. No caso do cliente de email Thunderbird, esta configuração é semiautomática.
O Bitmask age como um "proxy" local entre o provedor de serviço e o cliente de email. Ele lida com toda a parte de encriptação e sincronização de dados.
h2. Benefícios do Email Bitmask
Como funcionalidades do email temos:
* O email encriptado Bitmask é fácil de usar ao mesmo tempo que continua compatível com os protocolos existente para email seguros (atualmente OpenPGP, e em breve com suporte adicional para S/MIME).
* Ao menos que já estejam encriptados, todos os emails novos são automaticamente encriptados para o destinatário no servidor antes de ser armazenado, para que só você consiga lê-los (inclusive metadados). O servidor é capaz de ler emails não encriptados por um breve momento, mas jamais um email é armazenado de forma que o servidor possa lê-lo.
* Sempre que possível, emails enviados são automaticamente encriptados de forma que apenas o destinatário possa lê-los (se uma chave pública for encontrada para esse destinatário). Esta encriptação acontece no aparelho do usuário.
* As chaves públicas são [[automaticamente encontradas e validadas =>]], dando-lhe a confiança de que suas comunicações são confidenciais e enviadas para a pessoa certa (sem a dor de cabeça de fazer a assinatura com chave).
* O usuário não precisa se preocupar com o gerenciamento de chaves. Suas chaves sempre estão atualizadas em cada aparelho.
* O usuário pode usar qualquer cliente de email (e.g. Thunderbird, Apple Mail, Outlook).
* Quando desconectar da internet, o usuário ainda consegue interagir com sua cópia local de todos os seus emails. Quando uma conexão estiver disponível novamente, todas as mudanças são sincronizadas com o que foi armazenado no servidor e nos seus outros aparelhos.
Características gerais de segurança do Bitmask:
* Todos os dados armazenados são encriptados, incluindo dados locais e backups na nuvem. Esta encriptação sempre [[acontece no aparelho do usuário =>]], para que o provedor de serviço não consiga ler seus dados armazenados.
* Embora você especifique um nome de usuário e uma senha para logar, sua [[senha nunca vai para o provedor => ]].
* Se você baixar o Bitmask de, seu provedor de serviço não poderá colocar uma backdoor que comprometa sua segurança.
* O Bitmask está sempre atualizado com os últimos correções (patches) de segurança (em breve).
h2. Como funciona
NOTE: jargões técnicos à frente.
h3. Recebendo emails
*Recebimento e armazenamento de mensagens*
# O servidos MX (mail exchange) do provedor recebe um email.
# O servidor MX re-encripta o email recebido usando a chave pública do destinatário. Isso acontece mesmo que o email já esteja encriptado para que o metadado não seja guardado visível para ninguém além do destinatário.
# O usuário loga no seu cliente Bitmask:
## O cliente desbloqueia a base de dados armazenada encriptada localmente.
## O cliente pergunta ao servidor se há algum dado novo e começa o processo de sincronização.
# O cliente baixa as novas mensagens.
# A mensagem é desencriptada usando a chave privada do usuário e, em seguida, é armazenada na base da dados encriptada localmente.
# A base de dados local é sincronizada com o serviço de armazenamento na nuvem do provedor. Para ser armazenada no servidor, uma chave única é gerada para cada documento na base de dados local antes que seja enviada para o servidor (veja [[Soledad =>]] para mais detalhes).
# Se o usuário está com o cliente Bitmask rodando em outros aparelhos, então estes clientes serão notificados que houve uma mudança na base de dados e re-sincronizados.
*Validação da mensagem*
# Se a mensagem recebida foi assinada, o cliente tentará validar a assinatura.
# Se a chave pública do remetente ainda não é conhecida pelo gerenciador de chaves do cliente, o cliente tentará adquiri-la:
## Se o email foi enviado por um provedor alimentado pelo LEAP, a chave será requisitada anonimamente ao provedor do remetente.
## Se a chave pública veio anexada ao email, ela será importada.
## Se o email contém um cabeçalho OpenPGP, o cliente baixará a chave pública da fonte especificada no cabeçalho.
## Se tudo isso falhar, o cliente irá procurar nos servidores de chaves OpenPGP por uma chave que combine com a impressão digital da assinatura.
# Uma vez adquirida, a chave pública do remetente é armazenada na base de dados localmente encriptada e sincronizada.
# As chaves públicas são atualizadas usando as regras para [[validação de chave transicional =>]].
*Lendo a mensagem*
O usuário pode ler o email em uma dessas duas maneitas:
# Conectando um cliente de email, como o Thunderbird, ao servidor IMAP local criado pelo Bitmask.
# Rodando o aplicativo interno do Bitmask (ainda em andamento; não faz parte das versões estáveis atuais).
h3. Enviando emails
*Escrevendo uma mensagem*
O usuário pode escrever um email de uma das seguintes maneiras::
# Conectando um agente de usuário de email, como o Thunderbird, ao servidor local SMPT criado pelo Bitmask.
# Lançando a aplicação de correio embutida (opção em andamento, ainda não faz parte da versão estável atual).
*Encriptando uma mensagem*
# O gerenciador de chaves do cliente adquire a chave pública de cada destinatário, se ainda não estiver armazenada.
## O gerenciador de chaves vai tentar de todas as formas. Atualmente, isso significa contatar anonimamente o provedor do destinatário e procurar nos servidores de chave OpenPGP, e, no futuro, no servidores DANE/DNSSec e CONIKS.
## As chaves encontradas são armazenadas na base de dados de armazenamento encriptada localmente, e sincronizada com os outros dispositivos do usuário.
# A mensagem é duplicada em cópias separadas, uma para cada destinatário, e cada cópia é encriptada para um destinatário e encaminhada para entrega.
*Entregando a mensagem*
# O cliente Bitmask se conecta ao servidor MX do provedor do remetente. Esta conexão é autenticada usando um certificado de cliente X.509 armazenado pelo cliente, um para cada um do endereços de email de envio.
# Se o certificado de cliente combina com o campo "De:" do email, então o email é assinado com DKIM e enviado para o servidor MX de destino.
No futuro (em desenvolvimento):
# O cliente Bitmask verifica se o destinatário suporta entrega via Panoramix (rede mista anônima).
** Se suportar, o cliente verifica se o remetente tem permissão para fazer a entrega anonimamente para o destinatário (via chaves especiais de entrega).
** Se a permissão de entrega é confirmada, a mensagem será entregue diretamente para o provedor do destinatário usando Panoramix. Neste caso, o provedor do remetente nunca verá o email.
# Se o Panoramix não estiver disponível, o cliente Bitmask se conecta com o servidor MX do provedor do remetente. esta conexão é autenticada usando um certificado de cliente X.509 armazenado pelo cliente, um para cada um dos endereços de envio de email.
# Se o certificado de cliente combina com o campo "De:" do email, então o email é assinado com DKIM e enviado para o servidor MX de destino.
h2. Limitações
* Funcionalidades em falta: a versão inicial não suportará aliases de email, encaminhamento de mensagem ou múltiplas contas simultaneamente.
* Você não terá com usar o email Bitmask de um navegador web. O email requer o aplicativo Bitmask para rodar.
* Atualmente, o aplicativo Bitmask requer um provedor compatível. Temos planos de suportar parcialmente provedores comerciais como gmail no futuro. Isso fará com que o usuário fique menos protegido do que se estivesse usando um provedor Bitmask, mas ainda assim iria melhorar bastante a segurança dos seus email.
* Dado que todos os dados são sincronizados, se um usuário tiver um de seus dispositivos comprometidos, então um atacante terá acesso a todos os seus dados. Isto é óbvio, mas vale lembrar.
* O usuário precisa manter uma cópia completa de todos os seus email em cada um dos seus dispositivos. No futuro, planejamos que se possa fazer sincronizações parciais para dispositivos móveis.
* Não estamos planejando a revogação de chaves. Ao invés disso, queremos migrar para chaves temporárias o mais curtas possível.
* Na implementação atual, um provedor de serviços comprometido ou malicioso ainda pode recolher informações que não são encriptadas e metadados sobre o roteamento. Para o futuro, estamos trabalhando em um projeto chamado Panoramix que permitirá que o roteamento da mensagem seja anônimo e que não seja exposto nenhum metadado ao provedor de serviço (somente se o remetente e o destinatário suportarem o Panoramix).
* A encriptação de mensagens por OpenPGP e S/MIME não possuem sigilo futuro (forward secrecy), embora usemos cifras PFS para retransmissão StartTLS. No futuro, esperamos adicionar outras formas de encriptação de mensagem, como o Axolotl.
* Como o nosso esquema atual de validação de chaves, é possível que um provedor possa aceitar uma chave pública falsa por um período de tempo tal que o titular da chave correta não perceba a tramoia. No futuro, esperamos adicionar uma compatibilidade com CONIKS, a qual suporta um histórico de anexação em contínua (cryptographic append-only log) de todas as aceitações de chaves e permita uma auditoria severa das aceitações passadas.
Para mais detalhes, veja por favor as [[limitações conhecidas =>]].
h2. Projetos relacionados
Existem vários outros projetos que trabalham em cima da nova geração dos emails seguros. Na nossa visão, não é possível tornar um email seguro sozinho. Isso requer novos protocolas para lidar com validação de chaves, transporte seguro, e proteção de metadados. Daremos continuidade em nossos esforços para fazer contato com estes grupos e assim buscar áreas de cooperação.
Para um relatório detalhado de todos os projetos afins, veja
@title = "Подробности электронной почты Bitmask"
@nav_title = "Электронная почта"
h2. Как этим пользоваться
# Скачайте и установите приложение Bitmask.
# Запустите приложение Bitmask, чтобы авторизоваться или зарегистрироваться на сервис-провайдере.
# Настройте почтовый клиент пользователя для соединения с локальными сервисами IMAP и SMTP, предоставленными приложением Bitmask. В случае работы с почтовым клиентом Thunderbird, эта конфигурация будет полуавтоматической.
Приложение Bitmask выступает в качестве локального "прокси" между сервис-провайдером и почтовым клиентом. Оно обрабатывает все шифрование и синхронизацию данных.
h2. Преимущества электронной почты Bitmask
Возможности электронной почты включают:
* Зашифрованная почта Bitmask проста в использовании и в то же время обратно совместима с существующими протоколами для безопасной электронной почты (в настоящее время это OpenPGP, с дополнительной поддержкой для S/MIME в будущем).
* Все входящие сообщения, даже если они еще не зашифрованы, автоматически шифруются получателю на сервере перед сохранением, так что только вы можете прочитать их (в том числе мета-данные). Сервер может прочитать незашифрованную входящую почту на мгновение, но никакая почта не хранится когда-либо таким образом, что провайдер может прочесть ее.
* Всякий раз, когда это возможно, исходящая почта автоматически шифруется таким образом, что только получатели могут ее прочесть (если действующие открытые ключи могут быть обнаружены для получателей). Это шифрование происходит на устройстве пользователя.
* Открытые ключи [[автоматически обнаруживаются и подтверждаются =>]], позволяя вам быть уверенными, что ваша коммуникация является конфиденциальной и с соответствующим человеком (без головной боли типичной подписи ключей)
* Пользователю не нужно беспокоиться об управлении ключами. Их ключи постоянно актуальны на каждом устройстве.
* Пользователь может использовать любой почтовый клиент по своему усмотрению (напр., Thunderbird, Apple Mail, Outlook).
* После отключения от интернета пользователь может по-прежнему взаимодействовать с локальной копией всей своей почты. Когда интернет-соединение снова будет доступно, все изменения синхронизируются с сервером хранения и другими устройствами пользователя.