HTTPS, SSL และ TLS ของง่าย ๆ ที่ทำให้ชีวิตปลอดภัย

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

HTTPS คืออะไร

HTTP (Hypertext Transfer Protocol) ถูกใช้ในการขนส่งข้อมูลกันบนโลกอินเตอร์เน็ตนับตั้งแต่มันเกิดมา (ถ้าสงสัยว่า HTTP คืออะไร เราได้เขียนไว้แล้วใน
HTTP/2 อนาคตของการเชื่อมต่อบนโลกอินเตอร์เน็ต) สมัยนั้นเครื่องคอมพิวเตอร์ยังมีราคาสูง และการเชื่อมต่อเครือข่ายอินเตอร์เน็ตยังเป็นสิ่งที่เข้าถึงยาก และใช้กันในคนเฉพาะกลุ่ม มันเลยไม่น่าจะมีปัญหาอะไร

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

ทำให้ในปี 1994 Netscape ใช่ฮ่ะ Netscape ที่เรารู้จักกันใน Web Browser นี่ละ ได้เสนอวิธีที่จะเข้ารหัสข้อมูลที่ถูกส่งผ่าน HTTP โดยการใช้สิ่งที่เรียกว่า SSL (Secure Socket Layer) มาใส่ลงไปใน HTTP เลยทำให้เราเรียกมันว่า HTTP Secure จนสุดท้ายเรียกย่อ ๆ อีกว่า HTTPS นั่นเอง จนในปัจจุบันมันถูกนำไปใช้จนเราว่ามันเป็นมาตรฐานที่เว็บทุกเว็บบนโลกควรจะมีได้ละ


เรื่องนี้ตอนนั้นเหมือนออกข่าวเยอะอยู่นะ อันนี้มาจาก Pantip ที่เราเปิดเจอ

อย่างเคสที่เคยออกข่าวตัว K-Cyber Banking ที่เป็นเว็บของธนาคารสีเขียวเมื่อสักปี 2015 ได้มั่ง จำไม่ค่อยได้เหมือนกัน ที่มีคนลอกหน้าเว็บมาแล้วเอามาเปิดเป็นเว็บที่ชื่อคล้ายกันมาก ๆ เพื่อหลอกเอา Username และ Password ไป เราเรียกเว็บพวกนี้ว่า Phishing Website ซึ่งเราสามารถตรวจสอบง่าย ๆ เบื้องต้นได้โดยการดูที่ URL ว่ามันเป็น HTTPS แบบตัวสีเขียวหรือไม่มีกากบาทกับสีแดงหรือไม่ ถ้าอยากจะดูในมั่นใจกว่านั้นไปอีก เราสามารถกดเข้าไปดูผ่าน Web Browser ได้อีกนะว่า ใบอนุญาติที่ใช้ขอ HTTPS ถูกขอโดยใคร (เรื่องของใบ เดี๋ยวเราจะพูดถึงกันในส่วนของการทำงาน)

จากตรงนี้เราจะเห็นว่าสิ่งที่ HTTPS การันตีเรามีอยู่ 2 เรื่องใหญ่ ๆ คือ

  1. ข้อมูลที่ส่งไปมาจะไม่ถูกดักเพื่อเอาเนื้อหาของสารไปได้
  2. มั่นใจว่าคนที่เราคุยด้วยมันเป็นตัวจริง

การเข้าและถอดรหัสข้อมูล

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

