HTTPS (ชื่อเต็ม: Hyper Text Transfer Protocol over SecureSocket Layer) เป็นช่องทาง HTTP ที่มีความปลอดภัยเป็นเป้าหมาย บนพื้นฐานของ HTTP การเข้ารหัสการส่งและการตรวจสอบตัวตนทำให้มั่นใจถึงความปลอดภัยของกระบวนการส่งสัญญาณ [1] HTTPS เพิ่ม SSL บนพื้นฐานของ HTTP พื้นฐานความปลอดภัยของ HTTPS คือ SSL ดังนั้นจึงจำเป็นต้องมี SSL สำหรับรายละเอียดของการเข้ารหัส HTTPS มีพอร์ตเริ่มต้นที่แตกต่างจาก HTTP และเลเยอร์การเข้ารหัส/การตรวจสอบสิทธิ์ (ระหว่าง HTTP และ TCP) ระบบนี้มีวิธีการพิสูจน์ตัวตนและการสื่อสารที่เข้ารหัส มีการใช้กันอย่างแพร่หลายในการสื่อสารที่มีความอ่อนไหวต่อความปลอดภัยบนเวิลด์ไวด์เว็บ เช่น การชำระเงินตามธุรกรรม
HTTPS ประกอบด้วยสองส่วนหลัก: HTTP + SSL / TLS นั่นคือ เพิ่มชั้นของโมดูลสำหรับการประมวลผลข้อมูลที่เข้ารหัสลงใน HTTP การส่งข้อมูลระหว่างเซิร์ฟเวอร์และไคลเอนต์จะได้รับการเข้ารหัสผ่าน TLS ดังนั้นข้อมูลที่ส่งจึงเป็นข้อมูลที่เข้ารหัสทั้งหมด
หลักการ HTTP
① เบราว์เซอร์ไคลเอนต์' ต้องสร้างการเชื่อมต่อกับเซิร์ฟเวอร์ผ่านเครือข่ายก่อน การเชื่อมต่อเสร็จสมบูรณ์ผ่าน TCP โดยทั่วไป หมายเลขพอร์ตสำหรับการเชื่อมต่อ TCP คือ 80 หลังจากสร้างการเชื่อมต่อแล้ว ไคลเอ็นต์จะส่งคำขอไปยังเซิร์ฟเวอร์ รูปแบบของคำขอคือ: Uniform Resource Identifier (URL) หมายเลขเวอร์ชันโปรโตคอล ตามด้วยข้อมูล MIME รวมถึงตัวแก้ไขคำขอ ข้อมูลไคลเอ็นต์ และเนื้อหาใบอนุญาต
② หลังจากได้รับคำขอแล้ว เซิร์ฟเวอร์จะให้ข้อมูลตอบกลับที่เกี่ยวข้อง รูปแบบคือบรรทัดสถานะ รวมถึงหมายเลขเวอร์ชันโปรโตคอลของข้อมูล รหัสความสำเร็จหรือรหัสข้อผิดพลาด และข้อมูล MIME รวมถึงข้อมูลเซิร์ฟเวอร์ ข้อมูลเอนทิตี และเนื้อหาที่เป็นไปได้
หลักการ HTTPS
① ลูกค้าส่งรายการอัลกอริทึมที่รองรับและหมายเลขสุ่มที่ใช้สร้างคีย์ไปยังเซิร์ฟเวอร์
② เซิร์ฟเวอร์จะเลือกอัลกอริธึมการเข้ารหัสจากรายการอัลกอริทึม และส่งและใบรับรองที่มีกุญแจสาธารณะของเซิร์ฟเวอร์ไปยังไคลเอนต์ ใบรับรองยังมีการระบุเซิร์ฟเวอร์เพื่อวัตถุประสงค์ในการรับรองความถูกต้อง และเซิร์ฟเวอร์ยังให้ผู้ใช้ที่ใช้เป็นตัวเลขสุ่มเพื่อสร้างคีย์
③ ไคลเอนต์ตรวจสอบใบรับรองเซิร์ฟเวอร์' (สำหรับการตรวจสอบใบรับรอง คุณสามารถอ้างอิงถึงลายเซ็นดิจิทัล) และแตกเซิร์ฟเวอร์' กุญแจสาธารณะ; จากนั้นสร้างสตริงรหัสผ่านแบบสุ่มที่เรียกว่า pre_master_secret และใช้คีย์สาธารณะของเซิร์ฟเวอร์' เข้ารหัส (อ้างถึงการเข้ารหัส/ถอดรหัสแบบไม่สมมาตร) และส่งข้อมูลที่เข้ารหัสไปยังเซิร์ฟเวอร์
④ ไคลเอนต์และเซิร์ฟเวอร์คำนวณการเข้ารหัสและคีย์ MAC อย่างอิสระตาม pre_master_secret และค่าสุ่มของไคลเอนต์และเซิร์ฟเวอร์ (ดูอัลกอริธึมการแลกเปลี่ยนคีย์ DH)
⑤ ลูกค้าส่งค่า MAC ของข้อความจับมือทั้งหมดไปยังเซิร์ฟเวอร์
⑥ เซิร์ฟเวอร์ส่งค่า MAC ของข้อความจับมือทั้งหมดไปยังไคลเอนต์
ข้อได้เปรียบ
ใช้โปรโตคอล HTTPS เพื่อตรวจสอบสิทธิ์ผู้ใช้และเซิร์ฟเวอร์เพื่อให้แน่ใจว่าข้อมูลถูกส่งไปยังไคลเอนต์และเซิร์ฟเวอร์ที่ถูกต้อง
โปรโตคอล HTTPS เป็นโปรโตคอลเครือข่ายที่สร้างโดย SSL+HTTP ที่สามารถใช้สำหรับการส่งที่เข้ารหัสและการตรวจสอบตัวตน ปลอดภัยกว่า HTTP สามารถป้องกันไม่ให้ข้อมูลถูกขโมยและเปลี่ยนแปลงในระหว่างการส่ง และรับรองความสมบูรณ์ของข้อมูล
HTTPS เป็นโซลูชันที่ปลอดภัยที่สุดภายใต้สถาปัตยกรรมปัจจุบัน แม้ว่าจะไม่ปลอดภัยอย่างแท้จริง แต่ก็เพิ่มค่าใช้จ่ายในการโจมตีแบบคนกลางอย่างมาก
ข้อบกพร่อง
ในสภาพแวดล้อมเครือข่ายเดียวกัน โปรโตคอล HTTPS จะขยายเวลาในการโหลดหน้าเว็บได้เกือบ 50% และเพิ่มการใช้พลังงานขึ้น 10% เป็น 20% นอกจากนี้ โปรโตคอล HTTPS ยังส่งผลต่อแคช เพิ่มโอเวอร์เฮดของข้อมูลและการใช้พลังงาน
ความปลอดภัยของโปรโตคอล HTTPS มีขอบเขต และมีผลเพียงเล็กน้อยต่อการโจมตีของแฮ็กเกอร์ การปฏิเสธการโจมตีบริการ และการจี้เซิร์ฟเวอร์
สิ่งที่สำคัญที่สุดคือระบบห่วงโซ่เครดิตของใบรับรอง SSL ไม่ปลอดภัย โดยเฉพาะอย่างยิ่งเมื่อบางประเทศสามารถควบคุมใบรับรองรูทของ CA ได้ การโจมตีแบบคนกลางก็ทำได้เท่าเทียมกัน
ต้นทุนที่เพิ่มขึ้น หลังจากปรับใช้ HTTPS การทำงานของโปรโตคอล HTTPS จะเพิ่มการใช้ทรัพยากรการประมวลผลเพิ่มเติม ตัวอย่างเช่น อัลกอริธึมการเข้ารหัสโปรโตคอล SSL และจำนวนการโต้ตอบ SSL จะใช้ทรัพยากรการประมวลผลและค่าใช้จ่ายเซิร์ฟเวอร์จำนวนหนึ่ง ในสถานการณ์ของแอปพลิเคชันการเข้าถึงของผู้ใช้ขนาดใหญ่ เซิร์ฟเวอร์จำเป็นต้องดำเนินการเข้ารหัสและถอดรหัสบ่อยครั้ง และเกือบทุกไบต์จำเป็นต้องได้รับการเข้ารหัสและถอดรหัส ซึ่งจะทำให้เซิร์ฟเวอร์มีค่าใช้จ่าย ด้วยการพัฒนาเทคโนโลยีคลาวด์คอมพิวติ้ง ค่าใช้จ่ายในการใช้เซิร์ฟเวอร์ที่ติดตั้งในศูนย์ข้อมูลค่อยๆ ลดลงหลังจากการเพิ่มขึ้นของขนาด เมื่อเทียบกับการปรับปรุงความปลอดภัยในการเข้าถึงของผู้ใช้ ต้นทุนอินพุตลดลงมาอยู่ในระดับที่ยอมรับได้




