در چارچوب پروژه TFC (Tinfoil Chat) ، سعی شد نمونه ای از یک سیستم پیام رسانی محافظت شده از پارانوئید ایجاد شود که محرمانه بودن مکاتبات را حتی اگر دستگاه های نهایی به خطر بیفتد ، حفظ کنند. برای ساده کردن ممیزی ، کد پروژه در پایتون نوشته شده و تحت مجوز GPLv3 در دسترس است.
سیستم های پیام رسان گسترده امروزی که از رمزگذاری نهایی استفاده می کنند ، می توانند مکاتبات را از رهگیری روی سرورهای میانی و آنالیز ترافیک ترانزیت محافظت کنند ، اما آنها در برابر مشکلات طرف دستگاه مشتری محافظت نمی کنند. برای به خطر انداختن سیستم های مبتنی بر رمزگذاری نهایی تا انتها ، کافی است سیستم عامل ، سیستم عامل یا برنامه مسنجر در دستگاه نهایی به خطر بیفتد ، به عنوان مثال از طریق سوء استفاده از آسیب پذیری های قبلاً ناشناخته ، از طریق معرفی اولیه نرم افزار یا بوکمارک های سخت افزاری به دستگاه یا از طریق ارسال به روزرسانی جعلی با درپشتی (مثلاً هنگام تهیه فشار بر توسعه دهنده توسط سرویس های ویژه یا گروه های جنایتکار). حتی اگر کلیدهای رمزگذاری بر روی یک نشانه جداگانه باشد ، در صورت وجود کنترل بر روی سیستم کاربر ، همیشه امکان ردیابی فرآیندها ، رهگیری داده ها از صفحه کلید و ردیابی خروجی به صفحه نمایش وجود دارد.
TFC یک مجموعه نرم افزاری سخت افزاری را ارائه می دهد که نیاز به استفاده از سه رایانه جداگانه و یک تقسیم سخت افزار مخصوص در سمت مشتری دارد. کلیه ترافیک در طول تعامل شرکت کنندگان در پیام رسانی از طریق شبکه ناشناس Tor منتقل می شود و برنامه های پیام رسانی در قالب سرویس های پنهان Tor انجام می شود (کاربران هنگام تبادل پیام توسط آدرس سرویس های پنهان و کلیدها شناسایی می شوند).

اولین رایانه به عنوان دروازه ای برای اتصال به شبکه و شروع سرویس پنهان Tor عمل می کند. این دروازه فقط داده های رمزگذاری شده را دستکاری می کند و از دو رایانه دیگر برای رمزگذاری و رمزگشایی استفاده می شود. از رایانه دوم فقط می توان برای رمزگشایی و نمایش پیامهای دریافت شده استفاده کرد ، و سوم تنها برای رمزگذاری و ارسال پیام های جدید. بر این اساس ، رایانه دوم فقط کلید رمزگشایی دارد و سومین کلید فقط رمزگذاری است.
رایانه های دوم و سوم ارتباط مستقیمی با شبکه ندارند و از طریق یک تقسیم USB ویژه که از اصل "دیود داده" استفاده می کند از رایانه گیت جدا شده و به داده ها اجازه می دهد تا فقط از یک جهت بصورت جسمی منتقل شوند. تقسیم کننده اجازه می دهد تا فقط داده را به طرف رایانه دوم ارسال کرده و فقط از رایانه سوم داده دریافت کند. جهت یابی داده ها در اسپلیتر توسط اپتوکوپلرها محدود است (یک شکست ساده از خطوط Tx و Rx در کابل کافی نیست ، زیرا یک استراحت مانع انتقال داده ها در جهت مخالف نمی شود و تضمین نمی کند که از خط Tx برای خواندن استفاده نمی شود بلکه Rx برای انتقال است). شکاف را می توان از قطعات بداهه مونتاژ کرد ، مدارها بهم وصل شدند (PCB) و تحت مجوز GNU FDL 1.3 در دسترس هستند.

با استفاده از این طرح ، سازش دروازه اجازه دسترسی به کلیدهای رمزنگاری را نمی دهد و اجازه ادامه حمله به وسایل باقی مانده را نمی دهد. در مورد به خطر انداختن رایانه ای که کلیدهای رمزگشایی در آن قرار دارد ، اطلاعاتی از آن نمی تواند به دنیای خارج منتقل شود ، زیرا جریان داده فقط با دریافت اطلاعات محدود شده است و دیود داده انتقال گیرنده معکوس را مسدود می کند.

رمزگذاری مبتنی بر کلیدهای 256 بیتی در XChaCha20-Poly1305 است ؛ از عملکرد hash کند Argon2id برای محافظت از کلیدها با رمز عبور استفاده می شود. برای تبادل کلید ، از X448 (پروتکل Diffie-Hellman مبتنی بر Curve448) یا کلیدهای PSK (از قبل مشترک) استفاده می شود. هر پیام به صورت محرمانه مستقیم و کامل (PFS ، Perfect Forward Secrey) بر اساس هش Blake2b منتقل می شود ، که در آن به خطر انداختن یکی از کلیدهای بلند مدت امکان رمزگشایی یک جلسه قبلاً رهگیر را نمی دهد. رابط برنامه بسیار ساده است و شامل یک پنجره است که به سه قسمت تقسیم می شود – ارسال ، دریافت و خط فرمان با ورود به سیستم تعامل با دروازه. مدیریت از طریق مجموعه خاصی از دستورات انجام می شود.

OpenNET