โอเค เฉลย ถ้าเราบอกว่า ถ้าเราต้องการที่จะส่งข้อมูลที่คนอื่นที่ไม่ใช่ผู้รับผู้ส่งอ่านไม่ได้ สิ่งที่เราน่าจะต้องทำการ เข้ารหัส (Encrypt) แน่นอน ดังนั้นสิ่งที่ต้องมีแน่นอนคือ วิธีการเข้ารหัส หรือก็คือ วิธีการบางอย่างที่ใช้แปลงข้อมูลที่อ่านได้ ให้กลายเป็น ข้อความลับ (Cipher) ปัญหามันจะไม่เกิดเลยคือ ถ้ามีแค่ผู้รับและผู้ส่งที่รู้วิธีการเข้ารหัส เพราะถ้าคนอื่นเราวิธีเราไปใช้ สุดท้ายพอคนอื่นกลับมาแอบอ่านของเรา เขาก็จะสามารถถอดรหัสกลับเป็นข้อความได้ทั้งที่ข้อความนั้นเราไม่ได้ต้องการส่งให้เขาสักหน่อย ทำยังไงดีนะ... เราอาจจะต้องเพิ่มบางอย่างเข้าไป ที่ทำให้เขารู้วิธีไป แต่ถ้าเปลี่ยนอันนี้ค่าที่ได้มันจะต่าง เราเรียกสิ่งนั้นว่า กุญแจ (Key)

กลับกันถ้าเราอยากจะแปลง ข้อความลับ ให้กลับกลายมาเป็นข้อมูลเหมือนเดิม เราก็จะต้องทำสิ่งที่เรียกว่าการ ถอดรหัส (Decrypt) วิธีของมันส่วนใหญ่ก็จะสามารถทำกลับจากวิธีการเข้ารหัสก็จะได้ออกมาเลย

ดังนั้นสิ่งที่เราต้องใช้ในการ เข้ารหัส และ ถอดรหัส คือ

  1. ข้อความที่ต้องการ
  2. วิธีการเข้ารหัส
  3. กุญแจ

จากตรงนี้ ทำให้เราเห็นว่า ถ้าเราต้องการจะเข้ารหัส เราก็จะใช้กุญแจดอกนึงในการเข้ารหัส และส่งข้อมูลไปที่ปลายทาง จากนั้นปลายทางก็จะใช้กุญแจดอกที่หน้าตาเหมือนกัน ในการถอดรหัส มันก็เหมือนกับกุญแจบ้านแบบเมื่อก่อนที่ไขได้ทั้ง 2 ด้าน แต่ทั้งคู่ก็จะถูกไขด้วยกุญแจที่หน้าตาเหมือนกันเท่านั้น เราเรียกการเข้ารหัสลักษณะนี้ว่า Symmetric Encryption

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

จากปัญหานี้เลยทำให้มีคนคิดวิธีใหม่ขึ้นมาเพื่อแก้ปัญหานี้ โดยการใช้กุญแจ 2 ดอกซะเลย โดยดอกนึงเป็นเหมือนดอกหลัก ที่เราห้ามให้ใครเด็ดขาด เราเรียกมันว่า Private Key และดอกที่สามารถส่งไปมาได้นั่นคือ Public Key นอกจากนั้นจุดที่มันเจ๋งคือ ด้วย Public Key เราทำได้เพียงแค่เข้ารหัสข้อมูลเท่านั้น ไม่สามารถถอดรหัสได้ นั่นทำให้ การที่เราแจก Public Key ออกไปไม่ได้ทำให้คนสามารถแอบดักถอดรหัสเราดูข้อมูลกลางทางได้แน่นอน ในขณะที่เราเป็นผู้รับตัวตรงก็จะถือ Private Key ไว้ถอดรหัสข้อมูลกลับมาเป็นข้อมูลที่อ่านได้นั่นเอง เราเรียก Concept นี้ว่า Asymmetric Encryption

สิ่งที่ทำให้เราค่อนข้างสนใจเรื่องนี้คือการทำให้เราสามารถสร้างกุญแจที่ทำได้เพียงหน้าที่เดียวออกมาได้นั่นเอง มันคือความสวยงามของคณิตศาสตร์เลยดีกว่า สิ่งที่มันจำเป็นต้องมี มีอยู่ 3 อย่างด้วยกัน

  1. กุญแจที่สร้างขึ้นมันต้องสามารถที่จะเข้ารหัสและถอดรหัสข้อความได้ง่าย
  2. การแอบย้อนคำนวณ Private Key จาก Public Key จะต้องทำได้ยาก
  3. การแอบคำนวณ Private Key จากข้อความจะต้องทำได้ยาก

