เรื่องของ End to End Encryption (E2EE)
ก่อนอื่นผมขอเกริ่นก่อนนะครับ ในส่วนของ part นี้จะเป็น สรุปพื้นฐาน ถ้ารู้แล้วก็สามารถ skip บทความนี้ได้เลย อาจจะผิดถูกประการใดก็ขออภัย ด้วยครับ
E2EE ผู้อ่านอาจจะเคยได้ยินได้อ่านและอาจจะสงสัย ว่ามันคืออะไร ทำไปทำไม ทำไปเพื่ออะไร แล้วจำเป็นไหม
มันคืออะไร
ความหมายง่ายๆคือ การ Pack ของโดยวิธีที่ต้นทาง กับ ปลายทางแกะของได้แค่นั้นเอง
E2EE ตาม wikipedia คือ การเข้ารหัสจากต้นทางถึงปลายทางเป็นระบบการสื่อสารที่มีเพียงผู้ใช้ที่สื่อสารเท่านั้นที่สามารถอ่านข้อความได้ โดยหลักการแล้วจะป้องกันไม่ให้ผู้แอบอ้างที่อาจเกิดขึ้นซึ่งรวมถึงผู้ให้บริการโทรคมนาคมผู้ให้บริการอินเทอร์เน็ตและแม้แต่ผู้ให้บริการการสื่อสารไม่สามารถเข้าถึงคีย์การเข้ารหัสที่จำเป็นในการถอดรหัสการสนทนาได้
Copy From End-to-end encryption — Wikipedia
ทำไปทำไมและทำไปเพื่ออะไร
ทำไปทำไม ก็เพื่อ ไม่ให้ บุคคล ที่ 3 หรือ บุคคลอื่นที่ไม่ได้ อยู่ในบทสนทนาด้วย เข้าใจในสิ่งที่กำลังสนทนาอยู่
เอาง่ายๆ ก็คือ เราต้องการ ปกปิดข้อมูล เพื่อ ให้ ต้นทาง กับ ปลายทางเข้าใจกัน ก็พอ
จำเป็นไหม
จำเป็นไหม ถ้าหากท่าน ทำ web application หรือ mobile application ที่มีการเชื่อมต่อ Api กับ Backend Server แล้วมีข้อมูล sensitive data เช่น userName, password เลขบัตรประชาชน ก็จำเป็น เพราะอาจจะมีผู้ไม่หวังดี แบบ gather ข้อมูล หรือ ดัดแปลงข้อมูลระหว่างทางได้ เรียกว่า Man in the middle
และก็ยังเป็นอีกเรื่องที่เราต้อง awareness เพราะเป็นอีก 1 เรื่องที่ อยู่ใน OWASP top 10 คือ ข้อ Sensitive Data Exposure.
(The OWASP Top 10 is a standard awareness document for developers and web application security. It represents a broad consensus about the most critical security risks to web applications.)
แต่ผู้อ่านอาจจะสงสัยว่า เราก็ มี ssl Https หนิ ก็ secure แล้ว
ที่จริงก็ถือว่า ปลอดภัยระดับหนึ่ง ดีกว่า ไม่มีเลย แต่ ssl จะไม่ปลอดภัย ถ้าเราไม่ทำ Certificate pining
(Typically certificates are validated by checking the signature hierarchy;
MyCert
is signed byIntermediateCert
which is signed byRootCert
, and RootCert is listed in my computer's "certificates to trust" store.)
credit: tls — What is certificate pinning? — Information Security Stack Exchange
Preventing Man-in-the-Middle Attacks in iOS with SSL Pinning | raywenderlich.com
ซึ่งใน ios jailbreak ยังมี tool ที่ชื่อ ssl-kill-switch-2 ที่เป็นตัว bypass หรือ disable ssl trust ได้
ในบทความถัดไป จะมายกตัวอย่าง และ tool ในการ sniff เบื้องต้นนะครับ