Jak Forward Email chroni Twoją prywatność, domenę i bezpieczeństwo: Głębokie zanurzenie techniczne

Przedmowa

W dzisiejszym cyfrowym świecie prywatność poczty elektronicznej stała się ważniejsza niż kiedykolwiek. W obliczu naruszeń danych, obaw o inwigilację i ukierunkowanych reklam opartych na treści wiadomości e-mail, użytkownicy coraz częściej szukają rozwiązań, które priorytetowo traktują ich prywatność. W Forward Email zbudowaliśmy naszą usługę od podstaw, stawiając prywatność jako fundament naszej architektury. Ten wpis na blogu omawia techniczne implementacje, które sprawiają, że nasza usługa jest jednym z najbardziej zorientowanych na prywatność rozwiązań do przekazywania wiadomości e-mail.

Filozofia prywatności poczty elektronicznej Forward

Zanim zagłębimy się w szczegóły techniczne, ważne jest, aby zrozumieć naszą fundamentalną filozofię prywatności: Twoje e-maile należą do Ciebie i tylko do Ciebie. Ta zasada kieruje każdą decyzją techniczną, którą podejmujemy – od sposobu, w jaki obsługujemy przekazywanie wiadomości e-mail, po sposób, w jaki wdrażamy szyfrowanie.

W przeciwieństwie do wielu dostawców poczty e-mail, którzy skanują Twoje wiadomości w celach reklamowych lub przechowują je na swoich serwerach bezterminowo, Forward Email działa w oparciu o zupełnie inne podejście:

  1. Tylko przetwarzanie w pamięci – Nie przechowujemy przesłanych wiadomości e-mail na dysku.
  2. Brak metadanych – Nie przechowujemy danych o tym, kto do kogo wysyła wiadomości.
  3. W 100% open source – Cała nasza baza kodu jest transparentna i podlega audytowi.
  4. Szyfrowanie typu end-to-end – Obsługujemy OpenPGP, aby zapewnić prawdziwie prywatną komunikację.

Implementacja SQLite: trwałość i przenośność danych

Jedną z najważniejszych zalet funkcji Forward Email w zakresie prywatności jest nasza starannie opracowana implementacja SQLite. Dopracowaliśmy SQLite, dodając określone ustawienia PRAGMA i Rejestrowanie z wyprzedzeniem (WAL), aby zapewnić trwałość i przenośność danych, zachowując jednocześnie najwyższe standardy prywatności i bezpieczeństwa.

Oto sposób, w jaki wdrożyliśmy SQLite przy użyciu ChaCha20-Poly1305 jako szyfru zapewniającego odporność na ataki kwantowe:

// 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;');

Ta implementacja gwarantuje, że Twoje dane są nie tylko bezpieczne, ale i przenośne. Możesz zabrać swoją pocztę e-mail i wyjść w dowolnym momencie, eksportując ją w formatach MBOX, EML lub SQLite. A gdy zechcesz usunąć swoje dane, po prostu je usuniemy – po prostu usuniemy pliki z pamięci dyskowej, zamiast uruchamiać polecenia SQL DELETE ROW, które mogą pozostawiać ślady w bazie danych.

Aspekt szyfrowania kwantowego w naszej implementacji wykorzystuje szyfr ChaCha20-Poly1305 podczas inicjalizacji bazy danych, zapewniając solidną ochronę przed obecnymi i przyszłymi zagrożeniami prywatności Twoich danych.

Inteligentny mechanizm kolejkowania i ponawiania prób: zapewnianie dostarczania wiadomości e-mail

Zamiast skupiać się wyłącznie na obsłudze nagłówków, wdrożyliśmy zaawansowany, inteligentny mechanizm kolejkowania i ponawiania prób za pomocą metody getBounceInfo. Ten system gwarantuje, że Twoje wiadomości e-mail mają największą szansę na doręczenie, nawet w przypadku wystąpienia przejściowych problemów.

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

To fragment metody getBounceInfo, a nie jej rozbudowana implementacja. Pełny kod można znaleźć w GitHub.