ณ หน้างานจริง ๆ เวลาเราสร้าง Key ขึ้นมา เราจะได้มาทั้ง Public และ Private Key พร้อม ๆ กันเลยเพราะฉะนั้น เราควรจะเก็บกุญแจคู่นี้ให้ดี เพราะถ้าขาดดอกใดดอกหนึ่งเราจะอ่านข้อมูลไม่ได้เลยนะ

ดังนั้นเวลาเครื่อง 2 เครื่องเจอกันครั้งแรกมันจะต้องทำความรู้จักกันก่อน ตัวอย่างเช่น เราเป็นเครื่องผ่าน Web Browser ละกันละเข้าไปที่ pornhub.com (เว็บเทพ เว็บนี้วิศวะกรเก่งชิบหาย และเราขอย่อเป็นคำว่า PH ละกันนะ) สิ่งแรกที่ต้องทำคือการแลกเปลี่ยน Key กันก่อน แต่อย่าลืมกฏนะว่า Public Key สามารถเข้ารหัสได้เท่านั้น และ Private Key สามารถถอดและเข้ารหัสได้ ดังนั้น ถ้าเราจะให้ 2 เครื่องส่งข้อมูลกันไปมา เราจะต้องมี Public Key ของกันและกันก่อน (ทั้ง 2 ฝั่งต่างมี Private Key ของตัวเองแล้ว)

โดยเราที่เป็นเครื่องจะต้องส่ง Public Key ของเราไปให้กับ PH ก่อน จากนั้น PH ก็จะทำการ เข้ารหัส Public Key ของ PH โดยใช้ Public Key ของเราและส่งกลับไปให้เรา เราก็จะใช้ Private Key ของเราเพื่อถอด Public Key ของ PH ออกมา เท่านี้ทั้งเราและ PH ก็จะมี Public Key ของกันและกันแล้ว

แต่การทำแบบนี้ ตอนทำมันก็ไม่ยากแหละ แต่มันยุ่งยาก เพราะตอนที่เรารับส่งกันก็ต้องไขโดยใช้ Private Key และตอนล๊อคเราก็ต้องใช้ Public Key ปวดหัว แล้วถ้าต่อกับหลายเว็บนี่ยิ่งปวดหัวเข้าไปใหญ่ นอกจากนั้น ก็ยังถูกโจมตีโดยการเปลี่ยนแปลงข้อมูลระหว่างทางได้อีกด้วย ดังนั้นเราจึงต้องหาวิธีการบางอย่างที่เราจะแลก Public Key กันโดยที่ไม่มีใครรู้ วิธีนึงมีชื่อว่า Diffie Hellman Algorithm

หลักการของมันคือ การที่ทั้ง 2 ฝั่งตกลงที่จะใช้กุญแจชุดเดียวในการทั้งถอดและเข้ารหัสทั้ง 2 ฝั่งโดยที่ไม่มีการส่ง กุญแจตัวนี้เลย โดยจะเริ่มจากการตกลงค่าบางอย่างก่อน นั่นคือ P ที่เป็นจำนวนเฉพาะค่าหนึ่ง และ G ที่เป็นตัวเลขสุ่มอันนึงขึ้นมา

จากนั้นทั้ง 2 ฝั่งก็จะสุ่มตัวเลขขึ้นมาฝั่งละตัวมาคำนวน โดยใช้ G และ P และก็ส่งค่าที่ได้ไปให้อีกฝั่ง จากนั้นทั้ง 2 ฝั่งก็จะสามารถคำนวณ กุญแจที่ทั้ง 2 ฝั่งรู้กันได้ โดยที่ไม่ต้องส่งกุญแจดอกนั้นเลย เท่านี้คนที่แอบดักข้อมูลเราอยู่ก็ไม่รู้แล้วว่า กุญแจที่ใช้ทั้งถอดและเข้ารหัสข้อมูลคืออะไรกันแน่

