Як пересилання електронної пошти захищає вашу конфіденційність, домен і безпеку: глибоке технічне занурення

Передмова

У сучасному цифровому середовищі конфіденційність електронної пошти стала критичнішою, ніж будь-коли. Через витоки даних, проблеми зі стеженням та цільову рекламу на основі вмісту електронної пошти, користувачі все частіше шукають рішень, які ставлять на перше місце їхню конфіденційність. У Forward Email ми створили наш сервіс з нуля, причому конфіденційність є наріжним каменем нашої архітектури. У цій публікації блогу розглядаються технічні реалізації, які роблять наш сервіс одним із найбільш орієнтованих на конфіденційність рішень для пересилання електронної пошти.

Філософія конфіденційності пересилання електронної пошти

Перш ніж заглиблюватися в технічні деталі, важливо зрозуміти нашу фундаментальну філософію конфіденційності: ваші електронні листи належать вам і тільки вам. Цей принцип керує кожним нашим технічним рішенням, від того, як ми пересилаємо електронні листи, до того, як ми впроваджуємо шифрування.

На відміну від багатьох постачальників послуг електронної пошти, які сканують ваші повідомлення для рекламних цілей або зберігають їх необмежений час на своїх серверах, Forward Email працює за принципом кардинально іншого підходу:

  1. Тільки обробка в пам'яті - Ми не зберігаємо ваші переслані електронні листи на диску
  2. Без зберігання метаданих - Ми не ведемо облік того, хто кому надсилає електронні листи
  3. 100% відкритий код - Уся наша кодова база прозора та підлягає аудиту
  4. Наскрізне шифрування - Ми підтримуємо OpenPGP для справді приватного спілкування

Реалізація SQLite: довговічність та портативність ваших даних

Одна з найважливіших переваг конфіденційності пересилання електронної пошти – це ретельно розроблена реалізація SQLite. Ми доопрацювали SQLite за допомогою спеціальних налаштувань PRAGMA та Журналування попереднього запису (WAL), щоб забезпечити як довговічність, так і портативність ваших даних, зберігаючи при цьому найвищі стандарти конфіденційності та безпеки.

Ось як ми реалізували SQLite з ЧаЧа20-Полі1305 як шифром для квантово-стійкого шифрування:

// 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, найімовірніше, використовують спільний реляційні бази даних, що створює фундаментальну вразливість безпеки. У середовищі спільної бази даних, якщо хтось отримує доступ до даних одного користувача, він потенційно має шлях до доступу до даних інших користувачів. Це пояснюється тим, що всі дані користувачів знаходяться в одних і тих самих таблицях бази даних, розділені лише ідентифікаторами користувачів або подібними ідентифікаторами.

Пересилання електронної пошти використовує принципово інший підхід завдяки нашому шифруванню в ізольованому середовищі:

  1. Повна ізоляція: Дані кожного користувача зберігаються у власному зашифрованому файлі бази даних SQLite, повністю ізольованому від інших користувачів.
  2. Незалежні ключі шифрування: Кожна база даних шифрується власним унікальним ключем, отриманим з пароля користувача.
  3. Відсутність спільного сховища: На відміну від реляційних баз даних, де всі електронні листи користувачів можуть знаходитися в одній таблиці «електронна пошта», наш підхід гарантує відсутність змішування даних.
  4. Поглиблений захист: Навіть якщо база даних одного користувача буде якимось чином скомпрометована, вона не надасть доступу до даних жодного іншого користувача.

Такий підхід з використанням ізольованого програмного середовища схожий на зберігання електронної пошти в окремому фізичному сховищі, а не в спільному сховищі з внутрішніми роздільниками. Це фундаментальна архітектурна відмінність, яка значно підвищує вашу конфіденційність і безпеку.

Обробка електронної пошти в пам'яті: немає дискового сховища для максимальної конфіденційності

Для нашої служби пересилання електронної пошти ми обробляємо електронні листи повністю в оперативній пам'яті та ніколи не записуємо їх на дискове сховище чи в бази даних. Такий підхід забезпечує безпрецедентний захист від стеження за електронною поштою та збору метаданих.

Ось спрощений огляд того, як працює наша обробка електронної пошти:

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)]);
}

Ця реалізація гарантує, що ваші електронні листи шифруються перед тим, як вони залишать ваш пристрій, і їх може розшифрувати лише передбачуваний одержувач, зберігаючи конфіденційність ваших повідомлень навіть від нас. Це важливо для захисту конфіденційних повідомлень від несанкціонованого доступу та спостереження.

Багаторівневий захист контенту для комплексної безпеки

Пересилання електронної пошти пропонує кілька рівнів захисту контенту, які ввімкнено за замовчуванням, щоб забезпечити комплексний захист від різних загроз:

  1. Захист контенту для дорослих – Фільтрує неприйнятний контент без шкоди для конфіденційності
  2. Захист Фішинг – Блокує спроби викрадення вашої інформації, зберігаючи анонімність
  3. Захист виконуваних файлів – Запобігає потенційно шкідливим вкладенням без сканування вмісту
  4. Захист Вірус – Сканує на наявність шкідливого програмного забезпечення за допомогою методів збереження конфіденційності

На відміну від багатьох постачальників, які роблять ці функції звичайними, ми зробили їх відключеними, гарантуючи, що всі користувачі користуватимуться цим захистом за замовчуванням. Такий підхід відображає нашу відданість як конфіденційності, так і безпеці, забезпечуючи баланс, якого багатьом поштовим службам не вдається досягти.

Чим ми відрізняємося від інших поштових сервісів: перевага технічної конфіденційності

