
اتصالات صوتية ونصية مشفرة من نوع push-to-talk عبر خدمات Tor المخفية مع تشفير من طرف إلى طرف، وأصفار قابلة للتكوين، ووضع الترحيل للمكالمات الجماعية، وتدمير البيانات المضاد للطب الشرعي.
اتصال صوتي مشفر من نوع "اضغط لتتكلم" عبر خدمات تور المخفية.
TerminalPhone هو سكربت Bash واحد مكتفي بذاته يوفر اتصالًا صوتيًا ونصيًا مشفرًا من طرف إلى طرف وبشكل مجهول بين طرفين أو أكثر عبر شبكة تور. يعمل مثل جهاز اتصال لاسلكي: تقوم بتسجيل رسالة صوتية، ويتم ضغطها وتشفيرها وإرسالها إلى الطرف الآخر كوحدة واحدة. يمكنك أيضًا إرسال رسائل نصية مشفرة أثناء المكالمة. لا حاجة لبنية تحتية للخوادم، ولا حسابات، ولا أرقام هواتف. عنوان خدمتك المخفية .onion على تور هو هويتك.
T لكتابة رسالة..onion عند الاتصال. يتم عرض العنوان البعيد في رأس المكالمة.S أثناء المكالمة للوصول إلى الإعدادات. قم بتغيير خوارزمية التشفير الخاصة بك أثناء التشغيل؛ يتم تحديث عرض الطرف البعيد تلقائيًا.التوزيعات المدعومة: Debian/Ubuntu (apt)، Fedora/RHEL (dnf)، Arch (pacman).``` bash
git clone https://gitlab.com/here_forawhile/terminalphone.git cd terminalphone bash terminalphone.sh
اختر الخيار **7** من القائمة لتثبيت جميع التبعيات تلقائيًا. سيتم تثبيت الحزم التالية:
| الحزمة | الغرض |
|---|---|
| `tor` | توجيه البصل وخدمة مخفية |
| `opus-tools` | ضغط الصوت (كودك Opus) |
| `sox` | أدوات معالجة الصوت |
| `socat` | ترحيل TCP ثنائي الاتجاه عبر وكيل Tor SOCKS |
| `openssl` | تشفير AES-256-CBC وفك التشفير |
| `alsa-utils` | تسجيل وتشغيل الصوت (`arecord`, `aplay`) |
### macOS``` bash
git clone https://gitlab.com/here_forawhile/terminalphone.git
cd terminalphone
bash terminalphone.sh
اختر الخيار 7 لتثبيت جميع التبعيات تلقائيًا. إذا لم يكن Homebrew مثبتًا، فسيقوم السكريبت بتثبيته أولاً، ثم تثبيت الحزم التالية:
ملاحظة: يستخدم macOS أداة sox لكل من التسجيل (rec) والتشغيل (play) بدلاً من ALSA. لا حاجة لحزم صوتية إضافية.
Apple Silicon (M1/M2/M3+): إذا كانت نافذة الأوامر تعمل تحت Rosetta 2 (عملية x86_64) بينما Homebrew مثبت في الدليل الأصلي لمعمارية ARM (/opt/homebrew)، فإن brew install تفشل عادةً مع الخطأ Cannot install under Rosetta 2 in ARM default prefix. يكتشف مثبت التبعيات هذا الآن ويعيد تشغيل Homebrew تلقائيًا تحت arch -arm64، لذا يعمل الخيار 7 بغض النظر عن كيفية تشغيل السكريبت.
يدعم TerminalPhone أجهزة Android من خلال Termux. نظرًا لمعمارية الصوت المعزولة في Android، يلزم وجود مكونين إضافيين.
الخطوة 1: تثبيت Termux
قم بتثبيت Termux من F-Droid. لا تستخدم إصدار متجر Google Play، لأنه قديم ولم يعد يتلقى التحديثات.
الخطوة 2: تثبيت تطبيق Termux:API
قم بتثبيت Termux:API من F-Droid. هذا تطبيق Android منفصل (ليس حزمة Termux) يوفر جسرًا بين Termux وواجهات برمجة تطبيقات نظام Android. يحتاج TerminalPhone إليه للوصول إلى ميكروفون الجهاز وتشغيل الوسائط.
بدون تثبيت تطبيق Termux:API على الجهاز، لن تعمل الأوامر termux-microphone-record و termux-media-player، وسيفشل تسجيل الصوت وتشغيله بصمت.
بعد تثبيت تطبيق Termux:API، امنحه أذونات الميكروفون عند الطلب.
الخطوة 3: تثبيت حزمة Termux:API داخل Termux```bash pkg install termux-api
هذا يقوم بتثبيت الأدوات المساعدة لسطر الأوامر التي تتواصل مع تطبيق Termux:API.
**الخطوة 4: تشغيل TerminalPhone**```bash
git clone https://gitlab.com/here_forawhile/terminalphone.git
cd terminalphone
bash terminalphone.sh
اختر الخيار 7 لتثبيت جميع التبعيات المتبقية. سيقوم المثبت بتشغيل pkg upgrade أولاً لحل أي مشاكل في ربط الحزم، ثم يقوم بتثبيت tor وopus-tools وsox وsocat وopenssl-tool وffmpeg وtermux-api.
تبعيات خاصة بـ Termux:
| الحزمة | الغرض |
|---|---|
termux-api | جسر سطر الأوامر لميكروفون أندرويد ومشغل الوسائط |
ffmpeg | يحول تسجيلات M4A من أندرويد إلى PCM خام لتشفير Opus |
To receive a call: Select option 1 (Listen for calls) To make a call: Select option 2 (Call an onion address)
يجب أن يكون كل من الطرفين لديه Tor قيد التشغيل ونفس السر المشترك تم تكوينه قبل بدء المكالمة.
---
## الاستخدام
### خيارات القائمة```
1 Listen for calls Wait for an incoming connection
2 Call an onion address Connect to a remote .onion endpoint
3 Show my onion address Display your .onion address (with optional QR code)
4 Set shared secret Configure the pre-shared encryption key
5 Test audio (loopback) Record and play back audio locally
6 Show status Display Tor, secret, and connection status
7 Install dependencies Install all required packages
8 Start Tor Start the Tor process and hidden service
9 Stop Tor Stop the Tor process
10 Restart Tor Stop and restart Tor
11 Rotate onion address Generate a new .onion address (destroys the old one)
12 Settings Configure Opus quality, PTT chime, Snowflake, auto-listen, PTT key, voice changer, security, Tor settings
13 Relay mode Start a zero-knowledge group bridge for N callers
0 Quit Stop Tor and exit
لينكس (اضغط للتحدث):
| المفتاح | الإجراء |
|---|---|
| الضغط مع الاستمرار على SPACE | تسجيل رسالة صوتية. تُرسل تلقائياً عند رفع الإصبع. |
| T | إرسال رسالة نصية مشفرة. |
| S | فتح الإعدادات أثناء المكالمة (تغيير التشفير، ضبط الجودة). |
| Q | إنهاء المكالمة والعودة إلى القائمة. |
Termux (وضع التبديل):)
لوحة المفاتيح البرمجية في أندرويد ترسل أحداث الضغط عند رفع الإصبع، وليس عند الضغط. يتكيف TerminalPhone مع ذلك باستخدام وضع التبديل في Termux.
| المفتاح | الإجراء |
|---|---|
| النقر على SPACE | بدء التسجيل. انقر مرة أخرى للإيقاف والإرسال. |
| T |
bash terminalphone.sh install # Install dependencies bash terminalphone.sh test # Audio loopback test bash terminalphone.sh status # Show status bash terminalphone.sh listen # Listen for incoming calls bash terminalphone.sh call ADDRESS # Call a .onion address bash terminalphone.sh relay # Start relay mode (group bridge)
## كيف يعمل
يستخدم TerminalPhone نموذج التسجيل ثم الإرسال. عند تفعيل PTT، يسجل الميكروفون بشكل مستمر حتى تحرره. ثم تتم معالجة التسجيل الكامل عبر المسار التالي:```
SENDER RECEIVER
────── ────────
Microphone Speaker
│ ▲
▼ │
Raw PCM (8kHz, 16-bit, mono) Opus decode
│ ▲
▼ │
Opus encode (16kbps) AES-256-CBC decrypt
│ ▲
▼ │
AES-256-CBC encrypt Base64 decode
│ ▲
▼ │
Base64 encode ──▶ socat ──▶ Tor ──▶ socat ──▶ Receive
بروتوكول الأسلاك هو نص قائم على الأسطر عبر اتصال TCP:
على Termux، خطوة تحويل إضافية تتعامل مع تنسيق التسجيل الأصلي M4A لنظام Android، وذلك باستخدام ffmpeg للتحويل إلى PCM خام قبل تشفير Opus.
التشفير: يتم تشفير كل الصوت باستخدام خوارزمية تشفير قابلة للتكوين من قبل المستخدم (الافتراضي: AES-256-CBC) قبل الإرسال. تتوفر 21 خوارزمية تشفير مختارة، مرتبة من الأقوى (256 بت) إلى الكافي (128 بت). يتم استخلاص المفتاح من سر مشترك مسبق باستخدام PBKDF2 مع 10,000 تكرار. يتم تطبيق التشفير على طبقة التطبيق، بشكل مستقل عن تشفير النقل في Tor. يتم تمرير الأسرار إلى OpenSSL عبر واصفات الملفات (-pass fd:3)، وليس عبر معاملات سطر الأوامر، لذلك لا تظهر أبدًا في جدول العمليات.
التفاوض على خوارزمية التشفير: يتبادل الطرفان أسماء خوارزميات التشفير عند الاتصال وعند تغيير خوارزمية التشفير أثناء المكالمة. أسماء خوارزميات التشفير ليست سرية (مبدأ كيرشوف). إذا لم تتطابق خوارزمية التشفير المحلية والبعيدة، يرى الطرفان مؤشرات حمراء في رأس المكالمة.
النقل: يتم توجيه جميع البيانات عبر دوائر الخدمة المخفية في Tor. لا يتم كشف عنوان IP لأي من الطرفين. لا يوجد حركة مرور على الشبكة العامة. لا يمكن إسناد الاتصال إلى أي من الطرفين من قبل مراقب الشبكة.
مقاومة تحليل حركة المرور: ينتج نموذج التسجيل ثم الإرسال أنماط إرسال غير منتظمة (رسائل متغيرة الطول على فترات غير منتظمة)، مما يصعب تمييزها مقارنة بالتدفق المستمر.
المصادقة: يعمل السر المشترك كمصادقة ضمنية. إذا لم يكن لدى الطرفين نفس السر، يفشل فك التشفير ولا يتم تشغيل أي صوت. عند الاتصال، يتبادل الطرفان عناوين .onion لتحديد هوية المتصل. يمكن تشفير السر أثناء التخزين باستخدام كلمة مرور؛ عند التشغيل، يطلب السكريبت كلمة المرور لفتحه.
توقيع بروتوكول HMAC (اختياري): عند تفعيله، يتم توقيع كل رسالة من رسائل بروتوكول الأسلاك – بما في ذلك إشارات التحكم مثل HANGUP وPTT_START وPING – باستخدام HMAC-SHA256 المشتق من السر المشترك. يتم تضمين nonce عشوائي لكل رسالة بحيث تنتج الأوامر المتطابقة توقيعات فريدة. يتم تتبع ال nonces التي تم رؤيتها لكل مكالمة ويتم رفض المكررات، مما يمنع هجمات إعادة الإرسال. يتم تجميد إعداد HMAC في بداية المكالمة من خلال ملف وقت التشغيل بحيث يتفق كل من مساري الإرسال والاستقبال دائمًا، حتى لو تم تبديل الإعداد أثناء المكالمة (تصبح التغييرات سارية في المكالمة التالية). في جانب الاستقبال، أي رسالة بتوقيع غير صالح أو مفقود أو معاد إرساله يتم إسقاطها بصمت. هذا يمنع المهاجم الذي يخترق دائرة Tor (ولكن ليس لديه السر المشترك) من حقن الأوامر أو إعادة إرسالها. يجب على كلا الطرفين تفعيل HMAC لكي تعمل المكالمات. غير متوافق مع الإصدارات السابقة لـ 1.1.3.
القيود:
أمان وضع ال relay: ال relay هو معماريًا ذو معرفة صفرية. لا يمتلك أبدًا السر المشترك ولا يمكنه فك تشفير أي محتوى. تتدفق بيانات الصوت عبر مخازن أنابيب kernel (FIFOs) التي توجد فقط في الذاكرة – لا شيء يُكتب على القرص. عندما يتوقف ال relay، يتم حذف جميع الملفات المؤقتة. لا يمكن لمشغل ال relay تحديد ما قيل، أو من هم المتصلون، أو قراءة أي رسائل. يقوم ال relay بتصفية جميع إشارات التحكم (HANGUP وID: وCIPHER: وPTT_START وPTT_STOP) ويقوم بإعادة توجيه AUDIO: وMSG: وPING فقط. يمكن للخصم السلبي العالمي إجراء تحليل ارتباط حركة المرور لربط المتصلين بال relay، ولكن محتوى الرسالة يظل مبهمًا.
سعة ال relay: الاختناق الرئيسي هو عرض النطاق الترددي ل Tor. إنتاجية الخدمة المخفية في Tor متغيرة للغاية وتعتمد على جودة الدائرة، وازدحام ال relay، والمسافة الجغرافية. رسالة صوتية نموذجية مدتها 10 ثوانٍ تبلغ ~20KB مشفرة، ويتم إرسال كل رسالة إلى N-1 مستمع.
السعة الواقعية هي 3–5 متصلين ل relay يعمل على هاتف (Termux)، أو 5–10 متصلين على جهاز Linux مخصص مع اتصال مستقر. تواجه ال relays التي تعمل على الأجهزة المحمولة قيودًا إضافية: تضيف بيانات الجوال زمن انتقال فوق Tor، وقد يقتل Android عمليات Termux في الخلفية لاستعادة الذاكرة، ويزيد استهلاك البطارية مع كل متصل متصل. يمكن أن يختلف عرض النطاق الترددي لدائرة Tor من 50KB/s إلى 500KB/s اعتمادًا على جودة المسار، وقد تتدهور الدوائر أو تدور أثناء الجلسة. يحسن وضع القفزة الواحدة الإنتاجية ولكنه لا يزيل ازدحام ال relay في Tor. تفترض هذه التقديرات نموذج PTT حيث ينقل شخص واحد فقط في كل مرة – الإرسالات المتزامنة ستؤدي إلى تدهور الأداء أكثر. يجب على المتصلين في مكالمة جماعية التفكير في خفض معدل بت Opus الخاص بهم (الإعدادات ← تشفير Opus) لتقليل أحجام الرسائل وتخفيف الحمل على ال relay.
يتم تخزين جميع التهيئات في .terminalphone/ بالنسبة لموقع السكريبت:```
.terminalphone/
tor_data/ Tor data directory and hidden service keys
audio/ Temporary audio files (cleaned on exit)
pids/ Process ID tracking
shared_secret Encrypted shared secret file
torrc Generated Tor configuration
المعلمات الصوتية الافتراضية (محددة في أعلى السكربت):
| المعامل | القيمة الافتراضية | الوصف |
|---|---|---|
| `LISTEN_PORT` | 7777 | منفذ TCP للاتصالات الواردة |
| `TOR_SOCKS_PORT` | 9050 | منفذ وكيل SOCKS الخاص بـ Tor |
| `OPUS_BITRATE` | 16 | معدل بت تشفير Opus بالكيلوبت في الثانية |
| `CIPHER` | aes-256-cbc | تشفير (قابل للتكوين عبر الإعدادات) |
| `SNOWFLAKE_ENABLED` | 0 | جسر Snowflake للالتفاف على الرقابة |
| `AUTO_LISTEN` | 0 | الاستماع التلقائي للمكالمات عند بدء تشغيل Tor |
| `PTT_KEY` | SPACE | مفتاح الدفع للتحدث (قابل للتكوين عبر الإعدادات) |
| `VOL_PTT` | 0 | الضغط المزدوج على زر خفض الصوت (PTT)، لـ Termux فقط (تجريبي) |
| `EXCLUDE_NODES` | (فارغ) | قائمة الدول المستبعدة في Tor ExcludeNodes (مثال `{US},{GB}`) |
| `HMAC_AUTH` | 0 | توقيع جميع رسائل البروتوكول بـ HMAC (اختياري، يجب أن يتطابق الطرفان) |
| `OVERWRITE_DELETE` | 0 | استبدال الملفات المؤقتة ببيانات عشوائية قبل الحذف (معطل افتراضيًا) |
| `PTT_CHIME` | off | نغمة إشعار PTT المسبقة (off, tone, double, chirp, ding, click, custom) |
| `SINGLE_HOP` | 0 | وضع Tor ذو القفزة الواحدة لتقليل زمن الانتقال (يعطل إخفاء هوية الخادم) |
| `SAMPLE_RATE` | 8000 | معدل أخذ العينات الصوتي بالهرتز |
| `CHUNK_DURATION` | 1 | مدة أجزاء اختبار الصوت بالثواني |
---
## استكشاف الأخطاء وإصلاحها
**فشل بدء تشغيل Tor:**
تحقق من سجل Tor على `.terminalphone/tor_data/tor.log`. تشمل الأسباب الشائعة انحراف الساعة، أو قيود الشبكة التي تحظر Tor، أو وجود مثيل آخر من Tor يستخدم نفس منفذ SOCKS.
**لا يوجد صوت على Termux:**
تأكد من تثبيت تطبيق Termux:API من F-Droid (وليس فقط حزمة `termux-api`). امنح أذونات الميكروفون لتطبيق Termux:API في إعدادات Android. قم بتشغيل اختبار الحلقة الصوتية (الخيار 5) للتحقق.
**فشل تثبيت ffmpeg على Termux:**
قم بتشغيل `pkg upgrade` قبل تثبيت التبعيات. يقوم المثبت بذلك تلقائيًا، ولكن إذا قمت بتثبيت الحزم يدويًا، فقد تسبب مكتبات المشاركة القديمة أخطاء في الربط.
**اختبار الصوت يعمل ولكن المكالمات صامتة:**
تأكد من أن كلا الطرفين يستخدم نفس السر المشترك. سيؤدي عدم تطابق الأسرار إلى فشل فك التشفير دون رسالة خطأ - يتم الاتصال ولكن لا يُسمع صوت.
**جسر Snowflake بطيء في الاتصال:**
يقوم Snowflake بتوجيه حركة المرور عبر وكلاء WebRTC، مما يضيف وقت تمهيد إضافي. من الطبيعي أن يستغرق Tor من 30 إلى 60 ثانية (أو أكثر) للوصول إلى 100% عند تمكين Snowflake. سيعرض السكربت إشعارًا بالصبر أثناء التشغيل التمهيدي.
**أول تشغيل تمهيدي لـ Tor بطيء:**
في التشغيل الأول، يجب على Tor تنزيل الإجماع الكامل للشبكة من البداية، مما قد يستغرق دقيقة أو دقيقتين. يكتشف السكربت ذلك ويعرض إشعارًا. يتم تمديد مهلة التشغيل التمهيدي تلقائيًا من 120 إلى 300 ثانية في التشغيل الأول. تستخدم عمليات الإطلاق اللاحقة بيانات الإجماع المخزنة مؤقتًا وتكون أسرع بكثير.
**إنهاء المكالمة لا يعود إلى القائمة:**
إذا توقف السكربت بعد الضغط على Q، اضغط على Ctrl+C لفرض التنظيف والعودة إلى الصدفة.
**`Cannot install under Rosetta 2 in ARM default prefix` على macOS:**
يحدث هذا على Apple Silicon عندما يكون الطرف الطرفية قيد التشغيل تحت Rosetta 2 (عملية `x86_64`) بينما Homebrew موجود في المسار الأصلي لـ ARM (`/opt/homebrew`). يكتشف مثبت التبعيات (الخيار **7**) هذا الآن ويعيد تشغيل `brew` تلقائيًا تحت `arch -arm64`. إذا كنت تقوم بتثبيت الحزم يدويًا، فقم بإضافتها بنفسك: `arch -arm64 brew install <pkg>`. بدلاً من ذلك، قم بتشغيل السكربت بشكل أصلي باستخدام `arch -arm64 bash terminalphone.sh`.
---
[MIRROR V1.0.0](https://bin.disroot.org/?e1356291b098cb75#FMQ4gxFwgdr3rjR1dpGS2csLmDPzDEkQW16fQ5P2Vt4y)
[MIRROR V1.0.1](https://bin.disroot.org/?d3bc0b8976113f58#AuUm4ev4vfeVmPyrh2KjAdhDP6WN4UX6yKQh9ERGD5Qt)
[MIRROR V1.0.2](https://bin.disroot.org/?6bc5b2fd046de1d7#G7TmnytrMeaM5AZYWth6BjjdqUb9RDf3K9erHUExKcGX)
[MIRROR V1.0.3](https://bin.disroot.org/?c5010f039e4693fd#Brp1w7LRQH9d5Ye5npZDPxNVR855SW9QUAk9cJaUuLYX)
[MIRROR V1.0.4](https://bin.disroot.org/?1831f6b78e349142#7zaAMVPNJL3MfbGJzjtm6cCPcvQftf4ULXupdne5dRKw)
[MIRROR V1.0.5](https://bin.disroot.org/?edfcfc844987ed03#56LuBbqbkfNDXfHpydyaB3VcWYhYenX18dtSvNumERY9)
[MIRROR V1.0.6](https://bin.disroot.org/?6c7b4774108b0c1c#GQPst46zjAYidndmNvytforX7MK2LyHanL4d829vVcv4)
[MIRROR V1.0.7](https://bin.disroot.org/?047003637623b4fa#EwmaysciDpiDkht8xV7ce3QcR9oxFXaxSikh4cLheXBB)
[MIRROR V1.0.8](https://bin.disroot.org/?06e38bd64e6fbdad#88MYs3dmq9rSMkmocpW3NYaaG4YfSdRCc9LJnEEzqGYp)
[MIRROR V1.0.9](https://bin.disroot.org/?950218a9a7c71c66#E7Z94VCGBZozrfXYhGwKyAdMeTxuavg92tA1pn2DbrrB)
[MIRROR V1.1.0](https://bin.disroot.org/?0b0da14f31521b3a#B1c23J8xFoZZKErvGG28PgbtfgtMUcDABWmQEoSZfXgh)
[MIRROR V1.1.1](https://bin.disroot.org/?d8e2d4f0300eb5af#9Y1C8CkcH9jAmv1fh4GZs1yYpJmWCG5xG3SvDYdwnJam)
[MIRROR V1.1.2](https://bin.disroot.org/?b1059616f880925f#8ef2oscZXUkPAsJZwGfWvLPQagVAk5GgW4DyssmLvQpG)
[MIRROR V1.1.3](https://bin.disroot.org/?b02658801518aaa7#JE6CsBLWUwAnTdBqeHgeXL7QF5UExgi9rnygcfyMZjCJ)
[MIRROR V1.1.4](https://bin.disroot.org/?d31248fc44c287a0#HQELFWFEMpM9kfTZSGDXTdGFMVKTejox5CajF9Vm4Www)
[MIRROR V1.1.5](https://bin.disroot.org/?284b723ed6aad15f#8VCrrri6yRpdg3uVDSY94wpx7LYkw5uYhm4Vbhka83sM)
[MIRROR V1.1.5.1](https://bin.disroot.org/?26aaef1eff20c271#4GxQQPSDhrszTu1RmERySNVqD2fZW5GZwm3JeL1parpB)
[MIRROR V1.1.6](https://bin.disroot.org/?ae8270578cd9e081#BbcDLU49XqhecvwviHRcdfrZ4vhKdL2AMeKaT5v9oLV1)
[MIRROR V1.1.7](https://bin.disroot.org/?457e4308abe582d8#B9LJG88rmUwrGHHuCof8WpE8CXGmkc2tyrXXicEiJFWk)
---
## الترخيص
MIT
jq (يتم تثبيته عند الطلب). يتم استعادة مستوى الصوت تلقائيًا بعد كل تشغيل..onion الخاص بك كنقطة نهاية قابلة للتوجيه بشكل دائم. لا حاجة لإعادة توجيه المنافذ أو عنوان IP عام..onion الخاص بك كرمز QR قابل للمسح في الطرفية. إذا لم يكن qrencode مثبتًا، يتم مطالبتك بتثبيته. يتم عرض رمز QR على المخزن المؤقت للشاشة البديلة ويتم تدميره عند الرفض. ملاحظة تحذر من أن بعض ماسحات QR تقوم تلقائيًا بإضافة http://؛ يتم إزالة هذه البادئة تلقائيًا عند الاتصال..tmp عامة ومعرفات سداسية عشرية عشوائية. لا يتم تسريب أي نوع ملف أو بيانات وصفية زمنية لنظام الملفات.ExcludeNodes مع StrictNodes في ملف torrc./dev/urandom قبل الحذف. يتم قراءة حجم الملف، وتكتب تلك البايتات من البيانات العشوائية فوق الملف باستخدام dd مع conv=notrunc، ويتم مسح الكتابة على جهاز التخزين باستخدام sync، ثم يتم إزالة الملف باستخدام rm. يغطي جميع ملفات وقت التشغيل الحساسة: تسجيلات PCM الخام، الصوت المشفر بـ Opus، الحمولات المشفرة، الصوت الوارد المفكوك تشفيره والدردشة، وسائط تأثير الصوت، مواد مفاتيح التشفير وHMAC، سجلات nonce، علامات الجلسة، ملفات PID، الأنابيب المسماة، مفاتيح خدمة تور المخفية عند التدوير، وبيانات جلسة المرحل. بالنسبة للأدلة، تتم الكتابة فوق جميع الملفات داخلها بشكل متكرر. خيار اختبار مدمج ينشئ ملفًا نموذجيًا، ويعرض المحتوى الأصلي بنص عادي وسداسي عشري، ويكتب فوقه، ويعرض السداسي العشري المكتوب فوقه حتى يتمكن المستخدم من التأكيد بصريًا على تدمير البيانات. معطل افتراضيًا — بالنسبة لمعظم المستخدمين، يعتبر rm العادي جيدًا تمامًا. ملفات TerminalPhone المؤقتة صغيرة وقصيرة العمر، وعادة ما يتم إعادة استخدام مساحة القرص بسرعة بواسطة نشاط النظام العادي. هذه الميزة مخصصة للمستخدمين الذين يريدون طبقة إضافية من الحماية ضد الاسترداد الجنائي. ملاحظة: على أقراص SSD والتخزين الوميضي، يعني تسوية التآكل أن الكتابة فوق قد تهبط على خلايا NAND فيزيائية مختلفة — تشفير القرص الكامل هو الدفاع الوحيد الموثوق على وسائط الفلاش. على الأقراص الصلبة التقليدية HDD، تحل الكتابة فوق البيانات محل البيانات في نفس الموقع الفيزيائي وتكون فعالة ضد جميع أنواع الاسترداد القائمة على البرامج.RELAY:1 ويعرضون عدد المتصلين بالمجموعة بشكل حي. عدم بقاء أحد المتصلين لا يفصل الآخرين. لوحة تحكم المشغل تظهر عدد المتصلين، ومدة التشغيل، وإنتاجية البيانات.| الحزمة | الغرض |
|---|
tor | توجيه Onion والخدمة المخفية |
opus-tools | ضغط الصوت (كوديك Opus) |
sox | تسجيل وتشغيل الصوت (rec, play) |
socat | ترحيل TCP ثنائي الاتجاه عبر وكيل Tor SOCKS |
openssl | تشفير وفك تشفير AES-256-CBC |
| إرسال رسالة نصية مشفرة. |
| S | فتح الإعدادات أثناء المكالمة (تغيير التشفير، ضبط الجودة). |
| Q | إنهاء المكالمة والعودة إلى القائمة. |
| خفض الصوت ×2 | تبديل التسجيل عبر زر الصوت (يتطلب تفعيل Volume PTT في الإعدادات). |
| الرسالة | الوصف |
|---|
ID:<onion> | معرف المتصل – عنوان .onion للمرسل |
CIPHER:<name> | خوارزمية التشفير للمرسل. يتم تبادلها عند الاتصال وعند التغيير. |
PTT_START | بدأ المرسل بالتسجيل |
PTT_STOP | انتهى المرسل؛ الصوت يتبع أو تم إرساله |
AUDIO:<base64> | رسالة صوتية مشفرة كاملة |
MSG:<base64> | رسالة نصية مشفرة |
HANGUP | المرسل يقوم بقطع الاتصال |
PING | إشارة البقاء على اتصال |
RELAY:1 | تحية الم relay – يتم إرسالها بواسطة ال relay عند الاتصال، تؤدي إلى تفعيل وضع المجموعة |
GROUP:<n> | تحديث حجم المجموعة – يتم بثها بواسطة ال relay عندما ينضم أو يغادر المتصلون |
| المتصلون | الصادر لكل رسالة | التجربة المتوقعة |
|---|
| 2–3 | 20–40KB | موثوقة على معظم الاتصالات |
| 3–5 | 40–80KB | جيدة على الدوائر المستقرة، تأخيرات ممكنة على بيانات الجوال |
| 5–10 | 80–180KB | تصل إلى الحدود، تأخيرات ملحوظة بين الإرسالات |
| 10+ | 180KB+ | غير موثوقة، تكدس كبير وفقدان محتمل للرسائل |