End-to-End Encryption เบื้องหลังของ Advanced Data Protection บน iCloud

หลังจากที่ Apple ปล่อย Feature ด้านความปลอดภัยใหม่บน iCloud หลายตัวอยู่ ตัวนึงที่ได้รับความสนใจจากหลาย ๆ เจ้าด้วยกันคือ Advanced Data Protection ซึ่งแน่นอนว่าในไทยเราก็ยังใช้งานไม่ได้อยู่ ณ วันที่เขียน วันนี้เราจะพาไปดูเบื้องหลังของมันกันว่า มันคืออะไร และ ทำงานอย่างไรกัน

ปล. Apple บอกว่า Advanced Data Protection จะเปิดให้ใช้กับลผู้ใช้ Beta ในสหรัฐอเมริกาก่อน แล้วจะเปิดให้ลูกค้าในสหรัฐอเมริกาทั้งหมดใช้ในสิ้นปี 2022 ส่วนที่เหลือจะค่อย ๆ ตามมาช่วงต้นปี 2023

ปกติ Cloud ทำงานอย่างไร ?

Cloud Computing คืออะไร ? (ฉบับมนุษย์อ่านได้ Dev อ่านดี)
ทุกวันนี้เราคงปฏิเสธไม่ได้แล้วว่า เราอยู่ในยุคที่เราใช้ข้อมูลในการตัดสินใจสิ่งต่าง ๆ มากขึ้นจะเห็นได้ว่า ทุกวันนี้เราเสพข้อมูลมากแค่ไหน

เราเคยเขียนเรื่องของ Cloud Computing มาก่อนหน้านี้แล้ว สั้น ๆ คือ เราเอาข้อมูลของเราไปเก็บสักที่นึง ที่ไหนไม่รู้ แต่เราสามารถเข้าถึงได้จาก Internet ทุก ๆ ที่เหมือนกับเราเดินออกมามองฟ้า แล้วเห็นก้อนเมฆนั่นเอง

มองให้ลึกขึ้นถึง Service อย่าง Cloud Storage เอง ที่เป็นบริการสำหรับเก็บข้อมูลที่เราใช้งานกันเป็นประจำ เช่น Google Drive, OneDrive หรือที่เราจะคุยกันวันนี้คือ iCloud จาก Apple หลักการของมันง่าย ๆ ก็คือ เรา ก็คือผู้ใช้ ทำการ Upload ไฟล์พวกนั้นแหละ ไปเก็บไว้บน Cloud ซึ่งก็คือเครื่องคอมพิวเตอร์สักเครื่องนึง จากนั้น พอเราจะใช้งาน เราก็แค่ต่อ Internet แล้วดึงไฟล์ลงมาจาก Cloud ได้เลย

แล้วมันมีปัญหาตรงไหน ?

แน่นอนว่า การที่เรา Upload File ของเราไปอยู่บน Cloud aka. ที่ไหนก็ไม่รู้บนโลก นั่นแปลว่า ข้อมูลของเรา มันอยู่กับใครอะไรยังไงบ้าง เราก็ไม่มีทางรู้เลย เราอาจจะเคยได้ยินข่าวที่ Cloud โดนเจาะ และมีการขโมยข้อมูลไป ทำให้เกิดความเสียหายเยอะมาก ๆ ก็เจอกันมาแล้ว

หรือกระทั่ง ผู้ให้บริการ Cloud เอง เราจะมั่นใจได้อย่างไรว่า ผู้ให้บริการ จะไม่แอบดูข้อมูลของเราแล้วเอาไปขายให้กับพวก Data Broker หรือองค์กรต่าง ๆ ได้ นั่นแหละ หนักกว่านั้นอีก คือ รัฐบาล ที่เราอาจจะเคยเห็นข่าวเช่นรัฐบาล USA บอกให้ Apple ปลดล๊อค iPhone หรือเข้าถึงข้อมูลของลูกค้าให้เพื่อให้ความร่วมมือในการสอบสวนคดีอะไรแบบนั้น การทำแบบนั้นได้ ความน่าเชื่อถือ คือบั้ยบายไปเลยนะ เรื่องของความปลอดภัยและความเป็นส่วนตัว คือปัญหาที่เราจะมาคุยกันในวันนี้

