ขอเกาะกระแสของข่าว ไมโครซอฟท์รับ root CA ของรัฐบาลไทยตั้งแต่ปลายปีที่แล้ว ซึ่งนำมาซึ่งความแตกตื่นของผู้คนในวง IT ระดับนึง
ข้างล่างนี้คือความเห็นส่วนตัวล้วนๆ หลังจากที่อ่านความเห็นมาพักนึงเลยอยากลองวิเคราะห์เองบ้าง
ก่อนอื่นขอเดาว่า หลังจาก MS รับรอง root CA ของไทย ซึ่งจริงๆแล้วเป็นองค์กรในกำกับดูแลของรัฐ (NRCA ที่อยู่ภายใต้ สพธอ./ETDA) แต่ด้วยความเชือเรื่องการแทรกแทรงการทำงานของบ้านเรา อาจจะเรียกว่าเป็นของรัฐก็คงได้
ผลกระทบในคือ
กรณีเลวร้ายที่สุด – NRCA ออกใบรับรองให้ Single Gateway ของรัฐบาล ทำให้รัฐบาลสามารถทำตัวเองเป็น MITM (Man in the middle) แอบเป็นตัวกลางระหว่างเรากับผู้ให้บริการ เช่น Facebook โดยที่เราไม่รู้ตัว Web Browser หลายๆตัวก็เชื่อถือใบรับรองนี้ ทำให้การดูแค่ว่าเวลาเข้าเว็บแล้วแม่กุญแจเป็นสีเขียวก็ไม่เพียงอีกต่อไป ต้องล้วงลงไปดูด้วยว่า ไอใบสีเขียวๆเนี่ย ออกโดยใคร ถ้าออกโดย NRCA เมื่อไหร่ก็แปลว่าโดนเข้าให้แล้ว
ทางออกที่หลายๆคนเริ่มทำ และเริ่มมีบทความแนะนำให้เอาออกคือ Untrust certificate ของ หน่วยงานที่ว่า และหน่วยงานอื่นๆที่ NRCA ออกใบรับรองให้มีสิทธิออกใบรับรองอีกที (อินเซบชันกันไป) ซึ่งใครไม่ไว้ใจในหน่วยงานที่ว่า และไม่ไว้ใจในรัฐบาลก็ทำตามได้เลย ลองดูจากที่นี่ วิธีลบ root CA cert รัฐบาลไทยออกจากเครื่อง
ส่วนในมุมมองเชื่อว่า NRCA สร้างขึ้นมาเพื่ออำนวยความสะดวกให้กับโครงสร้างพื้นฐานของประเทศ มากกว่าจะมาโฟกัสเรื่อง ดักฟังประชาชน (แต่ไม่ได้แปลว่าทำไม่ได้) เพราะว่าอะไร ?
เพราะว่า Certificate ที่ออกโดย NRCA (หรือใครๆก็ตาม) นั้นมันเอาไปทำอะไรได้เยอะมาก เช่น
SSL – ใบรับรองเพื่อยืนยันว่า Server ที่เราติดต่อด้วยนั้นเป็นของจริง และเข้ารหัสข้อมูลที่ส่งหากัน
Code signing – เวลาเราพัฒนาซอฟท์แวร์ เราสามารถ Sign โปรแกรมของเราได้ว่าที่สิ่งที่ลูกค้าได้ไปนั้น เป็นของเราจริงๆ ไม่ได้มีใครแอบเอาไฟล์อะไรมาแทรกเพื่อแก้ไขมัน ทุกไฟล์จึงควรได้รับการรับรองจากเราเสมอ
Digital signing – เข้าสู่ยุค paperless, เวลาเราเซ็นเอกสาร digital เช่น pdf ก็ต้องใช้ใบรับรองเหล่านี้ ซึ่งจะตรวจสอบกับ Root CA ว่าลายเซ็นถูกต้องเป็นของจริงหรือไม่
จริงๆยังมีพวกการยืนยันตัวต้นพวก Chip บน Smartcard ต่างๆก็ต้องพึ่งพา certificate เหล่านี้
เราลองมาดูกันว่า NRCA (และบ.ที่ได้รับอนุญาติ) ออกใบรับรองอะไรไปบ้างแล้ว แล้วถ้าเรา Untrust จะกระทบอะไรหรือไม่อย่างไร ?
ลองมาไล่ดูรายละเอียดกัน
Bank of Thailand (BOT)
TDID ออกใบรับรองให้ Root CA ของ BOT ซึ่งใช้ในการเข้ารหัสการส่งข้อมูลระหว่างหน่วยงาน
ซึ่งครั้งหนึ่งผมเคยทำงานอยู่ในตำแหน่งที่ต้องเกี่ยวกับการติดตั้ง/เปลี่ยน certificate ที่ออกโดย BOT ซึ่งตอนนั้นถ้าจำไม่ผิดยังมีสถานะเป็น Self-signed การมีอยู่ตรงนี้ของ NRCA ทำให้การออกใบรับรองโดยหน่วยงานที่จำเป็นต้องใช้ มีความน่าเชื่อถือมากขึ้น มากกว่าจะ issue กันเอง trust กันเอง ซึ่งถ้าโดยแอบเปลี่ยนในขั้นตอนใดขั้นตอนหนึ่งก็เสียหายได้ ไม่ว่าจะเป็นการแอบดูข้อมูลหรือแก้ไข
NITMX CA
National ITMX เป็นบริษัทตัวกลางที่ตั้งขึ้นเพื่อดูแล ATM Pool เวลาเรามีการทำธุรกรรมผ่าน ATM “เดา” ว่าใบระบรองถูกออกให้กับ NITMX CA เพื่อใช้ใน web ที่เป็นระบบ Intranet
ใช้สำหรับระบบ Chip บน ATM ที่แต่ละธนาคารเอาไป Issue ต่อ ลองอ่านเพิ่มเติมที่เว็บเจ้าตัว http://www.thaidigitalid.com/index.jsp?page=thai_bank_chipcard.jsp
ยังมีอีกหลายอย่างที่พึ่งพากระบวนการออก Certificate ของ NRCA เช่น
ซึ่งส่วนตัวเห็นว่ากระบวนการข้างต้นเหล่านั้น จะสะดวกเมื่อการรับรอง/เพิกถอนสามารถทำได้จากหน่วยงานในประเทศ และจริงๆควรจะทำโดยหน่วยงานในประเทศเพื่อให้มั่นใจว่าไม่โดนแทรกแทรกจากตปท.
เพราะงั้นคิดว่าการมีอยู่ของ NRCA และได้รับการรับรองจาก Microsoft CA นั้นเป็นสิ่งที่ดี … ดีกว่ามี NRCA ที่ไม่มีใครเชื่อถือ
และไม่ว่าประชาชนจะ Untrust Root CA ตัวนี้หรือไม่ …. ก็คง(ยัง)ไม่มีผลกับบริการที่ NRCA และ TDID ออกใบรับรองไปแล้ว
เพราะว่าโดยปกติแล้วใบรับรอง SSL ของเว็บไซต์ก็นิยมขอขจากบริการจากต่างประเทศได้สะดวกกว่าอยู่แล้ว
สุดท้ายก็ ถ้าเห็น SSL Certificate ของเว็บทั่วๆไปออกโดย NRCA หรือ TDID เมื่อไหร่ ก็ .. ตัวใครตัวมันล่ะ … ซึ่งสองหน่วยงานที่ว่าถ้าโดน report เมื่อไหร่ คิดว่า MS ก็คงไม่ปล่อยไว้
ปล. เหตุการณ์แบนี้อาจจะไม่ได้เกิดขึ้นแค่ในระดับประเทศเท่านั้น ในบริษัทที่เครื่องคอมพิวเตอร์อยู่ภายใต้ Domain เดียวกัน บริษัทก็สามารถส่ง Certificate “ใดๆ” มาให้เครื่องคอมพิวเตอร์ในโดเมน trust ได้ แล้วก็ทำ Main in the middle ได้เช่นเดียวกัน
ปล2. ผมไม่ได้มีส่วนได้ส่วนเสียใดๆกับใครในเรื่องนี้ (ฮา) ผิดพลาดอะไร เข้าใจอันไหนไม่ตรงกันคอมเม้นชี้แนะด้วยคับ
References:
รูปภาพและการให้บริการของ TDID มาจาก www.thaidigitalid.com
อีกหนึ่งความเห็นที่น่าสนใจของ NRCA https://www.facebook.com/X20AThinkpad/posts/1759466287412850