امنیت

چگونه گاوصندوق ساخته شده است، و چه چیزهایی در صورت نفوذ پیدا می‌شود.

آخرین به‌روزرسانی ۲۱ سپتامبر ۲۰۲۶ · AssuredAuth، توسط CircleRoll LLC

این شرح عمومی چگونگی محافظت AssuredAuth از اطلاعات محرمانه دو مرحله‌ای، رمزهای عبور و کارت‌هایی است که در آن نگهداری می‌کنید. این شرح به گونه‌ای نوشته شده است که یک خواننده‌ی علاقه‌مند به امنیت بتواند هر ادعایی را علیه برنامه و در مقایسه با بردارهای آزمایشی منتشر شده (که بنا به درخواست برای هر بررسی‌کننده‌ای در hello@assuredauth.com در دسترس است) بررسی کند. این شرح آنچه را که درست است می‌گوید و نه بیشتر: هیچ چیز در اینجا ادعا نمی‌کند که فراتر از حمله است و هیچ چیز به صورت درصدی تضمین نشده است.

خلاصه کلام: گاوصندوق در یک مکان، یعنی تلفن شما، وجود دارد. هر مقدار موجود در آن با کلیدی رمزگذاری شده است که سخت‌افزار امنیتی تلفن آن را در اختیار دارد و نمی‌تواند آن را صادر کند. ما هیچ سرور گاوصندوقی را اجرا نمی‌کنیم، هیچ کپی و کلیدی را نگه نمی‌داریم. یک فایل پشتیبان تنها پس از رمزگذاری با یک عبارت عبور که هرگز در هیچ کجا ذخیره نمی‌شود، از تلفن خارج می‌شود.

گزارش مشکل: hello@assuredauth.com. به بخش «گزارش یک نقطه ضعف» در انتها مراجعه کنید.

۱. چه چیزی رمزگذاری شده است، با چه چیزی

داده‌هاروی تلفنکلید
رازهای دو مرحله‌ای (TOTP/HOTP/Steam seed) روی تلفنفروشگاه پشتیبانی‌شده توسط Keychain (iOS) / اندروید کلیدکلید سخت‌افزاری پلتفرم؛ ردیف پایگاه داده فقط یک مرجع (secretRef) را در خود نگه می‌دارد، نه سید (seed).
رمزهای عبور (مقدار رمز عبور، یادداشت‌ها) روی تلفنردیف مهر و موم شده: AES-256-GCM، یک نانس تصادفی ۹۶ بیتی به ازای هر مقدار کلیدیک کلید داده تصادفی ۲۵۶ بیتی، که خود توسط کلید سخت‌افزاری در §۲ پیچیده شده است
کارت‌ها (شماره، تاریخ انقضا، نام روی کارت، کد ملی کارت) روی تلفنمهر و موم مشابه رمزهای عبور؛ CVC اختیاری است و فقط در صورت وارد کردن آن ذخیره می‌شود کلیدکلید داده یکسان
فراداده (نام سرویس‌ها، نام‌های کاربری، آیکون‌ها، ترتیب مرتب‌سازی) روی تلفنپایگاه داده برنامه (SwiftData / Room) کلیدتوسط رمزگذاری فایل سیستم عامل محافظت می‌شود؛ به عنوان غیر محرمانه در نظر گرفته می‌شود
فایل پشتیبان (.authbackup) روی تلفنهر جایی که قرار دهید: فایل‌ها، iCloud Drive، پوشه appData در گوگل درایو، یک برگه اشتراک‌گذاری کلیدکلیدی که از عبارت عبور شما مشتق شده است (§3). اپل و گوگل فایل مهر و موم شده را دریافت می‌کنند و هیچ چیز دیگری.
برنامه همراه Watch / Wear روی تلفنKeychain / EncryptedSharedPreferences خود ساعت کلیدکلیدهای پلتفرم ساعت؛ از طریق کانال دستگاه جفت‌شده پلتفرم منتقل شده‌اند
ترافیک افزونه دسکتاپ (کدهای یکبار مصرف بنا به درخواست) روی تلفنذخیره نمی‌شود؛ به صورت پاکت‌های رمزگذاری شده سرتاسری ارسال می‌شود کلیدیک جفت کلید X25519 به ازای هر جفت، کلید خصوصی در Keychain / Keystore؛ رله فقط متن رمز شده را می‌بیند