HTTPS, SSL และ TLS ของง่าย ๆ ที่ทำให้ชีวิตปลอดภัย
โลกอินเตอร์เน็ตย่างกลายเข้ามาอยู่ในชีวิตเรามากขึ้นทุกวัน ๆ เราใช้งานมันส่งข้อมูลส่วนตัวมากมายวันนี้เรามาดูกันว่า HTTPS, SSL และ TLS จะเข้ามาช่วยให้ชีวิตเราปลอดภัยขึ้นได้อย่างไรกัน

ถามว่า แล้วเราจะแก้ปัญหาอย่างไร ในเชิงของ Computer Security เราก็มีวิธีการแก้ปัญหาอยู่ เหมือนกับตอนที่เราส่งข้อมูลจาก เราไปที่ Cloud หรือกลับกันก็ตาม เราก็จะมีการเข้ารหัสอยู่ เราเคยเขียนเล่าไปแล้วในบทความด้านบน ไปอ่านกันได้ แน่นอนว่าการแก้ปัญหาไฟล์พวกนี้ ก็ใช้วิธีการเดียวกัน คือ การเข้ารหัส (Encryption)

Data Encryption 101 แบบเร็ว ๆ

เพื่อให้เข้าใจกันได้ง่ายขึ้น เราขอเล่าเรื่อง การเข้ารหัสกันแบบเร็ว ๆ ก่อนละกัน โดยปกติแล้วข้อมูล เราจะเริ่มต้นจากข้อมูลที่เราอ่านกันได้นี่แหละ เช่นไฟล์งานของเรา ซึ่งถ้าเราส่งแบบนี้ไปเลย ถ้าใครดักมา ก็จะอ่านสิ่งที่อยู่ในไฟล์ได้ง่าย ๆ เลยใช่มะ

ปัญหาของเราคือ เราอยากให้คนที่เรากำหนดอ่านได้เท่านั้น วิธีการก็คือ การเปลี่ยนมันอยู่ในรูปแบบบางอย่าง เช่น การใช้ Coding Scheme บางอย่าง หรืออาจจะเป็นวิธีการบางอย่าง เพื่อแปลงสารให้มันไม่เหมือนเดิม เราเรียกขั้นตอนนี้ว่า การเข้ารหัส (Encryption) และ เมื่อเราต้องการจะใช้ข้อมูล หรือแปลงมันกลับมาเป็นข้อมูลเหมือนเดิม เราก็จะทำการแปลงกลับ หรือเราเรียกว่า การถอดรหัส (Decryption)

ซึ่งเครื่องมือนึง ที่เราใช้ในการเข้า และ ถอดรหัส ก็คือ กุญแจ (Key) ก็แล้วแต่ว่า มันจะมาในรูปไหน ถ้าง่าย ๆ ก็เป็น ข้อความอย่าง Password หรือจะ Advance หน่อยก็พวก Biometric อย่างลายนิ้วมืออะไรก็เอาเลย แต่ไม่ได้เป็นเรื่องที่เราจะ Focus วันนี้

สิ่งที่เราจะ Focus ตรงนี้คือ ถ้าเราแบ่งจากประเภทของการใช้ Key เราสามารถแบ่งการเข้ารหัสออกมาได้เป็น 2 แบบด้วยกันคือ Symmetric key และ Asymmetric key สั้น ๆ Symmetric key คือ วิธีการที่เราใช้กุญแจดอกเดียวในการเข้า และ ถอดรหัส แต่ถ้าเป็น Asymmetric key คือ เราจะมีกุญแจ 2 ดอก ดอกนึงเรียก Public Key เข้ารหัสได้เท่านั้น ในการถอด เราจะใช้ Private Key

