ความเป็นส่วนตัวของข้อมูลที่อยู่เป็นเรื่องที่ทีมเทคนิคมักคิดว่าเป็นหน้าที่ของฝ่ายกฎหมายเพียงฝ่ายเดียว และพบในภายหลังว่าการตัดสินใจเชิงเทคนิคที่ทำไปแล้วคือสิ่งที่กำหนดว่าองค์กรจะทำตามหลักการได้จริงหรือไม่ เพราะไม่ว่าหลักการจะเขียนไว้สวยงามเพียงใด ถ้าระบบเก็บข้อมูลไว้ทุกที่และไม่มีใครรู้ว่ามันอยู่ที่ใด การทำตามหลักการก็เป็นไปไม่ได้ บทความนี้จะพูดถึงหลักการที่นำไปใช้ได้จริงในระดับการออกแบบระบบ โดยไม่อ้างอิงกฎหมายฉบับใดฉบับหนึ่ง
ที่อยู่ถือเป็นข้อมูลส่วนบุคคลหรือไม่?
ถือเป็น เพราะที่อยู่ใช้ระบุตัวบุคคลได้ และเมื่อรวมกับข้อมูลอื่นที่มีอยู่ในระบบ เช่นชื่อหรือหมายเลขโทรศัพท์ ยิ่งทำให้ระบุตัวบุคคลได้ง่ายขึ้น การรวมชุดข้อมูลที่แยกกันไม่อันตรายเข้าด้วยกันจึงเป็นสิ่งที่ต้องคิดก่อนทำ
สิ่งที่ทำให้ข้อมูลที่อยู่แตกต่างจากข้อมูลส่วนบุคคลชนิดอื่นคือความคงอยู่ ที่อยู่ไม่เปลี่ยนบ่อยเหมือนรหัสผ่าน และเมื่อรั่วไหลก็แก้ไขไม่ได้ เพราะเราไม่สามารถเปลี่ยนที่อยู่ของตนเพื่อหนีผลของการเปิดเผยได้
ที่อยู่ยังเชื่อมโยงกับข้อมูลอ่อนไหวอื่นได้โดยอัตโนมัติ เช่นการรู้ว่าบุคคลหนึ่งอาศัยอยู่ที่ใดอาจเปิดเผยข้อมูลเกี่ยวกับฐานะทางเศรษฐกิจหรือวิถีชีวิต ซึ่งเป็นสิ่งที่เจ้าของข้อมูลอาจไม่ประสงค์จะเปิดเผย
ด้วยเหตุนี้ การปฏิบัติต่อข้อมูลที่อยู่ด้วยความระมัดระวังเท่ากับข้อมูลประจำตัวอื่นจึงไม่ใช่ความเกินเลย แต่เป็นแนวปฏิบัติที่สอดคล้องกับความเสี่ยงจริง
หลักการเก็บเท่าที่จำเป็นหมายถึงอะไร?
หมายถึงการเก็บเฉพาะข้อมูลที่ระบบต้องใช้จริงเพื่อวัตถุประสงค์ที่ระบุไว้ และไม่เก็บเพิ่มเพียงเพราะคาดว่าอาจมีประโยชน์ในอนาคต ซึ่งเป็นนิสัยที่พบได้บ่อยในทีมที่ต้องการวิเคราะห์ข้อมูล
ในทางปฏิบัติ คำถามที่ควรถามทุกครั้งก่อนเพิ่มช่องข้อมูลใหม่คือ ถ้าไม่มีช่องนี้ ระบบจะทำอะไรไม่ได้ และผู้ใช้จะได้รับประโยชน์อะไรจากการให้ข้อมูลนี้ ถ้าตอบไม่ได้ชัดเจน ก็ยังไม่ควรเพิ่ม
อีกส่วนที่มักถูกละเลยคือข้อมูลที่เก็บโดยอัตโนมัติ เช่นประวัติที่อยู่เดิมทุกครั้งที่มีการแก้ไข ซึ่งมีประโยชน์ต่อการตรวจสอบแต่ก็เป็นข้อมูลที่เพิ่มขึ้นเรื่อย ๆ โดยไม่มีใครตั้งใจ ถ้าไม่ได้ใช้จริงก็ไม่ควรเก็บ หรือเก็บเฉพาะช่วงเวลาที่จำเป็น
หลักการนี้ยังใช้กับการส่งข้อมูลออกไปยังผู้ให้บริการภายนอกด้วย เพราะการส่งข้อมูลไปให้บุคคลที่สามคือการเก็บในอีกรูปแบบหนึ่ง ซึ่งต้องมีเหตุผลรองรับเท่ากับการเก็บไว้เอง
- เก็บเฉพาะข้อมูลที่ระบบต้องใช้จริงเพื่อวัตถุประสงค์ที่ระบุไว้ ไม่เก็บเพิ่มเพียงเพราะคาดว่าอาจมีประโยชน์ในอนาคต
- คำถามก่อนเพิ่มช่องใหม่: ถ้าไม่มีช่องนี้ระบบจะทำอะไรไม่ได้ และผู้ใช้จะได้รับประโยชน์อะไรจากการให้ข้อมูลนี้
- ข้อมูลที่เก็บโดยอัตโนมัติ: เช่นประวัติที่อยู่เดิมทุกครั้งที่มีการแก้ไข ซึ่งควรเก็บเฉพาะช่วงเวลาที่จำเป็น
- การส่งข้อมูลออกไป: การส่งให้ผู้ให้บริการภายนอกคือการเก็บในอีกรูปแบบหนึ่ง จึงต้องมีเหตุผลรองรับเท่ากับการเก็บไว้เอง
ควรเก็บข้อมูลที่อยู่นานแค่ไหน?
ควรเก็บเท่าที่จำเป็นต่อวัตถุประสงค์ที่ระบุไว้ และควรมีกลไกที่ทำให้ข้อมูลถูกลบจริงเมื่อหมดความจำเป็น ไม่ใช่เพียงมีนโยบายเขียนไว้
ปัญหาที่พบบ่อยคือการลบข้อมูลออกจากฐานข้อมูลหลักแล้ว แต่ยังเหลืออยู่ในไฟล์สำรอง ในตารางบันทึกเหตุการณ์ ในไฟล์ส่งออกที่ส่งให้ทีมอื่น และในเอกสารประกอบการสอนของทีม การลบที่ไม่ครบวงจรทำให้หลักการจำกัดอายุข้อมูลไม่มีผลจริง
วิธีที่ช่วยได้คือทำรายการว่าข้อมูลที่อยู่ไปอยู่ที่ใดบ้างตั้งแต่ตอนออกแบบระบบ และทบทวนรายการนี้เมื่อมีการเพิ่มระบบใหม่ เพราะแหล่งเก็บข้อมูลมักเพิ่มขึ้นเรื่อย ๆ ตามเวลามากกว่าจะลดลง
อีกวิธีคือกำหนดอายุข้อมูลตั้งแต่ตอนบันทึก และให้ระบบจัดการลบหรือทำให้ไม่ระบุตัวตนโดยอัตโนมัติเมื่อถึงกำหนด วิธีนี้ทำให้การปฏิบัติไม่ขึ้นกับความจำของบุคคล
ควรแสดงข้อมูลที่อยู่เต็มรูปแบบหรือปกปิดบางส่วน?
ขึ้นอยู่กับว่าผู้ชมเป็นใคร สำหรับเจ้าของข้อมูลที่ยืนยันตัวตนแล้ว การแสดงเต็มรูปแบบเป็นเรื่องที่ควรทำ เพราะช่วยให้เขาตรวจสอบความถูกต้องได้ แต่สำหรับหน้าจอของเจ้าหน้าที่หรือบันทึกเหตุการณ์ ควรแสดงเท่าที่จำเป็นต่อการทำงานนั้น
การปกปิดเมื่อแสดงผลมีประโยชน์สองข้อ ข้อแรกคือลดความเสียหายหากหน้าจอถูกถ่ายภาพหรือถูกบันทึกโดยไม่ตั้งใจ ข้อที่สองคือบังคับให้ผู้ที่ต้องการดูข้อมูลเต็มต้องผ่านขั้นตอนที่มีการบันทึกว่าใครเข้าดู
สิ่งที่ต้องระวังคือการปกปิดที่มากเกินไปจนผู้ใช้ตรวจสอบไม่ได้ ซึ่งทำให้เขาไม่เห็นข้อผิดพลาดของที่อยู่ตนเอง และสร้างปัญหาที่ปลายทางแทน ทางออกคือให้เจ้าของข้อมูลเห็นของตนเองเต็ม และปกปิดสำหรับผู้อื่น
การปกปิดยังต้องใช้กับการบันทึกเหตุการณ์ด้วย เพราะที่อยู่ที่ถูกเขียนลงไฟล์บันทึกในรูปแบบเต็มเป็นแหล่งรั่วไหลที่มักถูกมองข้ามมากที่สุด การเขียนเฉพาะรหัสอ้างอิงลงบันทึกแทนข้อความจริงเป็นวิธีที่ได้ผล
ข้อมูลจริงควรอยู่ในสภาพแวดล้อมทดสอบหรือไม่?
โดยหลักการไม่ควร และนี่คือหลักการที่ทีมเทคนิคสามารถทำได้จริงมากที่สุด เพราะอยู่ในความควบคุมของทีมเอง โดยไม่ต้องรอการตีความทางกฎหมาย
การนำข้อมูลจริงเข้าสภาพแวดล้อมทดสอบทำให้ความเสี่ยงเพิ่มขึ้นหลายเท่า เพราะสภาพแวดล้อมทดสอบมักมีสิทธิ์การเข้าถึงที่ผ่อนปรนกว่า ไม่มีระบบบันทึกการเข้าถึงที่ครบถ้วน และมีสำเนาหลายชุดจากงานทดสอบต่าง ๆ
ทางเลือกที่ใช้ได้จริงคือการสร้างข้อมูลที่ยังคงลักษณะทางสถิติที่จำเป็น แต่ไม่ตรงกับบุคคลใด ซึ่งเพียงพอสำหรับการทดสอบฟังก์ชันเกือบทั้งหมด แนวทางนี้อยู่ในบทความข้อมูลที่อยู่ในชุดทดสอบ ที่อธิบายว่าชุดข้อมูลทดสอบที่ดีต้องทำซ้ำได้และควรถูกแยกออกจากข้อมูลจริงอย่างชัดเจน
หากจำเป็นต้องใช้ข้อมูลที่ใกล้เคียงของจริงจริง ๆ ควรทำให้ไม่ระบุตัวตนได้ก่อนที่ข้อมูลจะออกจากระบบต้นทาง และควรมีผู้รับผิดชอบชัดเจนที่ดูแลว่าข้อมูลนั้นถูกลบเมื่อสิ้นสุดโครงการ
สำหรับนักพัฒนา: ออกแบบระบบให้ปฏิบัติตามหลักการได้จริง
ข้อแรกคือให้ทุกส่วนของระบบอ่านที่อยู่จากแหล่งเดียว การมีสำเนาหลายชุดทำให้ทั้งการลบและการแก้ไขทำได้ยากขึ้นโดยไม่จำเป็น
ข้อที่สองคือบันทึกการเข้าถึงข้อมูลที่อยู่ในระดับที่ตอบคำถามได้ว่าใครดูข้อมูลของใครเมื่อใด โดยไม่เก็บตัวข้อมูลที่อยู่ซ้ำลงในบันทึกการเข้าถึง
ข้อที่สามคือให้การส่งข้อมูลไปยังบุคคลที่สามต้องผ่านจุดเดียวในโค้ด เพื่อให้ตรวจสอบได้ง่ายว่ามีการส่งข้อมูลออกไปที่ใดบ้าง และเพื่อให้เพิ่มหรือถอดผู้ให้บริการได้โดยไม่ต้องแก้หลายที่
ข้อที่ چهارคือทดสอบว่าการลบข้อมูลทำได้จริงและครบวงจร รวมถึงไฟล์ส่งออกและตารางที่อ้างอิงถึง เพื่อไม่ให้การลบเป็นเพียงการซ่อนข้อมูลจากหน้าจอ
ข้อที่ห้าคือให้ข้อมูลที่สร้างขึ้นเพื่อการทดสอบมีเครื่องหมายระบุไว้ตั้งแต่ตอนสร้าง เพื่อให้แยกออกได้ด้วยคำสั่งเดียว และเพื่อป้องกันการปนเข้าไปในข้อมูลจริงในภายหลัง
ข้อที่หกคือทดสอบว่าข้อความแจ้งเตือนและข้อความผิดพลาดไม่เปิดเผยข้อมูลที่อยู่ของผู้ใช้รายอื่น เช่นการแสดงชื่อถนนจากระเบียนอื่นที่ใกล้เคียง ซึ่งเป็นข้อผิดพลาดที่เกิดได้กับระบบที่มีการค้นหาที่อยู่แบบเดา
ก้าวต่อไป
เริ่มจากการทำรายการว่าข้อมูลที่อยู่ของผู้ใช้ไปอยู่ที่ใดบ้างในระบบของคุณ แล้วคัดเลือกจุดที่ข้อมูลจริงถูกคัดลอกเข้าสภาพแวดล้อมทดสอบเป็นอันดับแรก เพราะเป็นจุดที่แก้ไขได้เร็วที่สุดและลดความเสี่ยงได้มากที่สุด
ถ้าต้องการข้อมูลสำหรับทดสอบที่ไม่ต้องใช้ข้อมูลจริงของใคร เครื่องมือสร้างที่อยู่บนเว็บไซต์นี้สร้างที่อยู่และหมายเลขโทรศัพท์ตามรูปแบบจริงของประเทศที่เลือก โดยไม่เชื่อมโยงกับบุคคลใด ช่วยให้ทีมทดสอบทำงานได้โดยไม่ต้องนำข้อมูลส่วนบุคคลเข้ามาในระบบ และคุณสามารถดูตัวอย่างรูปแบบที่ใช้จริงได้จากหน้าประเทศแคนาดา ที่อยู่ทุกชุดเป็นข้อมูลที่สังเคราะห์ขึ้น ไม่ตรงกับที่พักหรือผู้รับจริงใด และใช้ได้เฉพาะกับงานทดสอบซอฟต์แวร์เท่านั้น