إنتقل إلى المحتوى الرئيسي
صفحة غير مُدرجة
هذه الصفحة غير مُدرجة. لن تقوم محركات البحث بفهرستها، ولا يمكن الوصول إليها إلا للمستخدمين الذين لديهم رابط مباشر.

تفاصيل الحزمة التقنية

ينطبق على:
PQC ScannerRustCargoCross-Platform

التقنية الأساسية​

الإصدار: المستقر (يُوصى بالأحدث)

لماذا Rust؟

أمان الذاكرة

دون جمع للمهملات، مع ضمانات أمان الذاكرة عند وقت الترجمة

الأداء

تجريدات عديمة التكلفة، مماثلة لـ C/C++

التزامن

تزامن بلا مخاوف عبر نظام الملكية

عبر المنصات

دعم من الدرجة الأولى لـ Linux وmacOS وWindows

  • أدوات حديثة: مدير الحزم Cargo، وrustfmt، وclippy
  • نظام أنواع قوي: يمنع فئات عديدة من الأخطاء عند وقت الترجمة

التبعيات​

rustls (v0.23+)

تنفيذ TLS 1.2/1.3 بلغة Rust بحتة، يُستخدَم مع rustls-pemfile لتحميل PEM.

الميزات:

  • لا اعتماد على OpenSSL
  • TLS آمن للذاكرة
  • مجموعات تشفير حديثة
  • دعم TLS 1.3

x509-parser (v0.16+)

تحليل شهادات X.509

القدرات:

  • تحليل شهادات DER/PEM
  • استخراج المفاتيح العامة
  • التحقق من سلاسل الشهادات
  • تحليل OID

der و pem (v0.7+ / v3.0+)

ترميز/فك ترميز منخفض المستوى لبيانات DER وPEM.

tokio (v1.35+)

وقت تشغيل غير متزامن (مُفعَّل بمجموعة ميزاته الكاملة).

الميزات المستخدمة:

  • fs: عمليات نظام ملفات غير متزامنة
  • net: شبكات TCP/TLS
  • sync: القنوات، والأقفال المتبادلة
  • time: المؤقّتات، والمهلات
  • macros: #[tokio::main]
  • rt-multi-thread: وقت تشغيل متعدد الخيوط

clap (v4.5+)

تحليل وسائط سطر الأوامر (باستخدام ميزات derive وenv وcargo).

الميزات:

  • ماكرو derive لتعريف واجهة سطر الأوامر بسهولة
  • الأوامر الفرعية
  • دعم متغيّرات البيئة
  • إكمالات الصدفة
  • توليد المساعدة

serde (v1.0+)

إطار عمل التسلسل، مقترنًا بـ serde_json وserde_yaml لصيغتَي مخرجات JSON وYAML.

الصيغ المدعومة:

  • JSON (المخرجات الافتراضية)
  • YAML (قابلة للقراءة البشرية)
  • صيغة SARIF المخصّصة

tracing (v0.1+)

تسجيل مُهيكَل، مع tracing-subscriber (ميزة env-filter) التي تعالج مخرجات التسجيل والترشيح.

الميزات:

  • تسجيل مُهيكَل وسياقي
  • مستويات تسجيل متعددة
  • الترشيح حسب الوحدة
  • دعم مخرجات JSON

anyhow و thiserror (v1.0+)

الاستخدام:

  • anyhow: الأخطاء على مستوى التطبيق
  • thiserror: الأخطاء المخصّصة على مستوى المكتبة

walkdir (v2.4+)

اجتياز الأدلة بشكل تكراري

الميزات:

  • مسح تكراري فعّال
  • معالجة الروابط الرمزية
  • الترشيح
  • الوصول إلى البيانات الوصفية

rayon (v1.8+)

توازي البيانات

حالات الاستخدام:

  • معالجة الملفات على التوازي
  • تحليل الشهادات المتزامن
  • مسح متعدد الخيوط

pcap (v2.0+)

التقاط الحزم (غلاف libpcap)

