Telegram เป็นแอปส่งข้อความความปลอดภัยสูงบนอุปกรณ์พกพาที่ได้รับความนิยมสูงมากในช่วงหลายปีที่ผ่านมา แต่มีงานวิจัยฉบับหนึ่งชื่อ On the CCA (in)security of MTProto เผยแพร่ในสมาคมนานาชาติเพื่อการวิจัย Cryptologic (International Association for Cryptologic Research) ซึ่งเขียนโดย Jakob Jakobsen และ Claudio Orlandi จากภาควิชาวิทยาการคอมพิวเตอร์ มหาวิทยาลัยฮอร์ฮูส ประเทศเดนมาร์ก
เนื้อหาเริ่มต้นของงานวิจัยพูดถึงคุณสมบัติทั่วไปที่เป็นจุดตั้งข้อสังเกตุคือ
กล่าวถึงรูปแบบในการรับ-ส่งข้อความ 2 แบบ คือ Cloud Chat (ทั้งแบบคุยตัวต่อตัว และแบบคุยเป็นกลุ่ม) โดยรูปแบบนี้จะเป็นค่ามาตรฐานในการสื่อสาร โดยเก็บข้อมูลต่างๆ ที่สามารถอ่านได้ไว้ที่ฝั่ง Server เพื่อให้อุปกรณ์ทุกเครื่องที่เชื่อมต่อสามารถเห็นข้อมูลล่าสุดได้เหมือนๆ กัน และแบบ Secret Chat ที่เป็นรูปแบบ end-to-end encryption ที่สามารถรับ-ส่งข้อความได้เพียงเครื่องใดเครื่องหนึ่งและถอดรหัสได้เพียงเครื่องใดเครื่องหนึ่ง และ Server ที่ให้บริการไม่สามารถอ่านข้อความที่วิ่งรับ-ส่งได้เพราะเข้ารหัสจากต้นทาง และถอดรหัสที่ปลายทาง
ตัว client ของ Telegram เป็นซอฟต์แวร์แบบเปิด (open source) ที่ยอมให้มีการตรวจสอบได้ทั้งหมด แต่สำหรับซอฟต์แวร์ฝั่ง server นั้นไม่สามารถใช้วิธีการนี้ได้ ทั้งนี้งานวิจัยนี้วิเคราะห์บนพื้นฐาน client จาก source code ของ Telegram รุ่น 2.7.0 ณ เดือนเมษายน 2015
ส่วนต่อมาของงานวิจัยฉบับนี้กล่าวถึงข้อมูลจุดที่มีปัญหาในตัว Telegram คือ
รูปแบบการเข้ารหัสแบบกุญแจสมมาตร (symmetric encryption scheme) ที่ชื่อ MTProto ซึ่งถูกใช้เข้ารหัสข้อมูลเพื่อรับ-ส่งข้อมูลของแอป Telegram ไม่เป็นไปตามคุณสมบัติ IND-CCA security เพราะ MTProto ใช้ block-cipher structure และมีการใส่ padding ลงไป เพื่อกำหนดความยาวของข้อมูลเพื่อใช้เช็คในระหว่างถอดรหัส นั้นหมายความว่า มีความเป็นไปได้ที่จะสร้างข้อความเข้ารหัสที่แตกต่างกันเพื่อที่จะถอดรหัสข้อความเดียวกันได้ (it is possible to turn any ciphertext into a different ciphertext that decrypts to the same message) แต่วิธีการโจมตีข้างต้นยังเป็นการโจมตีทางทฤษฎี ซึ่งยังไม่เห็นผลของการโจมตีนี้ว่าสามารถแปลงข้อมูลเข้ารหัสกลับมาเป็นข้อความเดิมได้จริงในตอนนี้ โดยนักวิจัยได้นำเสนอรูปแบบการโจมตีจากวิธีการเข้ารหัสดังกล่าวด้วยวิธี Padding-Length Extension และ Last Block Substitution ทางสมการ เพื่อพิสูจน์การโจมตีโปรโตคอล MTProto
นักวิจัยได้ให้ความเห็นสรุปว่า ไม่มีเหตุผลที่จะใช้โปรโตคอล MTProto เลย หากพบว่าการเข้ารหัสความปลอดภัยของ MTProto นั้นมีความปลอดภัยน้อยกว่ารูปแบบอื่นๆ ที่มีความปลอดภัยและมีประสิทธิภาพมากกว่า และยังคงยืนยันว่าไม่ควรออกแบบการเข้ารหัสเอง (Don't Roll Your Own Crypto)
สำหรับสมการ และข้อมูลอย่างละเอียดอ่านต่อได้ที่ Cryptology ePrint Archive: Report 2015/1177 - On the CCA (in)security of MTProto เพื่อศึกษาข้อมูลเชิงวิชาการ
Comments
งานวิจัยนี้เก่าหลายเดือนแล้ว (เกินครึ่งปี) และทาง Telegram ก็ตอบประเด็นเหล่านี้ไว้แล้ว คงไม่มีประเด็นต้องเป็นข่าวอีกครับ ในทางหนึ่งแล้วงานวิจัยเช่นนี้เป็นไปได้ในทาง "ทฤษฎี" อย่างที่ Telegram ตอบตั้งแต่ตอนนั้น จนตอนนี้ยังไม่มีพัฒนาการข่าวอะไรเพิ่มเติม เช่นมีสคริปต์ถอดรหัสได้จริง
ถ้าจะเขียนประเด็นนี้อาจจะไม่ใช่ข่าวปกติ แต่เป็นบทความสำเสนอว่าช่องโหว่ที่เคยพูดถึงมีอะไรมาบ้าง ในความเป็นจริงมันโจมตีได้จริงแค่ไหน และ Telegram แก้อะไรไปแล้วบ้าง ครับ
lewcpe.com, @wasonliw
ได้ครับ อาจจะเป็นโจทย์เพื่อเขียนเป็นบทความในอนาคตอีกทีครับ
แต่เพื่อให้เนื้อหาปรับปรุงเข้าใจตามที่ได้แย้งมา ผมขอปรับเพื่อให้ถูกต้องเพิ่มมากขึ้นครับ เผื่อ Google ค้นเจอจะได้เข้าใจตรงกันกับคอมเม้นข้างต้น
ข้อที่ 1.-2. นี่ผมยกเพื่องานวิจัยพูดถึงเพื่อนำไปสู่การอธิบายประเด็นสำคัญในข้อที่ 3. - 4. คิดว่าควรปรับใหม่เป็น โดยแยกส่วนที่เป็นเกริ่นนำ กับส่วนหลักที่งานวิจัยมองเป็นประเด็นหลัก
ขอบคุณครับ