Forward Email가 귀하의 개인정보, 도메인 및 보안을 보호하는 방법: 기술적 심층 분석

최고의 이메일 전달 서비스 비교

서문

오늘날의 디지털 환경에서 이메일 개인정보 보호는 그 어느 때보다 중요해졌습니다. 데이터 유출, 감시 우려, 이메일 내용 기반의 타겟 광고 등으로 인해 사용자들은 점점 더 개인정보를 최우선으로 하는 솔루션을 찾고 있습니다. Forward Email에서는 개인정보를 아키텍처의 핵심으로 삼아 서비스를 처음부터 구축했습니다. 이 블로그 글에서는 우리 서비스가 가장 개인정보 중심적인 이메일 전달 솔루션 중 하나가 될 수 있었던 기술적 구현 방식을 살펴봅니다.

Forward Email 개인정보 철학

기술적 세부 사항에 들어가기 전에, 우리의 근본적인 개인정보 철학을 이해하는 것이 중요합니다: 귀하의 이메일은 오직 귀하의 것입니다. 이 원칙은 이메일 전달 처리 방식부터 암호화 구현에 이르기까지 모든 기술적 결정의 지침이 됩니다.

광고 목적으로 메시지를 스캔하거나 서버에 무기한 저장하는 많은 이메일 제공업체와 달리, Forward Email은 근본적으로 다른 접근 방식을 취합니다:

  1. 메모리 내 처리만 - 전달된 이메일을 디스크에 저장하지 않습니다
  2. 메타데이터 저장 없음 - 누가 누구에게 이메일을 보내는지 기록하지 않습니다
  3. 100% 오픈 소스 - 전체 코드베이스가 투명하고 감사 가능합니다
  4. 종단 간 암호화 - 진정한 개인 통신을 위해 OpenPGP를 지원합니다

SQLite 구현: 데이터의 내구성과 이식성

Forward Email의 가장 큰 개인정보 보호 이점 중 하나는 신중하게 설계된 SQLite 구현입니다. 우리는 특정 PRAGMA 설정과 Write-Ahead Logging (WAL)을 통해 데이터의 내구성과 이식성을 보장하면서도 최고 수준의 개인정보 보호와 보안을 유지하도록 SQLite를 최적화했습니다. 다음은 양자 내성 암호화를 위한 암호로 ChaCha20-Poly1305를 사용하여 SQLite를 구현한 방법입니다:

// 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에서 확인할 수 있습니다.

우리는 Postfix와 같은 업계 표준과 유사하게 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은 무제한 도메인과 별칭을 제공하는 동시에, 시스템 남용을 방지하고 모든 사용자가 공정하게 이용할 수 있도록 지능형 속도 제한을 구현했습니다. 예를 들어, 비엔터프라이즈 고객은 하루에 최대 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 같은 서비스는 대부분 공유 관계형 데이터베이스를 사용하며, 이는 근본적인 보안 취약점을 만듭니다. 공유 데이터베이스 환경에서는 누군가 한 사용자의 데이터에 접근하면 다른 사용자의 데이터에도 접근할 가능성이 있습니다. 이는 모든 사용자 데이터가 동일한 데이터베이스 테이블에 저장되고 사용자 ID 또는 유사 식별자로만 구분되기 때문입니다.

Forward Email은 샌드박스 암호화를 통해 근본적으로 다른 접근 방식을 취합니다:

  1. 완전한 격리: 각 사용자의 데이터는 다른 사용자와 완전히 분리된 자체 암호화된 SQLite 데이터베이스 파일에 저장됩니다
  2. 독립적인 암호화 키: 각 데이터베이스는 사용자의 비밀번호에서 파생된 고유한 키로 암호화됩니다
  3. 공유 저장소 없음: 모든 사용자의 이메일이 단일 "emails" 테이블에 저장되는 관계형 데이터베이스와 달리, 데이터가 혼합되지 않습니다
  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 종단 간 암호화

이메일 감시로부터 가장 높은 수준의 프라이버시 보호가 필요한 사용자를 위해, 우리는 종단 간 암호화를 위한 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은 다양한 위협에 대해 포괄적인 보안을 제공하기 위해 기본적으로 활성화된 여러 계층의 콘텐츠 보호 기능을 제공합니다:

  1. 성인 콘텐츠 보호 - 프라이버시를 침해하지 않고 부적절한 콘텐츠를 필터링
  2. 피싱 보호 - 익명성을 유지하면서 정보 탈취 시도 차단
  3. 실행 파일 보호 - 콘텐츠를 스캔하지 않고도 잠재적으로 해로운 첨부파일 차단
  4. 바이러스 보호 - 프라이버시를 보존하는 기술로 악성코드 검사

많은 제공업체가 이러한 기능을 선택적(opt-in)으로 제공하는 반면, 우리는 선택 해제(opt-out) 방식으로 설정하여 모든 사용자가 기본적으로 이러한 보호를 받을 수 있도록 했습니다. 이 접근법은 프라이버시와 보안 모두에 대한 우리의 헌신을 반영하며, 많은 이메일 서비스가 달성하지 못하는 균형을 제공합니다.

다른 이메일 서비스와의 차별점: 기술적 프라이버시 우위

Forward Email을 다른 이메일 서비스와 비교할 때, 우리의 프라이버시 우선 접근 방식을 강조하는 몇 가지 주요 기술적 차이점이 있습니다:

검증 가능한 프라이버시를 위한 오픈 소스 투명성

