Как пересылка электронной почты защищает вашу конфиденциальность, домен и безопасность: технический анализ

Предисловие
В современном цифровом мире конфиденциальность электронной почты стала как никогда важной. В связи с утечками данных, проблемами слежки и таргетированной рекламой, основанной на содержании электронных писем, пользователи всё чаще ищут решения, которые обеспечивают их конфиденциальность. В Forward Email мы создали наш сервис с нуля, сделав конфиденциальность краеугольным камнем нашей архитектуры. В этой публикации блога рассматриваются технические реализации, которые делают наш сервис одним из самых ориентированных на конфиденциальность решений для пересылки электронной почты.
Философия конфиденциальности пересылки электронных писем
Прежде чем углубляться в технические детали, важно понять нашу основополагающую философию конфиденциальности: ваши письма принадлежат вам и только вам. Этот принцип лежит в основе всех принимаемых нами технических решений, от организации пересылки писем до внедрения шифрования.
В отличие от многих поставщиков услуг электронной почты, которые сканируют ваши сообщения в рекламных целях или хранят их неограниченное время на своих серверах, Forward Email работает по совершенно иному подходу:
- Только обработка в памяти — Мы не сохраняем пересланные письма на диск.
- Отсутствие хранения метаданных — Мы не храним записи о том, кто кому отправляет письма.
- 100% открытый исходный код — Вся наша кодовая база прозрачна и доступна для аудита.
- Сквозное шифрование — Мы поддерживаем OpenPGP для по-настоящему конфиденциальной связи.
Реализация SQLite: надежность и переносимость ваших данных
Одним из важнейших преимуществ Forward Email в плане конфиденциальности является наша тщательно продуманная реализация SQLite. Мы доработали SQLite, используя специальные настройки PRAGMA и Ведение журнала с опережающей записью (WAL), чтобы обеспечить как надежность, так и переносимость ваших данных, поддерживая при этом высочайшие стандарты конфиденциальности и безопасности.
Вот как мы реализовали SQLite с ChaCha20-Poly1305 в качестве шифра для квантово-устойчивого шифрования:
// Initialize the database with better-sqlite3-multiple-ciphers
const Database = require('better-sqlite3-multiple-ciphers');
// Set up encryption with ChaCha20-Poly1305 cipher
db.pragma(`key="${decrypt(session.user.password)}"`);
// Enable Write-Ahead Logging for durability and performance
db.pragma('journal_mode=WAL');
// Overwrite deleted content with zeros for privacy
db.pragma('secure_delete=ON');
// Enable auto vacuum for efficient storage management
db.pragma('auto_vacuum=FULL');
// Set busy timeout for handling concurrent access
db.pragma(`busy_timeout=${config.busyTimeout}`);
// Optimize synchronization for reliability
db.pragma('synchronous=NORMAL');
// Enable foreign key constraints for data integrity
db.pragma('foreign_keys=ON');
// Set UTF-8 encoding for international character support
db.pragma(`encoding='UTF-8'`);
// Optimize database performance
db.pragma('optimize=0x10002;');
// Use disk for temporary storage instead of memory
db.pragma('temp_store=1;');
Такая реализация гарантирует не только безопасность, но и портативность ваших данных. Вы можете в любой момент забрать свою электронную почту с собой, экспортировав её в форматы MBOX, EML или SQLite. А когда вы захотите удалить данные, они будут полностью удалены — мы просто удалим файлы с диска, а не будем выполнять SQL-команды DELETE ROW, которые могут оставить следы в базе данных.
Аспект квантового шифрования нашей реализации использует ChaCha20-Poly1305 в качестве шифра при инициализации базы данных, обеспечивая надежную защиту как от текущих, так и от будущих угроз конфиденциальности ваших данных.
Интеллектуальная очередь и механизм повторных попыток: обеспечение доставки электронной почты
Вместо того чтобы концентрироваться исключительно на обработке заголовков, мы реализовали сложный механизм интеллектуальной очереди и повторных попыток с помощью метода getBounceInfo
. Эта система гарантирует максимальную вероятность доставки ваших писем, даже при возникновении временных проблем.
function getBounceInfo(err) {
// Initialize bounce info with default values
const bounceInfo = {
action: err.responseCode >= 500 ? 'reject' : 'defer',
category: err.category || 'other',
message: err.message,
code: err.responseCode || err.code
};
// Analyze error response to determine appropriate action
const response = err.response || err.message || '';
// Determine if the issue is temporary or permanent
if (response.includes('temporarily deferred') ||
response.includes('try again later')) {
bounceInfo.action = 'defer';
}
// Categorize the bounce reason for appropriate handling
if (response.includes('mailbox full')) {
bounceInfo.category = 'full';
bounceInfo.action = 'defer';
} else if (response.includes('user unknown')) {
bounceInfo.category = 'unknown';
}
return bounceInfo;
}
Note
Это фрагмент метода getBounceInfo
, а не его полная реализация. Полный код можно посмотреть на странице GitHub.
Мы повторяем попытки доставки почты в течение 5 дней, что соответствует отраслевым стандартам, таким как [Постфикс](https://en.wikipedia.org/wiki/Postfix_\(software\), давая временным проблемам время на решение. Такой подход значительно повышает скорость доставки, сохраняя при этом конфиденциальность.
Аналогично, мы также редактируем содержимое исходящих SMTP-писем после успешной доставки. Срок хранения по умолчанию установлен в нашей системе хранения и составляет 30 дней. Вы можете изменить его в расширенных настройках вашего домена. По истечении этого срока содержимое письма автоматически редактируется и удаляется, оставляя только текст-заполнитель:
This message was successfully sent. It has been redacted and purged for your security and privacy. If you would like to increase your message retention time, please go to the Advanced Settings page for your domain.
Такой подход гарантирует, что отправленные вами электронные письма не будут храниться бесконечно, что снижает риск утечки данных или несанкционированного доступа к вашим сообщениям.
Неограниченные ресурсы с интеллектуальным ограничением скорости
Хотя Forward Email предлагает неограниченное количество доменов и псевдонимов, мы внедрили интеллектуальное ограничение скорости для защиты нашей системы от злоупотреблений и обеспечения справедливого использования для всех пользователей. Например, некорпоративные клиенты могут создавать до 50 и более псевдонимов в день, что предотвращает переполнение базы данных спамом и позволяет нашим функциям защиты от злоупотреблений в режиме реального времени эффективно работать.
// Rate limiter implementation
const rateLimiter = new RateLimiter({
// Configuration settings
});
// Check rate limits before processing
const limit = await rateLimiter.get({
key: `domain:${domain.id}`,
duration: ms('1d')
});
// Apply appropriate action based on limit status
if (limit.remaining <= 0) {
// Handle rate limit exceeded
}
Такой сбалансированный подход дает вам возможность создавать столько адресов электронной почты, сколько необходимо для комплексного управления конфиденциальностью, сохраняя при этом целостность и производительность нашего сервиса для всех пользователей.
Шифрование в изолированной среде для повышения безопасности
Наш уникальный подход к изолированному шифрованию обеспечивает критически важное преимущество в безопасности, которое многие пользователи упускают из виду при выборе почтового сервиса. Давайте разберёмся, почему так важна изоляция данных, особенно электронной почты.
Такие сервисы, как Gmail и Proton, скорее всего, используют общий реляционные базы данных, что создаёт фундаментальную уязвимость безопасности. В среде с общей базой данных, если кто-то получает доступ к данным одного пользователя, у него потенциально появляется возможность получить доступ и к данным других пользователей. Это связано с тем, что все пользовательские данные находятся в одних и тех же таблицах базы данных, разделённые только идентификаторами пользователей или аналогичными идентификаторами.
Пересылка электронной почты использует принципиально иной подход с нашим изолированным шифрованием:
- Полная изоляция: данные каждого пользователя хранятся в отдельном зашифрованном файле базы данных SQLite, полностью изолированном от данных других пользователей.
- Независимые ключи шифрования: каждая база данных шифруется собственным уникальным ключом, полученным из пароля пользователя.
- Отсутствие общего хранилища: в отличие от реляционных баз данных, где адреса электронной почты всех пользователей могут находиться в одной таблице «emails», наш подход гарантирует отсутствие смешивания данных.
- Глубокая защита: даже если база данных одного пользователя будет скомпрометирована, это не предоставит доступ к данным другого пользователя.
Такой подход с изолированной средой аналогичен размещению электронной почты в отдельном физическом хранилище, а не в общем хранилище с внутренними разделителями. Это фундаментальное архитектурное отличие, которое значительно повышает вашу конфиденциальность и безопасность.
Обработка электронной почты в памяти: отсутствие дискового хранилища для максимальной конфиденциальности
В рамках нашей услуги пересылки электронной почты мы обрабатываем письма исключительно в оперативной памяти и никогда не записываем их на диски или в базы данных. Такой подход обеспечивает непревзойденную защиту от слежки и сбора метаданных.
Вот упрощенный взгляд на то, как работает наша обработка электронной почты:
async function onData(stream, _session, fn) {
// Store clone of session since it gets modified/destroyed
const session = JSON.parse(safeStringify(_session));
try {
// Process the email stream in memory
const messageSplitter = new MessageSplitter({
maxBytes: MAX_BYTES
});
stream.pipe(messageSplitter);
const body = await getStream.buffer(messageSplitter);
const { headers } = messageSplitter;
// Update session object with useful debug info for error logs
await updateSession.call(this, body, headers, session);
// Process the email without storing to disk
// [Processing code omitted for brevity]
// Return success without persisting email data
fn();
} catch (err) {
// Handle errors without storing sensitive information
fn(err);
}
}
Такой подход означает, что даже если наши серверы будут скомпрометированы, злоумышленники не смогут получить доступ к историческим данным электронной почты. Ваши письма просто проходят через нашу систему и немедленно пересылаются по назначению, не оставляя следов. Этот подход к пересылке электронной почты без регистрации имеет основополагающее значение для защиты ваших сообщений от слежки.
Сквозное шифрование с OpenPGP для полной конфиденциальности
Для пользователей, которым требуется максимальная защита конфиденциальности от слежки за электронной почтой, мы поддерживаем OpenPGP для сквозного шифрования. В отличие от многих почтовых провайдеров, которым требуются проприетарные мосты или приложения, наша реализация работает со стандартными почтовыми клиентами, делая безопасную коммуникацию доступной каждому.
Вот как мы реализуем шифрование OpenPGP:
async function encryptMessage(pubKeyArmored, raw, isArmored = true) {
// [Initial validation code omitted for brevity]
// Read the public key
const pubKey = isArmored
? await openpgp.readKey({
armoredKey: tools.prepareArmoredPubKey(pubKeyArmored),
config: { tolerant: true }
})
: pubKeyArmored;
if (!pubKey) throw new TypeError('Public key does not exist');
// Perform the actual encryption using OpenPGP
const ciphertext = await openpgp.encrypt({
message: await openpgp.createMessage({
binary: Buffer.concat([Buffer.from(bodyHeaders + '\r\n\r\n'), body])
}),
encryptionKeys: pubKey,
format: 'armored',
config: { minRSABits: 1024 }
});
// Format the encrypted message as a proper MIME message
// [MIME formatting code omitted for brevity]
return Buffer.concat([headers, breaker, Buffer.from(text)]);
}
Такая реализация гарантирует, что ваши электронные письма шифруются до того, как они покинут ваше устройство, и могут быть расшифрованы только тем, кому они предназначены, что позволяет сохранить конфиденциальность ваших сообщений даже от нас. Это крайне важно для защиты конфиденциальной переписки от несанкционированного доступа и слежки.
Многоуровневая защита контента для комплексной безопасности
Функция пересылки электронной почты предлагает несколько уровней защиты контента, которые включены по умолчанию для обеспечения комплексной защиты от различных угроз:
- Защита от контента для взрослых — отфильтровывает нежелательный контент без ущерба для конфиденциальности.
- Защита Фишинг — блокирует попытки кражи ваших данных, сохраняя анонимность.
- Защита исполняемых файлов — предотвращает потенциально опасные вложения без сканирования контента.
- Защита Вирус — проверяет на наличие вредоносных программ, используя методы сохранения конфиденциальности.
В отличие от многих провайдеров, предлагающих эти функции по желанию, мы сделали их доступными по умолчанию, гарантируя, что все пользователи будут пользоваться этими защитными функциями по умолчанию. Такой подход отражает нашу приверженность принципам конфиденциальности и безопасности, обеспечивая баланс, которого многим почтовым сервисам не удается достичь.
Чем мы отличаемся от других почтовых сервисов: техническое преимущество конфиденциальности
При сравнении Forward Email с другими почтовыми сервисами можно выделить несколько ключевых технических отличий, подчеркивающих наш подход, ориентированный прежде всего на конфиденциальность:
Прозрачность открытого исходного кода для проверяемой конфиденциальности
Хотя многие почтовые сервисы заявляют об открытом исходном коде, они часто держат свой бэкенд-код закрытым. Forward Email полностью находится в состоянии с открытым исходным кодом, включая как код фронтенда, так и бэкенда. Такая прозрачность обеспечивает независимый аудит безопасности всех компонентов, гарантируя, что наши заявления о конфиденциальности могут быть проверены любым пользователем.
Отсутствие привязки к поставщику для конфиденциальности без компромиссов
Многие почтовые провайдеры, ориентированные на конфиденциальность, требуют использования их собственных приложений или сервисов. Функция пересылки почты работает с любым стандартным почтовым клиентом по протоколам IMAP, POP3 и SMTP, предоставляя вам свободу выбора предпочитаемого почтового клиента без ущерба для конфиденциальности.
Изолированные данные для настоящей изоляции
В отличие от сервисов, использующих общие базы данных, где данные всех пользователей объединены, наш подход «песочницы» обеспечивает полную изоляцию данных каждого пользователя. Это фундаментальное архитектурное отличие обеспечивает значительно более высокие гарантии конфиденциальности, чем у большинства почтовых сервисов.
Переносимость и контроль данных
Мы считаем, что ваши данные принадлежат вам, поэтому мы упрощаем экспорт ваших писем в стандартных форматах (MBOX, EML, SQLite) и полное удаление ваших данных, когда вы этого захотите. Такой уровень контроля редко встречается у провайдеров электронной почты, но он необходим для обеспечения полной конфиденциальности.
Технические проблемы пересылки электронной почты с приоритетом конфиденциальности
Создание сервиса электронной почты, ориентированного на конфиденциальность, сопряжено со значительными техническими трудностями. Вот некоторые из препятствий, которые нам удалось преодолеть:
Управление памятью для обработки электронной почты без регистрации
Обработка электронных писем в оперативной памяти без использования дискового хранилища требует тщательного управления памятью для эффективной обработки больших объёмов почтового трафика. Мы внедрили передовые методы оптимизации памяти, чтобы обеспечить надёжную работу без ущерба для нашей политики отказа от хранения данных, которая является важнейшим компонентом нашей стратегии защиты конфиденциальности.
Обнаружение спама без анализа контента для фильтрации с сохранением конфиденциальности
Большинство систем обнаружения спам основаны на анализе содержимого электронных писем, что противоречит нашим принципам конфиденциальности. Мы разработали методы выявления спам-схем без чтения содержимого ваших писем, обеспечивая баланс между конфиденциальностью и удобством использования, что позволяет сохранить конфиденциальность ваших сообщений.
Сохранение совместимости с принципом «Конфиденциальность прежде всего»
Обеспечение совместимости со всеми почтовыми клиентами и реализация расширенных функций конфиденциальности потребовали креативных инженерных решений. Наша команда неустанно работала над обеспечением полной конфиденциальности, чтобы вам не пришлось выбирать между удобством и безопасностью при защите электронной почты.
Рекомендации по обеспечению конфиденциальности для пользователей, пересылающих электронную почту
Чтобы максимально защититься от слежки за электронной почтой и обеспечить максимальную конфиденциальность при использовании пересылки электронной почты, мы рекомендуем следующие рекомендации:
- Используйте уникальные псевдонимы для разных сервисов. Создайте отдельный псевдоним электронной почты для каждого сервиса, на который вы подписываетесь, чтобы предотвратить межсервисное отслеживание.
- Включите шифрование OpenPGP. Для конфиденциальных сообщений используйте сквозное шифрование для обеспечения полной конфиденциальности.
- Регулярно меняйте псевдонимы электронной почты. Периодически обновляйте псевдонимы для важных сервисов, чтобы минимизировать долгосрочный сбор данных.
- Используйте надежные уникальные пароли. Защитите свою учетную запись для пересылки электронной почты надежным паролем, чтобы предотвратить несанкционированный доступ.
- Включите анонимизацию IP-адрес. Рассмотрите возможность использования VPN в сочетании с пересылкой электронной почты для полной анонимности.
Заключение: Будущее пересылки личных сообщений электронной почты
В Forward Email мы убеждены, что конфиденциальность — это не просто функция, а неотъемлемое право. Наши технические решения отражают это убеждение, обеспечивая пересылку электронной почты с соблюдением вашей конфиденциальности на всех уровнях и защищая вас от слежки и сбора метаданных.
Продолжая развивать и совершенствовать наш сервис, мы по-прежнему неуклонно следуем принципам конфиденциальности. Мы постоянно ищем новые методы шифрования, изучаем дополнительные способы защиты конфиденциальности и совершенствуем нашу кодовую базу, чтобы обеспечить максимально безопасную работу с электронной почтой.
Выбирая пересылку электронной почты, вы не просто выбираете почтовый сервис — вы поддерживаете концепцию интернета, где конфиденциальность — это норма, а не исключение. Присоединяйтесь к нам и помогите нам построить более конфиденциальное цифровое будущее, по одному письму за раз.