ซึ่งมันก็จะมีลักษณะของการใช้งานที่แตกต่างกันอยู่ ซึ่งส่วนใหญ่ที่เราใช้งานกันบนโลก Internet ก็จะเป็นพวก Asymmetric key ทั้งหลายนี่แหละ อย่างที่เราเคยเล่าไปว่า พวก SSL ก็ใช้วิธีนี้แหละในการเข้ารหัส

End-to-End Encryption

กลับมาพูดถึงประเด็นที่เราจะคุยกันวันนี้คือ End-to-End Encryption บางคนก็เรียก E2E Encryption ก็คือเรื่องเดียวกันนะ นิยามของมันง่ายมาก ๆ คือ มันเป็นการเข้ารหัสแบบที่ ข้อมูลจะไม่ถูกถอดรหัสในระหว่างทางเลย ยกเว้น เครื่องของคนที่มีกุญแจเท่านั้น

ตัวอย่างของ Cloud Storage ง่าย ๆ เลย คือ เมื่อก่อน เราอาจจะเอาไฟล์ขึ้นไปเก็บบน Server ของผู้ให้บริการ Cloud ของเรา ซึ่งโดยทั่ว ๆ ไป ข้อมูลก็จะถูกเข้ารหัสนั่นแหละ แต่กุญแจทั้งหมดจะอยู่กับผู้ให้บริการทั้งหมดเลย ข้อดีคือทำให้เราสามารถที่จะ Recover ข้อมูลของเรากลับมาได้เมื่อเราอาจจะลืมรหัสผ่าน แต่กลับกันก็ทำให้ผู้ให้บริการก็สามารถอ่านข้อมูลของเราได้ หรือในกรณีที่แย่มาก ๆ คือโดนโจมตี ก็อ่านได้เต็ม ๆ เลย

ถ้าเราใช้ E2E เข้ามาช่วย สิ่งที่เกิดขึ้นคือ ข้อมูลของเรา จะถูกเข้ารหัสและส่งไปเก็บที่ Cloud แต่ผู้ให้บริการก็จะถอดรหัสไม่ได้ เพราะคนที่ถือกุญแจคือเราเอง ทำให้แน่นอนว่า ผู้ให้บริการก็อ่านข้อมูลของเราไม่ได้ และ ถ้าโดนโจมตี คนที่โจมตี ก็อ่านข้อมูลของเราไม่ได้อีกเช่นกัน

Protecting access to user’s health data
HealthKit provides a secure central repository for health and fitness data on iPhone and Apple Watch.

ซึ่งในบางบริการของ Cloud หลาย ๆ เจ้า ก็นำ E2E เข้ามาใช้กันนานมาก ๆ แล้ว อย่าง Apple เอง พวกค่าหลาย ๆ อย่างก็ทำ E2E มานานมากแล้ว เช่นพวก Health Data บน Apple เองก็ใช้งาน E2E มานานมาก ๆ แล้ว

สิ่งที่ Advanced Data Protection ทำก็คือ การ Setup E2E ในบริการอื่น ๆ เพิ่มเติมเข้ามา เช่นพวกเรื่องของไฟล์บน iCloud Drive, Photo, Note และ หลาย ๆ App เท่านั้นเลย

Technical Challenge

แล้วถ้าบอกว่า มันไม่ได้มีอะไรใหม่ งั้นทำไมมันไม่ถูก Implement มาให้เราใช้แต่แรก อะส่วนนึงก็เป็นเรื่องของ ความบริษัทเนอะ เราไม่พูดเยอะละกัน แต่ เรื่องที่สำคัญมาก ๆ เป็นฝั่งของ Technical เลยคือ พวกกุญแจทั้งหมด Apple จะไม่รับรู้อะไรได้ทั้งนั้นเลย คือ Apple จะไม่ได้ถืออะไรที่สามารถถอดรหัสข้อมูลได้เลย ดังนั้น เมื่อผู้ใช้เกิดลืม Password และ Recovery Code เอง ก็ทำให้ข้อมูลนั้นก็ ยังอยู่ แต่ก็เปิดดูไม่ได้อยู่ดี

