Ron Rivest มีส่วนในการกำหนดการเข้ารหัสเชิงปฏิบัติ: RSA ลายเซ็น และการเลือกเชิงวิศวกรรมความปลอดภัยที่ทำให้การค้าปลอดภัยและ HTTPS กลายเป็นเรื่องปกติ

Ron Rivest เป็นชื่อที่คุณอาจไม่ค่อยได้ยินนอกวงการความปลอดภัย แต่ผลงานของเขากำหนดความรู้สึกของ "ความปลอดภัยปกติ" บนโลกออนไลน์อย่างเงียบ ๆ หากคุณเคยล็อกอินธนาคาร ซื้อของด้วยบัตร หรือเชื่อว่าเว็บไซต์ที่เปิดคือเว็บไซต์ที่คุณตั้งใจจะเข้า คุณได้รับประโยชน์จากแนวคิดแบบหนึ่งที่ Rivest ช่วยเผยแพร่: การเข้ารหัสที่ใช้งานได้จริงในโลกจริง ไม่ใช่แค่ในกระดาษ
การสื่อสารที่ปลอดภัยเป็นเรื่องยากเมื่อคนนับล้านที่ไม่รู้จักกันต้องติดต่อกัน ไม่ใช่แค่การรักษาความลับของข้อความเท่านั้น—ยังรวมถึงการพิสูจน์ตัวตน ป้องกันการดัดแปลง และทำให้แน่ใจว่าการชำระเงินไม่ถูกปลอมแปลงหรือเปลี่ยนเส้นทางอย่างเงียบ ๆ
ในกลุ่มเล็ก ๆ คุณอาจสามารถแชร์รหัสลับล่วงหน้าได้ แต่บนอินเทอร์เน็ต วิธีการนั้นใช้งานไม่ได้: คุณไม่สามารถแชร์ความลับกับทุกเว็บไซต์ ร้านค้า และบริการที่อาจใช้ได้ล่วงหน้า
อิทธิพลของ Rivest เชื่อมโยงกับแนวคิดที่ใหญ่กว่า: ความปลอดภัยจะแพร่หลายก็ต่อเมื่อมันกลายเป็นค่าเริ่มต้น ซึ่งต้องการส่วนผสมสามอย่างร่วมกัน:
นี่คือทัวร์ภาพรวมระดับสูงไม่ลงรายละเอียดเชิงคณิตศาสตร์ ว่า RSA เข้ามาอยู่ในสแต็กความปลอดภัยเชิงปฏิบัติอย่างไร—การเข้ารหัส ลายเซ็น ใบรับรอง และ HTTPS—และเหตุใดสแต็กนั้นจึงทำให้การค้าปลอดภัยและการสื่อสารปลอดภัยกลายเป็นเรื่องปกติแทนที่จะเป็นข้อยกเว้น
ก่อน RSA การสื่อสารที่ปลอดภัยส่วนใหญ่ทำงานเหมือนกุญแจล็อกไดอารี่ที่แชร์: ทั้งสองฝ่ายต้องมีคีย์ลับเดียวกันเพื่อล็อกและปลดล็อกข้อความ นี่คือ การเข้ารหัสแบบสมมาตร—เร็วและมีประสิทธิภาพ แต่สมมติว่าคุณมีวิธีแชร์ความลับอย่างปลอดภัยล่วงหน้า
การเข้ารหัสแบบกุญแจสาธารณะ พลิกสถานการณ์ คุณเผยแพร่กุญแจตัวหนึ่ง (สาธารณะ) ที่ใครก็ใช้เพื่อปกป้องข้อความสำหรับคุณ และเก็บกุญแจอีกชิ้น (ส่วนตัว) ไว้ที่มีเพียงคุณเท่านั้นที่ใช้เปิดมัน คณิตศาสตร์ฉลาด แต่เหตุผลที่สำคัญนั้นเรียบง่าย: มันเปลี่ยนวิธีการแจกจ่ายความลับ
ลองคิดถึงร้านค้าออนไลน์ที่มีลูกค้าล้านคน หากใช้คีย์สมมาตร ร้านค้าต้องมีกุญแจแยกสำหรับลูกค้าแต่ละคน
นั่นนำไปสู่คำถามยุ่งยาก:
เมื่อการสื่อสารเป็นแบบตัวต่อตัวและออฟไลน์ คุณอาจแลกเปลี่ยนความลับกันตัวต่อตัวหรือใช้คนส่งที่เชื่อถือได้ แต่บนอินเทอร์เน็ต วิธีนั้นใช้ไม่ได้
คิดถึงการส่งสิ่งของมีค่าโดยไปรษณีย์ ด้วยคีย์สมมาตร คุณและผู้รับต้องมีคีย์กายภาพเดียวกันก่อน
ด้วยกุญแจสาธารณะ ผู้รับสามารถส่ง แม่กุญแจที่เปิดอยู่ ให้คุณ (กุญแจสาธารณะของพวกเขา) คุณใส่ของลงกล่อง ล็อกด้วยแม่กุญแจนั้น แล้วส่งกลับ ใครก็ถือแม่กุญแจได้ แต่มีกุญแจที่เปิดมันได้เฉพาะผู้รับเท่านั้น (กุญแจส่วนตัว)
นี่คือสิ่งที่อินเทอร์เน็ตต้องการ: วิธีแลกเปลี่ยนความลับกับคนแปลกหน้าในระดับที่มาก โดยไม่ต้องมีรหัสผ่านที่เตรียมไว้ล่วงหน้า
การเข้ารหัสแบบกุญแจสาธารณะไม่ได้เริ่มที่ RSA แนวคิดสำคัญเกิดขึ้นในปี 1976 เมื่อ Whitfield Diffie และ Martin Hellman อธิบายว่าคนสองคนสามารถสื่อสารได้อย่างปลอดภัยโดยไม่ต้องแชร์ความลับล่วงหน้า แนวคิดนั้น—การแยกระหว่างข้อมูล "สาธารณะ" กับความลับ "ส่วนตัว"—ชี้ทิศทางให้ทุกสิ่งที่ตามมา
หนึ่งปีต่อมา (1977) Ron Rivest, Adi Shamir และ Leonard Adleman แนะนำ RSA และมันกลายเป็นระบบกุญแจสาธารณะที่ผู้คนสามารถนำไปใช้งานจริงได้อย่างรวดเร็ว ไม่ใช่เพราะเป็นไอเดียเดียวที่ฉลาด แต่เพราะมันเข้ากับความต้องการที่ยุ่งเหยิงของระบบจริง: ติดตั้งง่าย ปรับใช้ในผลิตภัณฑ์หลากหลาย และมาตรฐานได้สะดวก
RSA ทำให้สองความสามารถสำคัญใช้งานได้แพร่หลาย:
สองฟีเจอร์นี้แก้ปัญหาต่างกัน การเข้ารหัสปกป้องความลับ ส่วนลายเซ็นปกป้องความถูกต้องและความสมบูรณ์—เป็นหลักฐานว่าข้อความหรืออัพเดตซอฟต์แวร์มาจากผู้ที่อ้างว่าเป็นผู้ส่ง
พลังของ RSA ไม่ได้อยู่แค่เชิงทฤษฎี แต่มาจากความสามารถในการใช้งานจริง: มัน สามารถนำไปใช้งานได้ด้วยทรัพยากรคอมพิวเตอร์ของยุคนั้น และใส่เข้ากับผลิตภัณฑ์ได้โดยเป็นชิ้นส่วนหนึ่ง ไม่ใช่ต้นแบบวิจัย
สำคัญไม่แพ้กันคือ RSA สามารถมาตรฐานและทำให้ทำงานร่วมกันได้ เมื่อรูปแบบและ API ทั่วไปปรากฏขึ้น (เช่น ขนาดคีย์ การเติมข้อมูล padding และการจัดการใบรับรอง) ระบบของผู้ผลิตต่าง ๆ ก็สามารถทำงานร่วมกันได้
ความปฏิบัติได้นี้—มากกว่ารายละเอียดทางเทคนิคใด ๆ—ช่วยให้ RSA กลายเป็นบล็อกพื้นฐานเริ่มต้นสำหรับการสื่อสารและการค้าปลอดภัย
การเข้ารหัส RSA เป็นวิธีรักษาความลับเมื่อคุณรู้เพียงกุญแจสาธารณะของผู้รับ คุณสามารถเผยแพร่กุญแจสาธารณะอย่างกว้างขวาง และใครก็สามารถใช้เพื่อเข้ารหัสข้อมูลที่มีเพียงกุญแจส่วนตัวที่จับคู่เท่านั้นที่จะถอดได้
นั่นแก้ปัญหาปฏิบัติ: คุณไม่ต้องมีการประชุมลับหรือรหัสที่แชร์ไว้ล่วงหน้าก่อนเริ่มปกป้องข้อมูล
ถ้า RSA เข้ารหัสข้อมูลได้ ทำไมไม่ใช้กับทุกอย่าง—เช่น อีเมล รูปถ่าย หรือการส่งออกฐานข้อมูล? เพราะ RSA ใช้ทรัพยากรคำนวณมากและมีข้อจำกัดเรื่องขนาด: คุณเข้ารหัสข้อมูลได้เพียงความยาวหนึ่งเท่านั้น (ผูกกับขนาดคีย์) และทำซ้ำ ๆ จะช้ากว่าอัลกอริทึมสมมาตรสมัยใหม่
ความจริงนี้นำไปสู่รูปแบบสำคัญในคริปโตที่ใช้จริง: การเข้ารหัสแบบผสม
ในการออกแบบแบบผสม RSA ปกป้องความลับขนาดเล็ก และตัวเข้ารหัสสมมาตรถนอมข้อมูลจำนวนมาก:
การตัดสินใจออกแบบนี้เกี่ยวกับประสิทธิภาพและความปฏิบัติ: การเข้ารหัสสมมาตรเหมาะกับข้อมูลขนาดใหญ่ ขณะที่การเข้ารหัสกุญแจสาธารณะเหมาะกับการแลกเปลี่ยนคีย์อย่างปลอดภัย
หลายระบบสมัยใหม่ชอบวิธีแลกเปลี่ยนคีย์อื่น ๆ (โดยเฉพาะเวอร์ชัน Diffie–Hellman แบบชั่วคราวใน TLS) เพื่อความลับถอยหลังและประสิทธิภาพที่ดีกว่า
แต่โมเดลของ RSA—"กุญแจสาธารณะเพื่อปกป้องความลับเซสชัน และคริปโตสมมาตรสำหรับข้อมูล"—ได้วางแบบอย่างที่การสื่อสารปลอดภัยยังคงตามกันมา
ลายเซ็นดิจิทัลเทียบได้กับการประทับตราป้องกันการแก้ไขพร้อมกับการตรวจบัตรประจำตัวบนเอกสารออนไลน์ หากแม้แต่ตัวอักษรเดียวของข้อความที่ลงนามเปลี่ยน ลายเซ็นจะไม่ตรงอีกต่อไป และหากลายเซ็นตรวจสอบด้วยกุญแจสาธารณะของผู้ลงนามได้ คุณก็มีหลักฐานที่ชัดเจนว่าใครเป็นผู้อนุมัติ
มักสับสนเพราะทั้งสองมักมาในแพ็กเดียว แต่แก้ปัญหาคนละเรื่อง:
คุณสามารถลงนามข้อความที่ทุกคนอ่านได้ (เช่น ประกาศสาธารณะ) หรือเข้ารหัสโดยไม่ลงนาม (เป็นส่วนตัว แต่คุณไม่รู้ว่าใครส่งมา) หลายระบบทำทั้งสองอย่างพร้อมกัน
เมื่อ RSA ทำให้ลายเซ็นกุญแจสาธารณะใช้งานได้จริง ธุรกิจสามารถย้ายความเชื่อจากการโทรและเอกสารกระดาษไปสู่ข้อมูลที่ตรวจสอบได้:
คนมักพูดว่าลายเซ็นให้ non-repudiation—ป้องกันไม่ให้ผู้ลงนามปฏิเสธว่าตนลงนาม ในทางปฏิบัติ นี่คือเป้าหมาย ไม่ใช่การรับประกันเด็ดขาด การขโมยกุญแจ การใช้บัญชีร่วม ความปลอดภัยของอุปกรณ์ที่อ่อนแอ หรือแนวปฏิบัติที่ไม่ชัดเจนอาจทำให้การระบุแหล่งที่มายุ่งยาก
ลายเซ็นดิจิทัลเป็นหลักฐานที่มีพลัง แต่ความรับผิดชอบในโลกจริงต้องการการจัดการกุญแจที่ดี การบันทึกเหตุการณ์ และกระบวนการที่ชัดเจนด้วย
การเข้ารหัสแบบกุญแจสาธารณะฟังดูง่าย: เผยแพร่กุญแจสาธารณะ เก็บกุญแจส่วนตัวให้ลับ ปัญหายุ่งคือการตอบคำถามเดียวในระดับอินเทอร์เน็ตอย่างน่าเชื่อถือ: นี่คือกุญแจของใคร?
ถ้าผู้โจมตีสามารถแทรกกุญแจของตัวเองได้ การเข้ารหัสและลายเซ็นยังคง "ใช้งานได้"—แต่กับคนผิด
ใบรับรอง TLS เป็นเหมือนบัตรประจำตัวของเว็บไซต์ มันผูกชื่อโดเมน (เช่น example.com) กับกุญแจสาธารณะ พร้อมเมตาดาต้าเช่นองค์กร (สำหรับบางประเภทใบรับรอง) และวันหมดอายุ
เมื่อเบราว์เซอร์เชื่อมต่อผ่าน HTTPS เซิร์ฟเวอร์จะส่งใบรับรองนี้เพื่อให้เบราว์เซอร์ตรวจสอบว่ากำลังคุยกับโดเมนที่ถูกต้องก่อนตั้งการสื่อสารที่เข้ารหัส
เบราว์เซอร์ไม่ได้ "เชื่อถืออินเทอร์เน็ต" พวกมันเชื่อชุดของ Certificate Authorities (CAs) ที่คัดเลือกไว้ ซึ่งมี root certificates ติดตั้งไว้ล่วงหน้าในระบบปฏิบัติการหรือเบราว์เซอร์
เว็บไซต์ส่วนใหญ่ใช้เชน: ใบรับรองของไซต์ถูกลงนามโดย intermediate CA ซึ่งถูกลงนามโดย root CA ที่เชื่อถือได้ ถ้าลายเซ็นทุกชั้นถูกต้องและโดเมนตรง เบราว์เซอร์ยอมรับกุญแจสาธารณะว่าเป็นของไซต์นั้น
ใบรับรองมีวันหมดอายุ มักเป็นเดือน ดังนั้นทีมต้องต่ออายุและปรับใช้เป็นประจำ—บ่อยครั้งทำให้อัตโนมัติ
การเพิกถอนคือเบรกฉุกเฉิน: ถ้ากุญแจส่วนตัวรั่วหรือใบรับรองออกผิดพลาด มันสามารถเพิกถอน แต่ในความเป็นจริงการเพิกถอนไม่สมบูรณ์แบบ—การตรวจออนไลน์อาจล้มเหลว เพิ่มความหน่วง หรือละเลยได้ ดังนั้นอายุสั้นและการอัตโนมัติกลายเป็นกลยุทธ์ที่สำคัญทางปฏิบัติ
PKI ขยายความเชื่อถือ แต่ก็รวมศูนย์ความเชื่อถือไว้ด้วย หาก CA ทำผิดพลาด (ออกใบรับรองผิด) หรือถูกบุกรุก ผู้โจมตีอาจได้ใบรับรองที่ดูถูกต้อง
PKI ยังเพิ่มความซับซ้อนด้านการปฏิบัติการ: การควบคุมสินค้าคงคลังใบรับรอง, ท่อการต่ออายุ, การปกป้องกุญแจ และการตอบสนองต่อเหตุการณ์ มันไม่ใช่เรื่องน่าตื่นเต้น—แต่เป็นสิ่งที่ทำให้กุญแจสาธารณะใช้งานได้สำหรับคนทั่วไปและเบราว์เซอร์
RSA ทำให้ การเข้ารหัสแบบกุญแจสาธารณะใช้งานได้จริง: ใครก็สามารถใช้กุญแจสาธารณะเพื่อเข้ารหัสข้อมูลให้คุณ และคุณใช้กุญแจส่วนตัวเพื่อถอดรหัสได้ นอกจากนั้น RSA ยังรองรับ ลายเซ็นดิจิทัล ที่ช่วยให้ผู้อื่นตรวจสอบได้ว่าข้อมูลมาจากคุณจริงและไม่ได้ถูกดัดแปลง
การรวมกันนี้ (การเข้ารหัส + ลายเซ็น) เหมาะกับผลิตภัณฑ์จริงและสามารถมาตรฐานได้ จึงช่วยให้การใช้งานแพร่หลาย
การเข้ารหัสแบบสมมาตรเร็วและมีประสิทธิภาพ แต่ต้องการให้ทั้งสองฝ่ายแชร์ความลับเดียวกันล่วงหน้า
ที่ระดับอินเทอร์เน็ต ปัญหาที่ตามมาคือ:
การเข้ารหัสแบบกุญแจสาธารณะ (รวมถึง RSA) แก้ปัญหาการแจกจ่ายคีย์โดยอนุญาตให้เผยแพร่กุญแจสาธารณะอย่างเปิดเผย
การเข้ารหัสแบบผสม (hybrid encryption) คือรูปแบบปฏิบัติที่ การเข้ารหัสกุญแจสาธารณะปกป้องความลับขนาดเล็ก และ การเข้ารหัสแบบสมมาตรปกป้องข้อมูลจำนวนมาก
ลำดับทั่วไป:
เหตุผล: RSA ช้ากว่าและมีขนาดข้อมูลจำกัด ขณะที่การเข้ารหัสแบบสมมาตรออกแบบมาสำหรับข้อมูลขนาดใหญ่
การเข้ารหัสตอบคำถาม: "ใครอ่านได้บ้าง?"
ลายเซ็นดิจิทัลตอบคำถาม: "ใครอนุมัติสิ่งนี้ และมันถูกแก้ไขหรือไม่?"
ในการปฏิบัติ:
ใบรับรอง TLS เป็นเหมือนบัตรประชาชนของเว็บไซต์ มันผูกชื่อโดเมน (เช่น example.com) กับกุญแจสาธารณะ และมีเมตาดาต้าเช่นองค์กร (สำหรับบางประเภทใบรับรอง) และวันหมดอายุ
เมื่อเบราว์เซอร์เชื่อมต่อผ่าน HTTPS เซิร์ฟเวอร์จะยื่นใบรับรองนี้เพื่อให้เบราว์เซอร์ตรวจสอบว่าเชื่อมต่อกับโดเมนที่ถูกต้องก่อนเริ่มการสื่อสารเข้ารหัส
เบราว์เซอร์และระบบปฏิบัติการมาพร้อมกับชุดของ Root Certificate Authorities (CAs) ที่เชื่อถือได้ โดยปกติไซต์ต่าง ๆ จะใช้โครงสร้างเป็นชั้น:
ระหว่างการเชื่อมต่อ HTTPS เบราว์เซอร์จะตรวจ:
ใน TLS สมัยใหม่ การตกลงคีย์มักทำด้วย ephemeral Diffie–Hellman (ECDHE) แทนการขนส่งคีย์ด้วย RSA
สาเหตุหลัก: ความลับถอยหลัง (forward secrecy)
RSA ยังคงปรากฏใน TLS ในรูปแบบของใบรับรอง/ลายเซ็น แต่การจับมือส่วนใหญ่ย้ายไปใช้ ECDHE เพื่อความปลอดภัยที่ดีกว่า
ความผิดพลาดด้านปฏิบัติการที่พบบ่อยได้แก่:
คณิตศาสตร์อาจแข็งแรง แต่ระบบจริงล้มเหลวเพราะการจัดการกุญแจ การกำหนดค่า และการดูแลแพตช์
การจัดการกุญแจครอบคลุมวงจรชีวิตของกุญแจเข้ารหัส:
หากผู้โจมตีขโมยกุญแจส่วนตัว พวกเขาสามารถถอดรหัสข้อมูลหรือปลอมตัวเป็นบริการได้ ดังนั้นการควบคุมเชิงปฏิบัติการรอบกุญแจสำคัญเท่าหรือสำคัญกว่าตัวอัลกอริทึมเอง
สรุปว่าการเข้ารหัสช่วยปกป้อง การเชื่อมต่อและข้อความ ระหว่างฝ่ายที่ไม่ได้แชร์เครือข่ายส่วนตัว:
การเข้ารหัสไม่แก้ปัญหาการฉ้อโกงหรือข้อพิพาทโดยลำพัง—เรื่องเหล่านั้นต้องการการควบคุมด้านความเสี่ยง การบริการลูกค้า และกฎระเบียบ—แต่การเข้ารหัสทำให้กระบวนการชำระเงินยากขึ้นสำหรับผู้สกัดกั้นหรือแก้ไข
ถ้าตรวจผ่าน เบราว์เซอร์รับว่ากุญแจสาธารณะเป็นของโดเมนนั้นจริง