Ponawiamy próby dostarczenia poczty przez 5 dni, podobnie jak w przypadku standardów branżowych, takich jak [Postfiks](https://en.wikipedia.org/wiki/Postfix_\(software\), dając czas na rozwiązanie tymczasowych problemów. Takie podejście znacząco poprawia wskaźniki dostarczalności, jednocześnie zachowując prywatność.

Podobnie, redagujemy również treść wiadomości wychodzących SMTP po ich pomyślnym dostarczeniu. Jest to skonfigurowane w naszym systemie przechowywania danych z domyślnym okresem retencji wynoszącym 30 dni, który można dostosować w Ustawieniach zaawansowanych domeny. Po tym okresie treść wiadomości e-mail jest automatycznie redagowana i usuwana, pozostawiając jedynie wiadomość zastępczą:

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.

Dzięki takiemu podejściu masz pewność, że wysłane wiadomości e-mail nie będą przechowywane w nieskończoność, co zmniejsza ryzyko wycieku danych lub nieautoryzowanego dostępu do Twoich komunikatów.

Nieograniczone zasoby z inteligentnym limitowaniem szybkości

Chociaż Forward Email oferuje nieograniczoną liczbę domen i aliasów, wdrożyliśmy inteligentne limity przepustowości, aby chronić nasz system przed nadużyciami i zapewnić uczciwe korzystanie z niego wszystkim użytkownikom. Na przykład klienci spoza korporacji mogą utworzyć do ponad 50 aliasów dziennie, co zapobiega spamowaniu i przeciążaniu naszej bazy danych, a także pozwala na efektywne działanie naszych funkcji ochrony przed nadużyciami i nadużyciami w czasie rzeczywistym.

// 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
}

Dzięki takiemu zrównoważonemu podejściu zyskujesz elastyczność w tworzeniu dowolnej liczby adresów e-mail, co pozwala na kompleksowe zarządzanie prywatnością, a jednocześnie zapewnia integralność i wydajność naszych usług dla wszystkich użytkowników.

Szyfrowanie w trybie piaskownicy dla zwiększonego bezpieczeństwa

Nasze unikalne podejście do szyfrowania w trybie sandboxingu zapewnia kluczową zaletę w zakresie bezpieczeństwa, którą wielu użytkowników pomija przy wyborze usługi poczty e-mail. Przyjrzyjmy się, dlaczego dane w trybie sandboxingu, zwłaszcza wiadomości e-mail, są tak ważne.

Usługi takie jak Gmail i Proton najprawdopodobniej korzystają ze współdzielonego relacyjne bazy danych, co stwarza fundamentalną lukę w zabezpieczeniach. W środowisku współdzielonej bazy danych, jeśli ktoś uzyska dostęp do danych jednego użytkownika, potencjalnie uzyska również dostęp do danych innych użytkowników. Dzieje się tak, ponieważ wszystkie dane użytkowników znajdują się w tych samych tabelach bazy danych, rozdzielonych jedynie identyfikatorami użytkowników lub podobnymi identyfikatorami.

Forward Email wykorzystuje zupełnie inne podejście dzięki szyfrowaniu w trybie sandbox:

  1. Pełna izolacja: Dane każdego użytkownika są przechowywane we własnym, zaszyfrowanym pliku bazy danych SQLite, całkowicie odizolowanym od innych użytkowników.
  2. Niezależne klucze szyfrujące: Każda baza danych jest szyfrowana własnym, unikalnym kluczem, pochodzącym z hasła użytkownika.
  3. Brak współdzielonej pamięci masowej: W przeciwieństwie do relacyjnych baz danych, w których adresy e-mail wszystkich użytkowników mogą znajdować się w jednej tabeli „e-maile”, nasze podejście gwarantuje brak mieszania się danych.
  4. Głęboka ochrona: Nawet jeśli baza danych jednego użytkownika zostanie w jakiś sposób naruszona, nie będzie ona umożliwiała dostępu do danych żadnego innego użytkownika.

To podejście oparte na piaskownicy przypomina przechowywanie poczty e-mail w oddzielnym fizycznym sejfie, a nie we współdzielonym magazynie z wewnętrznymi przegrodami. To fundamentalna różnica architektoniczna, która znacząco zwiększa prywatność i bezpieczeństwo.

Przetwarzanie wiadomości e-mail w pamięci: brak miejsca na dysku dla zapewnienia maksymalnej prywatności

W ramach naszej usługi przekierowywania poczty elektronicznej przetwarzamy wiadomości e-mail wyłącznie w pamięci RAM i nigdy nie zapisujemy ich na dyskach ani w bazach danych. Takie podejście zapewnia niezrównaną ochronę przed inwigilacją poczty elektronicznej i gromadzeniem metadanych.

Oto uproszczony opis sposobu przetwarzania wiadomości e-mail:

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

