| ผู้เข้าสอบควรสามารถ: | หมายเหตุและคำแนะนำ |
|---|---|
| แสดงความเข้าใจ about วิธีที่ การเข้ารหัส ทำงาน | รวมถึงการใช้ public key, private key, plain text, cipher text, encryption, symmetric key cryptography และ asymmetric key cryptography การใช้คีย์เพื่อส่งข้อความส่วนตัวจากสาธารณะไปยังบุคคล/องค์กร如何使用คีย์เพื่อส่งข้อความที่ยืนยันแล้วสู่สาธารณะ วิธีการเข้ารหัสและถอดรหัสข้อมูล โดยใช้ symmetric และ asymmetric cryptography วัตถุประสงค์ ข้อดีและข้อเสียของ quantum cryptography |
| แสดงความตระหนักถึง Secure Socket Layer (SSL) / Transport Layer Security (TLS) | วัตถุประสงค์ของ SSL/TLS การใช้ SSL/TLS ในการสื่อสาร client-server สถานการณ์ที่เหมาะสมสำหรับการใช้ SSL/TLS |
| แสดงความเข้าใจ关于 การรับรองดิจิทัล (digital certification) | การได้รับ digital certificate การใช้งาน digital certificate ในการสร้าง digital signatures |
ความปลอดภัย
Computer Science A-Level · หัวข้อ 17
13:19
การเข้ารหัสทำงานอย่างไร
ดูที่ไอคอนลูกกุญแจในแถบที่อยู่ของเบราว์เซอร์ คุณพิมพ์ชื่อธนาคารของคุณแล้วบางทีแล็ปท็อปของคุณก็มั่นใจเลยว่ากำลังคุยกับธนาคารจริงๆ — และ…
การบรรยายภาษาอังกฤษ · คำบรรยายภาษาอังกฤษ + 中文 ลอยตัวบนภาพ
17.1
วิธีการเข้ารหัสทำงานอย่างไร
หลักสูตร
แหล่งที่มา: หลักสูตร Cambridge International
การเข้ารหัส เปลี่ยน plain text (ข้อความธรรมดา) ที่อ่านเข้าใจได้ให้เป็น ciphertext (ข้อความรหัส) ที่ไม่สามารถอ่านได้ โดยใช้การดำเนินการทางคณิตศาสตร์ที่ขึ้นอยู่กับ key คนเดียวที่มี key ที่ถูกต้องสามารถย้อนกลับได้ — การถอดรหัส — เพื่อรับ plain text กลับมา ผู้โจมตีที่ Intercept ciphertext โดยไม่มี key จะเห็นเพียงข้อมูลที่ไร้ความหมาย เพราะการลองทุก key ที่เป็นไปได้จะใช้เวลานานเกินกว่าจะทนได้ แนวคิดใหม่, quantum cryptography, ใช้ฟิสิกส์ควอนตัมในการแชร์ key ในวิธีที่เปิดเผยผู้ฟังผิด


การเข้ารหัสแบบสมมาตร
การเข้ารหัสแบบสมมาตร (การเข้ารหัสด้วยกุญแจสมมาตร) ใช้ กุญแจเดียวกัน ทั้งในการเข้ารหัสและการถอดรหัส ดังนั้นผู้ส่งและผู้รับจึงต้องถือกุญแจลับร่วมกัน เป็นวิธีที่ รวดเร็ว และเหมาะสำหรับ ข้อมูลจำนวนมาก (ดิสก์ทั้งอัน, สตรีมวิดีโอ) ปัญหาของวิธีนี้คือ การแจกจ่ายกุญแจ: จะแบ่งปันกุญแจอย่างปลอดภัยได้อย่างไรในเบื้องต้น? การเข้ารหัสแบบอสมมาตรแก้ปัญหานี้ได้
"อธิบายความหมายของการเข้ารหัสด้วยกุญแจสมมาตร" (2 คะแนน). ใช้กุญแจเดียวกันในการเข้ารหัสข้อความต้นและถอดรหัสข้อความที่เข้ารหัส ดังนั้นกุญแจจึงต้อง ถูกแบ่งปัน ระหว่างผู้ส่งและผู้รับ และรักษาไว้เป็น ความลับ จากผู้อื่นทั้งหมด ข้อเสีย 2 ข้อ กุญแจต้องถูก แลกเปลี่ยน ก่อนที่จะส่งข้อความได้ และหากถูกดักจับระหว่างทาง ผู้ดักจับสามารถอ่านข้อความได้ทุกฉบับ; ต้องใช้กุญแจแยกต่างหากสำหรับ ทุกคู่ ของผู้สื่อสาร; และไม่ให้หลักฐานว่า ใคร เป็นผู้ส่งข้อความ เนื่องจากทั้งสองฝ่ายถือกุญแจเดียวกัน "ให้เหตุผล 2 ประการสำหรับการใช้ระบบกุญแจ": เพื่อให้ข้อมูล ไม่สามารถอ่านได้ โดยผู้ใดที่ดักจับ (ความลับ); เพื่อให้ผู้รับมั่นใจว่าข้อมูลมาจากผู้ส่งที่อ้างถึงและไม่ถูก แก้ไขเปลี่ยนแปลง (ความถูกต้องของตัวตนและความสมบูรณ์) วิธีทั้งสองคือ การเข้ารหัสด้วยกุญแจสมมาตรและการเข้ารหัสด้วยกุญแจอสมมาตร

