حریم خصوصی

حریم خصوصی، به زبان ساده

داده‌ی سلامت روان حساس‌ترین داده‌ی یک آدم است. اینجا می‌نویسیم بیولا با آن چه می‌کند — و آنجا که چیزی کم داریم، همان را هم می‌نویسیم.

خلاصه

  • محتوای سلامتت روی گوشی رمزگذاری‌شده است.
  • پشتیبانِ روی سرور هم رمزگذاری‌شده است و کلیدش فقط از رمز خودت ساخته می‌شود؛ ما نمی‌توانیم بخوانیمش.
  • هر مقصد دیگر — هوش مصنوعی، پژوهش، گزارش برای مراقب و … — پیش‌فرض خاموش است و فقط با رضایت جداگانه‌ی تو روشن می‌شود.
  • هر وقت بخواهی، پشتیبان را خاموش می‌کنی یا همه‌چیز را پاک می‌کنی.

چه چیزی کجا می‌رود

چه چیزیروی گوشیروی سرور مامقصد دیگر
ثبت خلق و خواب، ژورنال، ثبت فکر، طرح ایمنی، نشانه‌های هشدار، دارو و آزمایش‌ها، پرسشنامه‌ها، اهداف، برنامه‌های همراه، پاسخ‌هایشان و پله‌های مواجهه، گفتگوها و پروفایلرمزگذاری‌شده (پایگاه‌داده‌ی SQLCipher، کلید در سخت‌افزار امن دستگاه)بعد از ورود، فقط یک کپی رمزشده. پیش‌فرض روشن، قابل خاموش‌کردن.هیچ‌جا، مگر با رضایت جداگانه.
متن گفتگو با همیار و دسته‌هایی که اجازه داده‌ای (مثلاً خلاصه‌ی خلق)همراه بقیه‌ی داده‌هااز سرور ما عبور می‌کند تا به ارائه‌دهنده‌ی هوش مصنوعی برسد؛ یک یادداشتِ کوتاهِ حافظه هم، بدون رمزگذاری سرتاسری، نگه داشته می‌شود که می‌توانی ببینی و پاک کنیارائه‌دهنده‌ی هوش مصنوعی — فقط با رضایت. این بخش رمزگذاری سرتاسری ندارد.
نمره‌های پژوهشی—بدون شناسه‌ی حسابفقط با رضایت صریح برای حالت پژوهش.
اگر «پژوهش با کد مستعار» را روشن کنی: عددهای هر روز تمام‌شده — میانگین خلق، انرژی، اضطراب و خواب، دفترچه‌ی خواب، ریتم روزانه، چند دارو «خوردم» خورد، سطح نشانه‌های هشدار، شمار جلسه‌ها و یادداشت‌ها (نه متنشان) و نمره‌ی پرسشنامه‌هاهمراه بقیه‌ی داده‌هازیر یک کد تصادفی، بدون شناسه‌ی حساب؛ خاموش کردنش یا «حذف همه‌ی داده‌ها» کد و همه‌ی روزهایش را پاک می‌کندپژوهشگران پنل بیولا، در فایل Excel؛ هر دریافت ثبت می‌شود. پیش‌فرض خاموش.
گزارش به مراقب: فقط نوع‌هایی که روشن کرده‌ای، همراه نام، سن، نوع تشخیص، داروها و نام درمانگرت از پروفایل—از سرور ما عبور می‌کند و متنش نگه داشته نمی‌شود؛ سرور فقط شناسه‌ی گفتگوی تلگرامِ مراقب و نامی را که تلگرام داده نگه می‌داردگفتگوی تلگرامِ مراقبی که خودت با پیوند یک‌بارمصرف وصل و تأیید کرده‌ای؛ پیامِ رفته در تلگرام او می‌ماند. پیش‌فرض خاموش.
پاسخ به پرسشنامه‌ی پزشکت، و اگر روشنش کنی، خلاصه‌ی روزانه‌ی خلق و خواب (نشانه‌های هشدار فقط با اجازه‌ی جداگانه)همراه بقیه‌ی داده‌هارمزگذاری‌شده برای همان پزشک؛ سرور نمی‌تواند بخواندش و تا وقتی پزشک برش دارد نگهش می‌داردفقط پزشکی که خودت با کد به او وصل شده‌ای.
آمار استفاده و خطا: هر بخش برنامه چند بار باز شده، نوع خطاها، نسخه‌ی برنامه و گوشیتا وقتی فرستاده شودبا شناسه‌ی حساب و بدون هیچ محتوایی؛ پیش‌فرض روشن، در «حریم خصوصی» خاموش می‌شود و با «حذف همه‌ی داده‌ها» پاک می‌شود—
اگر خودت «اشتراک با تیم بالینی بیولا» را روشن کنی: کلید داده‌هایت، مهرشده برای کلید تیم—تا وقتی خاموشش کنی؛ سرور نمی‌تواند بازش کندادمین‌های پنل بیولا با کلید تیم، در مرورگر خودشان، همه‌ی داده‌های همگام‌شده‌ات را می‌بینند و هر بار باز کردن ثبت می‌شود. پیش‌فرض خاموش؛ خاموش کردنش در «حریم خصوصی» همان لحظه دسترسی را می‌بندد.
گزارش کامل خطا (متن و جزئیات)فقط روی گوشیهرگز به‌طور خودکار بارگذاری نمی‌شود؛ فقط نوعِ خطا در آمار بالا شمرده می‌شود—