To podejście oznacza, że nawet gdyby nasze serwery zostały naruszone, atakujący nie mieliby dostępu do żadnych historycznych danych e-mail. Twoje wiadomości e-mail po prostu przechodzą przez nasz system i są natychmiast przekazywane do miejsca przeznaczenia, nie pozostawiając śladu. To podejście do przekazywania wiadomości e-mail bez rejestrowania aktywności jest kluczowe dla ochrony Twojej komunikacji przed inwigilacją.

Szyfrowanie typu end-to-end z OpenPGP zapewniające pełną prywatność

Dla użytkowników wymagających najwyższego poziomu ochrony prywatności przed inwigilacją poczty e-mail, obsługujemy OpenPGP, co zapewnia kompleksowe szyfrowanie. W przeciwieństwie do wielu dostawców poczty e-mail, którzy wymagają zastrzeżonych mostów lub aplikacji, nasza implementacja współpracuje ze standardowymi klientami poczty e-mail, zapewniając każdemu dostęp do bezpiecznej komunikacji.

Oto jak wdrażamy szyfrowanie 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)]);
}

Ta implementacja gwarantuje, że Twoje wiadomości e-mail są szyfrowane, zanim opuszczą Twoje urządzenie i mogą zostać odszyfrowane tylko przez adresata, co zapewnia prywatność Twojej komunikacji, nawet przed nami. Jest to niezbędne do ochrony poufnych informacji przed nieautoryzowanym dostępem i inwigilacją.

Wielowarstwowa ochrona treści zapewniająca kompleksowe bezpieczeństwo

Usługa Forward Email oferuje wielowarstwową ochronę treści, która jest domyślnie włączona, zapewniając kompleksową ochronę przed różnymi zagrożeniami:

  1. Ochrona treści dla dorosłych – Filtruje nieodpowiednie treści bez naruszania prywatności
  2. Ochrona Phishing – Blokuje próby kradzieży danych, zachowując anonimowość
  3. Ochrona plików wykonywalnych – Zapobiega potencjalnie szkodliwym załącznikom bez skanowania treści
  4. Ochrona Wirus – Skanuje w poszukiwaniu złośliwego oprogramowania, wykorzystując techniki ochrony prywatności

W przeciwieństwie do wielu dostawców, którzy oferują te funkcje za zgodą, my umożliwiliśmy ich wyłączenie, zapewniając wszystkim użytkownikom dostęp do tych zabezpieczeń domyślnie. To podejście odzwierciedla nasze zaangażowanie w ochronę prywatności i bezpieczeństwo, zapewniając równowagę, której wiele usług pocztowych nie jest w stanie osiągnąć.

Czym różnimy się od innych usług poczty e-mail: techniczna zaleta prywatności

Porównując usługę Forward Email z innymi usługami poczty elektronicznej, można zauważyć kilka kluczowych różnic technicznych, które podkreślają nasze podejście, w którym prywatność jest priorytetem:

Otwarta przejrzystość kodu źródłowego dla weryfikowalnej prywatności

Chociaż wielu dostawców poczty elektronicznej twierdzi, że jest to oprogramowanie open source, często zachowują one zamknięty kod zaplecza. Forward Email ma w 100% otwarte źródło, zarówno w kodzie front-end, jak i back-end. Ta transparentność pozwala na niezależny audyt bezpieczeństwa wszystkich komponentów, gwarantując, że nasze oświadczenia dotyczące prywatności mogą zostać zweryfikowane przez każdego.

Brak uzależnienia od dostawcy w celu zachowania prywatności bez kompromisów

Wielu dostawców poczty e-mail dbających o prywatność wymaga korzystania z ich zastrzeżonych aplikacji lub mostów. Forward Email współpracuje z dowolnym standardowym klientem poczty e-mail za pośrednictwem protokołów IMAP, POP3 i SMTP, dając Ci swobodę wyboru preferowanego oprogramowania pocztowego bez naruszania prywatności.

Dane w piaskownicy dla prawdziwej izolacji

W przeciwieństwie do usług korzystających ze współdzielonych baz danych, w których dane wszystkich użytkowników są ze sobą połączone, nasze podejście oparte na piaskownicy gwarantuje całkowitą izolację danych każdego użytkownika. Ta fundamentalna różnica w architekturze zapewnia znacznie silniejsze gwarancje prywatności niż większość usług poczty e-mail.

Przenoszenie danych i kontrola

