Special Report

กระบวนการเข้ารหัสที่สำคัญอย่างแบบกุญแจสมมาตร (symmetic key encryption) ในตอนที่แล้วแม้จะสามารถป้องกันการดักฟังได้อย่างมีประสิทธิภาพ แต่ข้อจำกัดคือทั้งสองฝ่ายต้องรับรู้ “ความลับ” ร่วมกัน และข้อจำกัดที่สำคัญมากคือ ผู้ที่รู้ความลับนี้ทุกคนจะเข้าไปอ่านข้อความได้ทั้งหมด

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

การแลกกุญแจแบบ Diffie–Hellman

Diffie–Hellman (DH) เป็นกระบวนการสร้าง “ความลับ” ระหว่างกันโดยไม่ต้องส่งความลับนั้นถึงกันจริงๆ โดยทั่วไปแล้วความลับที่ว่าคือการแลก “กุญแจ” สำหรับการเข้ารหัสแบบกุญแจสมมาตรเพื่อส่งข้อมูลถึงกันต่อไป กระบวนการ DH นี้ไม่สามารถเข้ารหัสโดยตัวมันเองได้ เพียงแต่บอกกระบวนการสร้างความลับร่วมกันเท่านั้น

การอธิบายกระบวนการ DH นั้นอาศัยความจริงที่ว่า (n^a)^b mod p = (n^b)^a mod p เมื่อเราใช้ค่า (n^a)^b mod p นี้เป็นค่ากุญแจสำหรับการเข้ารหัสแบบกุญแจสมมาตร เราสามารถแลกค่า n และ p อย่างเปิดเผยได้ โดย a และ b เป็นความลับที่แต่ละฝ่ายต้องเก็บไว้กับตัว สิ่งที่แต่ละฝ่ายส่งให้กันคือค่า n^a mod p และ n^b mod p เมื่ออีกฝ่ายนำไปยกกำลังกับความลับของตัวเองก็จะได้ตัวเลขชุดที่เหมือนกันทั้งสองฝั่ง หากแฮกเกอร์ไม่รู้ทั้งค่าความลับของทั้งสองฝั่ง ก็ไม่สามารถถอดรหัสได้

  1. ทั้งสองฝ่ายต้องสร้างตัวเลขลับสำหรับตัวเองขึ้นมา
  2. ฝ่ายเริ่มต้นส่งพารามิเตอร์ คือ n และ p ให้กับอีกฝ่าย
  3. ทั้งสองฝ่ายแลกค่า A = n^a mod p และ B = n^b mod p ให้อีกฝ่าย
  4. ทั้งสองฝ่ายมีความลับร่วมกันที่คนอื่นไม่สามารถรับรู้ได้

กระบวนการ DH ยังคงได้รับความนิยมอยู่จนทุกวันนี้ในการแลกกุญแจการเชื่อมต่อ แต่โดยตัวกระบวนการ DH เองไม่มีการยืนยันว่าฝ่ายตรงข้ามเป็นคนที่เราต้องการพูดคุยด้วยจริงหรือไม่ เราเรียกการเชื่อมต่อแบบ DH ที่ไม่มีการยืนยันตัวตนนี้ว่า Anonymous DH (ADH) กระบวนการนี้แม้จะทนทานต่อการดักฟัง แต่หากมีคนร้ายปลอมตัวเป็นฝ่ายตรงข้ามที่เราต้องการคุยด้วย (การโจมตีแบบ man-in-the-middle) โดยคนร้ายเชื่อมต่อกับเราด้วยกระบวนการ DH และเชื่อมต่อกับปลายทางด้วย DH เหมือนกันก็จะดักทุกอย่างได้ทันที

เราสามารถสร้างเซิร์ฟเวอร์แบบ ADH ได้ง่ายๆ ด้วยการใช้ OpenSSL ที่มีติดตั้งอยู่ในลินุกซ์ส่วนมาก ด้วยคำสั่ง openssl s_server -nocert -cipher aNULL ในฝั่งเซิร์ฟเวอร์ และ openssl s_client -cipher aNULL ในฝั่งไคลเอนต์ ก็สามารถเชื่อมต่อแบบเข้ารหัสได้ทันที โดยที่การเข้ารหัสแบบกุญแจสมมาตรนั้นจะมีการเลือกให้โดยอัตโนมัติ ขึ้นกับเวอร์ชั่นของ OpenSSL ที่ใช้งานนั้นซัพพอร์ตกระบวนการใดบ้าง

RSA

