واحد 9 / 11

حریم خصوصی، مجوزها و استفاده ایمن

سود:

  • امکان درخواست مجوز با توجیه، زمینه و سناریو رد با استفاده از اصل حداقل امتیاز
  • امکان ذخیره داده های حساس رمزگذاری شده با Keychain/Keystore، اعمال به حداقل رساندن داده ها و کنترل تمایل هوش مصنوعی برای اضافه کردن مجوزهای بیش از حد
  • امکان مدیریت جریان داده های کاربر به سرویس ابری یا هوش مصنوعی به عنوان یک تصمیم حفظ حریم خصوصی، کسب رضایت کاربر و استفاده از تکنیک های امنیتی فقط برای اهداف مجاز و دفاعی

برنامه تلفن همراه در خصوصی ترین دستگاه کاربر کار می کند: مکان، مخاطبین، عکس ها، داده های سلامتی، میکروفون او را می داند. این دسترسی قدرت بزرگی است و قدرت یعنی مسئولیت. حریم خصوصی و امنیت یک "ویژگی افزودنی" در توسعه تلفن همراه نیست، بلکه یک اصل است که از ابتدا در معماری بافته شده است. به این می گویند حریم خصوصی با طراحی. علاوه بر این، این نه تنها یک انتخاب اخلاقی است، بلکه یک تعهد قانونی (KVKK، GDPR) و فروشگاه (App Store، Google Play) است. در این واحد یاد می گیریم که چگونه به درستی مجوزها را درخواست کنیم، داده ها را به صورت ایمن پردازش کنیم، از هوش مصنوعی به عنوان دستیار در این زمینه استفاده کنیم و از خود در برابر تله های آن محافظت کنیم. یک مسئله مهم دیگر در زمینه هوش مصنوعی وجود دارد: داده‌های کاربر که به مدل‌های هوش مصنوعی (به ویژه ابر) می‌روند، به خودی خود یک تصمیم حفظ حریم خصوصی است.

هنر اجازه گرفتن: کمترین امتیاز

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

زمان بندی مناسب و توضیح درخواست اجازه بسیار مهم است. از کاربر در زمینه و با توجیهی مانند "دسترسی به دوربین برای اسکن رسید شما لازم است" اجازه بخواهید. iOS به این توضیحات در Info.plist نیاز دارد. توضیحات خالی یا گمراه کننده رد فروشگاه است.

نوع مجوز

رویکرد بد

رویکرد خوب

زمان بندی

درخواست همه در هنگام راه اندازی

هنگام استفاده از ویژگی، درخواست دهید

دامنه

"همیشه موقعیت مکانی"

"موقعیت مکانی هنگام استفاده"

توضیحات

خالی یا عمومی

بتن، توجیه خاص

وضعیت رد

برنامه از کار می افتد/قطع می شود

با مهربانی گزینه های جایگزین ارائه می دهد

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

رضایت و کد حریم خصوصی با هوش مصنوعی: ملاحظات

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

احتیاط: کد نمونه تولید شده توسط هوش مصنوعی ممکن است داده های کاربر را بدون رمزگذاری ذخیره کند یا به صورت ناامن منتقل کند. داده های حساس (گذرواژه، سلامت، امور مالی) باید در حافظه ایمن دستگاه (Keychain - iOS، Keystore - Android؛ ناحیه مخزن رمزگذاری شده سیستم عامل) نگهداری شوند و از طریق یک اتصال رمزگذاری شده (HTTPS/TLS) در شبکه منتقل شوند. هوش مصنوعی همیشه این کار را خود به خود انجام نمی دهد. واضح بپرسید و بررسی کنید.

به حداقل رساندن داده ها و ارسال داده ها به هوش مصنوعی

داده هایی که جمع آوری نمی کنید نمی توانند درز کنند. به حداقل رساندن داده ها (جمع آوری تنها داده هایی که واقعاً مورد نیاز هستند) قدرتمندترین ابزار برای حفظ حریم خصوصی است. در ویژگی‌های هوش مصنوعی، این اصل اهمیت دو چندانی دارد: هنگام ارسال داده‌ها به یک سرویس LLM ابری یا سرویس هوش مصنوعی خارجی، آن داده‌ها خارج از کنترل شما هستند. قبل از ارسال یادداشت سلامت، محتوای مکالمه یا اطلاعات شخصی کاربر به ابر، سه سوال بپرسید: (1) آیا این داده ها واقعا ضروری هستند؟ (2) آیا می توان آن را در دستگاه پردازش کرد؟ (3) اگر قرار است ارسال شود، آیا کاربر آن را می شناسد و تایید می کند؟ این یک الزام قانونی و اخلاقی است که به طور واضح به کاربر اطلاع دهید که داده های آنها به یک سرویس هوش مصنوعی می رود.

استفاده ایمن و تمرکز دفاعی

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

سه کیف کوچک

مورد 1 - انکار بیش از حد مرخصی. یک برنامه یادداشت مجوز دوربین، میکروفون، مکان و تماس را هنگام راه اندازی با کد تولید شده توسط هوش مصنوعی درخواست کرد. Google Play با استناد به "مجوزهای بی ربط با عملکرد"، انتشار را رد کرد. انتشار زمانی تأیید شد که تیم فقط مجوز ذخیره سازی را که واقعاً استفاده شده بود منتشر کرد. درس: هر مرخصی اضافی یک خطر است.