การเข้ารหัสแบบอสมมาตร (กุญแจสาธารณะ)
การเข้ารหัสแบบอสมมาตร (การเข้ารหัสด้วยกุญแจอสมมาตร) มอบ คู่ กุญแจที่เกี่ยวข้องให้กับผู้ใช้แต่ละคน: กุญแจสาธารณะ ที่เผยแพร่ และ กุญแจส่วนตัว ที่เก็บเป็นความลับ ข้อมูลที่เข้ารหัสด้วยกุญแจสาธารณะจะถอดรหัสได้ด้วย เฉพาะ กุญแจส่วนตัวที่ตรงกันเท่านั้น และในทางกลับกัน亦然

ในการส่งข้อความลับไปหาอลิซ:获取她的公开密钥,用它加密并发送。只有持有匹配私钥的——爱丽丝才能解密。无需预先交换密钥。代价是它比对称加密 慢得多,因此不用于大数据。
"ระบุว่าความหมายของกุญแจส่วนตัวคืออะไร" กุญแจที่เจ้าของรู้เพียงคนเดียว (ไม่เคยถูกส่งผ่าน), ใช้ถอดรหัสข้อมูลที่เข้ารหัสด้วยกุญแจสาธารณะที่ตรงกัน และสร้างลายเซ็นดิจิทัล "อธิบายกระบวนการเข้ารหัสแบบอสมมาตร" (4 คะแนน): (1) ผู้รับสร้าง คู่ กุญแจ, กุญแจสาธารณะและกุญแจส่วนตัว, ซึ่งสัมพันธ์กันทางคณิตศาสตร์; (2) กุญแจสาธารณะ ถูกทำให้เป็น公开โดยทุกคนที่ต้องการส่งข้อมูลถึงเธอ; (3) ผู้ส่ง เข้ารหัส ข้อความต้นด้วย กุญแจสาธารณะ ของผู้รับ; (4) ข้อความที่เข้ารหัสสามารถ ถอดรหัสได้ด้วยกุญแจส่วนตัวของผู้รับ เท่านั้น ซึ่งไม่ออกจากผู้รับเลย ดังนั้นไม่มีใครที่ดักจับข้อความสามารถอ่านได้
ตัวอย่างวิธีทำ. เฟรดต้องการส่งเอกสารลับให้ชีลา อธิบายวิธีการใช้การเข้ารหัสแบบอสมมาตร
Sheila มีคู่กุญแจ; เธอส่ง Fred public key ของเธอ (หรือ Fred obtains it from her certificate). Fred encrypts the document using Sheila's public key และส่ง ciphertext ไป. มีเพียง private key ของ Sheila เท่านั้นที่จะ decrypt ได้, และ她有那个 key, ดังนั้นไม่มีใครอื่น รวมถึง Fred หลัง encryption แล้ว สามารถอ่านเอกสารได้. กุญแจถูกใช้โดย receiver's way round: ใช้ public key ของเธอเพื่อ lock, ใช้ private key เพื่อ unlock. องค์กรที่มีคู่กุญแจ "to receive secure transmissions" จะทำอย่างนี้เป๊ะ: They publish the public key, keep the private key, และ decrypt incoming data.
ความแตกต่าง 2 ประการระหว่างการเข้ารหัสแบบสมมาตรและอสมมาตร. แบบสมมาตรใช้ หนึ่ง กุญแจสำหรับทั้งสองทิศทาง; แบบอสมมาตรใช้ สอง กุญแจที่เกี่ยวข้อง, หนึ่งสำหรับเข้ารหัสและอีกตัวสำหรับถอดรหัส ในการเข้ารหัสแบบสมมาตรกุญแจต้องถูก เก็บเป็นความลับโดยทั้งสองฝ่าย และแลกเปลี่ยนอย่างปลอดภัย; ในการเข้ารหัสแบบอสมมาตรกุญแจสาธารณะสามารถ เผยแพร่ ได้และเฉพาะกุญแจส่วนตัวที่เป็นความลับ การเข้ารหัสแบบสมมาตร เร็วมาก และเหมาะกับข้อมูลปริมาณมาก; แบบอสมมาตรช้ากว่า ดังนั้นจึงใช้กับกุญแจและลายเซ็นมากกว่าข้อมูลจำนวนมาก
กุญแจส่วนตัวต้องรักษาความลับไว้ ดังนั้นบางครั้งจึงเก็บไว้ใน ฮาร์ดแวร์เซฟตี้คีย์ ขนาดเล็ก คุณเสียบหรือแตะมันเพื่อยืนยันตัวตน และกุญแจลับจะไม่ออกจากอุปกรณ์