تبعيات المنصة:

  • Linux: libpcap-dev
  • macOS: libpcap المدمج
  • Windows: WinPcap أو Npcap

pnet (v0.35+)

تحليل الحزم

الميزات:

  • تحليل حزم TCP/IP
  • دعم بروتوكولات الطبقة 2-4
  • مساعِدات إعادة تجميع التدفّق

indicatif (v0.17+)

أشرطة التقدّم

ratatui (v0.26+)

إطار عمل واجهة الطرفية، يُستخدَم مع crossterm للتحكّم في الطرفية.

يُستخدَم في:

  • العرض الفوري في وضع الشبكة
  • الإحصائيات التفاعلية
  • مراقبة الحالة

نظام البناء​

يُبنى المشروع بواسطة Cargo. تُنشَر الحزمة باسم dke-scanner-agent في الإصدار 1.0.0، وتستهدف إصدار 2021، ومرخّصة ترخيصًا مزدوجًا بموجب MIT أو Apache-2.0. تُنتِج ثنائيًا باسم dke-scanner-agent ومكتبة قابلة لإعادة الاستخدام باسم pqc_scanner.

تُصنَّف تبعيات وقت التشغيل حسب الغرض:

المجموعةالصناديق
الأساسيةtokio, anyhow, thiserror
التشفيرrustls, x509-parser, der, pem
واجهة سطر الأوامرclap
التسلسلserde, serde_json, serde_yaml
التسجيلtracing, tracing-subscriber
نظام الملفاتwalkdir
التوازيrayon
الشبكةpcap, pnet
واجهة المستخدمindicatif, ratatui, crossterm

تشمل تبعيات التطوير criterion لقياس الأداء وtempfile للاختبارات. مُهيّأ ملف تعريف الإصدار من أجل الحجم والسرعة: أقصى مستوى تحسين، وتحسين وقت الربط، ووحدة توليد كود واحدة، ورموز تصحيح منزوعة.

التبعيات الخاصة بالمنصة​

حزم النظام:

# Ubuntu/Debian
sudo apt-get install libpcap-dev pkg-config build-essential

# RHEL/CentOS
sudo yum install libpcap-devel

# Arch
sudo pacman -S libpcap

حزم النظام:

# libpcap is included with macOS
# Optional: Homebrew for development tools
brew install pkg-config

المتطلبات المسبقة:

# Install Npcap
choco install npcap

الترجمة​

cargo build --release

المخرَج: target/release/dke-scanner-agent

خصائص الأداء​

حجم الثنائي

نوع البناءالحجمالوصف
التصحيح~50 ميغابايتغير مُحسَّن مع رموز التصحيح
الإصدار~8 ميغابايتمُحسَّن، منزوع
الإصدار + UPX~3 ميغابايتمضغوط بواسطة UPX

استخدام الذاكرة

الوضععاديالذروة
الوكيل30 ميغابايت50 ميغابايت
نظام الملفات50 ميغابايت100 ميغابايت
النطاق40 ميغابايت80 ميغابايت
الشبكة60 ميغابايت150 ميغابايت

استخدام المعالج

  • التحليل أحادي الخيط: نواة واحدة
  • مسح نظام الملفات المتوازي: جميع الأنوية
  • التقاط الشبكة: 1-2 نواة

تبعيات الاختبار​

تعتمد الاختبارات على مجموعة صغيرة من الصناديق المخصّصة للتطوير فقط:

الصندوقالغرض
criterionقياس الأداء
tempfileملفات مؤقتة للاختبارات
mockallإطار عمل المحاكاة
proptestالاختبار المستند إلى الخصائص

التكامل مع CI/CD​

name: CI
on: [push, pull_request]

jobs:
test:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- uses: actions-rs/toolchain@v1
with:
toolchain: stable
- run: cargo test --all-features
- run: cargo clippy -- -D warnings

متطلبات الإصدار​

التبعيةالحد الأدنى للإصدارالموصى به
Rust1.70أحدث إصدار مستقر
Cargo1.70الأحدث
libpcap1.9.01.10.0+