ซึ่งเราก็จะบอกว่า เห้ย มันก็เป็นหน้าที่ของผู้ใช้ที่จะต้องจำ Password ในการเข้าถึงระบบให้ได้สิ แต่ความเป็นจริง แม่เราเองเป็นตัวอย่างที่ดี จำ Password อะไรยังไม่ได้เลย แล้วนึกถึงเคสที่ Below Average บางคนที่เราเห็นคือ ยังไม่รู้ด้วยซ้ำว่ามี Apple ID อะ การ Implement Security Measure อย่าง E2E เข้ามา ก็อาจจะเป็นดาบสองคมที่ทำให้ผู้ใช้กลุ่มนี้ไม่พอใจสักเท่าไหร่ ลืมรหัสผ่านที ข้อมูลหายหมด กู้คืนไม่ได้ด้วย

กับอีกส่วนที่เป็น Technical Challenge ตรง ๆ เลยคือ เมื่อเราทำ E2E จริง ๆ สำหรับคน 2 คน หรือ คนเดียว มันเป็นเรื่องง่ายมาก ๆ เช่น 2 คน เราก็อาจจะเก็บ Private Key ของเราเอง และ Public Key ของอีกฝ่ายก็จบ แต่ถามว่า แล้วการคุยมากกว่านั้น หรือการส่งข้อมูลไปมามากกว่า 2 คนละ เราจะทำยังไง

เพราะถ้าเราทำแบบเดิม เราเปลี่ยนเป็น 3 คน คนนึงมี Private Key ของตัวเอง และ Public Key ของเพื่อน ๆ ที่เหลือ เวลาเราส่งข้อความไป แทนที่เราจะเข้ารหัสครั้งเดียว แล้วส่งไป ทุกคนถอดได้หมด กลับกลายเป็นว่า เราจะต้องใช้ Public Key ของแต่ละคน เข้ารหัสแล้วส่งไปตามตัวแต่ละคนเลย ไม่งั้น มันก็จะเข้ารหัสไม่ได้ นั่นคือ ความยุ่งยากที่เพิ่มขึ้นมหาศาลมาก ๆ

LINE Transparency Report - LINE Corporation
LINE employs various encryption technologies to protect user information.

App ที่เราใช้งานกันเยอะ ๆ อย่าง Line ก็นำการทำ E2E เข้ามาใช้งานเหมือนกันในชื่อที่เรียกว่า Letter Sealing เขาก็เขียนไว้ (อ่านจาก Link ด้านบน) เลยว่า เขาจะใช้ Letter Sealing กับ 1-1 Messaging และ Group ที่ไม่เกิน 50 คนเท่านั้น เพราะความยุ่งยากอย่างที่เราเล่าไปก่อนหน้านี้นั่นแหละ ไม่งั้น ก็คือเก็บ Key กันอ้วกเลยนะ

สรุป

Advanced Data Protection เป็น Security Measure ที่ Apple ออกมาใช้บน iCloud เพื่อทำการเข้ารหัสแบบ End-to-End เพื่อให้มั่นใจได้มากขึ้นว่า ข้อมูลของเราจะได้รับการปกป้องขั้นสุด แม้แต่ผู้ให้บริการอย่าง Apple เองก็ไม่สามารถอ่านได้ (แหม่ Apple ลอยตัวเลยนะ ถ้าโดนรัฐบาลขอ ก็บอกได้ว่า มันถอดไม่ได้ ฮ่า ๆ) แต่ข้อเสียก็คือ หน้าที่ของการเก็บรักษากุญแจ ก็จะโยนมาเป็นหน้าที่ของเราทั้งหมด ทำให้เราจะต้องเก็บรักษารหัสผ่าน และ Recovery Code ของเราเอง ถ้าหายทั้งหมดเลย ก็เรียกว่า หาย แบบ ไม่หาย คือ ข้อมูลมันก็อยู่ตรงนั้นแหละ แต่เราเข้าไม่ได้นั่นเอง ก็รอต่อไปว่าในไทยจะเปิดให้ใช้งานเมื่อไหร่ แต่เราแนะนำเป็นอย่างมากนะ ว่าให้เปิดจะดีมาก ๆ