แนวทางผสม (Used by almost every real system)
ใช้การเข้ารหัสแบบอสมมาตรเพื่อแลกเปลี่ยน session key ใหม่, แล้วใช้ session key แบบสมมาตรนั้นสำหรับข้อมูล:
- Client สร้าง session key แบบสุ่ม
- เข้ารหัส session key ด้วยกุญแจสาธารณะของเซิร์ฟเวอร์
- เซิร์ฟเวอร์ถอดรหัสด้วยกุญแจส่วนตัวของตัวเอง
- ทั้งสองฝ่ายมี session key ร่วมกันและใช้การเข้ารหัสแบบสมมาตรที่รวดเร็วสำหรับส่วนที่เหลือ
นี่คือวิธีที่ HTTPS และ SSH ทำงาน
รูปแบบข้อสอบเกี่ยวกับปัญหาการแลกเปลี่ยนกุญแจ. "Gan symmetric key must be exchanged before sending message. อธิบายว่ากุญแจสามารถแลกเปลี่ยนได้อย่างปลอดภัยอย่างไร" ผู้ส่งเข้ารหัส กุญแจสมมาตร ด้วย กุญแจสาธารณะของผู้รับ และส่งไป; ผู้รับถอดรหัสด้วย กุญแจส่วนตัว ของพวกเขา; ทั้งสองตอนนี้มีกุญแจสมมาตร, ซึ่งไม่เคยถูกเปิดเผยระหว่างทาง, และ用它ส่งข้อความ การเข้ารหัสแบบอสมมาตรแก้ปัญหาการแจกจ่าย; การเข้ารหัสแบบสมมาตรทำงานด้านความเร็ว

Hashing (เกี่ยวข้องกับหัวข้อ แต่ไม่ใช่การเข้ารหัส)
ฟังก์ชัน cryptographic hash รับ input ใดๆ และให้ digest ขนาดคงที่ โดยที่ input เดิมจะให้ digest เดิมเสมอ, หา input สองตัวที่มี digest เหมือนกันไม่ได้ยากมาก, และการเปลี่ยนแปลงเล็กน้อยใน input เปลี่ยน digest ทั้งหมด. Hashing เป็น one-way — คุณไม่สามารถนำ input กลับมาได้. ใช้สำหรับการเก็บ password checks, integrity checks, และ digital signatures.