Diagnostics هیچ روشی برای پذیرش رمز ندارد. هیچ رویداد تحلیلی حاوی فیلد vault نیست. هیچ مقداری از vault در هیچ ساختاری در یک گزارش ثبت نمی‌شود.

۲. محل قرارگیری کلیدها، روی هر پلتفرم

iOS. کلید داده توسط کلیدی که درون Secure Enclave (kSecAttrTokenIDSecureEnclave) با کنترل دسترسی .privateKeyUsage + .userPresence, accessibility …ThisDeviceOnly تولید می‌شود، در گروه دسترسی Keychain مشترک برنامه قرار می‌گیرد تا افزونه AutoFill بتواند از همان کلید استفاده کند. کلید خصوصی را نمی‌توان توسط برنامه، نسخه پشتیبان یا اشکال‌زدا از Enclave خواند. Enclave فقط پس از حضور کاربر (Face ID، Touch ID یا رمز عبور دستگاه) موافقت می‌کند که از آن استفاده کند. ThisDeviceOnly به این معنی است که نسخه پشتیبان iCloud یا iTunes از گوشی، کلید را ندارد. یک گوشی بازیابی شده با یک گاوصندوق خالی شروع می‌شود و فایل پشتیبان و عبارت عبور شما را درخواست می‌کند. تلفنی که رمز عبور ندارد نمی‌تواند کلید .userPresence را قفل کند (Enclave از ایجاد آن امتناع می‌کند)، و شبیه‌ساز نیز از نظر طراحی همین مسیر را در پیش می‌گیرد (پیام حضور آن هشداری است که هیچ آزمایشی نمی‌تواند به آن پاسخ دهد): در آنجا کلید داده یک آیتم Keychain مخصوص دستگاه است - که هنوز از هر نسخه پشتیبان خارج شده است، در حالی که تلفن قفل است هنوز قابل خواندن نیست، اما هیچ پیام دومی ندارد - و صفحه امنیتی دقیقاً همین را می‌گوید و پیشنهاد می‌دهد که یک کد عبور تنظیم کنید.

اندروید. کلید داده توسط یک کلید AndroidKeyStore AES-256 که در StrongBox تولید می‌شود، زمانی که دستگاه یک کلید (در غیر این صورت TEE) دارد، با setUserAuthenticationRequired(true) و اعتبار احراز هویت 30 ثانیه‌ای پس از فعال بودن اطلاعات بیومتریک یا دستگاه، setUnlockedDeviceRequired(true) و setInvalidatedByBiometricEnrollment(true) پوشانده شده است. آخرین پرچم، صادقانه است و نه تحمیل‌کننده بار: اندروید آن را فقط برای کلیدهایی اعمال می‌کند که در هر بار استفاده نیاز به اطلاعات بیومتریک دارند، بنابراین در این کلید 30 ثانیه‌ای با اطلاعات دستگاه، هیچ تغییری ایجاد نمی‌کند - چیزی که انگشت غریبه را از دسترس خارج می‌کند این است که ثبت نام به پین ​​نیاز دارد و برداشتن قفل صفحه، کلید را برای همیشه باطل می‌کند. کلیدهای Keystore قابل استخراج نیستند و از پشتیبان‌گیری ابری اندروید حذف می‌شوند. دامنه‌ای که یک برنامه در نماهای خود (webDomain) نامگذاری می‌کند، فقط از یک مرورگر شناخته شده قابل باور است. از هر بسته دیگری، باید بسته‌ای باشد که سیستم برای آن بسته (لینک‌های دارایی دیجیتال) تأیید کرده باشد، زیرا هر برنامه‌ای می‌تواند هر دامنه‌ای را ادعا کند.