Порівнюючи Forward Email з іншими поштовими сервісами, можна виділити кілька ключових технічних відмінностей, які підкреслюють наш підхід, що ставить конфіденційність на перше місце:

Прозорість відкритого коду для перевірки конфіденційності

Хоча багато постачальників послуг електронної пошти стверджують, що мають відкритий вихідний код, вони часто тримають свій бекенд-код закритим. Пересилання електронної пошти на 100% відкритий код, включаючи як фронтенд, так і бекенд-код. Така прозорість дозволяє проводити незалежний аудит безпеки всіх компонентів, гарантуючи, що наші заяви про конфіденційність можуть бути перевірені будь-ким.

Без прив'язки до постачальника для забезпечення конфіденційності без компромісів

Багато постачальників послуг електронної пошти, орієнтованих на конфіденційність, вимагають використання їхніх власних програм або мостів. Forward Email працює з будь-яким стандартним поштовим клієнтом через протоколи IMAP, POP3 та SMTP, що дає вам свободу вибору бажаного програмного забезпечення для електронної пошти без шкоди для конфіденційності.

Дані в ізоляційному середовищі для справжньої ізоляції

На відміну від сервісів, що використовують спільні бази даних, де всі дані користувачів об'єднані, наш підхід з ізольованим середовищем гарантує повну ізоляцію даних кожного користувача. Ця фундаментальна архітектурна відмінність забезпечує значно сильніші гарантії конфіденційності, ніж те, що пропонує більшість сервісів електронної пошти.

Переносимість та контроль даних

Ми вважаємо, що ваші дані належать вам, тому ми спрощуємо експорт ваших електронних листів у стандартних форматах (MBOX, EML, SQLite) та фактичне видалення ваших даних, коли ви цього забажаєте. Такий рівень контролю рідкісний серед постачальників послуг електронної пошти, але є важливим для справжньої конфіденційності.

Технічні проблеми пересилання електронної пошти з урахуванням конфіденційності

Створення сервісу електронної пошти, що ставить на перше місце конфіденційність, пов'язане зі значними технічними труднощами. Ось деякі з перешкод, які ми подолали:

Керування пам'яттю для обробки електронної пошти без реєстрації

Обробка електронних листів у пам’яті без дискового сховища вимагає ретельного управління пам’яттю для ефективної обробки великих обсягів електронного трафіку. Ми впровадили передові методи оптимізації пам’яті, щоб забезпечити надійну роботу без шкоди для нашої політики заборони зберігання даних, що є критично важливим компонентом нашої стратегії захисту конфіденційності.

Виявлення спаму без аналізу контенту для фільтрації зі збереженням конфіденційності

Більшість систем виявлення спам покладаються на аналіз вмісту електронної пошти, що суперечить нашим принципам конфіденційності. Ми розробили методи виявлення шаблонів спаму без читання вмісту ваших електронних листів, дотримуючись балансу між конфіденційністю та зручністю використання, що зберігає конфіденційність ваших повідомлень.

Забезпечення сумісності з дизайном, що орієнтований на конфіденційність

Забезпечення сумісності з усіма поштовими клієнтами та впровадження розширених функцій конфіденційності вимагало креативних інженерних рішень. Наша команда невпинно працювала над тим, щоб зробити конфіденційність бездоганною, щоб вам не довелося вибирати між зручністю та безпекою під час захисту ваших електронних листів.

Рекомендації щодо конфіденційності для користувачів пересилання електронної пошти

Щоб максимально захистити себе від спостереження за електронною поштою та забезпечити конфіденційність під час використання функції «Пересилання електронної пошти», рекомендуємо дотримуватися таких рекомендацій:

  1. Використовуйте унікальні псевдоніми для різних сервісів - Створіть окремий псевдонім електронної пошти для кожного сервісу, на який ви реєструєтесь, щоб запобігти міжсервісному відстеженню.
  2. Увімкніть шифрування OpenPGP - Для конфіденційного зв'язку використовуйте наскрізне шифрування, щоб забезпечити повну конфіденційність.
  3. Регулярно змінюйте псевдоніми електронної пошти - Періодично оновлюйте псевдоніми для важливих сервісів, щоб мінімізувати довгостроковий збір даних.
  4. Використовуйте надійні, унікальні паролі - Захистіть свій обліковий запис переадресації електронної пошти надійним паролем, щоб запобігти несанкціонованому доступу.
  5. Впровадьте анонімізацію IP-адреса - Розгляньте можливість використання VPN разом із функцією переадресації електронної пошти для повної анонімності.

Висновок: Майбутнє пересилання приватної електронної пошти

У Forward Email ми вважаємо, що конфіденційність — це не просто функція, а основоположне право. Наші технічні рішення відображають це переконання, забезпечуючи вам пересилання електронної пошти, яке поважає вашу конфіденційність на кожному рівні та захищає вас від стеження за електронною поштою та збору метаданих.

Продовжуючи розвивати та вдосконалювати наш сервіс, ми незмінно дотримуємося принципів конфіденційності. Ми постійно досліджуємо нові методи шифрування, вивчаємо додаткові засоби захисту конфіденційності та вдосконалюємо нашу кодову базу, щоб забезпечити максимально безпечний досвід роботи з електронною поштою.

Обираючи «Пересилання електронної пошти», ви не просто обираєте службу електронної пошти, а підтримуєте бачення Інтернету, де конфіденційність є стандартною, а не винятком. Приєднуйтесь до нас у побудові більш приватного цифрового майбутнього, з одним електронним листом за раз.