مورد 2 - ذخیره سازی بدون رمز عبور. یک برنامه سلامت اندازه‌گیری‌های کاربر را در یک فایل متنی ساده مانند مثال هوش مصنوعی ذخیره می‌کند. یک ممیزی امنیتی نشان داد که هر کسی که دستگاه را به دست آورد می تواند تمام داده های سلامتی را بخواند. داده ها با Keystore/Keychain به فضای ذخیره سازی رمزگذاری شده منتقل شدند. درس: داده های حساس همیشه رمزگذاری شده باقی می مانند.

مورد 3 - فشار بدون اعلام قبلی به ابر. برنامه ای یادداشت های روزانه کاربران را به یک ابر LLM ارسال می کرد تا آنها را خلاصه کند، اما به کاربر اطلاعی نداد. وقتی در مطبوعات گزارش شد، اعتماد و بررسی قانونی از بین رفت. تیم یک اعلان و تایید واضح و همچنین یک گزینه روی دستگاه اضافه کرد. درس: کاربر باید بداند و تأیید کند که داده ها به هوش مصنوعی می روند.

اعلان ضعیف / اعلان قوی

اعلان ضعیف: "درخواست اجازه مکان."

درخواست قدرتمند: "در iOS/Swift با اصل حداقل امتیاز درخواست مجوز موقعیت مکانی را بدهید. - فقط مجوز "وقتی استفاده می شود"، نه "همیشه" - توضیحات Info.plist: "برای نمایش فروشگاه های نزدیک" - اگر مجوز رد شد: گزینه پیشنهادی برای انتخاب دستی شهر، خرابی - اگر مجوز از قبل رد شده است. نیز."

قالب های قابل کپی

الگوی درخواست مجوز: «برای [پلتفرم] مجوز [نوع مجوز] درخواست کنید.- حداقل دامنه (هنگام استفاده/در صورت نیاز)- در زمینه، با توضیح مستدل- جایگزین مودبانه در صورت رد، هرگز خراب نشود- Info.plist / ورود مانیفست را نیز بدهید مجوزهای اضافی اضافه نکنید، هر مجوز را توجیه کنید.

الگوی ممیزی مجوز: "مجوزهایی را که برنامه من درخواست می کند بررسی کنید: [لیست مجوز + خواص]. برای هر مجوز: آیا واقعاً مورد نیاز است؟ آیا محدوده محدودتر کافی است؟ آیا منجر به رد فروشگاه می شود؟ پرچم گذاری غیر ضروری است."

الگوی ذخیره‌سازی امن داده‌ها: «داده‌های حساس ([نوع]) را برای [پلتفرم] ذخیره کنید: - رمزگذاری شده با Keychain/Keystore- برای مدت طولانی غیرضروری در حافظه نگهداری نشود- در گزارش‌ها و نسخه‌های پشتیبان درز نکنید، کد و مراحل تأیید را ارائه دهید.»

الگوی ارسال داده ها به هوش مصنوعی: "من در نظر دارم داده های زیر را به یک سرویس هوش مصنوعی ابری ارسال کنم: [داده]. ارزیابی کنید: آیا واقعا ضروری است؟ آیا می توان آن را در دستگاه پردازش کرد؟ در صورت ارسال، کدام فیلدها باید پوشانده شوند؟ رضایت کاربر چگونه باید دریافت شود؟ ایمن ترین طرح را از نظر حفظ حریم خصوصی توصیه کنید."

اشتباهات رایج

  • درخواست اجازه بیشتر از حد لازم خطر سه گانه اعتماد، تایید فروشگاه و امنیت.
  • درخواست مجوز به صورت انبوه در هنگام راه اندازی. درخواست اجازه بدون زمینه رد می شود. فوراً این ویژگی را درخواست کنید.
  • ننوشتن فیلمنامه رد برنامه ای که در صورت رد شدن مجوز خراب می شود، هم بد است و هم رد می شود.
  • ذخیره اطلاعات حساس بدون رمز عبور سلامت، امور مالی و گذرواژه‌ها باید در یک فضای ذخیره‌سازی امن نگهداری شوند.
  • ارسال داده به ابر/AI بدون اطلاع کاربر. نقض حقوقی و اخلاقی؛ اطلاع رسانی و تایید الزامی است.
  • استفاده غیرمجاز از تکنیک های امنیتی این فقط برای اهداف دفاعی در سیستم خود شما مشروع است.

به طور خلاصه

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

وظیفه کاربردی

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

چک لیست

  • [ ] هر مجوزی را با توجیه و با اصل کمترین امتیاز درخواست کردم.
  • [ ] من برای مجوز در زمینه، در زمان ویژگی، نه انبوه در هنگام راه اندازی درخواست کردم
  • [ ] من برای هر مجوز یک اسکریپت رد نوشتم، بدون خرابی
  • [ ] من داده های حساس را به صورت رمزگذاری شده با Keychain/Keystore ذخیره کردم
  • [ ] داده‌های ارسالی به ابر/AI را به حداقل رساندم و تأیید کاربر را اضافه کردم
  • [ ] من از تکنیک های امنیتی فقط در سیستم خودم برای اهداف دفاعی استفاده کردم