رمزگذاری چطور کار می‌کند

وقتی وارد می‌شوی، برنامه از رمز خودت روی همان گوشی یک کلید رمزنگاری می‌سازد (Argon2id). داده‌ها با این کلید رمز می‌شوند (AES-256-GCM) و فقط بسته‌ی رمزشده به سرور می‌رود. خودِ کلید هرگز از گوشی بیرون نمی‌رود.

نتیجه‌اش دوطرفه است. خوب: سرور و مدیرانش نمی‌توانند پشتیبانِ تو — ژورنال، ثبت‌ها و یادداشت‌ها — را بخوانند (مگر اینکه خودت «اشتراک با تیم بالینی بیولا» را روشن کنی؛ پایین‌تر)، و اگر کسی پایگاه‌داده‌ی سرور را بدزدد، فقط داده‌ی رمزشده به دستش می‌رسد. بد: اگر رمزت را گم کنی، ما هم نمی‌توانیم پشتیبان را باز کنیم. با کدی که به ایمیلت می‌آید رمز تازه می‌گذاری و به حسابت برمی‌گردی، ولی پشتیبانی که با رمز قبلی رمز شده با رمز تازه باز نمی‌شود — مگر با «کد بازیابی»: کدی که برنامه یک بار نشانت می‌دهد و تو نگه‌اش می‌داری. با آن کد پشتیبان باز می‌شود و از آن به بعد رمز تازه هم کافی است. اگر هم رمز و هم کد گم شوند، پشتیبان را هیچ‌کس نمی‌تواند باز کند.

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

رضایت، دسته‌به‌دسته

برنامه ۳۰ نوع داده و ۷ مقصد را جدا می‌شناسد. می‌توانی بگویی «خلاصه‌ی خلقم برود به همیار، ولی ژورنالم نه» و برنامه همان را انجام می‌دهد. سرور هم مستقل بررسی می‌کند و بدون رضایت ثبت‌شده چیزی را نمی‌پذیرد. پس‌گرفتن رضایت، ارسال جدید را همان لحظه روی گوشی می‌بندد و درخواست لغو به سرور می‌رود.

تنها مقصدی که پیش‌فرض روشن است، همان پشتیبان رمزشده بعد از ورود است — تا با عوض‌کردن گوشی چیزی گم نشود. در تنظیمات خاموشش می‌کنی و گوشی این انتخاب را به خاطر می‌سپارد.

هوش مصنوعی: چه می‌رود و چه نمی‌رود

همیار پیش‌فرض خاموش است. اگر روشنش کنی، متنی که می‌فرستی و دسته‌هایی که جداگانه اجازه داده‌ای از سرور ما به یک ارائه‌دهنده‌ی هوش مصنوعی می‌رسد. برای اینکه بتواند جواب بدهد، باید متن را بدون رمز ببیند؛ این تنها بخشی از بیولاست که رمزگذاری سرتاسری ندارد.

همیار یک یادداشتِ کوتاهِ حافظه هم روی سرور ما نگه می‌دارد (حداکثر ۸ یادداشت، بدون رمزگذاری سرتاسری) تا در گفتگوهای بعدی یادش باشد؛ می‌توانی فهرستش را ببینی و پاکش کنی. و یک محدودیت که باید بدانی: هنوز تضمین کتبی درباره‌ی مدت نگهداری داده نزد ارائه‌دهنده‌ی هوش مصنوعی نداریم. اگر برایت مهم است، همیار را روشن نکن — برنامه بدون آن هم کامل کار می‌کند.

ما چه می‌بینیم؟

پنل مدیریتِ ما اطلاعات حساب و شمارش‌ها را می‌بیند: ایمیل هر حساب، رضایت‌هایش، آخرین ورود و فعالیتش، اینکه چند آیتم رمزشده دارد، و — اگر «آمار استفاده و خطا» را خاموش نکرده باشی — اینکه هر بخش برنامه چند بار باز شده، چه خطاهایی پیش آمده و کدام نسخه‌ی برنامه و گوشی را داری. متن ژورنال، جواب پرسشنامه‌ها و پیام‌ها را نمی‌بیند — مگر برای کسی که خودش در برنامه «اشتراک با تیم بالینی بیولا» را روشن کرده باشد: آن وقت ادمین‌ها با کلید تیم، در مرورگر خودشان، همه‌ی داده‌های همگام‌شده‌ی او را می‌بینند و هر بار باز کردن با نامشان ثبت می‌شود؛ با خاموش کردنش، از همان لحظه دیگر باز نمی‌شود. ورود به پنل با تأیید دومرحله‌ای اجباری است و همه‌ی کارهای مدیران ثبت می‌شود.