많은 이메일 제공업체가 오픈 소스라고 주장하지만, 백엔드 코드는 비공개로 유지하는 경우가 많습니다. Forward Email은 프론트엔드와 백엔드 코드를 포함하여 100% 오픈 소스입니다. 이러한 투명성은 모든 구성 요소에 대한 독립적인 보안 감사를 가능하게 하여, 우리의 프라이버시 주장이 누구나 검증할 수 있도록 합니다.

타협 없는 프라이버시를 위한 공급업체 종속성 없음

많은 프라이버시 중심 이메일 제공업체는 독점 앱이나 브리지를 사용하도록 요구합니다. Forward Email은 IMAP, POP3, SMTP 프로토콜을 통해 모든 표준 이메일 클라이언트와 작동하여, 선호하는 이메일 소프트웨어를 자유롭게 선택하면서도 프라이버시를 포기하지 않도록 합니다.

진정한 격리를 위한 샌드박스 데이터

모든 사용자의 데이터가 혼합되는 공유 데이터베이스를 사용하는 서비스와 달리, 당사의 샌드박스 방식은 각 사용자의 데이터를 완전히 격리합니다. 이러한 근본적인 아키텍처 차이는 대부분의 이메일 서비스가 제공하는 것보다 훨씬 강력한 프라이버시 보장을 제공합니다.

데이터 이동성과 제어

당사는 귀하의 데이터가 귀하에게 속한다고 믿기 때문에, 표준 형식(MBOX, EML, SQLite)으로 이메일을 쉽게 내보내고 원할 때 데이터를 완전히 삭제할 수 있도록 합니다. 이러한 수준의 제어는 이메일 제공업체 중 드물지만 진정한 프라이버시를 위해 필수적입니다.

프라이버시 우선 이메일 전달의 기술적 과제

프라이버시 우선 이메일 서비스를 구축하는 데는 상당한 기술적 과제가 따릅니다. 우리가 극복한 장애물은 다음과 같습니다:

로그 기록 없는 이메일 처리를 위한 메모리 관리

디스크 저장 없이 메모리 내에서 이메일을 처리하려면 높은 이메일 트래픽을 효율적으로 처리할 수 있도록 신중한 메모리 관리가 필요합니다. 우리는 저장 금지 정책을 훼손하지 않으면서 신뢰할 수 있는 성능을 보장하기 위해 고급 메모리 최적화 기법을 구현했습니다. 이는 프라이버시 보호 전략의 핵심 요소입니다.

프라이버시 보호 필터링을 위한 콘텐츠 분석 없는 스팸 탐지

대부분의 스팸 탐지 시스템은 이메일 콘텐츠 분석에 의존하는데, 이는 당사의 프라이버시 원칙과 상충됩니다. 우리는 이메일 내용을 읽지 않고도 스팸 패턴을 식별하는 기술을 개발하여, 통신의 기밀성을 유지하면서 프라이버시와 사용성 사이의 균형을 맞추고 있습니다.

프라이버시 우선 설계와의 호환성 유지

고급 프라이버시 기능을 구현하면서 모든 이메일 클라이언트와의 호환성을 보장하는 것은 창의적인 엔지니어링 솔루션을 요구했습니다. 당사 팀은 프라이버시를 원활하게 만들어 사용자가 이메일 통신 보호 시 편의성과 보안 사이에서 선택할 필요가 없도록 끊임없이 노력해 왔습니다.

Forward Email 사용자들을 위한 프라이버시 모범 사례

이메일 감시로부터 보호를 극대화하고 Forward Email 사용 시 프라이버시를 최대한 보장하기 위해 다음 모범 사례를 권장합니다:

  1. 서비스별로 고유한 별칭 사용 - 각 서비스 가입 시 다른 이메일 별칭을 만들어 서비스 간 추적을 방지하세요
  2. OpenPGP 암호화 활성화 - 민감한 통신에는 종단 간 암호화를 사용하여 완전한 프라이버시를 보장하세요
  3. 이메일 별칭 정기적 교체 - 장기 데이터 수집을 최소화하기 위해 중요한 서비스의 별칭을 주기적으로 업데이트하세요
  4. 강력하고 고유한 비밀번호 사용 - 무단 접근을 방지하기 위해 Forward Email 계정을 강력한 비밀번호로 보호하세요
  5. IP 주소 익명화 구현 - 완전한 익명성을 위해 Forward Email과 함께 VPN 사용을 고려하세요

결론: 프라이빗 이메일 전달의 미래

Forward Email은 프라이버시가 단순한 기능이 아니라 기본 권리라고 믿습니다. 우리의 기술적 구현은 이 믿음을 반영하여 모든 수준에서 귀하의 프라이버시를 존중하고 이메일 감시 및 메타데이터 수집으로부터 보호하는 이메일 전달을 제공합니다.

서비스를 지속적으로 개발하고 개선하면서 프라이버시에 대한 우리의 약속은 변함없습니다. 우리는 새로운 암호화 방법을 연구하고 추가 프라이버시 보호를 탐구하며 가장 안전한 이메일 경험을 제공하기 위해 코드베이스를 정제하고 있습니다.

Forward Email을 선택함으로써 단순한 이메일 서비스를 선택하는 것이 아니라, 프라이버시가 예외가 아닌 기본값인 인터넷 비전을 지지하는 것입니다. 한 번에 한 통의 이메일씩 더 프라이빗한 디지털 미래를 함께 만들어 갑시다.