เท่านี้เราก็จะสามารถแลกเปลี่ยนข้อมูลกันได้โดยที่ไม่มีใครรู้แล้วว่าข้อมูลที่เราส่งมันคืออะไรกันแน่ โดยใช้กุญแจในการเข้านั่นเอง

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


อันนี้เราแคปมาจาก Youtube เราตีกรอบสีแดงไว้ เราจะเห็นว่า Youtube เลือกใช้ RSA ในการส่ง Key ให้กับเรา

อีกวิธีที่หลังจาก Diffie Hellman Algorithm คือ RSA (จำไม่ได้ว่าย่อมาจากอะไร) คณิตศาสตร์ที่มันใช้เป็นเบื้องหลังคือ จำนวนเฉพาะ และ การ Modulo เราจะไม่เข้าไปว่ามันทำยังไง เดี๋ยวจะยาว ถ้าอยากรู้เพิ่มแนะนำให้ลองไปอ่านเพิ่มดู กับอีกอันที่ใช้กันตอนนี้คือ ECDSA (Elliptic Curve Digital Signature Algorithm) อันนี้เว็บเราใช้อยู่ ลองไป Inspect ดูได้

ในการทำงานของ HTTPS ของ SSL 3.0 ถ้ามี Certificate มันก็จะเลือกใช้ RSA Key ที่ฝังอยู่ในบรรทัดนึงของ Certificate ทำให้มันไม่ต้องแลก Key กันไปมาและต้องมาคำนวณอะไรที่เยอะแบบนี้ แค่ไปรับและตรวจสอบ Certificate แล้วเอา RSA Key จาก Certificate ที่ตรวจสอบแล้วมาใช้ได้เลย แต่ถ้าไม่มีมันก็จะเลือกใช้ Diffie Hellman Algorithm

Digital Certificate

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

  1. เชื่อจากการรู้จักกันและกันก่อนอยู่แล้ว อันนี้จะง่ายมาก เพราะต่างคนต่างมั่นใจแล้วว่า ถ้าหน้าแบบนี้แกแน่นอนอะไรแบบนั้น
  2. เชื่อจากคนอื่นอีกที เช่นเราบอกว่า Alice เชื่อใจ Bob และ Bob เชื่อใช้ Boy คนขายหญ้า Alice ก็น่าจะเชื่อใจ Boy ได้เหมือนกัน เพราะ Bob ที่เราเชื่อใจ ก็เชื่อ Boy อีกทีนึง อ่านแล้ว งง แน่ ๆ ฮ่า ๆ

ปัญหามันมีอยู่ว่า เวลาเราจะส่งข้อมูลกันจริง ๆ เช่นเราจะเข้าเว็บธนาคาร เราไม่รู้จักโฉมหน้าที่แท้จริงของธนาคารนั้น ๆ มาก่อนแน่ ๆ นั่นหมายถึง การที่เราเดินไปสะกิดเว็บของธนาคารนี้ เราไม่รู้เลยนะว่า อีนี่ใช่ธนาคารที่เราต้องการจริง ๆ หรือเปล่า ถึงแม้ว่ามันจะแต่งตัวและหน้าตาเหมือนกันก็เถอะ (อาจจะเป็นฝาแฝดก็ได้แก ใครจะรู้ !) ทำให้เราและธนาคารไม่ได้เข้าข่ายข้อแรกของความเชื่อใจกันเลย

