چگونه WindowsHelper از رایانه شخصی + تلفن شما محافظت میکند، از چه رمزنگاری استفاده میکنیم و صراحتاً از چه چیزی دفاع نمیکنیم. آخرین به روز رسانی: 2026-04-25.
ایمیل support@windowshelper.app با موضوع [security]. لطفاً مسائل عمومی GitHub را باز نکنید - به ما پنجره ای بدهید تا قبل از فاش شدن، رفع مشکل کنیم.
کد جفتشدن راز مشترک است که هر عملیات رمزنگاری دیگری از آن مشتق میشود. چرخه کامل حیات:
[ گوشی یک کد تصادفی ۸ نویسهای میسازد ] ↓ [ گوشی کد + sessionId را در سند pc_connections در Firestore مینویسد ] ↓ [ گوشی کد را روی صفحه به کاربر نشان میدهد ] ↓ [ کاربر کد را میخواند و در کادر ورودی Companion مینویسد ] ↓ [ Companion در Firestore دنبال نشست در انتظاری میگردد که با کد مطابقت دارد ] ↓ [ هر دو طرف کلیدهای رمزنگاری را از SHA-256(کد, sessionId) استخراج میکنند ] ↓ [ کد در حافظهٔ هر دو طرف میماند؛ هیچکدام آن را در Firestore نمینویسند ] ↓ [ قطع اتصال / جفتسازی دوباره کد را از هر دو طرف پاک میکند ]
هر فرمانی که از طریق سیم ارسال می شود با AES-256-GCM، یک حالت رمزگذاری احراز هویت شده، رمزگذاری می شود.
SHA-256("WH_SECURE_{code}_{sessionId}_CMD_KEY").Random.secure() روی تلفن یا RandomNumberGenerator روی Companion.AESGCM:<nonce_b64>:<ciphertext_b64>:<tag_b64>هر فرمان همچنین دارای امضای HMAC است، بنابراین تلفنی که کد جفت شدن را نمیداند، حتی اگر بتواند در Firestore بنویسد، نمیتواند دستورات را تزریق کند.
SHA-256("WH_SECURE_{code}_{sessionId}_HMAC_KEY"). از کلید رمزگذاری جدا کنید.HMAC-SHA256(hmacKey, commandId | ciphertext | sentAtMillis). لوله ها نویسه های واقعی لوله هستند، نه جداکننده - سه رشته به هم پیوسته.| تهدید | وضعیت | یادداشت ها |
|---|---|---|
| استراق سمع در شبکه محلی | کاهش یافته است | متن رمزی AES-GCM برای ناظران MITM مبهم است. |
| استراق سمع سرورهای Firestore | کاهش یافته است | گوگل بلوکهای AESGCM:... را میبیند، نه دستورها را. |
| مهاجمی که می تواند به Firestore بنویسد اما کد را نمی داند | کاهش یافته است | بررسی HMAC ناموفق است؛ Companion رد شدن را ثبت میکند و از اجرا خودداری میکند. |
| مهاجمی که کد جفت شدن را شکست / فیش کرد | باقیمانده | آنها می توانند دستورات را طوری صادر کنند که گویی کاربر هستند. کاهش: کد را از منوی سینی بچرخانید. |
| بازپخش یک فرمان ضبط شده | باقیمانده | sentAtMillis به HMAC گره خورده است؛ Companion هنوز پنجره اعتبار زمانی را اعمال نمیکند. رفع آینده یک مهلت انقضا اضافه میکند. |
| مهاجم احراز هویت نشده در حالت LAN | کاهش یافته است | دست دادن جفت WebSocket کد را تأیید می کند. HMAC + AES هر دستور بعدی را گیت می کند. |
| تلفن به خطر افتاده با کلید جفت شدن به سرقت رفته | باقیمانده | غیر قابل تشخیص از "خود کاربر". کاهش: محدودیت سرعت (10 سانتی متر در دقیقه) + تأیید فرمان مخرب نیاز به کلیک سمت رایانه شخصی دارد. |
| دستور اشتباه تایپ شده از برنامه تلفن | کاهش یافته است | فهرست مجاز سمت گوشی پیشوندهای ناشناخته را مسدود میکند؛ بررسی پیش از اجرا در سمت Companion فرمانهایی را که سرویسهای ناموجود را هدف گرفتهاند مسدود میکند. |
| فرمان مخرب به طور تصادفی اجرا می شود | کاهش یافته است | پنجرهای در سمت Companion برای تأیید Remove-Item، Format-Volume، reg delete، shutdown /r و مانند آن، کلیک کاربر را لازم دارد. |
| فرآیند پاورشل آویزان / فراری است | کاهش یافته است | هر فرمان محدودیت زمانی دارد — 5 دقیقه بهطور پیشفرض، 45 دقیقه برای رفع طولانی، و 60 دقیقه در سقف سخت — و کل درخت فرایندها بسته میشود. |
| Companion دستکاری .exe بین دانلود و اجرا | کاهش یافته است | SHA-256 در companion-version.json منتشر میشود؛ کاربران میتوانند آن را بررسی کنند. امضای Authenticode پیش از عرضه برنامهریزی شده است. |
| Companion حالت حساس به نشت خرابی | کاهش یافته است | گزارشهای خرابی + بازنویسی خطاهای Firestore پاکسازی میشوند %USERPROFILE% / %MACHINE% / %USER%. |
| دستگاه دزدیده شده، کلید جفت شدن رجیستری ادامه دارد | کاهش یافته است | کد جفتسازی پایدار با Windows DPAPI (هر حساب) رمزگذاری شده است، بنابراین نمیتوان آن را از یک دیسک کپی شده یا یک حساب دیگر Windows خواند. |
مواردی که WindowsHelper بهصراحت در برابر آنها محافظت نمیکند:
[security].