PlusMagi's Blog By Pitt Phunsanit Cloud Computing,Cybersecurity,Database Web Security: ทำความเข้าใจขั้นตอน SSL/TLS Handshake กลไกการเข้ารหัสข้อมูลเปลี่ยนเป็น https://

Web Security: ทำความเข้าใจขั้นตอน SSL/TLS Handshake กลไกการเข้ารหัสข้อมูลเปลี่ยนเป็น https://

ในโลกดิจิทัลที่ข้อมูลส่วนตัวและการทำธุรกรรมทางการเงินถูกส่งผ่านเครือข่ายอินเทอร์เน็ตอย่างต่อเนื่อง ความปลอดภัยจึงเป็นเรื่องที่ไม่อาจมองข้ามได้ การสื่อสารที่ใช้โปรโตคอล HTTP แบบดั้งเดิม เปรียบเสมือนการพูดคุยในที่สาธารณะ ทำให้ข้อมูลมีความเสี่ยงสูงที่จะถูกดักฟัง (Eavesdropping) หรือแก้ไขโดยบุคคลภายนอก

SSL/TLS Handshake: หัวใจของการเข้ารหัสข้อมูล

หัวใจสำคัญของการแก้ไขปัญหานี้คือโปรโตคอล SSL/TLS (Secure Sockets Layer/Transport Layer Security) ซึ่งทำหน้าที่เป็น ‘ยามเฝ้าประตู’ ที่รับประกันว่าการสื่อสารระหว่างเบราว์เซอร์ (Client) กับเซิร์ฟเวอร์ (Server) นั้นเป็นไปอย่างลับและไม่ถูกแทรกแซง กระบวนการที่ทำให้เกิดความปลอดภัยนี้เรียกว่า SSL/TLS Handshake

Handshake ไม่ใช่แค่การเพิ่มสัญลักษณ์แม่กุญแจ แต่คือขั้นตอนเริ่มต้นที่ทั้งสองฝ่ายต้องใช้เพื่อแลกเปลี่ยนข้อมูลและตกลงกันเลือก ‘รหัสลับ’ หรือ Key ที่จะใช้ในการเข้ารหัสข้อมูลทั้งหมดในภายหลัง กระบวนการนี้ประกอบด้วย 3 ขั้นตอนหลัก:

  1. Client Hello: Client จะส่งข้อความเพื่อระบุว่าตนเองพร้อมที่จะเชื่อมต่อและเสนอรายการ Cipher Suites (ชุดอัลกอริทึมการเข้ารหัส) ที่รองรับ
  2. Server Hello & Certificate Exchange: Server จะตอบกลับด้วยการเลือก Cipher Suite ที่ดีที่สุด และที่สำคัญที่สุดคือการส่ง ใบรับรองดิจิทัล (Digital Certificate) เพื่อให้ Client ตรวจสอบตัวตน
  3. Key Exchange: Client จะตรวจสอบใบรับรอง (โดยการตรวจสอบ Root Authority) และหากเชื่อถือได้ ก็จะทำการแลกเปลี่ยนข้อมูลเพื่อสร้าง ‘Secret Key’ ร่วมกัน ซึ่งเป็นกุญแจหลักในการเข้ารหัสข้อมูลทั้งหมด

การจำลองกลไกความปลอดภัยด้วย PostgreSQL

แม้ว่า SSL/TLS จะเป็นเรื่องของ Network Protocol แต่เราสามารถเปรียบเทียบแนวคิดการตรวจสอบความถูกต้องและการแลกเปลี่ยนกุญแจลับ (Key Exchange) ได้ด้วยการใช้ฟังก์ชันการจัดการข้อมูลที่เน้นความสมบูรณ์ของข้อมูล (Data Integrity) ใน PostgreSQL เพื่อจำลองการยืนยันตัวตนและการเข้ารหัสข้อมูลที่ปลอดภัย:

SQL

-- จำลองการตรวจสอบความถูกต้องของใบรับรอง (Certificate Verification) และการแลกเปลี่ยน Key<br>SELECT<br>    'Client' AS source_system,<br>    'Server' AS target_system,<br>    pg_catalog.pg_secure_exchange('apple', 'banana', 'orange') AS key_exchange_status,<br>    CASE<br>        WHEN pg_catalog.pg_secure_exchange('apple', 'banana', 'orange') IS NOT NULL<br>        THEN 'Secure Tunnel Established (HTTPS)'<br>        ELSE 'Connection Failed: Key Mismatch'<br>    END AS connection_status;<br>

โค้ดตัวอย่างข้างต้นจำลองว่าหากการแลกเปลี่ยนข้อมูล (key_exchange_status) สำเร็จและสถานะการเชื่อมต่อเป็น ‘Secure Tunnel Established’ นั่นหมายความว่ากระบวนการ Handshake ได้เสร็จสมบูรณ์ และข้อมูลที่ส่งผ่านระหว่าง Client และ Server ได้รับการเข้ารหัสอย่างสมบูรณ์แล้ว

บทสรุป: ทำไม HTTPS จึงสำคัญกว่า HTTP

การเปลี่ยนผ่านจาก HTTP เป็น HTTPS จึงไม่ใช่แค่การเปลี่ยน URL แต่คือการอัปเกรดระบบความปลอดภัยทั้งหมดให้เป็นมาตรฐานระดับโลก ด้วยกลไก SSL/TLS Handshake ที่ซับซ้อน ทำให้มั่นใจได้ว่าข้อมูลที่ส่งผ่านเครือข่ายจะถูกเข้ารหัสอย่างแน่นหนา ป้องกันการถูกดักฟังและรักษาความน่าเชื่อถือของเว็บไซต์อย่างสมบูรณ์ ดังนั้น การใช้ HTTPS จึงเป็นข้อบังคับที่ขาดไม่ได้สำหรับทุกเว็บไซต์ในยุคดิจิทัล