این برای یک فایل پایگاه داده دزدیده شده چه معنایی دارد. فایل SQLite و ردیف‌های مهر و موم شده، متن رمز شده هستند. کلیدی که آنها را باز می‌کند، در سخت‌افزار امنیتی گوشی که فایل از آن آمده است، قرار دارد و نمی‌توان آن را همراه فایل کپی کرد. هیچ چیزی برای حدس زدن آفلاین وجود ندارد: کلید داده تصادفی است و از چیزی که شخصی انتخاب کرده، مشتق نشده است.

۳. فایل پشتیبان

پشتیبان‌ها تنها چیزی هستند که از گوشی خارج می‌شوند، بنابراین تنها جایی هستند که حمله آفلاین در اصل امکان‌پذیر است. طراحی این حمله را پرهزینه می‌کند و تا حد امکان کار با آن را محدود می‌کند:

این فایل از نوع JSON است و در هر ویرایشگر متنی قابل خواندن است؛ فقط متن رمز شده مبهم است. کسی که پنج سال دیگر این فایل را پیدا کند، بدون اینکه برنامه حذف شده باشد، می‌تواند دقیقاً ببیند که چگونه مهر و موم شده است و آن را با OpenSSL یا هر کتابخانه Argon2 باز کند.

قالب نسخه ۱ (نسخه ۱.۰ ارائه شده، همچنان قابل خواندن است)

{
  "format": "authbackup",
  "version": 1,
  "kdf": "PBKDF2-HMAC-SHA256",
  "rounds": 600000,
  "salt": "<base64, 16 bytes>",
  "cipher": "AES-256-GCM",
  "nonce": "<base64, 12 bytes>",
  "ciphertext": "<base64>",
  "tag": "<base64, 16 bytes>"
}
قدمبایت
keyPBKDF2-HMAC-SHA256(passphrase as UTF-8, salt, 600000 rounds, 32 bytes)
aadUTF-8("authbackup:1:600000:") ‖ salt (بایت‌های نمک خام، نه base64)
ciphertext, tagAES-256-GCM(key, nonce, plaintext, aad); برچسب ۱۶ بایتی، جداگانه ذخیره می‌شود
plaintextUTF-8 JSON، کلیدها مرتب شده‌اند: {"accounts":[…],"exportedAt":"…Z","passwords":[…],"version":1}

نکته سازگاری: اندروید ۱.۰ نوعی از نسخه ۱ را نوشت - kdf با حروف کوچک، بدون کلید برچسب (برچسب ۱۶ بایتی که به متن رمزی اضافه شده است)، بدون داده اضافی. هر دو پلتفرم به خواندن آن فایل‌ها ادامه می‌دهند (وقتی برچسب وجود ندارد: ۱۶ بایت آخر را تقسیم کنید، با AAD خالی باز کنید؛ kdf را بدون حساسیت به حروف بزرگ و کوچک مقایسه کنید) و اکنون هر دو فقط طرح‌بندی بالا را می‌نویسند.

قالب نسخه ۲ (فعلی؛ پیش‌فرض برای پشتیبان‌گیری‌های جدید)

{
  "format": "authbackup",
  "version": 2,
  "kdf": "Argon2id",
  "memoryKiB": 65536,
  "passes": 3,
  "lanes": 1,
  "salt": "<base64, 16 bytes>",
  "cipher": "AES-256-GCM",
  "nonce": "<base64, 12 bytes>",
  "ciphertext": "<base64>",
  "tag": "<base64, 16 bytes>"
}
قدمبایت
keyArgon2id(version 0x13, passphrase as UTF-8, salt, m = 65536 KiB, t = 3, p = 1, tagLength 32, no secret, no associated data)
aadUTF-8("authbackup:2:argon2id:65536:3:1:") ‖ salt
ciphertext, tagAES-256-GCM(key, nonce, plaintext, aad); برچسب ۱۶ بایتی، جداگانه ذخیره می‌شود
plaintextUTF-8 JSON، کلیدها مرتب شده‌اند: {"accounts":[…],"cards":[…],"exportedAt":"…Z","passwords":[…],"version":2}

