HTTPS Insecurity Part 1 พื้นฐาน PKI, Digital Certificate และ HTTPS

content-image

เรื่องน่าเบื่อที่ผู้ใช้งาน Internet คงได้ยินกันบ่อย ๆ คือ การเข้า Web ให้ปลอดภัยนั้นจะต้องดูว่าเป็น HTTPS หรือไม่

ถ้าเป็น HTTPS แล้วจะปลอดภัยแน่เหรอ

การตรวจสอบ HTTPS นั้นทำได้โดยการดูที่ Address Bar และ ตรวจสอบรูปแม่กุญแจ (Padlock) หรือ Web Browser รุ่นใหม่ ๆ จะสามารถดูสีในช่อง Address Bar ได้เลย โดยสีเขียวจะสื่อถึง Web ที่ปลอดภัย และสีแดงจะสื่อถึง Web ที่ไม่ปลอดภัย

Https InsecurityHttps Insecurity

เพิ่มเติม บทความนี้จะใช้ KBank เป็นตัวอย่างนะครับ ซึ่งในช่วงนี้ Bank สีเขียวนี้โดนโจมตีอย่างหนักตามเวป Pantip แต่สำหรับทีมงานเราแล้ว เราเห็นว่าทางธนาคารมีการป้องกันที่ดี แต่ส่วนใหญ่ที่เป็นปัญหาคือ User ขาด Awareness มากกว่า

สำหรับในบทความนี้จะอธิบายถึง HTTPS ในรายละเอียด คำว่า "ปลอดภัย" สำหรับ HTTPS แล้วจริง ๆ มีการตรวจสอบอะไรบ้าง และปลอดภัยจริงหรือไม่ โดยบทความนี้จะแบ่งออกเป็น 3 ตอน

  • ตอนที่ 1 – เรื่องพื้นฐาน PKI, Digital Certificate, HTTPS
  • ตอนที่ 2 – ความเสี่ยงของ HTTPS
  • ตอนที่ 3 – User และ Admin ควรจะต้องทำอะไร

เริ่มจาก PKI (Public Key Infrastructure) คืออะไร

PKI เป็น Model ที่ใช้งานกันบน Internet เพื่อให้สามารถสร้างความไว้ใจซึ่งกันและกันได้

ในโลกแห่งความเป็นจริง ถ้า Alice ไม่รู้จักกับ Bob จะทำอย่างไรให้ 2 คนนี้ไว้ใจและเชื่อใจกันได้ ขอยกตัวอย่าง Scenario ซัก 2 รูปแบบนะครับ

  1. Alice เริ่มเข้าไปคุยกับ Bob โดยตรงได้เลย หลังจากคุยกันสักพักก็ทำให้เกิดความเชื่อใจกัน
  2. มี Trent* (Trusted 3rd Party) เป็นคนกลางคอยแนะนำให้ Alice รู้จักกับ Bob

ใน PKI มี 2 entities หลักคือ User และ CA (Certificate Authority) โดย CA หมายถึงผู้ที่น่าเชื่อถือมีสิทธิ์ที่จะออก Digital Certificate ให้กับผู้อื่นได้ การออก Certificate ให้กับผู้อื่นนั้นจะใช้วิธีการที่เรียก Digital Signature เพื่อใช้ในการยืนยันว่าใครเป็นผู้ issue Digital Certificate

เราสามารถเปรียบ User ได้กับ Alice, Bob และ CA เปรียบได้กับ Trent นั่นเอง โดยถ้า Alice จะไว้ใจ Bob นั้นจะต้องมีองค์ประกอบง่าย ๆ ดังนี้

  1. Alice ไว้ใจ Trent
  2. Bob มี Digital Certificate ที่ issue โดย Trent

Https InsecurityHttps Insecurity

เพิ่มเติม ในความเป็นจริงแล้ว CA บนโลกนั้นมีอยู่หลายเจ้า ทำให้เกิดความซับซ้อนมากขึ้น เช่น มีการ Cross Trust กันในระดับ CA

Digital Certificate คืออะไร

ทุกวันนี้โลกเรานั้นอยู่ยากมากขึ้นทุกวัน ใครบอกอะไรมาจะเชื่อถือทันทีไม่ได้ จะต้องมีเอกสารยืนยันก่อน เช่น บัตรประชาชน หรือ ใบขับขี่ เพื่อยืนยันตัวตน (Authentication)

เช่นเดียวกัน บนโลก Internet เอง จะใช้ Digital Certificate ในการยืนยันตัวตน โดยมาตรฐานที่นิยมใช้กันสำหรับ Digital Certificate คือ X.509

รายละเอียดของ X.509 Certificate

Https InsecurityHttps Insecurity

เราจะเน้นเฉพาะ Attribute หลัก ๆ ของ Digital Certificate นะครับ

  • Subject = ชื่อของเครื่อง หรือ Web site ที่เป็นเจ้าของ Certificate
  • Issuer = CA ที่เป็นผู้ issue Certificate นี้ โดยทั่ว ๆ ไปที่รู้จักกัน ได้แก่ VeriSign, Thawte
  • Public Key = เรื่อง PKI นั้นจะเกี่ยวกับการ Asymmetric Key Algorithm ที่มีการใช้ Private Key และ Pubic Key ในการทำ Encryption-Decryption ด้วย
  • Validity Period = ช่วงเวลาที่ Certificate นี้ Valid โดยเหตุผลหลักที่ต้องมีช่วงเวลาคือ ใช้จำกัดความเสี่ยงหาก Private Key ถูก Compromised ไป โดยทั่ว ๆ ไป Certificate จะมีอายุประมาณ 1-3 ปี แต่ก็มีบางที่ Admin ขี้เกียจทำเกี่ยวกับ Certificate ก็จะใส่ Validity Period ยาว ๆ เช่น 10-20 ปี ซึ่งหาก Private Key โดน Compromised หมายถึงว่าผู้ร้ายสามารถทำการ Decrypt Traffic ที่เป็น HTTPS ได้นั่นเอง ข้อมูลต่าง ๆ ที่มีการเข้ารหัสอย่างดี ก็โดนแกะได้ง่ายเลย
  • CRL = Certificate Revocation List เป็น List ของ Digital Certificate ที่ถูกยกเลิก โดยส่วนใหญ่มักจะเป็นสาเหตุจาก Private Key ถูก Compromised ซึ่งการตรวจสอบ CRL นี้จะอยู่ที่ Setting ของเครื่อง Client เอง ซึ่งถือเป็นความเสี่ยงอย่างหนึ่งหากเครื่อง Client ไม่มีการ Set ให้ไปตรวจสอบ CRL นอกจาก CRL แล้วจะมี OCSP (Online Certificate Status Protocol) ที่มีหน้าที่ตรวจสอบ Validity ของ Certificate เหมือนกัน
  • Certificate Authority’s Digital Signature = ข้อมูลสำคัญที่ใช้ในการตรวจสอบว่า Digital Certificate นี้ถูก Issue โดย Issuer จริง ๆ

ตัวอย่าง Digital Certificate

Https InsecurityHttps Insecurity

หมายเหตุ ค่า Common Name และ Subject คือค่าเดียวกันนะครับ

สำหรับ Certificate นี้ใช้สำหรับ Server ที่มี URL เป็น online.kasikornbankgroup.com ถูก issue โดย VeriSign และมีอายุประมาณ 1 ปี ซึ่งถือว่าเป็นระยะเวลาที่โอเค เพราะถ้าน้อยกว่านี้ Admin คงจะเหนื่อยแย่

สรุป หลัก ๆ แล้ว Digital Certificate จะใช้ประโยชน์ 2 อย่างคือ 1.Authentication 2.Encryption

HTTPS คืออะไร

HTTPS คือ Protocol ที่ใช้ในการคุยกันระหว่าง Web Server และ Web Browser ซึ่งใน HTTPS จะมีขั้นตอนการ Verify ว่า Web Server นั้นเป็น Web Server ตัวจริงหรือไม่โดยดูจาก Digital Certificate จากนั้นจะมีการแลกเปลี่ยน Session Key (Symmetric Key) ผ่านค่า Public Key ใน Digital Certificate

โดยการตรวจสอบ Digital Certificate นั้นสามารถดูได้จาก Diagram ด้านล่างครับ

Https InsecurityHttps Insecurity

ซึ่งหลัก ๆ แล้วจะการดู Web Server Digital Certificate จะดูที่

  • URL นั้นจะต้องตรงกับ Subject
  • เวลาปัจจุบันอยู่ในช่วง Validity Period
  • Root หรือ Chain ของ CA จะต้องมีการ Install บนเครื่อง Client

สำหรับในบทความนี้เขียนอธิบายให้ดูง่าย ๆ เท่านั้นนะครับ ในความเป็นจริง จะซับซ้อนมากกว่านี้

เช่น

  • Alice เชื่อใจ Bob แต่ Bob อาจไม่เชื่อใจ Alice ก็ได้ ซึ่งใน PKI จะแบ่งได้อีกว่าเป็น Unilateral Trust หรือ Mutual Trust (เชื่อใจซึ่งกันและกัน)
  • เอกสารที่ใช้ในการยืนยันตัวตนมีได้หลายชนิด ซึ่งแต่ละชนิดให้ความน่าเชื่อถือไม่เท่ากัน เช่น บัตรประชาชน, บัตรประจำตัวนักเรียน, ใบขับขี่ ซึ่งเปรียบได้กับ CA แต่ละที่ ให้ความน่าเชื่อถือไม่เท่ากัน

สำหรับในตอนแรกนี้เป็นการปูพื้นฐานก่อนนะครับ เดี๋ยวมาดูกันในตอนถัดไปว่ามีอะไรที่เป็นจุดเสี่ยงบ้าง

Related articleHTTPS Insecurity Part 2 ห้ากรณีที่ HTTPS ไม่ปลอดภัย ตั้งแต่ MITM ถึง CA ถูกเจาะตอนที่สองไล่ห้ากรณีที่ HTTPS เสียความปลอดภัยได้จริง ได้แก่ Man-in-the-Middle, certificate หมดอายุ, endpoint ถูกเจาะ, Flame Malware และ CA server ถูก compromiseincognitolab.com/blogs/https-insecurity-part-2

Related articleHTTPS Insecurity Part 3 สิ่งที่ผู้ใช้และผู้ดูแลระบบต้องทำให้ HTTPS ปลอดภัยตอนจบของชุด HTTPS Insecurity สรุปว่า HTTPS ปลอดภัยภายใต้เงื่อนไขไหน และผู้ใช้ทั่วไป ผู้ดูแล web server และผู้ดูแลเครื่อง client แต่ละฝ่ายต้องทำอะไรincognitolab.com/blogs/https-insecurity-part-3


สำหรับคนที่ผ่าน Network Class มาคงจะคุ้นเคยกับ Alice และ Bob เป็นอย่างดี ซึ่งก็ใช้สำหรับการยกตัวอย่างเปรียบเทียบเป็น นาง A กับ นาย B นั่นเอง แต่พอเรียน Security Class แล้วเรื่องราวจะซับซ้อนมากขึ้นมีตัวละครต่าง ๆ เพิ่มขึ้นมาเช่น นาย C จะถูกเรียกว่า Charlie, นาย D จะถูกเรียกว่า Dave, Trusted 3rd Party จะถูกตั้งชื่อว่า Trent, Attacker ที่เป็นประเภท Eavedropper (ดักจับข้อมูล) จะถูกตั้งชื่อว่า Eve หรือ Malicious Attacker จะถูกตั้งชื่อว่า Mallory เป็นต้น

ให้เราช่วยดูแลความปลอดภัยให้คุณ

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

More to read

Up Next

Blog preview image

ARTICLES/17 May 2013

HTTPS Insecurity Part 3 สิ่งที่ผู้ใช้และผู้ดูแลระบบต้องทำให้ HTTPS ปลอดภัย

ตอนจบของชุด HTTPS Insecurity สรุปว่า HTTPS ปลอดภัยภายใต้เงื่อนไขไหน และผู้ใช้ทั่วไป ผู้ดูแล web server และผู้ดูแลเครื่อง client แต่ละฝ่ายต้องทำอะไร

Blog preview image

ARTICLES/19 Aug 2026

Post-Quantum Cryptography คืออะไรและทำไมเราต้องเปลี่ยน

Post-Quantum Cryptography คืออะไร ทำไมคอมพิวเตอร์ควอนตัมถึงเป็นภัยต่อการเข้ารหัส และนโยบาย Quantum-Ready 2030 ของ สกมช. ที่องค์กรควรเริ่มเตรียมตัว

Blog preview image

ARTICLES/19 May 2025

ต่ออายุ SSL Certificate อัตโนมัติด้วย BytePlus ร่วมกับ WAF และ CDN

SSL Certificate ที่หมดอายุโดยไม่รู้ตัวทำให้ผู้ใช้เข้าเว็บไม่ได้และโดน Google เตือนว่า Not Secure การต่ออายุอัตโนมัติบน BytePlus ที่ทำงานร่วมกับ WAF และ CDN ช่วยตัดปัญหานี้

logologo

INCOGNITO LAB CO., LTD.

38 Soi Petchakasem 30, Pak Khlong Phasi Charoen, Phasi Charoen, Bangkok 10160

©2026 Incognito Lab Co., Ltd. All rights reserved

Terms & ConditionsPrivacy Policy