یک استثنا که باید بدانی: هرکس رمز یک حساب را داشته باشد می‌تواند داده‌های آن را باز کند — همان‌طور که با خودِ برنامه می‌تواند. اگر یک مرکز درمانی برای بیمارانش حساب می‌سازد، مرکز رمز آن حساب‌ها را دارد و می‌تواند داده‌ها را ببیند. پنل ما برای همین یک نمایشگر دارد که فقط با رمز خودِ حساب و داخل مرورگرِ مدیر کار می‌کند؛ رمز و محتوا هرگز به سرور نمی‌رسد و هر بار باز کردن در گزارش ممیزی ثبت می‌شود. برای حسابی که رمزش را نداریم، هیچ راهی برای خواندنش نداریم.

پژوهش با کد مستعار: اگر روشنش کنی، عددهای هر روزت (نه هیچ متنی) زیر یک کد تصادفی به سرور می‌رود. سرور هنگام دریافت بررسی می‌کند که از حسابی با رضایت آمده، ولی حساب را کنار روزها نگه نمی‌دارد. کد مستعار یعنی «بی‌نام» نیست: کد روی گوشی و در پشتیبان رمزشده‌ی خودت هم هست، و روندِ روزها در کنار هم می‌تواند چیزی درباره‌ی یک نفر بگوید؛ برای همین فقط پژوهشگران پنل، با تأیید دومرحله‌ای، فایلش را می‌گیرند و هر دریافت با نامشان ثبت می‌شود.

روی خودِ گوشی

  • قفل برنامه با رمز عددی، اثر انگشت یا قفل خودِ گوشی.
  • اعلان‌ها هیچ جزئیات سلامتی ندارند و روی صفحه‌ی قفل پیش‌فرض پنهان‌اند.
  • در نسخه‌ی نهایی، عکس‌برداری از صفحه و پیش‌نمایش «برنامه‌های اخیر» مسدود است.
  • پشتیبان‌گیری خودکار اندروید برای داده‌های حساس خاموش است.
  • گزارش کامل خطا فقط روی گوشی می‌ماند و خودکار ارسال نمی‌شود؛ «آمار استفاده و خطا» فقط شمارش می‌فرستد و در «حریم خصوصی» خاموش می‌شود.
  • Health Connect (اختیاری): فقط اگر خودت اجازه بدهی، بیولا جلسه‌های خوابت را (ساعت شروع و پایان و بخش‌های بیداری) از Health Connect می‌خواند — فقط وقتی در صفحه‌ی خواب «خواندن» را بزنی — و شب‌هایی را که انتخاب کنی در ثبت خوابِ رمزگذاری‌شده ذخیره می‌کند. چیزی در Health Connect نوشته نمی‌شود، این داده برای کار دیگری به کار نمی‌رود و اجازه را هر وقت خواستی از تنظیمات Health Connect پس می‌گیری.

داده‌ی تو، اختیار تو

  • خروجی: نسخه‌ی رمزگذاری‌شده با رمزی که خودت انتخاب می‌کنی.
  • پاک‌کردن: حذف همه‌ی داده‌ها از گوشی و از سرور، شامل حافظه‌ی همیار.
  • خاموش‌کردن پشتیبان: در تنظیمات ← همگام‌سازی ابری.

کجا نگهداری می‌شود

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

محدودیت‌هایی که باید بدانی

  • بیولا در مرحله‌ی دسترسی زودهنگام است. ممیزی امنیتی مستقل هنوز انجام نشده.
  • درباره‌ی نگهداری داده نزد ارائه‌دهنده‌ی هوش مصنوعی، هنوز مدرک کتبی نداریم (بالاتر را ببین).
  • بازیابی رمز با کد ایمیلی فقط دسترسی به حساب را برمی‌گرداند؛ پشتیبانی که با رمز قبلی ساخته شده با رمز تازه باز نمی‌شود، مگر با «کد بازیابی» که در «همگام‌سازی» ساخته‌ای. رمزت را جایی امن نگه دار و کد بازیابی را بساز.
  • کلید پشتیبان از رمز حساب ساخته می‌شود (بالاتر را ببین)؛ رمزی قوی و منحصربه‌فرد انتخاب کن.
  • تغییر رمز حساب هنوز پشتیبانِ ابری را با کلید تازه دوباره رمز نمی‌کند؛ اگر رمزت را عوض کنی، برای باز کردن پشتیبان روی گوشی نو ممکن است لازم باشد رمز قبلی را وارد کنی.
  • نمره‌ی پرسشنامه‌ها تأیید بالینی نشده است.

سؤال یا گزارش امنیتی؟

اگر مشکل امنیتی دیده‌ای یا درباره‌ی حریم خصوصی سؤالی داری، بنویس: