امنیت
چه چیزی از رکورد محافظت میکند
کارهای شما، آدرسهای مشتریانتان و پول شما همینجاست. این صفحه به شما میگوید چه چیزی برای محافظت از آنها ساختهایم، همین حالا چه چیزی در حال اجراست، و کجا متوقف میشود.
تفکیک
هیچ کسبوکاری هرگز نمیتواند کسبوکار دیگری را ببیند
همهچیز دیگر روی همین یک اصل استوار است، پس آن را دو بار انجام میدهیم و یک کامپیوتر آن را برایمان بررسی میکند.
دو دیوار بین کسبوکارها، نه یکی
هر رکورد با مهر کسبوکاری که مالک آن است علامتگذاری میشود، و هر درخواستی که سرور ما به پایگاه داده میفرستد فقط به همان کسبوکاری محدود است که آن را درخواست کرده. زیر این لایه، خود پایگاه داده هم همین دیوار را نگه میدارد، با قانونی مستقل روی هر جدولی که رکوردهای کسبوکار را نگه میدارد. پس یک باگ فقط در اپلیکیشن بهتنهایی برای عبور از آن کافی نیست.
یک کامپیوتر دیوار را بررسی میکند، نه حافظهی یک نفر
یک آزمون خودکار پایگاه دادهی زنده را میخواند، هر جدولی را که مهر یک کسبوکار روی آن هست پیدا میکند، و اگر قانونش را نداشته باشد، با ذکر نام همان جدول شکست میخورد. ما آنچه پوشش داده شده را میشماریم، نه اینکه فرضش کنیم، و فهرست استثناها خالی است.
پیش از انتشار، یک کسبوکار را در برابر کسبوکاری دیگر آزمایش میکنیم
وقتی آدرس جدیدی اضافه میکنیم که اپلیکیشن میتواند به آن درخواست بزند، آن آدرس آزمونی میگیرد که بهعنوان یک کسبوکار وارد میشود و تلاش میکند دادههای کسبوکاری دیگر را بخواند. همگامسازی، قیمتگذاری و نامهای فایل ذخیرهشده هرکدام آزمون مستقل خودشان را دارند.
یکپارچگی
رکورد را نمیتوان بیسروصدا بازنویسی کرد
وقتی یک کار به مشکل میخورد، تاریخچه همان مدرک است. طوری ساخته شده که هیچکس، حتی ما، نتواند پشت سرتان آن را تغییر دهد.
تاریخچه فقط قابل افزودن است و هر خط، خطِ پیش از خود را قفل میکند
هر خط در تاریخچه اثر انگشتی از خط پیش از خودش را حمل میکند، پس هیچ خطی را نمیتوان بیسروصدا تغییر داد یا حذف کرد بدون اینکه زنجیره بشکند. خودِ پایگاه داده هر تغییر یا حذفی را مسدود میکند، و سرور ما اگر این حفاظت وجود نداشته باشد، از راهاندازی خودداری میکند.
پرداختها هرگز ویرایش نمیشوند
برای اصلاح یک اشتباه، خط جدیدی اضافه میکنیم که خط قبلی را باطل میکند. هرگز خط قبلی را تغییر نمیدهیم. آنچه ثبت شده، و زمانی که ثبت شده، همچنان قابلخواندن باقی میماند، که هدف اصلی یک تاریخچهی پرداخت هم همین است.
لینکهای امضا را سرور ما میسازد
لینک امضای یک سند فقط یکبار کار میکند، قابل حدسزدن نیست، و بعد از مدتزمانی مشخص از کار میافتد. این لینک را سرور ما میسازد. اپلیکیشن روی گوشی هرگز چنین لینکی نمیسازد.
در حین انتقال، و در حین ذخیرهسازی
دادهها به کجا میروند
Cloudflare بین اینترنت و سروری که اپلیکیشن با آن صحبت میکند قرار دارد. قوانین مسدودسازی خودمان را اجرا میکند، و هرکسی که درخواستهای زیادی را خیلی سریع بفرستد را کند میکند. سرور خودمان هم پشت آن، همین محدودیتها را دوباره اعمال میکند.
در طول مسیر، همهجا رمزگذاری میشود
هر چیزی که بین گوشی و ما رد و بدل میشود از طریق HTTPS منتقل میشود، که آن را درهمریخته میکند تا هیچکس در میانهی راه نتواند آن را بخواند. سایتِ زنده همچنین دستوری میفرستد که به مرورگری که یکبار از ما بازدید کرده میگوید هرگز به اتصال رمزنگارینشده بازنگردد. درخواستها از طریق Cloudflare به ما میرسند، نه بهطور مستقیم به سرور خودمان.
فایلها در یک منطقه باقی میمانند
عکسها، اسناد و امضاها در فضای ذخیرهسازی فایلی نگهداری میشوند که برای هر کسبوکار، صرفنظر از اینکه کجا فعالیت میکند، روی یک منطقهی ثابت، شرق آمریکای شمالی، تنظیم شده است. وقتی سرور زنده راهاندازی میشود، این تنظیم را بررسی میکند و اگر منطقه مشخص نشده باشد یا روی «خودکار» تنظیم شده باشد، از اجرا خودداری میکند.
ما هرگز رمز عبور شما را نگه نمیداریم
ما رمز عبور شما را ذخیره نمیکنیم و نمیتوانیم آن را برایتان بازیابی کنیم. آنچه نگه میداریم نسخهای درهمریخته (Argon2) است که نمیتوان آن را به رمز عبور اصلی برگرداند: بهاندازهای کافی که هنگام ورود بررسی شود، اما هرگز کافی برای خواندن آن. همچنین محدودیتی وجود دارد که هرکس در بازهی زمانی کوتاهی چند بار میتواند برای ورود، ثبتنام یا بازنشانی رمز عبور تلاش کند.
روی گوشی
گوشی هم بخشی از چیزی است که محافظت میکنیم
یک گوشی روی صندوق عقب وانت جا میماند، به یک کارآموز قرض داده میشود، و روی پیشخوان دستبهدست میشود. آنچه اینجا ساختهایم برای همین شرایط ساخته شده، نه برای یک میز در دفتر کار.
قفلی اختیاری روی خودِ اپلیکیشن
اینکه از پیش وارد سیستم شده باشید نباید کل یک کسبوکار را به دست هرکسی بسپارد که گوشی را بردارد. قفل اپلیکیشن پیش از باز شدن، قفل صفحه یا اثر انگشت خودِ گوشی را درخواست میکند. این ویژگی تا وقتی خودتان روشنش نکنید خاموش است، و آن را فقط روی گوشیای ارائه میدهیم که از قبل قفل صفحه داشته باشد.
کلیدهای ورود در فضای ذخیرهسازی قفلشدهی خودِ گوشی میمانند
اپلیکیشن باید چند مورد خصوصی را روی گوشی نگه دارد، مانند گذرواژهای که وارد بودن شما را حفظ میکند. این موارد را در keystore اندروید قرار میدهد، فضای ذخیرهسازی قفلشدهای که سختافزار خودِ گوشی از آن محافظت میکند، نه در فایلهای معمولی اپلیکیشن.
تداوم
پشتیبانها، حوادث، و خروج دادههای شما
یک نسخهٔ قفلشده از پایگاه داده، نگهداریشده بیرون از سرور
هر ساعت یک نسخهٔ کامل از پایگاه دادهٔ زنده میگیریم. نسخه پیش از ذخیره شدن با رمزگذاری قفل میشود و این کار هیچ نسخهٔ قفلنشدهای نگه نمیدارد: نخست بررسی میکند که فایل قفلشده واقعاً قفل است و تنها پس از آن فایل قفلنشده را پاک میکند. سپس فهرست محتوای خودِ نسخه را بررسی میکند، آن را به یک فضای ذخیرهسازی جداگانه میفرستد که خود برنامه هیچ اطلاعات ورودی به آن ندارد، و دوباره آن را میخواند تا مطمئن شود رسیده است. پایگاه داده افزون بر این، هر تغییر را در همان لحظهای که رخ میدهد به صورت پیوسته ثبت میکند و این ثبت هم بیرون از سرور کپی میشود، پس بازگرداندن دادهها تنها به آخرین نسخهٔ کامل محدود نیست. عکسها، فایلهای PDF و تصویرهای امضا هم در همان فضای ذخیرهسازی جداگانه کپی میشوند. نسخههای قدیمی بر پایهٔ زمانبندی مشخصی در هر دو جا پاک میشوند. رک بگوییم: آن فضای ذخیرهسازی جداگانه جای دومی نزد همان شرکت ذخیرهسازی است، نه یک شرکت دوم.
نسخههای پشتیبان را بازمیگردانیم تا ثابت کنیم کار میکنند
نسخهٔ پشتیبانی که هیچکس هرگز آن را بازنگردانده باشد یک امید است، نه یک برنامه. برای همین یک نسخهٔ واقعی از پایگاه دادهٔ زنده برمیداریم، آن را در یک پایگاه دادهٔ یدکی بار میکنیم و بررسی میکنیم که رکوردها واقعاً آنجا هستند و تنها پس از آن پایگاه یدکی را دور میریزیم؛ از جمله با باز کردن یک نسخهٔ قفلشدهٔ ذخیرهشده، نه نسخهای که تازه ساخته شده باشد. همین کار را برای ذخیرهسازی فایلها هم انجام دادهایم: هر فایل بازگرداندهشده با اثر انگشتی که هنگام کپی ثبت شده بود سنجیده شد. هر آزمون نوشته و تاریخگذاری میشود. اکنون آنچه این آزمونها ثابت نمیکنند، چون از آنچه ثابت میکنند مهمتر است: ما هرگز سرویس را روی ماشینهای تازه از نو بالا نیاوردهایم، هرگز ثبت پیوستهٔ تغییرها را تا لحظهای دلخواه به جلو پخش نکردهایم، هرگز یک نسخهٔ پشتیبان را به پایگاه دادهٔ زنده بازنگرداندهایم و هرگز زمان یک بازیابی کامل را از آغاز تا پایان اندازه نگرفتهایم. به همین دلیل هیچ هدفی برای بازیابی منتشر نمیکنیم.
برنامهای مکتوب برای زمانی که چیزی اشتباه پیش میرود
اگر چیزی اشتباه پیش برود، از برنامهای مکتوب پیروی میکنیم، نه اینکه در لحظه تصمیم بگیریم. مراحل اینگونهاند: بررسی میزان جدی بودن مشکل، جلوگیری از گسترش آن، خروج اجباری همه از سیستم و قطع لینکهای پرداخت و دسترسی کارکنان، تغییر کلیدهای مخفیمان، ذخیرهی تاریخچه و بررسی اینکه دستکاری نشده باشد، و سپس ارزیابی خسارت و اطلاعرسانی به افراد آسیبدیده. قول میدهیم بدون تأخیر بیش از حدِ لازم به شما اطلاع دهیم. ما مهلت زمانی ثابتی اعلام نمیکنیم، چون ثابت نکردهایم که میتوانیم به آن پایبند بمانیم.
دادههای شما هر زمان که بخواهید قابل خروج هستند
میتوانید از داخل اپلیکیشن یک نسخه از حسابتان را دانلود کنید: مشتریان، کارها، فاکتورها، پرداختها، رسیدها، عکسها، و فایلهای PDF فاکتور و پیشفاکتورتان. همچنین میتوانید حسابتان را در اپلیکیشن حذف کنید. دسترسی بلافاصله متوقف میشود، و ما دادهها را پس از تعداد مشخصی روز برای همیشه حذف میکنیم. تاریخچهی اینکه چه کسی چه کاری انجام داده را عمداً نگه میداریم، چون آن رکورد فقط قابلافزودن است.
آنچه ادعا نمیکنیم
فهرست زیر چیزهایی است که نداریم و تعهدی دربارهشان نمیدهیم. اگر چیزی در این فهرست برایتان اهمیت دارد، این یک پاسخ واقعی است. پیش از اینکه کارتان را به ما بسپارید، به آن فکر کنید.
بدون گواهینامه و بدون ممیزی خارجی. ما هیچ گزارش SOC 2، هیچ گواهینامهی ISO 27001، و هیچ تأییدیهی PCI یا HIPAA نداریم، گواهینامههای امنیتیای که خریداران بزرگتر معمولاً درخواست میکنند. هیچکس خارج از شرکت برای تلاش برای نفوذ پول نگرفته است. هرکس چیز دیگری دربارهی Zeus به شما بگوید، اشتباه میکند.
بدون تعهد دربارهی زمان کارکرد یا بازیابی. ما هیچ عددی برای اینکه اپلیکیشن چهمقدار از زمان در حال اجراست منتشر نمیکنیم، هیچ هدفی برای اینکه چقدر سریع میتوانیم آن را بازگردانیم، و هیچ هدفی برای اینکه چهمقدار از کار اخیر ممکن است از دست برود، چون نمیتوانیم پشت هیچکدام از اینها بایستیم.
بدون ادعای امنیت کامل. هیچ سیستمی کاملاً امن نیست، و صفحهای که خلاف این را بگوید، تبلیغات است، نه واقعیت.
کاری که بهصورت آفلاین انجام میدهید، تا وقتی به دست ما نرسد پشتیبانگیری نمیشود. تغییراتی که بدون سیگنال انجام شدهاند فقط روی همان گوشی میمانند تا اپلیکیشن به سرور برسد. وقتی دوباره سیگنال داشتید، اپلیکیشن را باز کنید تا بتواند آنها را ارسال کند.
گزارش یک آسیبپذیری
اگر چیزی پیدا کردهاید، ترجیح میدهیم آن را از خودتان بشنویم تا از کسبوکاری که با این اپلیکیشن کار میکند. برنامهی پاداش یا پرداختی وجود ندارد، اما یک فرد واقعی پاسخی روشن به شما خواهد داد.
لطفاً این قوانین را رعایت کنید
- پیش از اینکه به کس دیگری بگویید، به ما زمان بدهید تا آن را برطرف کنیم.
- در حین بررسی، هیچ دادهای جز دادههای خودتان را باز نکنید، تغییر ندهید یا نگه ندارید.
- سایت زنده را با ترافیک زیاد پر نکنید تا ببینید چقدر تحمل میکند، ابزارهای اسکن خودکار را به سمت آن هدایت نکنید، و تلاش برای نفوذ نکنید، مگر اینکه از قبل کتباً موافقت خود را اعلام کرده باشیم.
- به ما بگویید چهکاری انجام دادید، چه چیزی دیدید، و جزئیات کافی برای اینکه بتوانیم دوباره آن را بازتولید کنیم. یادداشتی ناقص بهتر از هیچ یادداشتی است.
اینها همان قوانینی هستند که در سیاست استفادهی قابلقبول ما آمدهاند.
وضعیت این صفحه
این صفحه برای خواندن نوشته شده. یک قرارداد نیست، و هیچ تعهدی که بتوانید در دادگاه از ما مطالبه کنید در آن نیست. اسنادی که چنین تعهدی دارند، شرایط خدمات و سیاست حریم خصوصی در بستهی حقوقی ما هستند. کار امنیتی هرگز متوقف نمیشود، پس آنچه در این صفحه است تغییر میکند. اگر روزی این صفحه و آن اسناد با هم اختلاف داشتند، آن اسناد ملاک هستند.
سؤالات دربارهی هر بخش از این موارد را به [email protected] بفرستید، و بقیهی موارد در صفحهی تماس با ما موجود است.