Argon2id پیاده‌سازی مرجع C (phc-winner-argon2, CC0) است که در هر دو پلتفرم ارائه می‌شود. ۶۴ مگابایت و ۳ بار عبور از حافظه، روی یک گوشی فعلی حدود یک ثانیه طول می‌کشد و هر حدس، آن مقدار حافظه و زمان را روی هر سخت‌افزاری مصرف می‌کند - ویژگی‌ای که PBKDF2 در برابر دستگاه‌های GPU فاقد آن است، و دلیل وجود v2 نیز همین است. یک خواننده کلیدهایی را که نمی‌شناسد نادیده می‌گیرد، بنابراین یک خواننده v1 که بدنه v2 دارد، هرگز کارت‌ها را نمی‌بیند.

اثبات

سه فایل بردار آزمایشی (نسخه پشتیبان ۱، نسخه پشتیبان ۲ و Argon2id) توسط یک پیاده‌سازی سوم، مستقل از هر دو برنامه (OpenSSL نود برای PBKDF2 و AES-GCM، یک WebAssembly Argon2id که در زمان تولید با پاسخ‌های منتشر شده پیاده‌سازی مرجع بررسی شده است) تولید می‌شوند. هر کدام شامل عبارت عبور، نمک، نانس، متن ساده، کلید مشتق شده، AAD، متن رمز شده و برچسب مورد انتظار و فایل کامل هستند. تست‌های واحد روی iOS و اندروید فایل‌های یکسانی را می‌خوانند و بایت‌های یکسانی را ادعا می‌کنند - بنابراین یک نسخه پشتیبان مهر و موم شده روی یک پلتفرم، ثابت می‌شود که روی پلتفرم دیگر باز می‌شود، نه اینکه فرض شود، و توافق هر سه به معنای دو کپی از یک اشتباه نیست. یک ابزار همراه، فایلی را که تلفن واقعاً با همان پیاده‌سازی سوم نوشته است، باز می‌کند و هدر را با قوانین بالا (دقیقاً کلیدهای قالب، بنابراین هیچ اشاره یا نامی نمی‌تواند وجود داشته باشد؛ سالت ۱۶ بایتی، نانس ۱۲ بایتی، تگ ۱۶ بایتی که جداگانه ذخیره شده‌اند؛ نسخه ۲ دقیقاً با حجم ۶۴ مگابایت / ۳ / ۱؛ عبارت عبور اشتباه رد شد) مطابقت می‌دهد؛ اجرای خودکار iOS یکی را روی شبیه‌ساز می‌نویسد و آن را به این صورت باز می‌کند و کانتینر برنامه، کانتینر گروه برنامه و پایگاه داده keychain شبیه‌ساز را برای هر رمز عبور و شماره کارت ذخیره شده به عنوان UTF-8 و UTF-16 جستجو می‌کند (۰ مورد).

۴. مدل تهدید