กระบวนการเข้ารหัสที่ดังที่สุดอันหนึ่งของโลกคงเป็น RSA ที่ยังเป็นชื่อของบริษัทขายสินค้าความปลอดภัยชื่อดังในตัว (ปัจจุบัน RSA เป็นบริษัทในเครือ EMC) RSA ต่างจากกระบวนการ DH เพราะมันเป็นกระบวนการ “เข้ารหัส” อย่างเต็มรูปแบบ โดยไม่ต้องการกระบวนการเข้ารหัสอื่นๆ มาเสริมอีก เราสามารถเข้ารหัสไฟล์ข้อมูลขนาดใหญ่ด้วยกระบวนการ RSA ได้ แม้จะไม่เป็นที่นิยมนักเพราะกระบวนการกินพลังประมวลผลสูง

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

ลายเซ็นดิจิตอล

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

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

Public Key Infrastructure (PKI)

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

ระบบโครงสร้างพื้นฐานกุญแจสาธารณะ ระบุให้เราต้องมีหน่วยงานที่รู้จักตั้งแต่แรกอยู่ในเครื่องของเราเสียก่อนเรียกว่าหน่วยงานออกใบรับรอง (Certification Authority - CA) หน่วยงานเหล่านี้มักทำงานร่วมกับผู้ผลิตระบบปฎิบัติการ, ผู้ผลิตเบราว์เซอร์, หรือแม้แต่ผู้ผลิตไลบรารีความปลอดภัย เพื่อยืนยันว่าหน่วยงานของตัวเองมีความปลอดภัยอย่างเพียงพอ มีกระบวนการตรวจสอบผู้ที่จะมาขอให้รับรองกุญแจสาธารณะของตัวเองได้อย่างครบถ้วน เมื่อผ่านกระบวนการตรวจสอบในระดับหนึ่งแล้ว ผู้ผลิตซอฟต์แวร์ก็จะรวมเอากุญแจสาธารณะของหน่วยงานเหล่านี้เข้าไว้ในซอฟต์แวร์ของตัวเอง (ตัวอย่างรายชื่อหน่วยงานที่ Mozilla/Firefox รวมกุญแจสาธารณะไว้)

สำหรับผู้อื่นที่ต้องการใช้มีการรับรองกุญแจสาธารณะของตัวเอง ต้องสร้างกุญแจสาธารณะขึ้นมาในเครื่องของตัวเองเป็นไฟล์ที่เรียกว่าไฟล์ CSR (Certificate Signing Request) แล้วส่งไปยังหน่วยงานที่ได้รับการรับรองเหล่านี้ จากนั้นหน่วยงานเหล่านี้จะมีการยืนยันตัวตน เช่น การส่งอีเมลมาขอยืนยัน, หรือกระทั่งการขอเอกสารทางราชการในบางกรณี เมื่อยืนยันตามกระบวนการแล้วหน่วยงานเหล่านี้จะใช้กุญแจลับของตนเองเซ็นลายเซ็นดิจิตอล ซึ่งก็คือค่าแฮชของข้อมูลในไฟล์ CSR แล้วเข้ารหัส แล้วส่งกลับมายังผู้ร้องขอเป็นไฟล์รับรอง (Certificate - CRT)

upic.me

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

เราสามารถสร้างไฟล์รับรองขึ้นมาเองได้โดยไม่ต้องไปขอหน่วยงานอื่นให้เซ็นแต่อย่างใด ไฟล์ประเภทนั้นเรียกว่าไฟล์รับรองตนเอง (Self Signed Certificate) ซึ่งเบราว์เซอร์จะขึ้นเตือนเมื่อใช้งานเสมอ

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

กระบวนการรับรองนี้สามารถรับรองได้หลายอย่าง นับแต่ชื่อโดเมนที่เราใช้กันโดยทั่วไป, อีเมลที่เราสามารถยืนยันได้ว่าเนื้อหาในอีเมลมาจากเราจริง, ไปจนถึงระบบสมาร์ตการ์ด

upic.me

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

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

ทุกวันนี้บัตรสมาร์ตการ์ดสำหรับการจ่ายเงินมักเป็นบัตร EMV (Europay, MasterCard and Visa) ซึ่งแม้จะมีฟอร์แมตและ API ของบัตรต่างจากกระบวนการ PKI ใน PKCS #11 แต่หลักการก็ยังคงคล้ายกันคือการเซ็นใบรับรองต้องมาจากเจ้าของเครือข่ายอย่าง VISA ซึ่งจะใช้ใบรับรองขั้นกลางเซ็นใบรับรองให้กับหน่วยงานออกบัตร เช่น ธนาคาร เพื่อมารับรองบัตรเครดิตอีกที และบัตรจะยืนยันกระบวนการต่างๆ เช่น การจ่ายเงิน ได้ว่ามีการจ่ายเงินจริงด้วยบัตรตัวจริงหรือไม่

