امنیت و دادهها
Abrova Auth چه اطلاعاتی از کاربران شما نگه میدارد، چطور رمزگذاری میشود، رمزهای عبور، توکنها و کدها چطور محافظت میشوند، سقفها در برابر حدس زدن و رباتها، گزارش فعالیت، و حذف حساب چطور کار میکند.
Abrova Auth تا جای ممکن کمترین اطلاعات را از کاربران شما نگه میدارد، هر چه را که مجبور است نگه دارد رمزگذاری میکند، و اطلاعات محرمانه (رمزهای عبور، توکنها، کدها) را فقط به شکلی ذخیره میکند که نتوان آن را به مقدار اصلی برگرداند.
چه چیزی ذخیره میشود#
| داده | چه زمانی | چگونه |
|---|---|---|
| شناسهی کاربر، زمان ساخت، آخرین فعالیت | همیشه | بدون رمزگذاری (شناسه تصادفی است) |
| روشهای وصلشده | همیشه | اینکه کدام روشها، بهعلاوهی یک keyed hash از شناسهی حساب Apple یا Google |
| آدرس ایمیل | ایمیل و رمز عبور و لینک یکبارمصرف (ایمیل همان شناسهی ورود است) | رمزگذاریشده، بهعلاوهی یک keyed hash برای پیدا کردن حساب |
| ایمیل و نام از Apple یا Google | فقط وقتی ذخیرهی اطلاعات پروفایل روشن است (بهطور پیشفرض خاموش) | رمزگذاریشده |
| شماره تلفن | ورود با تلگرام (شماره همان شناسهی ورود است) | رمزگذاریشده، بهعلاوهی یک keyed hash برای پیدا کردن حساب |
| رمز عبور | ایمیل و رمز عبور | فقط هش یکطرفه |
| refresh tokenها، tokenهای لینک ایمیلی، کدها، nonceها | تا وقتی معتبرند | فقط هش |
ذخیرهی اطلاعات پروفایل را در Abrova Auth › تنظیمات فقط وقتی روشن کنید که اپ شما به ایمیل یا نامی که Apple و Google برمیگردانند نیاز دارد. وقتی خاموش است، این کاربران فقط با شناسهشان و هش شناسهی حساب ارائهدهنده شناخته میشوند.
رمزگذاری#
- در حالت ذخیره: دادههای شخصی (آدرسهای ایمیل، نامها و شماره تلفنها) رمزگذاریشده ذخیره میشوند.
- در حین انتقال: همهی درخواستها از HTTPS استفاده میکنند.
- رمزهای عبور: بهصورت هش یکطرفه ذخیره میشوند و هرگز به هیچ شکل خوانایی ذخیره یا log نمیشوند. ورود، چه ایمیل حساب داشته باشد چه نه، همان مدت زمان را میبرد.
- اطلاعات محرمانهی پروژهی شما (bot token تلگرام و کلید Apple برای حذف حساب) رمزگذاریشده ذخیره میشوند و بعد از ذخیره دیگر نمایش داده نمیشوند.
- logها هرگز توکن، رمز عبور، آدرس ایمیل، شماره تلفن یا آدرس IP را بهصورت خوانا ندارند.
جداسازی پروژهها#
پروژهی هر درخواست از کلید API آن تعیین میشود، هرگز از چیزی که اپ در درخواست میفرستد. کاربران، نشستها و تنظیمات یک پروژه از پروژهی دیگر قابل خواندن یا استفاده نیستند. هر access token نام پروژهاش را دارد و همهی محصولات ابرووا توکنِ پروژهی دیگر را رد میکنند.
محافظت در برابر حملهها#
| تهدید | محافظت |
|---|---|
| حدس زدن رمز عبور | سقف برای هر آدرس و هر ایمیل؛ پاسخ یکسان (INVALID_CREDENTIALS) برای ایمیل ناشناخته و رمز اشتباه. |
| فهمیدن اینکه چه کسی حساب دارد | بازیابی رمز عبور و لینک یکبارمصرف همیشه پاسخ یکسان میدهند، چه آدرس حساب داشته باشد چه نه. |
| ساخت کاربر توسط رباتها | سقف برای هر آدرس و سقف روزانهی کاربران ناشناس جدید برای هر پروژه. |
| refresh token دزدیدهشده | چرخش در هر تمدید؛ استفادهی دوباره از توکن قدیمی نشست را پایان میدهد. |
| access token دزدیدهشده | یک ساعت عمر دارد. هرگز log نمیشود. |
| ID token شنودشدهی Apple یا Google | هر nonce فقط یک بار کار میکند؛ ID tokenهای قدیمیتر از ۱۰ دقیقه رد میشوند. |
| ID token صادرشده برای اپ دیگر | فقط برای bundle IDها، Services IDها و client IDهایی که برای این پروژه وارد کردهاید پذیرفته میشود. |
| حدس زدن کد یا لینک | کدهای ۶ رقمی ۵ تلاش در ۵ دقیقه دارند؛ لینکهای ایمیلی مقادیر تصادفی طولانیاند که فقط یک بار کار میکنند. |
| لینکهای ایمیلی به مقصد دیگر | لینکها فقط آدرسهای لینکی را که مجاز کردهاید باز میکنند. |
با عبور از سقف، فراخوانی با RATE_LIMITED شکست میخورد و میگوید کی دوباره امتحان کنید (retryAfterSec).
گزارش فعالیت#
برای همهی پروژهها شامل است: Abrova Auth › فعالیت رویدادهای امنیتی پروژهی شما را نشان میدهد: ساخت کاربران، ورودها و ورودهای ناموفق، روشهای وصلشده، بازیابی رمز عبور، خروج از همهجا، استفادهی دوباره از refresh token، غیرفعال، فعال یا حذف شدن کاربران، و تغییر تنظیمات. رویدادها آدرس مبدأ را بهصورت هششده نشان میدهند، تا بدون دیدن آدرس بفهمید دو رویداد از یک جا آمدهاند.
حذف حساب#
Apple از اپهایی که امکان ساخت حساب دارند میخواهد اجازه دهند کاربران حسابشان را داخل اپ حذف کنند. deleteAccount() را صدا بزنید:
- کاربر، همهی نشستها و روشهای وصلشدهاش، و هر چه Abrova Auth دربارهی او ذخیره کرده حذف میشود. این کار قابل بازگشت نیست.
- اگر کاربر با Apple وارد شده و شما کلید حذف حساب (Team ID، Key ID و کلید خصوصی
.p8در Abrova Auth › روشهای ورود › Apple) را تنظیم کرده باشید، Abrova Auth همانطور که Apple میخواهد، ورود با Apple این کاربر را برای اپ شما هم لغو میکند. وقتی کاربر با Apple وارد میشودauthorizationCodeمربوط به Apple را بفرستید، وگرنه این مرحله چیزی برای لغو ندارد. - دادهها در محصولات دیگر ابرووا (سندهای Sync، پیامهای Chat، فایلهای Storage) حذف نمیشوند. پیش از صدا زدن
deleteAccount()، تا وقتی توکن کاربر هنوز کار میکند، آنها را از داخل اپ حذف کنید.
همچنین میتوانید کاربر را از Abrova Auth › کاربران در کنسول حذف کنید.