وضعیتآنچه دارندآنچه به دست می‌آورند
تلفن گم شده یا دزدیده شده، قفل شده آنچه دارنددستگاه، فایل پایگاه داده، ردیف‌های مهر و موم شده آنچه به دست می‌آورندمتن رمز. کلید پوششی در Secure Enclave / StrongBox قرار دارد و تنها پس از قفل شدن دستگاه به همراه یک کد بیومتریک یا رمز عبور جدید آزاد می‌شود. پاک کردن تلفن از راه دور (یافتن من / یافتن دستگاه من) ماده کلید را به همراه آن از بین می‌برد.
فایل پشتیبان دزدیده شده آنچه دارندفایل پشتیبان .auth از یک حساب ابری، یک ایمیل، یک لپ‌تاپ آنچه به دست می‌آورندیک بدنه AES-256-GCM تحت کلیدی مشتق شده از یک عبارت عبور حداقل ۱۲ کاراکتری، با نمک هر فایل و Argon2id با ۶۴ مگابایت × ۳ پاس (نسخه ۲) یا PBKDF2 با ۶۰۰۰۰۰ دور (نسخه ۱). بدون هیچ راهنمایی، بدون نام کاربری، بدون لیست حساب کاربری. هر حدس، هزینه استخراج کامل را دارد؛ هیچ راه میانبری وجود ندارد. یک عبارت عبور قوی، کل دفاع در اینجا است و برنامه نیز همین را روی برگه می‌گوید.
دستگاه دزدیده شده با صفحه نمایش قفل نشده آنچه دارندیک گوشی در دست، قفل نشده آنچه به دست می‌آورندفهرست کدها. بخش اطلاعات (رمزهای عبور، کارت‌ها) پشت قفل برنامه قرار دارد و با تایمر قفل خودکار (بلافاصله / ۱ دقیقه / ۵ دقیقه) دوباره قفل می‌شود؛ مقدار رمزگشایی شده فقط تا زمانی که صفحه نمایش آن را نشان می‌دهد در حافظه وجود دارد. تکمیل خودکار و خروجی متن ساده، حتی زمانی که برنامه باز است، درخواست اطلاعات بیومتریک جدید می‌کنند. اگر نگران این موضوع هستید، قفل برنامه را با گزینه «بلافاصله» فعال کنید.
برنامه مخرب در همان تلفن آنچه دارندجعبه شنی، کلیپ‌بورد، ترفندهای دسترسی یا همپوشانی برنامه دیگر آنچه به دست می‌آورندنمی‌تواند فایل‌های ما را بخواند (سندباکسینگ پلتفرم) یا از کلید ما استفاده کند (کلید به هویت امضای ما و حضور کاربر وابسته است). کپی‌ها پس از 30 ثانیه از کلیپ‌بورد پاک می‌شوند؛ در اندروید، کپی حساس علامت‌گذاری شده و از تاریخچه کلیپ‌بورد حذف می‌شود. صفحه‌های Vault در اندروید روی FLAG_SECURE تنظیم می‌شوند (بدون اسکرین‌شات، بدون ضبط صفحه، خالی در تعویض‌کننده)؛ iOS تصویر کوچک تعویض‌کننده را خالی می‌کند. تکمیل خودکار در اندروید فقط برای برنامه‌هایی ارائه می‌شود که سیستم آنها را در برابر دامنه ذخیره شده تأیید کرده باشد (Digital Asset Links)، بنابراین یک برنامه مشابه رمز عبور شما ارائه نمی‌شود.
صفحه فیشینگ آنچه دارندسایتی که شبیه سایتی است که ذخیره کرده‌اید آنچه به دست می‌آورندهیچ چیزی پر نمی‌شود. تطبیق بر اساس دامنه قابل ثبت (لیست پسوندهای عمومی، همراه با برنامه و به‌روزرسانی‌شده) انجام می‌شود: login.example.com و example.com مطابقت دارند، example.com.evil.net و examp1e.com مطابقت ندارند. مرورگر درون برنامه به همین روش تطبیق می‌دهد و فقط در فریمی که درخواست شده پر می‌شود و در لحظه پر شدن دوباره با مبدا خود فریم بررسی می‌شود؛ میزبانی که هیچ دامنه قابل ثبتی از خود ندارد - یک آدرس IP، یک نام ساده در شبکه محلی - دقیقاً مطابقت دارد و هیچ چیز دیگری از آن کم نمی‌شود. قابلیت تکمیل خودکار iOS، بررسی دامنه‌های مرتبط اپل را اضافه می‌کند. رمز عبوری که باید با دست در یک رمز عبور مشابه قرار دهید، هنوز یک ریسک است. برنامه نمی‌تواند آن را حذف کند، فقط از کمک کردن اجتناب می‌کند.
سرورهای اختصاصی ما آنچه دارند— آنچه به دست می‌آورندهیچ سرور والتی وجود ندارد. AssuredAuth هیچ حساب کاربری، هیچ ورود به سیستم و هیچ کپی از والت شما ندارد، بنابراین هیچ چیزی از شما در سمت ما برای سرقت و کرک شدن وجود ندارد. دو چیز در سمت سرور اجرا می‌شوند که هیچ‌کدام به والت دسترسی ندارند: یک صندوق پستی رله برای افزونه دسکتاپ، که پاکت‌های رمزگذاری شده سرتاسری (کدهای یک‌بار مصرف، که هنگام خواندن حذف می‌شوند؛ رله هرگز کلیدی ندارد) را ذخیره می‌کند، و سرورهای خروجی اتصال خصوصی اختیاری، که ترافیک را حمل می‌کنند و هیچ گزارش دسترسی را نگه نمی‌دارند.
احضاریه یا درخواست دولتی آنچه دارندروند قانونی خطاب به ما آنچه به دست می‌آورندچیزی برای تحویل دادن نداریم: ما نه گاوصندوقی داریم، نه کلیدی، نه رمز عبوری و نه نسخه پشتیبانی. ما را می‌توان مجبور به گفتن این حرف کرد؛ نمی‌توانیم مجبور به تولید چیزی باشیم که وجود ندارد.