ทำให้เราต้องใช้วิธีเชื่อใจแบบที่ 2 นั่นคือการเชื่อใครสักคนที่เชื่อว่าคนนี้คือธนาคารที่เราต้องการจริง ๆ แปลว่าเราจะต้องหาคนที่น่าไว้ใจมาทำให้เรามั่นใจว่าใช่จริง ๆ โอเควิธีนี้มันก็ทำให้เรามั่นใจจริง ๆ แหละว่ามันใช่ แต่ปัญหามันก็มีต่อว่า ชิบหาย เวลาที่เราจะเข้าเว็บที เราก็ต้องวิ่งวนไปถามคนที่เราเชื่อใจไปเรื่อย ๆ ว่า เฮ้ย ๆ แกรู้จักคนนี้มั้ย ไปเรื่อย ๆ เหรอ ช้า ผู้ใช้เปิดเว็บรอจนรากงอกพอดี

เหมือนกับเวลาเราเดินทางไปต่างประเทศนั่นแหละ ถ้าเราไม่มี Passport Custom จะรู้มั้ยว่าเรามาจากประเทศอะไร ถ้าเขาจะต้องมานั่งไล่หาว่าคนนี้อยู่ประเทศอะไรทีละคนคงไม่ตลกแน่นอน ทำให้เราต้องมาแก้ปัญหานี้กัน

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

มันก็จะมีคน ๆ นึงเราเรียกเขาว่า Certificate Authorities (CAs) เป็นเหมือนคนออก ใบรับรอง (Certification) ที่เหมือนกับหนังสือเดินทางให้เว็บแต่ละเว็บเพื่อเป็นการบอกว่า เว็บนี้มันคือคน ๆ นี้จริง ๆ นะส่งได้ ไม่ปลอมอะไรแบบนั้น ซึ่งใบรับรองมันก็จะมีหลายประเภท เดี๋ยวเราค่อยมาพูดถึงกัน

เราอธิบายหลักการเป็นเหตุการณ์เลยละกัน สมมุติว่า เราจะเข้าเว็บ Pornhub เหมือนเดิม ตอนที่เครื่องเราและเว็บมันกำลังแลก Key กันอยู่จังหวะที่ Pornhub ตอบกลับมาที่เครื่องเรามันจะโยน Certificate ที่ในนั้นจะแนบ Public Key ออกมาด้วย ตอนที่เราเจอกันครั้งแรก เราก็ไม่รู้ว่า Pornhub ที่เรากำลังเข้านี้มันเป็นเว็บโป๊เถื่อนรึเปล่า เครื่องก็จะอ่าน Certificate ดู ถ้า Signature ข้างในมันถูกต้อง อื้ม ก็ดูจริงนะ แต่เราไม่เชื่อง่าย ๆ หรอก

เราจะไปหาคนที่น่าเชื่อถือดีกว่า นั่นคือ Certificate Authorities (CAs) เพื่อเช็คว่าจริง ๆ แล้ว Certificate นี้มันมีจริง ๆ ใช่มั้ย ถ้าไม่มีก็ อ้าวอีนี่หลอกตรู !!! Pornhub ปลอมนี่หว่า หรืออีกกรณีที่ Certificate นั้นถูกยกเลิก การเข้าไปเช็คกับ CA ก็ช่วยได้ เพราะในกรณีนี้ Certificate ถ้าเราดูดี ๆ มันต้องดูถูกต้องแน่นอน แหงแหละ มันออกจาก CA จริง ๆ นิ ณ ตอนนั้นอะนะ แต่ตอนนี้มันถูกยกเลิกไปแล้ว มันก็ควรจะใช้ไม่ได้นั่นเอง


อันนี้ของจริง เราแคปมาจากเว็บ Pornhub เลย เพื่อการศึกษานะ

ถ้าเราเข้าไปในเว็บ Pornhub ผ่าน Google Chrome (จริง ๆ Web Browser อื่นก็ทำได้นะ แต่วิธีอาจะไม่เหมือน) และกดที่รูปกุญแจที่ Address Bar เลือก Certificates เราก็จะเจอหน้าแบบในรูปด้านบน มันจะบอก Certificate ที่เว็บนี้ใช้

