กำไร:
- ความสามารถในการขอสิทธิ์โดยมีเหตุผล บริบท และสถานการณ์การปฏิเสธ โดยใช้หลักการของสิทธิ์ขั้นต่ำ
- ความสามารถในการจัดเก็บข้อมูลละเอียดอ่อนที่เข้ารหัสด้วยพวงกุญแจ/ที่เก็บคีย์ ใช้การลดขนาดข้อมูล และควบคุมแนวโน้มของปัญญาประดิษฐ์ในการเพิ่มสิทธิ์มากเกินไป
- ความสามารถในการจัดการการไหลของข้อมูลผู้ใช้ไปยังระบบคลาวด์หรือบริการปัญญาประดิษฐ์เพื่อการตัดสินใจด้านความเป็นส่วนตัว รับความยินยอมจากผู้ใช้ และใช้เทคนิคความปลอดภัยเพื่อวัตถุประสงค์ที่ได้รับอนุญาตและเป็นการป้องกันเท่านั้น
แอปพลิเคชั่นมือถือทำงานบนอุปกรณ์ส่วนตัวของผู้ใช้: รู้ตำแหน่ง ผู้ติดต่อ รูปภาพ ข้อมูลสุขภาพ ไมโครโฟน การเข้าถึงนี้เป็นพลังอันยิ่งใหญ่ และอำนาจหมายถึงความรับผิดชอบ ความเป็นส่วนตัวและความปลอดภัยไม่ใช่ "คุณลักษณะเสริม" ในการพัฒนาอุปกรณ์เคลื่อนที่ แต่เป็นหลักการที่ถักทอเข้ากับสถาปัตยกรรมตั้งแต่ต้น สิ่งนี้เรียกว่าความเป็นส่วนตัวโดยการออกแบบ ยิ่งไปกว่านั้น นี่ไม่ได้เป็นเพียงทางเลือกที่มีจริยธรรมเท่านั้น แต่ยังเป็นข้อผูกพันทางกฎหมาย (KVKK, GDPR) และร้านค้า (App Store, Google Play) ในหน่วยนี้ เราจะได้เรียนรู้วิธีขอสิทธิ์อย่างถูกต้อง ประมวลผลข้อมูลอย่างปลอดภัย ใช้ AI เป็นตัวช่วยในสาขานี้ และป้องกันตนเองจากกับดักของมัน ยังมีปัญหาสำคัญอีกประการหนึ่งในบริบทของ AI คือ ข้อมูลผู้ใช้ที่ไปยังโมเดล AI (โดยเฉพาะระบบคลาวด์) ถือเป็นการตัดสินใจด้านความเป็นส่วนตัวในตัวเอง
ศิลปะแห่งการขออนุญาต: สิทธิพิเศษน้อยที่สุด
หลักการพื้นฐานของความปลอดภัยคือสิทธิพิเศษน้อยที่สุด (ไม่ขอสิทธิพิเศษมากกว่าที่งานต้องการ) แอปของคุณควรขอสิทธิ์ที่จำเป็นจริงๆ ในเวลาที่ต้องการเท่านั้น หากไม่มีฟีเจอร์กล้อง จะไม่มีการขออนุญาตใช้กล้อง หากจำเป็นต้องใช้ตำแหน่งเฉพาะเมื่อเปิดแผนที่ การอนุญาต "ขณะใช้งาน" ก็เพียงพอแล้ว ไม่ใช่ "ตลอดเวลา" การอนุญาตที่มากเกินไปทำให้เกิดความเสียหายสามเท่า: จะบ่อนทำลายความไว้วางใจของผู้ใช้ นำไปสู่การปฏิเสธการจัดเก็บ และเพิ่มความเสี่ยงของการรั่วไหลของข้อมูล
เวลาที่เหมาะสมและคำอธิบายในการขออนุญาตถือเป็นสิ่งสำคัญ ขออนุญาตจากผู้ใช้ตามบริบทและด้วยเหตุผล เช่น "จำเป็นต้องเข้าถึงกล้องเพื่อสแกนใบเสร็จรับเงินของคุณ" iOS ต้องใช้คำอธิบายนี้ใน Info.plist คำอธิบายที่ว่างเปล่าหรือทำให้เข้าใจผิดคือการปฏิเสธร้านค้า
ประเภทการอนุญาต
วิธีการที่ไม่ดี
แนวทางที่ดี
เวลา
ขอทั้งหมดเมื่อเปิดตัว
พรอมต์เมื่อใช้คุณสมบัติ
ขอบเขต
"ตำแหน่งเสมอ"
"ตำแหน่งขณะใช้งาน"
คำอธิบาย
ว่างเปล่าหรือทั่วไป
เป็นรูปธรรม มีเหตุผลเฉพาะเจาะจง
สถานะการปฏิเสธ
แอพขัดข้อง/ขัดข้อง
กรุณาเสนอทางเลือกอื่น
เคล็ดลับ: แอปของคุณควรจะสามารถทำงานต่อไปได้เมื่อการอนุญาตถูกปฏิเสธ หากผู้ใช้ปฏิเสธกล้อง ให้เสนอตัวเลือก "การเข้าสู่ระบบด้วยตนเอง" การบังคับใช้ "อนุญาต ไม่เช่นนั้นแอปจะไม่ทำงาน" ถือเป็นทั้งประสบการณ์ที่ไม่ดีและเป็นปัญหาของร้านค้า ถามถึงสถานการณ์การปฏิเสธเสมอเมื่อพิมพ์รหัสสิทธิ์ไปยัง AI
ความยินยอมและรหัสความเป็นส่วนตัวด้วย AI: ข้อควรพิจารณา
AI สร้างโค้ดร้องขอการอนุญาตอย่างรวดเร็ว แต่มีข้อผิดพลาดทั่วไปสองประการ ขั้นแรก การเพิ่มสิทธิ์มากกว่าที่จำเป็น: ตำแหน่ง ผู้ติดต่อสามารถใส่สิทธิ์ในการจัดเก็บจำนวนมาก "เผื่อไว้" ประการที่สอง ข้ามสถานการณ์การปฏิเสธ: เพียงเขียนสถานะ "อนุญาต" และเพิกเฉยต่อการปฏิเสธ สำหรับทุกใบอนุญาตที่สร้างขึ้น คุณจะถูกถามว่า "จำเป็นจริงๆ หรือไม่" และ “จะเกิดอะไรขึ้นหากถูกปฏิเสธ” ถามคำถามของคุณ
ข้อควรระวัง: โค้ดตัวอย่างที่สร้างโดย AI อาจจัดเก็บข้อมูลผู้ใช้โดยไม่มีการเข้ารหัสหรือส่งข้อมูลอย่างไม่ปลอดภัย ข้อมูลที่ละเอียดอ่อน (รหัสผ่าน สุขภาพ การเงิน) ควรเก็บไว้ในที่เก็บข้อมูลที่ปลอดภัยบนอุปกรณ์ (พวงกุญแจ — iOS, ที่เก็บคีย์ — Android; พื้นที่ห้องนิรภัยที่เข้ารหัสของระบบปฏิบัติการ) และส่งผ่านเครือข่ายผ่านการเชื่อมต่อที่เข้ารหัส (HTTPS/TLS) AI ไม่ได้ทำสิ่งนี้โดยธรรมชาติเสมอไป ถามให้ชัดเจนและตรวจสอบ
การลดขนาดข้อมูลและการส่งข้อมูลไปยัง AI
ข้อมูลที่คุณไม่ได้รวบรวมจะไม่รั่วไหล การลดขนาดข้อมูล (การรวบรวมเฉพาะข้อมูลที่จำเป็นจริง ๆ ) เป็นเครื่องมือที่ทรงพลังที่สุดเพื่อความเป็นส่วนตัว ในฟีเจอร์ AI หลักการนี้มีความสำคัญเป็นสองเท่า: เมื่อส่งข้อมูลไปยัง LLM บนคลาวด์หรือบริการ AI ภายนอก ข้อมูลนั้นอยู่นอกเหนือการควบคุมของคุณ ก่อนที่จะส่งบันทึกสุขภาพ เนื้อหาการสนทนา หรือข้อมูลส่วนบุคคลของผู้ใช้ไปยังคลาวด์ ให้ถามคำถามสามข้อ: (1) ข้อมูลนี้จำเป็นจริงๆ หรือไม่? (2) สามารถประมวลผลบนอุปกรณ์ได้หรือไม่? (3) ถ้าจะส่ง ผู้ใช้ทราบและอนุมัติหรือไม่? เป็นข้อกำหนดทางกฎหมายและจริยธรรมในการแจ้งให้ผู้ใช้ทราบอย่างชัดเจนว่าข้อมูลของพวกเขาถูกส่งไปยังบริการ AI
การใช้งานอย่างปลอดภัยและมุ่งเน้นการป้องกัน
คำเตือนจากมุมมองด้านไอทีและความปลอดภัย: เทคนิคที่เรียนรู้ในโมดูลนี้มีไว้สำหรับการใช้งานที่ได้รับอนุญาตและการป้องกันเท่านั้น การทดสอบความปลอดภัยของแอปพลิเคชันของคุณเอง ปกป้องข้อมูลผู้ใช้ และปิดช่องโหว่เป็นสิ่งที่ถูกต้องตามกฎหมาย วิศวกรรมย้อนกลับแอปพลิเคชันของผู้อื่นโดยไม่ได้รับอนุญาต การรวบรวมข้อมูลผู้ใช้โดยไม่ได้รับความยินยอม หรือใช้ AI เพื่อสร้างมัลแวร์ถือเป็นสิ่งผิดกฎหมายและผิดจรรยาบรรณ เมื่อขอความช่วยเหลือจาก AI ด้านความปลอดภัย ให้อยู่ในกรอบการปกป้องระบบของคุณเองเสมอ
มินิเคสสามอัน
กรณีที่ 1 — การปฏิเสธการลาส่วนเกิน แอปพลิเคชันบันทึกขอสิทธิ์ในการใช้กล้อง ไมโครโฟน ตำแหน่ง และการติดต่อเมื่อเริ่มต้นด้วยโค้ดที่ AI สร้างขึ้น Google Play ปฏิเสธการเปิดตัว โดยอ้างถึง "การอนุญาตที่ไม่เกี่ยวข้องกับฟังก์ชัน" การเผยแพร่ได้รับการอนุมัติเมื่อทีมงานเผยแพร่สิทธิ์การจัดเก็บข้อมูลที่ใช้จริงเท่านั้น บทเรียน: การลาเพิ่มเติมทุกครั้งถือเป็นความเสี่ยง
กรณีที่ 2 — ที่เก็บข้อมูลโดยไม่มีรหัสผ่าน แอปด้านสุขภาพจัดเก็บการวัดผลผู้ใช้ไว้ในไฟล์ข้อความธรรมดาเหมือนกับในตัวอย่าง AI การตรวจสอบความปลอดภัยพบว่าใครก็ตามที่ได้รับอุปกรณ์ดังกล่าวสามารถอ่านข้อมูลสุขภาพทั้งหมดได้ ข้อมูลถูกย้ายไปยังที่เก็บข้อมูลที่เข้ารหัสด้วย Keystore/Keychain บทเรียน: ข้อมูลที่ละเอียดอ่อนจะถูกเข้ารหัสอยู่เสมอ
กรณีที่ 3 — การพุชไปยังคลาวด์โดยไม่แจ้งล่วงหน้า แอปส่งบันทึกประจำวันของผู้ใช้ไปยัง Cloud LLM เพื่อสรุปข้อมูล แต่ไม่ได้แจ้งผู้ใช้ เมื่อมีการรายงานในสื่อ มีการสูญเสียความไว้วางใจและการตรวจสอบทางกฎหมาย ทีมงานได้เพิ่มการแจ้งเตือนและการยืนยันที่ชัดเจนตลอดจนตัวเลือกบนอุปกรณ์ บทเรียน: ผู้ใช้จะต้องรู้และยืนยันว่าข้อมูลกำลังไปที่ AI
พรอมต์อ่อน / พรอมต์แข็งแกร่ง
ข้อความแจ้งที่อ่อนแอ: "ขออนุญาตตำแหน่ง"
ข้อความแจ้งที่มีประสิทธิภาพ: "ขอการอนุญาตตำแหน่งบน iOS/Swift ด้วยหลักการของสิทธิพิเศษน้อยที่สุด - เฉพาะการอนุญาต 'เมื่อมีการใช้งาน' ไม่ใช่ 'เสมอ' - คำอธิบาย Info.plist: 'เพื่อแสดงร้านค้าใกล้เคียง' - หากการอนุญาตถูกปฏิเสธ: เสนอตัวเลือกให้เลือกเมืองด้วยตนเอง ข้อขัดข้อง - หากการอนุญาตถูกปฏิเสธก่อนหน้านี้ ให้เปลี่ยนเส้นทางไปยังการตั้งค่า อย่าเพิ่มการอนุญาตมากกว่าที่จำเป็น เขียนขั้นตอนการปฏิเสธด้วย"
เทมเพลตที่คัดลอกได้
เทมเพลตสำหรับการขออนุญาต: "ขอสิทธิ์ [ประเภทสิทธิ์] สำหรับ [แพลตฟอร์ม] - ขอบเขตขั้นต่ำ (เมื่อใช้/ตามความจำเป็น) - ในบริบทพร้อมคำอธิบายที่สมเหตุสมผล - ทางเลือกที่สุภาพในกรณีที่ถูกปฏิเสธ ไม่เคยขัดข้อง - ให้รายการ Info.plist / Manifest ด้วย อย่าเพิ่มสิทธิ์พิเศษ ให้ปรับสิทธิ์แต่ละรายการ"
เทมเพลตการตรวจสอบสิทธิ์: "ตรวจสอบสิทธิ์ที่แอปของฉันร้องขอ: [รายการสิทธิ์ + คุณสมบัติ] สำหรับการอนุญาตแต่ละรายการ: จำเป็นจริงๆ หรือไม่ ขอบเขตที่แคบลงจะเพียงพอหรือไม่ มันจะนำไปสู่การปฏิเสธร้านค้าหรือไม่ ตั้งค่าสถานะโดยไม่จำเป็น"
เทมเพลตการจัดเก็บข้อมูลที่ปลอดภัย: "จัดเก็บข้อมูลที่ละเอียดอ่อนอย่างปลอดภัย ([ประเภท]) สำหรับ [แพลตฟอร์ม]: - เข้ารหัสด้วยพวงกุญแจ/ที่เก็บคีย์ - อย่าเก็บไว้ในหน่วยความจำเป็นเวลานานโดยไม่จำเป็น - อย่ารั่วไหลในบันทึกและการสำรองข้อมูล ระบุรหัสและขั้นตอนการตรวจสอบ"
เทมเพลตสำหรับการส่งข้อมูลไปยัง AI: "ฉันกำลังพิจารณาส่งข้อมูลต่อไปนี้ไปยังบริการ AI บนคลาวด์: [ข้อมูล] ประเมิน: จำเป็นจริงๆ หรือไม่ สามารถประมวลผลบนอุปกรณ์ได้หรือไม่ หากส่งแล้ว ช่องใดควรถูกปกปิด ควรได้รับความยินยอมจากผู้ใช้อย่างไร แนะนำการออกแบบที่ปลอดภัยที่สุดในแง่ของความเป็นส่วนตัว"
ข้อผิดพลาดทั่วไป
- ขออนุญาตเกินความจำเป็น อันตรายถึงสามเท่าของความไว้วางใจ การอนุมัติร้านค้า และความปลอดภัย
- การขอสิทธิ์จำนวนมากเมื่อเริ่มต้น การขออนุญาตโดยไม่มีบริบทถูกปฏิเสธ ขอคุณสมบัติทันที
- ไม่ได้เขียนสคริปต์การปฏิเสธ แอปหยุดทำงานเมื่อการอนุญาตถูกปฏิเสธมีทั้งไม่ดีและถูกปฏิเสธ
- การจัดเก็บข้อมูลที่ละเอียดอ่อนโดยไม่ต้องใช้รหัสผ่าน สุขภาพ การเงิน และรหัสผ่านจะต้องถูกเก็บไว้ในที่เก็บข้อมูลที่ปลอดภัย
- การส่งข้อมูลไปยังคลาวด์/AI โดยไม่แจ้งให้ผู้ใช้ทราบ การละเมิดกฎหมายและจริยธรรม จำเป็นต้องมีการแจ้งเตือนและการอนุมัติ
- การใช้เทคนิคความปลอดภัยโดยไม่ได้รับอนุญาต ถูกต้องตามกฎหมายสำหรับวัตถุประสงค์ในการป้องกันในระบบของคุณเองเท่านั้น
โดยสรุป
ความเป็นส่วนตัวและความปลอดภัยได้รับการออกแบบตั้งแต่ต้น ไม่ได้เพิ่มในภายหลัง หลักการพื้นฐานคือสิทธิพิเศษน้อยที่สุด: ขอเฉพาะการอนุญาตที่จำเป็น เมื่อจำเป็น โดยมีเหตุผล และเสนอทางเลือกที่สุภาพในกรณีที่ถูกปฏิเสธ ข้อมูลที่ละเอียดอ่อนจะถูกจัดเก็บไว้ในที่จัดเก็บข้อมูลที่เข้ารหัสและส่งผ่านการเชื่อมต่อที่เข้ารหัส การลดขนาดข้อมูลเป็นการป้องกันที่แข็งแกร่งที่สุด ข้อมูลที่คุณไม่ได้รวบรวมจะไม่รั่วไหล การส่งข้อมูลไปยัง AI โดยเฉพาะไปยังคลาวด์ถือเป็นการตัดสินใจเรื่องความเป็นส่วนตัวในตัวเอง หากเป็นไปได้ หากเป็นไปได้ มักตั้งคำถามถึงความจำเป็นในอุปกรณ์ ผู้ใช้จะได้รับแจ้งและได้รับการอนุมัติจากเขา/เธอ ทุกรหัสที่ผลิตจะถูกตรวจสอบกับแนวโน้มของ AI ในการเพิ่มสิทธิ์ที่มากเกินไปและจัดเก็บอย่างไม่ปลอดภัย เทคนิคการรักษาความปลอดภัยใช้เพื่อวัตถุประสงค์ที่ได้รับอนุญาตและการป้องกันเท่านั้น
งานสมัคร
สร้างรายการสิทธิ์ที่แอปพลิเคชันร้องขอ (โครงการของคุณเองหรือในจินตนาการ) และให้ AI ตรวจสอบว่าสิทธิ์ใดบ้างที่ไม่จำเป็นหรือเกินขอบเขตด้วย "เทมเพลตการตรวจสอบสิทธิ์" ปรับแต่งหรือลบสิทธิ์อย่างน้อยหนึ่งสิทธิ์ และเขียนสถานการณ์การปฏิเสธสำหรับฟีเจอร์นั้น นอกจากนี้ หากคุณกำลังส่งข้อมูลผู้ใช้ไปยังคลาวด์ ให้กำหนดการออกแบบที่ปลอดภัยที่สุดด้วย "เทมเพลตการตัดสินใจส่งข้อมูลไปยัง AI" และเขียนข้อความอนุมัติผู้ใช้
รายการตรวจสอบ
- [ ] ฉันขออนุญาตแต่ละครั้งโดยมีเหตุผล โดยมีหลักการให้สิทธิพิเศษน้อยที่สุด
- [ ] ฉันขอสิทธิ์ตามบริบท ณ เวลาฟีเจอร์ ไม่ใช่จำนวนมากเมื่อเปิดตัว
- [ ] ฉันเขียนสคริปต์ปฏิเสธสำหรับการอนุญาตแต่ละรายการ ไม่มีข้อขัดข้อง
- [ ] ฉันจัดเก็บข้อมูลสำคัญที่เข้ารหัสด้วยพวงกุญแจ/ที่เก็บคีย์
- [ ] ฉันย่อข้อมูลที่ส่งไปยังคลาวด์/AI และเพิ่มการอนุมัติจากผู้ใช้
- [ ] ฉันใช้เทคนิคความปลอดภัยเฉพาะกับระบบของตัวเองเพื่อวัตถุประสงค์ในการป้องกันเท่านั้น