การโจมตีข้อความที่รู้จัก (KPA) เกิดขึ้นเมื่อฮากเกอร์ใช้คู่ของข้อมูลที่เข้ารหัสและไม่เข้ารหัสเพื่อค้นหาอัลกอริทึ่มการเข้ารหัสหรือกุญแจ
ในการโจมตีครั้งนี้แฮ็กเกอร์สามารถเข้าถึงทั้งข้อมูลที่เข้ารหัส (ciphertext) และเวอร์ชันที่ไม่ได้เข้ารหัสดั้งเดิม (ข้อความธรรมดา) โดยการเปรียบเทียบทั้งสอง ผู้โจมตีพยายามค้นหาวิธีการเข้ารหัสหรือคีย์
ตัวอย่างเช่น หากคำว่า "บล็อกเชน" ถูกเข้ารหัสเป็น "eorfnfkdlq"ทราบคู่นี้ สามารถช่วยให้ผู้โจมตีถอดรหัสส่วนอื่น ๆ ของข้อความที่ใช้กุญแจเดียวกัน นี้แสดงให้เห็นว่าในบางวิธีการเข้ารหัส แม้จะมีข้อมูลจำนวนเล็ก ๆ ก็สามารถช่วยในการทำลายการเข้ารหัส
การโจมตีนี้ใช้ประโยชน์จากจุดอ่อนใน เทคนิคการเข้ารหัสโดยให้ผู้โจมตีสามารถระบุรูปแบบหรือความสัมพันธ์ระหว่างข้อความปกติและข้อความที่เข้ารหัสได้ หากไม่มีการป้องกันอย่างเหมาะสม การโจมตีที่รู้จักข้อความปกติสามารถทำลายความปลอดภัยของระบบการเข้ารหัสได้
วิธีการที่สองที่ใช้กันอย่างแพร่หลายในการประยุกต์ใช้ข้อความที่เปิดเผยและข้อความที่เข้ารหัสคือการวิเคราะห์ความถี่และการจับคู่รูปแบบ:
ผู้โจมตีสามารถใช้คู่ที่รู้จักนี้เพื่อ "ทําวิศวกรรมย้อนกลับ" วิธีการเข้ารหัส แม้ว่าพวกเขาจะไม่ทราบคีย์หรืออัลกอริทึมที่แน่นอนในตอนแรกเพียงแค่เข้าถึงข้อความธรรมดาและข้อความเข้ารหัสคู่เดียวนี้ทําให้พวกเขาตั้งหลักเพื่อเริ่มถอดรหัสการเข้ารหัส
ดังนั้น จำนวนคู่ที่ผู้โจมตีมีมากขึ้น จะทำให้ง่ายขึ้นในการค้นหาวิธีการเข้ารหัสและกุญแจ ทำให้ง่ายมากขึ้นในการถอดรหัสข้อความอื่น ๆ ที่ถูกเข้ารหัสโดยใช้วิธีเดียวกัน
มาทําความเข้าใจว่าการโจมตีอาจทํางานอย่างไรโดยดําเนินการต่อตัวอย่างคู่ "blockchain" และ "eorfnfkdlq" ก่อนหน้านี้:
คุณรู้หรือไม่ว่า? วิธีเข้ารหัสซีซาร์เป็นชื่อตามสกุลของจูเลียสซีซาร์ที่ใช้สำหรับข้อความส่วนตัวของเขา
การโจมตีแบบเลือกข้อความปลายทางเกี่ยวข้องกับฝ่ายตรวจสอบการเลือกข้อความปลายทางและการวิเคราะห์ข้อความที่สอดคล้องกันในขณะที่การโจมตีแบบรู้ข้อความปลายทางเกิดขึ้นเมื่อผู้โจมตีมีความรู้บางส่วนเกี่ยวกับข้อความปลายทาง
ในคำจำกัดความที่เข้าใจง่าย ความแตกต่างสำคัญระหว่าง CPA และ KPA คือ:
การเข้าใจความแตกต่างเหล่านี้เป็นสิ่งสำคัญในการพัฒนาการป้องกันทางคริปโทกราฟีที่แข็งแกร่ง
คุณรู้หรือไม่?การขโมยข้อมูลสำหรับการเข้าถึงจะเป็นเทคนิคที่หลอกลวงที่ผู้บุกรุกหลอกลวงบุคคลให้เปิดเผยข้อมูลที่เป็นความลับ เช่น รหัสผ่าน โดยการประพจน์ว่าเป็นแหล่งที่เชื่อถือได้ ในขณะที่ข้อความปกติเพียงแค่หมายถึงข้อมูลหรือข้อความที่ไม่ได้เข้ารหัสและสามารถอ่านได้โดยใครก็ได้
เพื่อป้องกันการโจมตีแบบ known-plaintext ให้ใช้อัลกอริธึมการเข้ารหัสที่แข็งแกร่งจัดการคีย์การเข้ารหัสอย่างปลอดภัยใช้คีย์ที่ไม่ซ้ํากันต่อเซสชันและเพิ่มการสุ่มให้กับกระบวนการเข้ารหัสเพื่อเพิ่มการป้องกันการโจมตี
เลือกอัลกอริทึมการเข้ารหัสที่สามารถทนทานต่อการโจมตีข้อความรู้บางส่วนโดยใช้เทคนิคการเข้ารหัสที่แข็งแกร่ง. โดยการป้องกันรูปแบบในข้อความปลายทางจากการสัมพันธ์กับรูปแบบในข้อความที่เข้ารหัสทางการประเมินของวิธีการเข้ารหัสที่ทันสมัยเช่น Advanced Encryption Standard (AES) ทำให้สามารถรอดต่อการโจมตีเช่นนี้ได้ AES เป็นอัลกอริทึมการเข้ารหัสแบบสมมาตรที่ใช้งานอย่างแพร่หลายที่รู้จักดีเนื่องจากความปลอดภัยและประสิทธิภาพของมัน
จัดการคีย์การเข้ารหัสอย่างปลอดภัยเพื่อหลีกเลี่ยงการเข้าถึงที่ไม่ได้รับอนุญาต ใช้ที่เก็บคีย์ที่ปลอดภัย หมุนเวียนคีย์ของคุณบ่อยครั้งและใช้เทคนิคการสร้างคีย์ที่แข็งแกร่ง นอกจากนี้ หลีกเลี่ยงการเข้ารหัสชิ้นข้อมูลที่แยกต่างหากและที่คาดเดาได้ ในการหยุดผู้โจมตีจากการใช้คู่ที่รู้จัก เข้ารหัสข้อความหรือไฟล์ทั้งหมด
นอกจากนี้ให้ใช้คีย์ต่าง ๆ สำหรับเซสชันและโครงการต่าง ๆ ผลกระทบของการโจมตีแบบข้อความที่ทราบล่วงหน้าจะลดลงเนื่องจากทุกเซสชันจะใช้กุญแจเข้ารหัสที่แตกต่างกัน นอกจากนี้ยังคงรักษาเวอร์ชันล่าสุดของระบบ ไลบรารี และซอฟต์แวร์เข้ารหัสของคุณซ่อมแซมช่องโหว่ ถูกนำมาใช้บ่อยในการอัพเดท
ก่อนที่จะเข้ารหัสข้อความปกติของข้อมูล ให้เพิ่มเกลือเคริปโต (cryptographic salt) — ค่าสุ่ม — เข้าไป ซึ่งสิ่งนี้จะทำให้การเข้ารหัสแต่ละรายการเป็นเอกลักษณ์ แม้กระทั่งการเข้ารหัสข้อความปกติเดียวกันหลายครั้ง นอกจากนี้ ควรหลีกเลี่ยงวิธีการเข้ารหัสที่รู้ว่าชอบที่จะถูกโจมตีด้วยข้อความที่รู้จัก (known-plaintext attacks) ที่ถูกทราบไว้ กล่าวคือ ให้ดำเนินการวิจารณญาณที่ถูกต้องเมื่อเลือกวิธีการเข้ารหัส
การโจมตีข้อความที่รู้จัก (KPA) เกิดขึ้นเมื่อฮากเกอร์ใช้คู่ของข้อมูลที่เข้ารหัสและไม่เข้ารหัสเพื่อค้นหาอัลกอริทึ่มการเข้ารหัสหรือกุญแจ
ในการโจมตีครั้งนี้แฮ็กเกอร์สามารถเข้าถึงทั้งข้อมูลที่เข้ารหัส (ciphertext) และเวอร์ชันที่ไม่ได้เข้ารหัสดั้งเดิม (ข้อความธรรมดา) โดยการเปรียบเทียบทั้งสอง ผู้โจมตีพยายามค้นหาวิธีการเข้ารหัสหรือคีย์
ตัวอย่างเช่น หากคำว่า "บล็อกเชน" ถูกเข้ารหัสเป็น "eorfnfkdlq"ทราบคู่นี้ สามารถช่วยให้ผู้โจมตีถอดรหัสส่วนอื่น ๆ ของข้อความที่ใช้กุญแจเดียวกัน นี้แสดงให้เห็นว่าในบางวิธีการเข้ารหัส แม้จะมีข้อมูลจำนวนเล็ก ๆ ก็สามารถช่วยในการทำลายการเข้ารหัส
การโจมตีนี้ใช้ประโยชน์จากจุดอ่อนใน เทคนิคการเข้ารหัสโดยให้ผู้โจมตีสามารถระบุรูปแบบหรือความสัมพันธ์ระหว่างข้อความปกติและข้อความที่เข้ารหัสได้ หากไม่มีการป้องกันอย่างเหมาะสม การโจมตีที่รู้จักข้อความปกติสามารถทำลายความปลอดภัยของระบบการเข้ารหัสได้
วิธีการที่สองที่ใช้กันอย่างแพร่หลายในการประยุกต์ใช้ข้อความที่เปิดเผยและข้อความที่เข้ารหัสคือการวิเคราะห์ความถี่และการจับคู่รูปแบบ:
ผู้โจมตีสามารถใช้คู่ที่รู้จักนี้เพื่อ "ทําวิศวกรรมย้อนกลับ" วิธีการเข้ารหัส แม้ว่าพวกเขาจะไม่ทราบคีย์หรืออัลกอริทึมที่แน่นอนในตอนแรกเพียงแค่เข้าถึงข้อความธรรมดาและข้อความเข้ารหัสคู่เดียวนี้ทําให้พวกเขาตั้งหลักเพื่อเริ่มถอดรหัสการเข้ารหัส
ดังนั้น จำนวนคู่ที่ผู้โจมตีมีมากขึ้น จะทำให้ง่ายขึ้นในการค้นหาวิธีการเข้ารหัสและกุญแจ ทำให้ง่ายมากขึ้นในการถอดรหัสข้อความอื่น ๆ ที่ถูกเข้ารหัสโดยใช้วิธีเดียวกัน
มาทําความเข้าใจว่าการโจมตีอาจทํางานอย่างไรโดยดําเนินการต่อตัวอย่างคู่ "blockchain" และ "eorfnfkdlq" ก่อนหน้านี้:
คุณรู้หรือไม่ว่า? วิธีเข้ารหัสซีซาร์เป็นชื่อตามสกุลของจูเลียสซีซาร์ที่ใช้สำหรับข้อความส่วนตัวของเขา
การโจมตีแบบเลือกข้อความปลายทางเกี่ยวข้องกับฝ่ายตรวจสอบการเลือกข้อความปลายทางและการวิเคราะห์ข้อความที่สอดคล้องกันในขณะที่การโจมตีแบบรู้ข้อความปลายทางเกิดขึ้นเมื่อผู้โจมตีมีความรู้บางส่วนเกี่ยวกับข้อความปลายทาง
ในคำจำกัดความที่เข้าใจง่าย ความแตกต่างสำคัญระหว่าง CPA และ KPA คือ:
การเข้าใจความแตกต่างเหล่านี้เป็นสิ่งสำคัญในการพัฒนาการป้องกันทางคริปโทกราฟีที่แข็งแกร่ง
คุณรู้หรือไม่?การขโมยข้อมูลสำหรับการเข้าถึงจะเป็นเทคนิคที่หลอกลวงที่ผู้บุกรุกหลอกลวงบุคคลให้เปิดเผยข้อมูลที่เป็นความลับ เช่น รหัสผ่าน โดยการประพจน์ว่าเป็นแหล่งที่เชื่อถือได้ ในขณะที่ข้อความปกติเพียงแค่หมายถึงข้อมูลหรือข้อความที่ไม่ได้เข้ารหัสและสามารถอ่านได้โดยใครก็ได้
เพื่อป้องกันการโจมตีแบบ known-plaintext ให้ใช้อัลกอริธึมการเข้ารหัสที่แข็งแกร่งจัดการคีย์การเข้ารหัสอย่างปลอดภัยใช้คีย์ที่ไม่ซ้ํากันต่อเซสชันและเพิ่มการสุ่มให้กับกระบวนการเข้ารหัสเพื่อเพิ่มการป้องกันการโจมตี
เลือกอัลกอริทึมการเข้ารหัสที่สามารถทนทานต่อการโจมตีข้อความรู้บางส่วนโดยใช้เทคนิคการเข้ารหัสที่แข็งแกร่ง. โดยการป้องกันรูปแบบในข้อความปลายทางจากการสัมพันธ์กับรูปแบบในข้อความที่เข้ารหัสทางการประเมินของวิธีการเข้ารหัสที่ทันสมัยเช่น Advanced Encryption Standard (AES) ทำให้สามารถรอดต่อการโจมตีเช่นนี้ได้ AES เป็นอัลกอริทึมการเข้ารหัสแบบสมมาตรที่ใช้งานอย่างแพร่หลายที่รู้จักดีเนื่องจากความปลอดภัยและประสิทธิภาพของมัน
จัดการคีย์การเข้ารหัสอย่างปลอดภัยเพื่อหลีกเลี่ยงการเข้าถึงที่ไม่ได้รับอนุญาต ใช้ที่เก็บคีย์ที่ปลอดภัย หมุนเวียนคีย์ของคุณบ่อยครั้งและใช้เทคนิคการสร้างคีย์ที่แข็งแกร่ง นอกจากนี้ หลีกเลี่ยงการเข้ารหัสชิ้นข้อมูลที่แยกต่างหากและที่คาดเดาได้ ในการหยุดผู้โจมตีจากการใช้คู่ที่รู้จัก เข้ารหัสข้อความหรือไฟล์ทั้งหมด
นอกจากนี้ให้ใช้คีย์ต่าง ๆ สำหรับเซสชันและโครงการต่าง ๆ ผลกระทบของการโจมตีแบบข้อความที่ทราบล่วงหน้าจะลดลงเนื่องจากทุกเซสชันจะใช้กุญแจเข้ารหัสที่แตกต่างกัน นอกจากนี้ยังคงรักษาเวอร์ชันล่าสุดของระบบ ไลบรารี และซอฟต์แวร์เข้ารหัสของคุณซ่อมแซมช่องโหว่ ถูกนำมาใช้บ่อยในการอัพเดท
ก่อนที่จะเข้ารหัสข้อความปกติของข้อมูล ให้เพิ่มเกลือเคริปโต (cryptographic salt) — ค่าสุ่ม — เข้าไป ซึ่งสิ่งนี้จะทำให้การเข้ารหัสแต่ละรายการเป็นเอกลักษณ์ แม้กระทั่งการเข้ารหัสข้อความปกติเดียวกันหลายครั้ง นอกจากนี้ ควรหลีกเลี่ยงวิธีการเข้ารหัสที่รู้ว่าชอบที่จะถูกโจมตีด้วยข้อความที่รู้จัก (known-plaintext attacks) ที่ถูกทราบไว้ กล่าวคือ ให้ดำเนินการวิจารณญาณที่ถูกต้องเมื่อเลือกวิธีการเข้ารหัส