ดูจากรูป เราจะเห็นว่า Pornhub ใบบริการขอ Certificate จาก DigiCert นั่นเองจากอันที่อยู่เหนือคำว่า *.pornhub.com (รวยชิบ ซื้อเป็น Wildcard) ตรงนี้เราเรียกว่า Intermediate เวลามันทำงานก็คือ มันก็จะเช็ค Certificate ย้อนขึ้นไปเรื่อย ๆ จนถึง Root Certificate ถ้ามีปัญหาสักตัวนึงก็คือ มันจะขึ้นแดงเลยบอกว่าไม่โอเค เราเรียกหลักการแบบนี้ว่า Chain of Trust

ประเภทของ Certificate

Certificate ก็มีหลายประเภทหลายราคาด้วยกัน การเลือกใช้งานก็ขึ้นกับความน่าเชื่อถือขององค์กรนั้น ๆ โดยที่เราเห็นให้จด มันจะมีอยู่ 3 ประเภทด้วยกัน


เว็บเราขอด้วย DV SSL เวลาขึ้นใน Google Chrome มันจะขึ้นแค่สัญลักษณ์รูปแม่กุญแจเท่านั้น ไม่ได้ขึ้นชื่อบริษัท OV ก็ด้วยก็จะขึ้นเหมือนกัน

ประเภทแรกคือ Domain Validated (DV SSL) Certificates เป็น Certificate ที่บอกแค่ว่า เออเว็บนี้มันคือเว็บนี้จริง ๆ นะ จบ ไม่มีอะไรมากกว่านั้น ประเภทนี้ใช้เวลาจดเร็วมาก ๆ และถูกจนถึงฟรีกันไปเลย

ประเภทถัดไปคือ Organisation Validated (OV SSL) Certificates อันนี้จะเหมือนกับ DV แต่จะเพิ่มเรื่องของตัวตนขององค์กรที่จดด้วยว่าจริงมั้ย อาจจะโดยการส่งเอกสารที่เกี่ยวข้องเพื่อยืนยันจริง ๆ ว่าเว็บของบริษัทนี้ มันเป็นเว็บของบริษัทนี้จริง ๆ และ บริษัทนี้มันก็มีตัวตนจริง ๆ นั่นเอง


อันนี้ตัวอย่างจากเว็บของ K-Bank ที่ขอแบบ EV มา ก็จะมีชื่อของธนาคารอยู่ที่ Address Bar ด้วย เพราะฉะนั้น ถ้าเราเจอหน้าเว็บที่หน้าตาเหมือนอันนี้แต่ ไม่มีชื่อขึ้นก็อย่าให้ข้อมูลสำคัญเด็ดขาด ปิดไปเลย

และสุดท้ายพีคสุดคือ Extended Validation (EV SSL) Certificates เหมือน OV เลยแต่โหดกว่าเยอะเพราะบริษัทที่รับจดจะไปเช็คบริษัทเราเลยว่าเปิดยังไง เปิดมานานแค่ไหน ที่อยู่ตามใบเปิดบริษัทมีจริงมั้ยอะไรแบบนั้น แบบละเอียดเลย โดยสิ่งที่เราจะได้ก็คือ Certificate ที่เวลาเราเปิดเว็บแทนที่มันจะขึ้นรูปแม่กุญแจเฉย ๆ มันจะขึ้นเป็นชื่อบริษัทเลย อย่างเช่น K-Bank ในภาพด้านบน

TLS คืออะไร ?

พูดกันมาตั้งนานแล้วว่า SSL มันคืออะไรยังไง แต่เราก็ลืมไปเลยที่จะพูดถึง TLS ฮ่า ๆ เพราะมันอยู่ในหัวเรื่องด้วยนิน่า

