Forward Email이 개인 정보, 도메인 및 보안을 보호하는 방법: 기술 심층 분석
<img loading="lazy" src="/img/articles/email-forwarding.webp" alt="" 클래스="둥근-lg" />
서문
오늘날의 디지털 환경에서 이메일 개인정보 보호는 그 어느 때보다 중요해졌습니다. 데이터 유출, 감시 우려, 이메일 콘텐츠 기반 타겟팅 광고 등으로 인해 사용자들은 개인정보 보호를 최우선으로 하는 솔루션을 점점 더 많이 찾고 있습니다. Forward Email은 개인정보 보호를 아키텍처의 초석으로 삼아 서비스를 구축해 왔습니다. 이 블로그 게시물에서는 Forward Email을 가장 개인정보 보호에 중점을 둔 이메일 전달 솔루션 중 하나로 만드는 기술 구현 방법을 살펴보겠습니다.
전달 이메일 개인정보 보호 철학
기술적인 세부 사항을 살펴보기 전에, 저희의 기본적인 개인정보 보호 철학을 이해하는 것이 중요합니다. 귀하의 이메일은 오직 귀하에게만 속합니다. 이 원칙은 이메일 전달 방식부터 암호화 구현 방식까지 저희가 내리는 모든 기술적 결정의 기준이 됩니다.
광고 목적으로 메시지를 스캔하거나 서버에 무기한 저장하는 많은 이메일 제공업체와 달리 Forward Email은 근본적으로 다른 접근 방식으로 운영됩니다.
- 메모리 내 처리만 - 전달된 이메일을 디스크에 저장하지 않습니다.
- 메타데이터 저장 안 함 - 누가 누구에게 이메일을 보냈는지 기록하지 않습니다.
- 100% 오픈 소스 - 전체 코드베이스는 투명하고 감사 가능합니다.
- 종단 간 암호화 - 진정한 개인 정보 보호를 위해 OpenPGP를 지원합니다.
SQLite 구현: 데이터의 내구성 및 이식성
Forward Email의 가장 중요한 개인정보 보호 기능 중 하나는 신중하게 설계된 SQLite 구현입니다. 특정 PRAGMA 설정과 미리 쓰기 로깅(WAL)을 사용하여 SQLite를 세부적으로 조정하여 데이터의 내구성과 이동성을 보장하는 동시에 최고 수준의 개인정보 보호 및 보안을 유지합니다.
양자 저항 암호화를 위한 암호로 차차20-폴리1305을 사용하여 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
메서드의 일부이며, 실제 구현 내용은 아닙니다. 전체 코드는 깃허브에서 확인할 수 있습니다.
[접미사](https://en.wikipedia.org/wiki/Postfix_\(software\)과 같은 업계 표준과 유사하게 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은 샌드박스 암호화를 통해 근본적으로 다른 접근 방식을 취합니다.
- 완전한 격리: 각 사용자의 데이터는 암호화된 자체 SQLite 데이터베이스 파일에 저장되며, 다른 사용자와 완전히 격리됩니다.
- 독립적인 암호화 키: 각 데이터베이스는 사용자 비밀번호에서 파생된 고유한 키로 암호화됩니다.
- 공유 저장소 없음: 모든 사용자의 이메일이 단일 "이메일" 테이블에 저장되는 관계형 데이터베이스와 달리, 본 접근 방식은 데이터 혼합을 방지합니다.
- 심층적인 방어: 한 사용자의 데이터베이스가 어떤 식으로든 손상되더라도 다른 사용자의 데이터에 접근할 수 없습니다.
이 샌드박스 방식은 이메일을 내부 칸막이가 있는 공유 저장 시설에 보관하는 것이 아니라 별도의 물리적 보관함에 보관하는 것과 유사합니다. 이는 개인정보 보호와 보안을 크게 강화하는 근본적인 아키텍처적 차이점입니다.
메모리 내 이메일 처리: 최대 개인 정보 보호를 위해 디스크 저장 없음
저희 이메일 전달 서비스는 이메일을 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은 기본적으로 활성화된 여러 계층의 콘텐츠 보호 기능을 제공하여 다양한 위협으로부터 포괄적인 보안을 제공합니다.
- 성인 콘텐츠 보호 - 개인정보를 침해하지 않고 부적절한 콘텐츠를 차단합니다.
- 피싱 보호 - 익명성을 유지하면서 정보 도용 시도를 차단합니다.
- 실행 파일 보호 - 콘텐츠를 검사하지 않고 잠재적으로 유해한 첨부 파일을 차단합니다.
- 바이러스 보호 - 개인정보 보호 기술을 사용하여 맬웨어를 검사합니다.
이러한 기능을 옵트인 방식으로 제공하는 많은 서비스 제공업체와 달리, 저희는 모든 사용자가 기본적으로 이러한 보호 기능을 이용할 수 있도록 옵트아웃 방식으로 제공했습니다. 이러한 접근 방식은 개인정보 보호와 보안을 모두 중시하는 저희의 노력을 반영하며, 많은 이메일 서비스에서 달성하지 못하는 균형을 제공합니다.
다른 이메일 서비스와의 차이점: 기술적 개인 정보 보호의 이점
Forward Email을 다른 이메일 서비스와 비교해보면 몇 가지 주요 기술적 차이점이 개인정보 보호 우선 접근 방식을 잘 보여줍니다.
검증 가능한 개인 정보 보호를 위한 오픈 소스 투명성
많은 이메일 제공업체가 오픈 소스라고 주장하지만, 백엔드 코드는 비공개로 유지하는 경우가 많습니다. Forward Email은 프런트엔드 및 백엔드 코드를 포함하여 100% 오픈 소스으로 보호됩니다. 이러한 투명성 덕분에 모든 구성 요소에 대한 독립적인 보안 감사가 가능해져, 당사의 개인정보 보호 주장을 누구나 검증할 수 있습니다.
공급업체에 종속되지 않아 타협 없이 개인 정보를 보호합니다.
개인정보 보호에 중점을 둔 많은 이메일 제공업체는 자사 전용 앱이나 브리지 사용을 요구합니다. Forward Email은 IMAP, POP3, SMTP 프로토콜을 통해 모든 표준 이메일 클라이언트와 호환되므로 개인정보 침해 없이 원하는 이메일 소프트웨어를 자유롭게 선택할 수 있습니다.
진정한 격리를 위한 샌드박스 데이터
모든 사용자 데이터가 통합되는 공유 데이터베이스를 사용하는 서비스와 달리, 저희의 샌드박스 방식은 각 사용자의 데이터를 완전히 격리합니다. 이러한 근본적인 아키텍처적 차이점은 대부분의 이메일 서비스보다 훨씬 강력한 개인정보 보호 보장을 제공합니다.
데이터 이동성 및 제어
저희는 귀하의 데이터가 귀하에게 귀속된다고 믿습니다. 따라서 귀하의 이메일을 표준 형식(MBOX, EML, SQLite)으로 쉽게 내보내고 원하실 때 데이터를 삭제할 수 있도록 지원합니다. 이러한 수준의 제어는 이메일 제공업체에서는 흔치 않지만, 진정한 개인정보 보호를 위해서는 필수적입니다.
개인 정보 보호 중심 이메일 전달의 기술적 과제
개인정보 보호를 최우선으로 하는 이메일 서비스를 구축하는 데는 상당한 기술적 어려움이 따릅니다. 저희가 극복한 몇 가지 어려움은 다음과 같습니다.
무로깅 이메일 처리를 위한 메모리 관리
디스크 저장 공간 없이 메모리 내에서 이메일을 처리하려면 대량의 이메일 트래픽을 효율적으로 처리하기 위해 신중한 메모리 관리가 필요합니다. 당사는 개인정보 보호 전략의 핵심 요소인 무저장 정책을 저해하지 않으면서도 안정적인 성능을 보장하기 위해 고급 메모리 최적화 기술을 구현했습니다.
개인 정보 보호 필터링을 위한 콘텐츠 분석 없이 스팸 감지
대부분의 스팸 탐지 시스템은 이메일 내용 분석에 의존하는데, 이는 당사의 개인정보 보호 원칙에 위배됩니다. 당사는 이메일 내용을 읽지 않고도 스팸 패턴을 식별하는 기술을 개발하여 개인정보 보호와 사용성 간의 균형을 유지하면서 사용자 커뮤니케이션의 기밀성을 유지합니다.
개인 정보 보호 우선 디자인으로 호환성 유지
모든 이메일 클라이언트와의 호환성을 보장하고 고급 개인정보 보호 기능을 구현하기 위해서는 창의적인 엔지니어링 솔루션이 필요했습니다. 저희 팀은 개인정보 보호가 원활하게 이루어지도록 끊임없이 노력해 왔습니다. 이제 이메일 커뮤니케이션을 보호할 때 편의성과 보안 중 하나를 선택할 필요가 없습니다.
전달 이메일 사용자를 위한 개인정보 보호 모범 사례
Forward Email을 사용할 때 이메일 감시로부터 최대한 보호하고 개인 정보 보호를 극대화하려면 다음과 같은 모범 사례를 권장합니다.
- 서비스별로 고유한 별칭 사용 - 서비스 간 추적을 방지하기 위해 가입하는 각 서비스마다 다른 이메일 별칭을 만드세요.
- OpenPGP 암호화 활성화 - 민감한 통신의 경우, 종단 간 암호화를 사용하여 완벽한 개인 정보 보호를 보장하세요.
- 이메일 별칭을 정기적으로 변경하세요. - 중요한 서비스의 별칭을 정기적으로 업데이트하여 장기적인 데이터 수집을 최소화하세요.
- 강력하고 고유한 비밀번호 사용 - 무단 접근을 방지하기 위해 강력한 비밀번호로 전달 이메일 계정을 보호하세요.
- IP 주소 익명화 구현 - 완벽한 익명성을 위해 전달 이메일과 함께 VPN을 사용하는 것을 고려하세요.
결론: 개인 이메일 전달의 미래
Forward Email은 개인정보 보호가 단순한 기능이 아니라 기본적인 권리라고 믿습니다. 이러한 신념을 반영하여, 모든 단계에서 개인정보를 존중하고 이메일 감시 및 메타데이터 수집으로부터 사용자를 보호하는 이메일 전달 서비스를 제공합니다.
저희는 서비스를 지속적으로 개발하고 개선해 나가면서도 개인정보 보호에 대한 저희의 헌신은 변함없습니다. 저희는 끊임없이 새로운 암호화 방식을 연구하고, 추가적인 개인정보 보호 방안을 모색하며, 가장 안전한 이메일 경험을 제공하기 위해 코드베이스를 개선하고 있습니다.
Forward Email을 선택하시면 단순히 이메일 서비스를 선택하는 것이 아니라, 개인정보 보호가 예외가 아닌 기본 원칙인 인터넷 비전을 지지하는 것입니다. 한 번에 한 통의 이메일로 더욱 안전한 디지털 미래를 만들어 나가는 데 함께해 주세요.