Quantum cryptography
Quantum cryptography ใช้ฟิสิกส์ของแสงในการแจกจ่ายกุญแจ: บิตของกุญแจถูกส่งเป็น photons ที่สถานะควอนตัมของพวกมันเข้ารหัสค่า. "อธิบายวัตถุประสงค์ของมัน": เพื่อส่ง encryption key อย่างปลอดภัย, โดยวิธีการที่任何 attempts intercepted จะถูก ตรวจจับได้, เพราะการวัด photon เปลี่ยนสถานะของมัน; eavesdropper ดังนั้นจึงทิ้งหลักฐานไว้, และกุญแจที่เสียหายจะถูกทิ้งและส่งใหม่. ข้อดี: การ intercept ถูกตรวจจับได้เสมอ; กุญแจไม่สามารถคัดลอกโดยไม่มีการเปลี่ยนแปลง; ปลอดภัยต่อการพัฒนาในอนาคตของกำลังประมวลผล (mathematical key อาจถูก break ได้ในที่สุด, quantum one ไม่สามารถอ่านได้โดยไม่รบกวนมัน). ข้อเสีย: ต้องใช้อุปกรณ์เฉพาะทาง, แพง; ทำงานได้เฉพาะในระยะ จำกัด บน dedicated optical fibre (หรือ line of sight), ไม่ใช่ผ่าน internet ปัจจุบัน; แจกจ่าย key เท่านั้น, ดังนั้น encryption ปกติยังปกป้องข้อความ; และเป็นเทคโนโลยี ใหม่ ที่มีผู้จัดจำหน่ายน้อยและประสบการณ์น้อย.
Hashing และ avalanche effect
Hash เป็น one-way: คำนวญง่าย,anking impossible to reverse. การเปลี่ยนแปลงเล็กน้อยใน input เปลี่ยนแปลงส่วนใหญ่ที่ไม่คาดคิดของ output — avalanche effect ที่ทำให้ hash ดีสำหรับรหัสผ่าน
凯撒密码
移动每个字母以加密消息。简单密码展示了 key 的概念——以及为什么小密钥容易被破解。
| English | ไทย |
|---|---|
| encryption/enˈkrɪpʃn/ | การเข้ารหัส |
| plaintext/ˈpleɪntekst/ | plaintext |
| ciphertext/ˈsaɪfətekst/ | ciphertext |
| decryption/dɪˈkrɪpʃn/ | การถอดรหัส |
| quantum cryptography/ˈkwɒntəm krɪpˈtɒɡrəfi/ | ควอนตัมคริปโตกราฟี |
| eavesdropper/ˈiːvzdrɒpə/ | ผู้ดักฟัง |
| symmetric encryption/sɪˈmetrɪk enˈkrɪpʃn/ | symmetric encryption |
| key distribution/kiː ˌdɪstrɪˈbjuːʃn/ | การแจกจ่ายกุญแจ |
| asymmetric encryption/ˌeɪsɪˈmetrɪk enˈkrɪpʃn/ | asymmetric encryption |
| integrity/ɪnˈteɡrɪti/ | ความถูกต้องสมบูรณ์ |
| public key/ˈpʌblɪk kiː/ | public key |
| private key/ˈpraɪvət kiː/ | กุญแจส่วนตัว |
| digital signature/ˈdɪdʒɪtl ˈsɪɡnɪtʃə/ | digital signature |
| hardware security key/ˈhɑːdweə sɪˈkjʊərɪti kiː/ | กุญแจความปลอดภัยฮาร์ดแวร์ |
| session key/ˈseʃn kiː/ | -session key.html |
| cryptographic hash/ˌkrɪptəˈɡræfɪk hæʃ/ | cryptographic hash function |
| digest/ˈdaɪdʒest/ | ไดเจสต์ |
17.1
SSL / TLS
TLS (Transport Layer Security, ตัวแทนของ Secure Socket Layer, SSL) เป็น protocol ที่ให้การ encrypt และ authenticate สำหรับข้อมูลที่ส่งผ่านเครือข่าย. มัน encrypt ข้อมูลขณะส่ง, authenticates เซิร์ฟเวอร์ด้วย certificate, และให้ integrity (ตรวจจับการดัดแปลง).
ร่าง handshake ของ TLS:
- client เชื่อมต่อและเสนอตัวเลือก cipher.
- server เลือกหนึ่งตัวและส่ง digital certificate ของมัน (พร้อม public key ของมัน) — การออกและตรวจสอบ certificates เหล่านี้คือ digital certification.
- client ตรวจสอบ certificate.
- ปลายทั้งสองแลกเปลี่ยน session key ใหม่ใช้ asymmetric crypto.
- การจราจรทั้งหมดต่อไปใช้ symmetric encryption ความเร็วสูงกับ session key.
ผลลัพธ์คือ tunnel ที่ encrypted, authenticated, integrity-checked สำหรับโปรโตคอลระดับสูงกว่า (HTTP, SMTP). เหมาะสมทุกที่ที่ ข้อมูลสำคัญ ถูกส่ง: การท่องเว็บ HTTPS, ธนาคารออนไลน์และการชำระเงิน, อีเมลปลอดภัย, และ VPNs.
"อธิบายวัตถุประสงค์ของ SSL/TLS" และ "ระบุหน้าที่สองอย่าง" วัตถุประสงค์คือเพื่อให้บริการ การสื่อสารที่ปลอดภัย ระหว่าง klien และเซิร์ฟเวอร์ผ่านเครือข่าย หน้าที่ของมันได้แก่: การ เข้ารหัส ข้อมูลที่ถูกส่งไป sehingga ไม่สามารถอ่านได้หากถูกดักจับ; การ ยืนยันตัวตน ของเซิร์ฟเวอร์ (และækจะรวม client) โดยใช้ใบรับรองดิจิทัล เพื่อให้ client รู้ว่ากำลังสื่อสารกับเว็บไซต์ที่แท้จริง; และการ ตรวจสอบความสมบูรณ์ ของข้อมูล เพื่อตรวจจับการเปลี่ยนแปลงระหว่างการเดินทาง ตัวอย่างสองอย่างที่เหมาะสมกับการใช้งานนี้คือ: ธนาคารออนไลน์ และ ช้อปปิ้งออนไลน์ (การชำระเงินด้วยบัตรเครดิต); รวมถึงการเข้าสู่ระบบ, อีเมลส่วนตัว, การถ่ายโอนไฟล์, VoIP และแชททันที: ทุกธุรกรรมที่ข้อมูลส่วนตัวต้องเดินทางผ่านอินเทอร์เน็ต
โปรโตคอลสองชนิดที่ประกอบขึ้นเป็น TLS. The handshake protocol ตั้งค่า session:它 agrees on encryption algorithms (cipher suite), authenticates server via certificate, และ exchange session key. จากนั้น record protocol จะส่งข้อมูล: It encrypts each message with session key, เพิ่ม integrity check,และส่งไปชั้น transport layer.
*วิธีการเริ่มต้น secure session: Certificate ยืนยันตัวตนของ server, Server's public key ปกป้อง session key ระหว่างการส่ง, และ Session key ปกป้องทุกอย่างหลังจากนั้น
"อธิบายวิธีการใช้ SSL/TLS เมื่อมีการเริ่มต้นการสื่อสารระหว่าง client–server" (หกคะแนน) (1) Client (browser) ส่งคำขอไปยัง server สำหรับ การเชื่อมต่อที่ปลอดภัย โดยระบุว่ารองรับวิธีเข้ารหัสใดบ้าง (2) Server ส่งกลับ ใบรับรองดิจิทัล ซึ่งประกอบด้วย public key ของมัน (3) Client ตรวจสอบใบรับรอง ว่าถูกต้อง (ออกโดย Certificate Authority ที่เชื่อถือได้, ไม่หมดอายุ, สำหรับโดเมนที่ถูกต้อง) (4) Client สร้าง session key, เข้ารหัสด้วย public key ของ server แล้วส่งไป (5) Server ถอดรหัส session key ด้วย private key ของมัน (6) ทั้งสองด้านมี session key ในมือแล้ว และข้อมูลทั้งหมดที่จะส่งต่อไปนี้จะใช้ symmetric encryption กับคือนั้น ให้ลำดับขั้นตอนตามนี้; คะแนนจะได้สำหรับ certificate, public key, session key และการเปลี่ยนไปใช้ symmetric encryption
การจับมือ TLS
พิจารณาสิ่งที่เกิดขึ้นก่อนที่ไอคอนลูกกุญแจจะปรากฏ การเข้ารหัสแบบคีย์สาธารณะซึ่งใช้เวลานาน จะถูกใช้เพื่อตกลงกันถึงคีย์ร่วมกันเท่านั้น ส่วนเนื้อหาหน้าเว็บจริงจะถูกส่งผ่านด้วยการเข้ารหัสแบบสมมาตรที่รวดเร็ว
| English | ไทย |
|---|---|
| TLS/ˌtiː el ˈes/ | TLS |
| authenticates/ɔːˈθentɪkeɪts/ | ยืนยันตัวตน |
| handshake/ˈhændʃeɪk/ | การจับมือ |
| digital certificate/ˈdɪdʒɪtl səˈtɪfɪkət/ | ใบรับรองดิจิทัล |
| Certificate Authority/səˈtɪfɪkət əˈθɒrɪti/ | Authority of Certificate |
17.1
ใบรับรองดิจิทัล
A digital certificate ผูก identity (domain, organization) เข้ากับ public key, และเซ็นโดย trusted Certificate Authority (CA). มันมี subject (who it identifies), public key ของ subject, issuer (CA), ระยะเวลา validity, และลายเซ็นของ CA ครอบคลุมทุกส่วน
*Certificate Authority ออก digital certificate ที่ผูก identity เข้ากับ public key
สำหรับการตรวจสอบหนึ่งรายการ CLIENT (ซึ่งมีรายการ CA รากที่เชื่อถือได้):
- ตรวจสอบวันหมดอายุ
- ตรวจสอบว่าชื่อผู้รับมอบหมายตรงตาม URL
- ตรวจสอบว่าเป็น ลายเซ็นจาก CA ที่เชื่อถือได้ โดยใช้คีย์สาธารณะของ CA เพื่อตรวจสอบลายเซ็น
- ติดตามสายโซ่ใบรับรองขึ้นไปยังรากที่เชื่อถือได้
หากสิ่งใดสิ่งหนึ่งล้มเหลว เบราว์เซอร์จะแสดงคำเตือน "การเชื่อมต่อของคุณไม่ปลอดภัย" เมื่อตรวจสอบผ่านอย่างสมบูรณ์ CLIENT จะทราบว่ามีตัวตนได้รับการตรวจสอบโดย CA ที่เชื่อถือได้ คีย์สาธารณะนั้นเป็นของตัวตนจริง และใบรับรองยังมีผลอยู่
"อธิบายความหมายของใบรับรองดิจิทัล" (สองคะแนน) เอกสารอิเล็กทรอนิกส์ที่ออกโดย CA เพื่อยืนยันตัวตนของผู้ถือ (บุคคล องค์กร หรือเว็บไซต์) และประกอบด้วยคีย์สาธารณะของผู้ถือ สิ่งที่พบในหนึ่งรายการ: เลขอนุกรม; ชื่อผู้ถือ (ผู้รับมอบหมาย) และ สำหรับเว็บไซต์คือโดเมน; คีย์สาธารณะ ของผู้ถือ; ชื่อของ CAผู้ออก; ระยะเวลาที่มีผล (วันที่); อัลกอริทึม ลายเซ็นที่ใช้; และ ลายเซ็นดิจิทัลของ CA ทั้งฉบับ
"อธิบายวิธีการที่องค์กรได้รับใบรับรองดิจิทัล" (สี่คะแนน) (1) องค์กรสร้าง คู่คีย์ ของตนเอง คือคีย์สาธารณะและคีย์ส่วนตัว (2) ส่ง คำขอ ที่มีคีย์สาธารณะและ รายละเอียดตัวตน ไปยัง CA (3) CA ตรวจสอบตัวตน (ตรวจสอบว่าผู้สมัครเป็นองค์กรจริงหรือเป็นเจ้าของโดเมน) (4) CA สร้างใบรับรองที่มีคีย์สาธารณะและตัวตน ลายเซ็นด้วยคีย์ส่วนตัวของ CA และส่งกลับ (5) องค์กรติดตั้งใบรับรองบนเซิร์ฟเวอร์เพื่อส่งให้ CLIENT ได้ คีย์ส่วนตัวจะไม่ออกจากองค์กร
"อธิบายเหตุผลที่ต้องใช้ใบรับรองดิจิทัลเพื่อยืนยันลายเซ็นดิจิทัล" เพื่อตรวจสอบลายเซ็น ผู้รับต้องการ คีย์สาธารณะ ของผู้ส่ง และต้องมั่นใจว่าคีย์นั้นเป็นของ ผู้ส่งที่อ้างถึง จริงๆ; ใบรับรองให้คีย์สาธารณะพร้อมกับตัวตน และเนื่องจากใบรับรองนี้ ลงลายมือชื่อโดย CA ที่เชื่อถือได้ ผู้รับจึงเชื่อถือการจับคู่นี้ได้ หากไม่มีสิ่งนี้ คนปลอมแปลงสามารถเผยแพร่คีย์สาธารณะในชื่อผู้อื่นและลงลายมือชื่อข้อความแทน mereka. เหตุผลเดียวกันนี้ตอบคำถาม "ควรรวมอะไรกับโปรแกรมที่ดาวน์โหลดจากอินเทอร์เน็ตเพื่อยืนยันความถูกต้อง": ลายเซ็นดิจิทัล ที่ตรวจสอบเทียบกับใบรับรองของผู้จัดจำหน่าย
17.1
ลายเซ็นดิจิทัล
ลายเซ็นดิจิทัลพิสูจน์ว่าใครลงลายมือชื่อข้อความ และ ว่าข้อความไม่ถูกแก้ไข
- คำนวณค่าแฮชแบบCODEX ของข้อความ
- เข้ารหัสค่าแฮชด้วยคีย์ส่วนตัวของผู้ส่ง — นั่นคือลายเซ็น
- ส่งข้อความและลายเซ็น
เพื่อการตรวจสอบ: คำนวณค่าแฮชของข้อความที่ได้รับ; ถอดรหัสลายเซ็นด้วยคีย์สาธารณะของผู้ส่ง เพื่อให้ได้ค่าแฮชของผู้ส่ง; เปรียบเทียบ หากตรงกัน หมายความว่าข้อความนั้นลงลายมือชื่อโดยผู้ถือคีย์ส่วนตัว (การยืนยันตัวตน) และไม่ถูกแก้ไข (ความสมบูรณ์) ลายเซ็นไม่ได้ ซ่อน ข้อความ — เพื่อความปลอดภัยด้วย ต้อง เข้ารหัสและลงลายมือชื่อ
*การทำลายเซ็นคือการแฮชข้อความและเข้ารหัสไดเจสต์ด้วยคีย์ส่วนตัว; ผู้รับตรวจสอบด้วยคีย์สาธารณะ
"อธิบายบทบาทของใบรับรองดิจิทัลในการสร้างลายเซ็นดิจิทัล" (สามคะแนน) ใบรับรองของผู้ส่งออกโดย CA และมี คีย์สาธารณะ ของผู้ส่งพร้อมกับตัวตนของผู้ส่ง; ผู้สร้างลายเซ็นโดยการ แฮช ข้อความและ เข้ารหัสค่าแฮชด้วยคีย์ส่วนตัวของตน ซึ่งเป็นคู่ของคีย์ในใบรับรอง; ผู้รับใช้ คีย์สาธารณะจากใบรับรอง เพื่อถอดรหัสค่าแฮช และเนื่องจากใบรับรองจับคู่อัตลักษณ์คีย์นี้กับผู้ส่ง ลายเซ็นจึงพิสูจน์ได้ว่า ใคร ลงลายมือชื่อ
"อธิบายการใช้ลายเซ็นดิจิทัลเพื่อยืนยันข้อความ" (สี่คะแนน) (1) ผู้รับ ถอดรหัสลายเซ็น ด้วย คีย์สาธารณะ ของผู้ส่ง (มาจากใบรับรองของผู้ส่ง) ซึ่งจะได้ค่าแฮชที่ผู้ส่งคำนวณมา (2) ผู้รับ แฮชข้อความที่ได้รับ ด้วยอัลกอริทึมแฮชเดียวกัน (3) ค่าแฮชทั้งสอง เปรียบเทียบ (4) หาก ตรงกัน หมายความว่าข้อความมาจากผู้ถือคีย์ส่วนตัว (ถูกต้องตามความเป็นจริง) และ ไม่มีการเปลี่ยนแปลง sejakลงลายมือชื่อ (ความสมบูรณ์); หากไม่ตรงกัน ข้อความจะถูกปฏิเสธ นักธนาคารwhoรับข้อมูลที่เป็นความลับพร้อมลายเซ็นจะดำเนินการเช่นนี้ก่อนเชื่อถือข้อมูลนั้น; ตัวข้อมูลเองอาจถูกรหัสด้วยคีย์สาธารณะของนักธนาคารเพื่อความปลอดภัยแยกต่างหาก
การประกอบเข้าด้วยกัน
คำขอที่ปลอดภัยไปยัง https://www.bank.com: เซิร์ฟเวอร์ส่งใบรับรอง; CLIENT ตรวจสอบกับ CA ที่เชื่อถือได้; CLIENT ใช้คีย์สาธารณะของเซิร์ฟเวอร์เพื่อแลกเปลี่ยน session key; จากนั้นข้อมูลไหลด้วยการเข้ารหัสด้วยคีย์นั้น การเข้ารหัสหยุดผู้ดักฟัง ใบรับรองพิสูจน์ตัวตนเซิร์ฟเวอร์ และการตรวจสอบความสมบูรณ์หยุด Man-in-the-middle ที่เปลี่ยนข้อมูล
Worked example. Alice ส่ง Bob สัญญา. เธอต้องการให้ Bobมั่นใจว่ามาจากเธอและไม่ถูกแก้ไข, และ เธอก็ต้องการไม่ให้ใครอื่นอ่านได้. เธอใช้กุญแจไหน และทิศทางไหน? นี่คือสองงานที่ต้องใช้คู่กุญแจคนละชุด. สำหรับ signature (authentication และ integrity): Alice hash สัญญาแล้ว encrypt hash นั้นด้วย private key ของเธอเอง; Bob decrypt ด้วย Alice's public key และ compare กับ hash ของเขาส่ง itself. มีเพียง Alice เท่านั้นที่มี private key, ดังนั้นมีเพียงเธอเท่านั้นที่ผลิตได้. สำหรับ confidentiality: Alice encrypt ตัวสัญญาด้วย Bob's public key, เพื่อให้มีเพียง Bob's private key เท่านั้นที่เปิดได้. กฎเดียวที่ใช้แยกแยะทั้งสี่อย่างได้很清楚: คุณ sign ด้วย private key ของคุณเอง และ encrypt ด้วย public key ของผู้รับ. Signature เอง not ซ่อนข้อความ
| English | ไทย |
|---|---|
| authentication/ɔːˌθentɪˈkeɪʃn/ | authentication |
| man-in-the-middle/mæn ɪnðə ˈmɪdl/ | man-in-the-middle |
17.1
คำนิยามที่ผู้สอบยอมรับ
คำถามคำนิยามจะให้คะแนนตามข้อความที่กำหนดไว้你必须 exact. เรียนรู้ให้ถูกต้องและตอบเพียงคำตอบเดียวเท่านั้น
| พจน์ | นิยาม |
|---|---|
| การเข้ารหัส | การแปลงข้อความplainwordเป็น ciphertext โดยใช้อัลกอริทึมและกุญแจเพื่อให้ไม่สามารถอ่านได้หากถูกดักจับ |
| plaintext / ciphertext | ข้อมูลต้นฉบับที่อ่านได้ / รูปแบบที่ถูกเข้ารหัสซึ่งอ่านไม่ได้ |
| การเข้ารหัสกุญแจสมมาตร | ใช้กุญแจลับเดียวกันในการเข้ารหัสและการถอดรหัส ดังนั้นจึงต้องแบ่งปันอย่างปลอดภัยโดยทั้งสองฝ่าย |
| การเข้ารหัสกุญแจอสมมาตร | ใช้คู่กุญแจที่เกี่ยวข้องกัน: กุญแจสาธารณะใช้เข้ารหัสและเฉพาะกุญแจส่วนตัวที่ตรงกันเท่านั้นที่จะถอดรหัสได้ |
| กุญแจสาธารณะ | กุญแจที่เปิดเผยต่อทุกคน ใช้เพื่อเข้ารหัสข้อความถึงเจ้าของและเพื่อยืนยันลายเซ็นของเจ้าของ |
| กุญแจส่วนตัว | กุญแจที่只知道โดยเจ้าของเท่านั้น ใช้เพื่อถอดรหัสข้อความที่เข้ารหัสด้วยกุญแจสาธารณะและเพื่อเซ็น |
| SSL/TLS | โปรโตคอลที่ให้บริการสื่อสารที่ปลอดภัย (เข้ารหัส ยืนยันตัวตน ตรวจสอบความสมบูรณ์) ระหว่าง klien กับเซิร์ฟเวอร์ |
| ใบรับรองดิจิทัล | เอกสารอิเล็กทรอนิกส์ที่ออกโดย Certificate Authority เพื่อยืนยันตัวตนของเจ้าของและประกอบด้วยกุญแจสาธารณะ שלה |
| ลายเซ็นดิจิทัล | แฮชของข้อความที่เข้ารหัสด้วยกุญแจส่วนตัวของผู้ส่ง ซึ่งพิสูจน์ว่าใครเป็นผู้ส่งและว่าไม่มีการเปลี่ยนแปลง |
| Certificate Authority | องค์กรที่เชื่อถือได้ที่ยืนยันตัวตนและออกและเซ็นใบรับรองดิจิทัล |
| การเข้ารหัสควอนตัม | การใช้สถานะควอนตัมของโฟตอนเพื่อแจกจ่ายกุญแจ使得ว่าทุกการดักจับจะถูกตรวจจับ |
17.1
ข้อแนะนำสำหรับการสอบ
- Symmetric: ใช้ shared secret key เดียว, เร็ว, แต่ key exchange เป็นจุดอ่อน. Asymmetric: ใช้ public key เพื่อ encrypt, private key เพื่อ decrypt, ช้า, ไม่มีปัญหา exchange. ความแตกต่างสองจุด, ข้อเสียสองอย่าง, เหตุผลสองประการ: การสอบถามหาเป็นคู่
- Confidentiality ใช้ receiver's keys (public เพื่อ lock, private เพื่อ unlock); Signature ใช้ sender's keys (private เพื่อ sign, public เพื่อ check). ต้องระบุเสมอว่าเป็นกุญแจของใคร
- การเริ่มต้น TLS มี 6 ขั้นตอน: การขอ, ใบรับรองพร้อมคีย์สาธารณะ, การตรวจสอบ, คีย์-session ที่เข้ารหัสด้วยคีย์สาธารณะ, การถอดรหัสด้วยคีย์ส่วนตัว, และการเข้ารหัสแบบสมมาตรตั้งแต่ตอนนี้ไปข้างหน้า
- ใบรับรองคือตัวตนบวกกับคีย์สาธารณะ, ซึ่งลงนามโดย CA; กระบวนการรับคือ การสร้างคู่คีย์, การขอ, การตรวจสอบ, การลงนาม, และการติดตั้ง จำเป็นต้องใช้เพื่อยืนยันลายเซ็นเนื่องจากเป็นการพิสูจน์ว่าคีย์สาธารณะนั้นเป็นของใคร
- ลายเซ็นคือการแฮชที่เข้ารหัสด้วยคีย์ส่วนตัว; การตรวจสอบคือการถอดรหัส, ทำแฮชซ้ำ, และเปรียบเทียบ ความสมบูรณ์และความเป็นเจ้าของจริงคือสองสิ่งที่มันพิสูจน์ได้
- คRYPTOGRAPHY แบบควอนตัมกระจายคีย์และตรวจจับการดักฟัง; ข้อจำกัดของมันคือต้นทุน ระยะทาง และความใหม่
ข้อผิดพลาดที่พบบ่อย
- การบอกว่าข้อความถูกเข้ารหัสด้วยคีย์สาธารณะของผู้ส่ง: คีย์สาธารณะของผู้รับทำการเข้ารหัส และคีย์ส่วนตัวของผู้รับทำการถอดรหัส
- การอธิบายลายเซ็นว่าเป็น "การเข้ารหัสข้อความด้วยคีย์ส่วนตัว" แทนที่จะเป็นการเข้ารหัสค่าแฮชของมัน
- การอ้างว่าใบรับรองมีคีย์ส่วนตัว: มันเก็บคีย์สาธารณะและตัวตนไว้ และลงนามโดย CA
- การระบุว่า "เซิร์ฟเวอร์ส่งคีย์ส่วนตัว" ในกระบวนการจับมือ TLS; มีเพียงคีย์สาธารณะเท่านั้นที่ถูกส่งภายในใบรับรอง
- การให้ "SSL/TLS ทำให้การเชื่อมต่อเร็วขึ้น" เป็นหน้าที่; หน้าที่ของมันคือ การเข้ารหัส การยืนยันตัวตน และความสมบูรณ์
- สับสนระหว่าง hashing กับ encryption: hash ไม่สามารถย้อนกลับได้และไม่มี key; ส่วน encryption สามารถย้อนกลับได้ด้วย key
- การตอบคำถามว่า "ทำไมจึงต้องมี certificate สำหรับ signature" ว่า "เพื่อเข้ารหัสข้อมูล"; จริงๆ แล้วใช้เพื่อยืนยันความน่าเชื่อถือของ public key
บทเรียนเชิงโต้ตอบสำหรับหัวข้อนี้
ทำทีละขั้นตอน พร้อมแบบฝึกหัดตรวจสอบผลทันที