Wierzymy, że Twoje dane należą do Ciebie, dlatego ułatwiamy eksportowanie wiadomości e-mail w standardowych formatach (MBOX, EML, SQLite) i usuwanie ich, kiedy tylko chcesz. Taki poziom kontroli jest rzadkością wśród dostawców poczty e-mail, ale jest niezbędny dla zachowania prawdziwej prywatności.

Wyzwania techniczne związane z przekazywaniem wiadomości e-mail z uwzględnieniem prywatności

Stworzenie usługi poczty elektronicznej, która stawia prywatność na pierwszym miejscu, wiąże się ze znacznymi wyzwaniami technicznymi. Oto niektóre z przeszkód, które udało nam się pokonać:

Zarządzanie pamięcią w celu przetwarzania wiadomości e-mail bez rejestrowania

Przetwarzanie wiadomości e-mail w pamięci operacyjnej bez konieczności przechowywania ich na dysku wymaga starannego zarządzania pamięcią, aby sprawnie obsługiwać duży ruch e-mail. Wdrożyliśmy zaawansowane techniki optymalizacji pamięci, aby zapewnić niezawodną wydajność bez naruszania naszej polityki braku przechowywania danych, która jest kluczowym elementem naszej strategii ochrony prywatności.

Wykrywanie spamu bez analizy treści w celu filtrowania chroniącego prywatność

Większość systemów wykrywania spamu spam opiera się na analizie treści wiadomości e-mail, co jest sprzeczne z naszymi zasadami prywatności. Opracowaliśmy techniki identyfikacji wzorców spamu bez konieczności czytania treści wiadomości e-mail, zachowując równowagę między prywatnością a użytecznością, która chroni poufność komunikacji.

Zachowanie zgodności z projektem stawiającym prywatność na pierwszym miejscu

Zapewnienie kompatybilności ze wszystkimi klientami poczty e-mail przy jednoczesnym wdrażaniu zaawansowanych funkcji ochrony prywatności wymagało kreatywnych rozwiązań inżynieryjnych. Nasz zespół nieustannie pracował nad zapewnieniem bezproblemowej ochrony prywatności, dzięki czemu nie musisz wybierać między wygodą a bezpieczeństwem, chroniąc swoją komunikację e-mailową.

Najlepsze praktyki dotyczące prywatności dla użytkowników przekazujących dalej wiadomości e-mail

Aby zmaksymalizować ochronę przed inwigilacją poczty elektronicznej i zachować prywatność podczas korzystania z funkcji Przekaż dalej wiadomość e-mail, zalecamy następujące sprawdzone metody:

  1. Używaj unikalnych aliasów dla różnych usług - Utwórz inny alias e-mail dla każdej usługi, do której się rejestrujesz, aby zapobiec śledzeniu między usługami.
  2. Włącz szyfrowanie OpenPGP - W przypadku poufnej komunikacji stosuj szyfrowanie typu end-to-end, aby zapewnić pełną prywatność.
  3. Regularnie zmieniaj aliasy e-mail - Okresowo aktualizuj aliasy ważnych usług, aby zminimalizować długoterminowe gromadzenie danych.
  4. Używaj silnych, unikalnych haseł - Chroń swoje konto Forward Email silnym hasłem, aby zapobiec nieautoryzowanemu dostępowi.
  5. Wdróż anonimizację Adres IP - Rozważ użycie VPN w połączeniu z funkcją Forward Email, aby zapewnić pełną anonimowość.

Wnioski: Przyszłość prywatnego przekazywania wiadomości e-mail

W Forward Email wierzymy, że prywatność to nie tylko funkcja – to fundamentalne prawo. Nasze rozwiązania techniczne odzwierciedlają to przekonanie, oferując przekazywanie wiadomości e-mail z poszanowaniem prywatności na każdym poziomie i ochroną przed inwigilacją i gromadzeniem metadanych.

W miarę rozwoju i ulepszania naszych usług, nasze zaangażowanie w ochronę prywatności pozostaje niezmienne. Nieustannie badamy nowe metody szyfrowania, poszukujemy dodatkowych zabezpieczeń prywatności i udoskonalamy naszą bazę kodów, aby zapewnić jak najbezpieczniejsze korzystanie z poczty e-mail.

Wybierając Forward Email, nie wybierasz tylko usługi poczty elektronicznej – wspierasz wizję internetu, w którym prywatność jest standardem, a nie wyjątkiem. Dołącz do nas w budowaniu bardziej prywatnej cyfrowej przyszłości, e-mail po e-mailu.