۵. کلیپ‌بورد، اسکرین‌شات‌ها و حافظه

۶. تکمیل خودکار: چه چیزی پر می‌شود و چه چیزی پر نمی‌شود

کجارمزهای عبورکارت‌ها
iOS: سافاری و برنامه‌ها (افزونه تکمیل خودکار) رمزهای عبوربله، پس از یک Face ID / Touch ID / رمز عبور جدید در افزونه (LAContext)، و فقط برای دامنه قابل ثبتی که ورودی برای آن ذخیره شده است، با بررسی دامنه‌های مرتبط اپل برای برنامه‌ها کارت‌هاخیر. قابلیت تکمیل خودکار کارت در سافاری فقط مختص اپل است؛ صفحه کارت می‌گوید «مرورگر AssuredAuth و با کپی پر می‌شود» و هیچ چیز دیگری را تضمین نمی‌کند.
اندروید: برنامه‌ها و کروم (سرویس تکمیل خودکار) رمزهای عبوربله، احراز هویت بر اساس مجموعه داده: سیستم قبل از پر کردن، BiometricPrompt را نشان می‌دهد؛ بسته برنامه فقط زمانی مطابقت دارد که Digital Asset Links آن را به دامنه ذخیره شده مرتبط کند. کارت‌هابله، شماره کارت اعتباری، تاریخ انقضای کارت اعتباری* و کد امنیتی کارت اعتباری، همگی از یک نوع درگاه بیومتریک هستند.
مرورگر AssuredAuth (هر دو پلتفرم) رمزهای عبوربله، از طریق دامنه قابل ثبت - میزبانی که هیچ یک از موارد منطبق با آن دقیقاً وجود ندارد - در چارچوبی که درخواست شده است، قبل از پر کردن، بیومتریک انجام می‌شود کارت‌هابله، با تشخیص میدانی، بیومتریک قبل از پر کردن
دکمه‌های کپی رمزهای عبورپشت قفل برنامه، کلیپ‌بورد ۳۰ ثانیه‌ای کارت‌هاشماره، تاریخ انقضا، CVC (قوانین یکسان)

هیچ چیز بدون یک میزبان مشابه، جای خالی‌اش پر نمی‌شود. هیچ چیز بدون اطلاعات بیومتریک پر نمی‌شود.

۷. آنچه هرگز اتفاق نمی‌افتد

