http://www.ntu.edu.sg/home/ehchua/programming/webprogramming/http_ssl.html
? บทความนี้อธิบายการทำงาน HTTPS ไว้ดีมาก
มันเป็นโปรโตคอลเอาไว้สื่อสารระหว่าง
บราวเซอร์กับเว็บเซิร์ฟเวอร์ที่ปลอดภัยสูง
ป้องกันการดักจับข้อมูลกลางทาง
:
ถ้าจะนิยามโดยย่อ
HTTPS คือโปรโตคอล HTTP ที่วิ่งอยู่บนโปรโตคอล SSL/TLS
(ส่วน SSL/TLS ก็จะไปวิ่งอยู่บน TCP อีกที)
:
ถ้าจะเข้าใจ HTTPS ก็ให้เข้าใจ SSL/TLS เลยทีเดียวจบ
โดยคอนเซปต์ของ SSL/TLS มีหลายเสตป
แต่สำหรับคนขี้เกียจอ่าน เนื่องจากมันยาว
ผมจะขอสรุปให้ไม่กี่บรรทัดดังนี้
:
เขาจะใช้ public key/private key ของเซิร์ฟเวอร์ เพื่อทำ..
1) ทำการ authentication:
ไคลเอนต์จะใช้ digital certificate (ของ server) ทำการรับรองเซิร์ฟเวอร์นั้นๆ ว่าเป็นตัวปลอมหรือของจริง
.
2) ขั้นตอน exchange key:
ใช้แลกเปลี่ยน session key ระหว่างไคลเอนต์กับเซิร์ฟเวอร์
:
เมื่อข้อ 2 แลกเปลี่ยนกันได้แล้ว
จากนี้ต่อไป session key จะเป็นหัวใจสำคัญของการแลกเปลี่ยนข้อมูลล่ะนะ
โดยมันมีลักษณะดังนี้
.
? session key เป็นคีย์แบบสมมาตร (Symmetric key) หมายถึงใช้คีย์ตัวไหนเข้ารหัสข้อมูล ก็ต้องใช้คีย์ตัวเดิมถอดรหัสออกมาเสมอ
? session key เป็นคีย์ลับเฉพาะรู้จักระหว่างไคลเอนต์กับเซิร์ฟเวอร์เท่านั้น
(ถูกสร้างขึ้นมาด้วยตัวเลข random ถึง 3 ค่า)
:
นับจากนี้ไป เวลาส่งข้อมูลระหว่างไคลเอนต์ (บราวเซอร์) กับเซิร์ฟเวอร์
จะใช้ session key เข้ารหัสข้อมูลเพื่อรับส่งซึ่งกันและกัน
ไม่ใช้ private/public key เข้ารหัสแต่อย่างใด
เพราะ session key มันทำงานเร็วกว่าพวก private/public key เยอะเลย
:
ข้อดีอีกอย่างของโปรโตคอล HTTPS หรือ SSL/TLS
ก็คือฝ่ายที่ต้องสร้าง private key กับ public key
รวมทั้งขั้นตอนไปขอ digital certificate จาก CA
วิธีปวดหัวและยุ่งยากพวกนี้ จะเป็นฝ่ายเซิร์ฟเวอร์ที่รับหน้าที่นี้ไป
:
? ฝ่ายไคลเอนต์หรือบราวเซอร์ ไม่ต้องทำขั้นตอนยุ่งยากพวกนี้
ไม่ต้องมี private key และ public key แต่อย่างใด
— จบ —
?เขียนโดยแอดมินโฮ โอน้อยออก
Please like Fanpage