Hiring! บริษัทที่น่าสนใจ

Carmen Software company cover
Carmen Software
Hotel Financial Solutions
Next Innovation (Thailand) Co., Ltd. company cover
Next Innovation (Thailand) Co., Ltd.
We are web design with consulting & engineering services driven the future stronger and flexibility.
KKP Dime company cover
KKP Dime
KKP Dime บริษัทในเครือเกียรตินาคินภัทร
Kiatnakin Phatra Financial Group company cover
Kiatnakin Phatra Financial Group
Financial Service
Fastwork Technologies company cover
Fastwork Technologies
Fastwork.co เว็บไซต์ที่รวบรวม ฟรีแลนซ์ มืออาชีพจากหลากหลายสายงานไว้ในที่เดียวกัน
Thoughtworks Thailand company cover
Thoughtworks Thailand
Thoughtworks เป็นบริษัทที่ปรึกษาด้านเทคโนโยลีระดับโลกที่คว้า Great Place to Work 3 ปีซ้อน
Iron Software company cover
Iron Software
Iron Software is an American company providing a suite of .NET libraries by engineer for engineers.
CLEVERSE company cover
CLEVERSE
Cleverse is a Venture Builder. Our team builds several tech companies.
Nipa Cloud company cover
Nipa Cloud
#1 OpenStack cloud provider in Thailand with our own data center and software platform.
Bangmod Enterprise company cover
Bangmod Enterprise
The leader in Cloud Server and Hosting in Thailand.
CIMB THAI Bank company cover
CIMB THAI Bank
MOVING FORWARD WITH YOU - CIMB is the leading ASEAN Bank
Bangkok Bank company cover
Bangkok Bank
Bangkok Bank is one of Southeast Asia's largest regional banks, a market leader in business banking
MuvMi (Urban Mobility Tech Co.,Ltd.) company cover
MuvMi (Urban Mobility Tech Co.,Ltd.)
Shape the future of urban mobility towards affordable, clean, and safe solutions
T.N. Digital Solution Co., Ltd. company cover
T.N. Digital Solution Co., Ltd.
TNDS has been involving in every first move of banking’s major digital transformation.
KBTG - KASIKORN Business-Technology Group company cover
KBTG - KASIKORN Business-Technology Group
KBTG - "The Technology Company for Digital Business Innovation"
Siam Commercial Bank Public Company Limited company cover
Siam Commercial Bank Public Company Limited
"Let's start a brighter career future together"
Icon Framework co.,Ltd. company cover
Icon Framework co.,Ltd.
Global Standard Platform for Real Estate แพลตฟอร์มสำหรับธุรกิจอสังหาริมทรัพย์ครบวงจร มาตรฐานระดับโลก
REFINITIV company cover
REFINITIV
The Financial and Risk business of Thomson Reuters is now Refinitiv
H LAB company cover
H LAB
Re-engineering healthcare systems through intelligent platforms and system design.
The Gang Technology Co., Ltd. company cover
The Gang Technology Co., Ltd.
We're a Digital Agency that helps our customers transform their business into digital with ease.
LTMH company cover
LTMH
LTMH มุ่งเน้นการพัฒนาผลิตภัณฑ์ที่สามารถช่วยพันธมิตรของเราให้บรรลุเป้าหมาย
Seven Peaks company cover
Seven Peaks
We Drive Digital Transformation
Wisesight (Thailand) Co., Ltd. company cover
Wisesight (Thailand) Co., Ltd.
The Best Choice For Handling Social Media · High Expertise in Social Data · Most Advanced and Secure
MOLOG Tech company cover
MOLOG Tech
We are Modern Logistic Platform, Specialize in WMS, OMS and TMS.
Data Wow Co.,Ltd company cover
Data Wow Co.,Ltd
We enable our clients to realize increased productivity by solving their most complex issues by Data
LINE Company Thailand company cover
LINE Company Thailand
LINE, the world's hottest mobile messaging platform, offers free text and voice messaging + Call
LINE MAN Wongnai company cover
LINE MAN Wongnai
Join our journey to becoming No.1 food platform in Thailand

ถอดรหัสลายเซ็นดิจิตอลด้วกุญแจสาธารณะของผู้ลงลายเซ็นแล้วดูว่าค่าแฮช

ด้วย ตกยักไปครับ

การยืนยันอีเมลนั้นหน่วยงานให้ไฟล์รับรองออกมาเป็นไฟล์ที่เรัยกว่า PKCS #12

เรียก พิมพ์สระอีพลาดเป็นไม้หันครับ

หน่วยงาน (เช่นกระทรวงมหาดไท ในกรณีบัตรประชาชน)

มหาดไท > มหาดไทย