بدون سرور vault. بدون تجزیه و تحلیل که حاوی فیلد vault باشد. بدون خروجی متن ساده بدون برگه تأیید و اطلاعات بیومتریک جدید. بدون بارگذاری SDK شخص ثالث روی صفحه vault. بدون اسکرین شات از صفحه vault. بدون اشاره به رمز عبور. بدون ثبت مقادیر، در هیچ ساختاری.

۸. آنچه نمی‌توانیم در برابرش از خود محافظت کنیم

یک عبارت عبور به اندازه کافی ضعیف که بتوان آن را حدس زد. تلفنی که سیستم عامل آن از ریشه در معرض خطر است (یک دستگاه جیلبریک شده یا روت شده می‌تواند در مورد همه موارد فوق به برنامه دروغ بگوید). شخصی که هنگام تایپ کردن تحت نظر است. بدافزار روی دسکتاپی که در آن پیست می‌کنید. این را می‌گوییم تا لیست بالا به همان شکلی که هست خوانده شود: چیزهایی که یک طرح می‌تواند حذف کند، حذف شده.

۹. بررسی وضعیت

این طرح در برابر پاسخ‌های شناخته‌شده منتشر شده در هر دو پلتفرم و در برابر بردارهای چند پلتفرمی خود، به صورت واحد آزمایش شده است. قبل از اینکه گاوصندوق در فهرست فروشگاه تبلیغ شود، یک بررسی خارجی در فهرست مالک قرار دارد؛ تا زمانی که این اتفاق نیفتد، این سند در اینجا این موضوع را بیان خواهد کرد.

۱۰. جایی که همه چیز جریان دارد

هیچ چیز از گاوصندوق از تلفن خارج نمی‌شود، اما چند مورد از آن روی دستگاه‌های دیگران اجرا می‌شود. این لیست و آنچه هر کدام در اختیار دارند، است؛ خود جریان‌های داده در سیاست حفظ حریم خصوصی در https://assuredauth.com/privacy شرح داده شده‌اند.

هر کدام آنچه را که در سطر مربوط به خود نوشته شده است، نگه می‌دارد و چیزی از خزانه به آن اضافه نمی‌کند. فهرست با تغییر محصول تغییر می‌کند و این بخش نیز با آن تغییر می‌کند.

گزارش یک نقطه ضعف

اگر معتقدید که در هر یک از موارد شرح داده شده در اینجا، نقطه ضعفی پیدا کرده‌اید، با موضوع «امنیت» به آدرس hello@assuredauth.com بنویسید. لطفاً پلتفرم، نسخه برنامه و مراحل را ذکر کنید؛ اثباتی که از داده‌های خودتان استفاده می‌کند کافی است و از شما می‌خواهیم که آن را با داده‌های دیگران آزمایش نکنید. ما کلید PGP ارائه نمی‌دهیم؛ اگر گزارشی نباید از طریق ایمیل ساده ارسال شود، در اولین پیام خود این موضوع را بگویید و ما ترتیب دیگری خواهیم داد.

آنچه ما در عوض قول می‌دهیم: ما ظرف سه روز کاری تأیید می‌کنیم، در حین کار بر روی آن شما را در جریان قرار می‌دهیم، قبل از انتشار هر چیزی در مورد آن، صحت آن را اصلاح می‌کنیم و در صورت تمایل، نام شما را در اینجا ذکر می‌کنیم. ما در مورد تحقیقاتی که با حسن نیت در محدوده زیر انجام شده است، اقدام قانونی نخواهیم کرد.

در محدوده: برنامه‌های iOS و اندروید، برنامه‌های ساعت، افزونه دسکتاپ، sureauth.com و API آن. خارج از محدوده: خود اپ استور و گوگل پلی، ارائه دهندگان ذکر شده در بالا، مهندسی اجتماعی هر کسی و انکار سرویس.

در حال حاضر هیچ جایزه‌ای وجود ندارد. به گزارش‌ها با یک راه‌حل و تشکر پاسخ داده می‌شود، نه با پول.