เรื่องของความปลอดภัยมันก็มีการอัพเดทไปเรื่อย ๆ เพื่อให้เรามั่นใจได้ว่า เราจะยังปลอดภัยที่จะส่งข้อมูลอยู่ โดย SSL มันก็มีมาตรฐานของมันออกมาที่ใช้กันจะเริ่มที่ SSL 2.0 ในปี 1995 กระโดดขึ้นไปเป็น SSL 3.0 ในปี 1996 (2 อันนี้เราจำง่ายมากว่ามันคือ ปีเกิดและก่อนปีเกิดตัวเอง) จากนั้นในยุคต่อไป เราก็เปลี่ยนจาก SSL เป็น TLS1.1, 1.2 และ TLS 1.3 ที่ออกมาในปี 2018 นี้เอง เรื่องของความแตกต่างในแต่ละเวอร์ชั่นเราขอไม่พูดถึงละกัน ไม่งั้นยาวมากแน่ ๆ และเราก็จำได้ไม่หมดด้วย ฮ่า ๆ เรื่องที่เหมือนเห็นออกมาบ่อย ๆ ก็จะเป็นเรื่องการโจมตีผ่าน Cipher-block chaining (CBC) และเรื่อง Initialisation vector (IV) อะไรนี่แหละ ถ้าอยากรู้เพิ่มก็แนะนำให้ลองไปศึกษาเพิ่มเติมดูได้ แต่ถ้าอธิบายง่าย ๆ ก็คือ TLS คือลูกของ SSL ที่ปลอดภัยกว่านั่นเอง

บางทีเราอาจจะเห็นคำว่า SSL/TLS อันนี้คือมันได้หมดถ้าสดชื่น กล่าวคือ ถ้าเครื่องเราไม่รองรับ TLS มันก็สามารถไปใช้ SSL ได้นั่นเอง น่าจะเจออยู่บ่อย ๆ เลยมั่งนะ เราไม่แน่ใจ

สรุป HTTPS คืออะไร ??

ถ้าอ่านมาถึงตรงนี้หัวน่าจะบวมแล้วละ สาระเยอะเกินไป เราขอสรุปแบบนี้ละกันว่า HTTPS เป็นวิธีการส่งข้อมูลที่จะทำให้ข้อมูลเราไม่สามารถถูกดักกลางทางและโดนเอาไปใช้ได้ ด้วย Asymmetric Encryption ที่จะแบ่ง Key ออกเป็นชุดละ 2 ดอกคือ Public Key สำหรับ Encrypt ที่จะแจกไปเถอะ และ Private Key สำหรับการ Decrypt ข้อมูลกลับมาเป็นเหมือนเดิม ที่เจ้าของห้ามเอาให้คนอื่นเด็ดขาด ในการเริ่มการเชื่อมต่อก็จะมีการแลกกุญแจเพื่อสร้าง กุญแจดอกเดียวที่ใช้แค่ใน Session นั้น ๆ เพื่อให้เรามั่นใจว่าเว็บที่เราเข้าเป็นของจริง ก็จะมีการเช็ค Certificate โดยมันจะอ่านไปตาม CA เพื่อยืนยันว่า Certificate นี้มีตัวตนอยู่จริง และไม่ถูกยกเลิกนั่นเอง จากทั้งหมดนี้ จุดประสงค์เรามีเพียง 2 อย่างเท่านั้นคือ การทำให้ข้อมูลที่เราส่งไปจะมีแค่ผู้รับเท่านั้นที่อ่านได้ และ มั่นใจได้ว่าคนที่เราคุยอยู่ คือตัวจริงไม่ใช่ตัวปลอม ซึ่งมันก็เป็น Concept ที่ทำให้เราปลอดภัยในโลกอินเตอร์เน็ตนั่นเอง สำหรับวันนี้สวัสดี

แน่นอนว่า อันนี้เราก็เขียนจากที่เราจำได้เท่านั้นแหละ ก็ถ้าผิดตรงไหนก็ส่งมาบอกได้จะดีมาก ๆ

และตอนนี้เรามีเพจแล้วนะ ถ้าอยากติดตามเรื่องราวเกี่ยวกับ เทคโนโลยี วิทยาศาสตร์ และ Lifestyle ก็สามารถเข้าไปติดตามเราผ่านเพจ arnondora ได้เลยนะฮ่ะ 😁