メール転送の仕組み: メール転送サービスの完全ガイド

当社のサービスを最もプライバシー重視の電子メール転送ソリューションの 1 つにする技術的な実装をご覧ください。

序文

今日のデジタル環境では、電子メールのプライバシーはこれまで以上に重要になっています。データ侵害、監視の懸念、電子メールの内容に基づくターゲット広告などにより、ユーザーはプライバシーを優先するソリューションを求めるようになっています。Forward Email では、プライバシーをアーキテクチャの基盤として、サービスをゼロから構築してきました。このブログ投稿では、当社のサービスを最もプライバシー重視の電子メール転送ソリューションの 1 つにしている技術的な実装について説明します。

フォワードメールのプライバシー哲学

技術的な詳細に入る前に、当社の基本的なプライバシー哲学を理解することが重要です。 あなたのメールはあなただけのものですこの原則は、電子メールの転送の処理方法から暗号化の実装方法まで、私たちが行うすべての技術的決定の指針となります。

広告目的でメッセージをスキャンしたり、サーバー上にメッセージを無期限に保存したりする多くのメール プロバイダーとは異なり、Forward Email は根本的に異なるアプローチで動作します。

  1. メモリ内処理のみ - 転送されたメールはディスクに保存されません
  2. メタデータ保存なし - 誰が誰にメールを送信したかの記録は保存されません
  3. 100% オープンソース - コードベース全体が透明かつ監査可能
  4. エンドツーエンドの暗号化 - 真にプライベートな通信のためにOpenPGPをサポートしています

SQLite の実装: データの耐久性と移植性

Forward Emailの最も重要なプライバシーの利点の1つは、慎重に設計された 実装。SQLiteを特定のPRAGMA設定で微調整し、 先行書き込みログ (WAL) 最高水準のプライバシーとセキュリティを維持しながら、データの耐久性と移植性の両方を確保します。

ここではSQLiteを実装した方法を紹介します。 ChaCha20-ポリ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日間再試行します。 ポストフィックス一時的な問題が自然に解決される時間を与えます。このアプローチにより、プライバシーを維持しながら配信率が大幅に向上します。

同様に、送信 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 では無制限のドメインとエイリアスを提供していますが、システムを不正使用から保護し、すべてのユーザーに公平な使用を保証するために、インテリジェントなレート制限を実装しています。たとえば、非エンタープライズのお客様は 1 日に最大 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 人のユーザーのデータにアクセスした場合、他のユーザーのデータにもアクセスできるようになります。これは、すべてのユーザー データが同じデータベース テーブル内に存在し、ユーザー ID または同様の識別子によってのみ区切られているためです。

Forward Email は、サンドボックス化された暗号化によって根本的に異なるアプローチを採用しています。

  1. 完全な孤立: 各ユーザーのデータは、他のユーザーから完全に分離された独自の暗号化されたSQLiteデータベースファイルに保存されます。
  2. 独立した暗号化キー: 各データベースは、ユーザーのパスワードから派生した独自のキーで暗号化されます。
  3. 共有ストレージなし: すべてのユーザーのメールが単一の「メール」テーブルに格納されるリレーショナルデータベースとは異なり、当社のアプローチでは、データの混在が保証されません。
  4. 多層防御: たとえあるユーザーのデータベースが何らかの理由で侵害されたとしても、他のユーザーのデータにアクセスすることはできません。

このサンドボックス化されたアプローチは、内部に仕切りがある共有ストレージ施設ではなく、別の物理的な金庫に電子メールを保管するのと似ています。これは、プライバシーとセキュリティを大幅に強化する根本的なアーキテクチャの違いです。

メモリ内電子メール処理: ディスクストレージなしでプライバシーを最大限に保護

当社の電子メール転送サービスでは、電子メールはすべて RAM 内で処理され、ディスク ストレージやデータベースに書き込まれることはありません。このアプローチにより、電子メール監視やメタデータ収集に対する比類のない保護が実現します。

電子メール処理の仕組みを簡単に説明します。

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 によるエンドツーエンドの暗号化

メール監視から最高レベルのプライバシー保護を必要とするユーザー向けに、当社は オープンPGP エンドツーエンドの暗号化を実現します。独自のブリッジやアプリを必要とする多くのメール プロバイダーとは異なり、当社の実装は標準のメール クライアントで動作し、誰もが安全な通信を利用できるようになります。

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 は、デフォルトで有効になっている複数のレイヤーのコンテンツ保護を提供し、さまざまな脅威に対する包括的なセキュリティを提供します。

  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 では、プライバシーは単なる機能ではなく、基本的な権利であると考えています。当社の技術的実装はこの信念を反映しており、あらゆるレベルでプライバシーを尊重し、メール監視やメタデータ収集から保護するメール転送を提供しています。

当社はサービスの開発と改善を続けていますが、プライバシーに対する取り組みは揺るぎないものです。当社は常に新しい暗号化方式を研究し、追加のプライバシー保護を模索し、コードベースを改良して、可能な限り最も安全な電子メール エクスペリエンスを提供しています。

「メール転送」を選択することは、単にメール サービスを選択することではなく、プライバシーが例外ではなくデフォルトであるインターネットのビジョンをサポートすることです。メール 1 つずつ、よりプライベートなデジタルの未来を構築するために、私たちと一緒に取り組んでください。