การโจมตี Cryptosystems
ในยุคปัจจุบันไม่เพียง แต่ธุรกิจ แต่เกือบทุกแง่มุมของชีวิตมนุษย์ล้วนขับเคลื่อนด้วยข้อมูล ดังนั้นจึงมีความจำเป็นที่จะต้องปกป้องข้อมูลที่เป็นประโยชน์จากกิจกรรมที่เป็นอันตรายเช่นการโจมตี ให้เราพิจารณาประเภทของการโจมตีที่ข้อมูลมักถูกโจมตี
โดยทั่วไปการโจมตีจะแบ่งตามการกระทำของผู้โจมตี ดังนั้นการโจมตีสามารถpassive หรือ active.
การโจมตีแบบพาสซีฟ
เป้าหมายหลักของการโจมตีแบบพาสซีฟคือการได้รับ unauthorized access to the information. ตัวอย่างเช่นการดำเนินการเช่นการดักฟังและการดักฟังในช่องทางการสื่อสารถือได้ว่าเป็นการโจมตีแบบพาสซีฟ
การกระทำเหล่านี้เป็นไปตามธรรมชาติเนื่องจากไม่ส่งผลกระทบต่อข้อมูลหรือรบกวนช่องทางการสื่อสาร การโจมตีแฝงมักถูกมองว่าเป็นการขโมยข้อมูล ความแตกต่างเพียงอย่างเดียวในการขโมยสินค้าที่จับต้องได้และการขโมยข้อมูลก็คือการขโมยข้อมูลยังคงทำให้เจ้าของครอบครองข้อมูลนั้นได้ การโจมตีข้อมูลแบบพาสซีฟจึงเป็นอันตรายมากกว่าการขโมยสินค้าเนื่องจากการขโมยข้อมูลอาจไม่มีใครสังเกตเห็นโดยเจ้าของ
การโจมตีที่ใช้งานอยู่
การโจมตีที่ใช้งานอยู่เกี่ยวข้องกับการเปลี่ยนแปลงข้อมูลไม่ทางใดก็ทางหนึ่งโดยการดำเนินการบางอย่างกับข้อมูล ตัวอย่างเช่น,
การแก้ไขข้อมูลในลักษณะที่ไม่ได้รับอนุญาต
การเริ่มต้นการส่งข้อมูลโดยไม่ได้ตั้งใจหรือไม่ได้รับอนุญาต
การแก้ไขข้อมูลการรับรองความถูกต้องเช่นชื่อผู้เริ่มต้นหรือการประทับเวลาที่เกี่ยวข้องกับข้อมูล
การลบข้อมูลโดยไม่ได้รับอนุญาต
การปฏิเสธการเข้าถึงข้อมูลสำหรับผู้ใช้ที่ถูกต้องตามกฎหมาย (การปฏิเสธการให้บริการ)
การเข้ารหัสมีเครื่องมือและเทคนิคมากมายสำหรับการใช้ระบบเข้ารหัสที่สามารถป้องกันการโจมตีส่วนใหญ่ที่อธิบายไว้ข้างต้น
สมมติฐานของผู้โจมตี
ให้เราดูสภาพแวดล้อมที่แพร่หลายรอบ ๆ ระบบเข้ารหัสตามด้วยประเภทของการโจมตีที่ใช้เพื่อทำลายระบบเหล่านี้ -
สภาพแวดล้อมรอบ ๆ Cryptosystem
ในขณะที่พิจารณาการโจมตีที่เป็นไปได้ในระบบเข้ารหัสนั้นจำเป็นต้องทราบสภาพแวดล้อมของระบบเข้ารหัส สมมติฐานของผู้โจมตีและความรู้เกี่ยวกับสิ่งแวดล้อมจะตัดสินความสามารถของเขา
ในการเข้ารหัสมีสมมติฐานสามข้อต่อไปนี้เกี่ยวกับสภาพแวดล้อมการรักษาความปลอดภัยและความสามารถของผู้โจมตี
รายละเอียดของโครงการเข้ารหัส
การออกแบบระบบเข้ารหัสขึ้นอยู่กับอัลกอริทึมการเข้ารหัสสองแบบต่อไปนี้ -
Public Algorithms - ด้วยตัวเลือกนี้รายละเอียดทั้งหมดของอัลกอริทึมจะอยู่ในสาธารณสมบัติที่ทุกคนรู้จัก
Proprietary algorithms - รายละเอียดของอัลกอริทึมเป็นที่รู้จักโดยผู้ออกแบบและผู้ใช้ระบบเท่านั้น
ในกรณีของอัลกอริธึมที่เป็นกรรมสิทธิ์จะมีการรักษาความปลอดภัยผ่านการปิดบัง อัลกอริทึมส่วนตัวอาจไม่ใช่อัลกอริทึมที่แข็งแกร่งที่สุดเนื่องจากได้รับการพัฒนาขึ้นเองและอาจไม่ได้รับการตรวจสอบจุดอ่อนอย่างครอบคลุม
ประการที่สองอนุญาตให้มีการสื่อสารระหว่างกลุ่มปิดเท่านั้น ดังนั้นจึงไม่เหมาะสำหรับการสื่อสารสมัยใหม่ที่ผู้คนสื่อสารกับหน่วยงานที่รู้จักหรือไม่รู้จักจำนวนมาก นอกจากนี้ตามหลักการ Kerckhoff ของอัลกอริทึมที่เป็นที่ต้องการจะเป็นประชาชนที่มีความแรงของการเข้ารหัสโกหกในที่สำคัญ
ดังนั้นสมมติฐานแรกเกี่ยวกับสภาพแวดล้อมความปลอดภัยคือไฟล์ encryption algorithm is known to the attacker.
ความพร้อมใช้งานของ Ciphertext
เราทราบดีว่าเมื่อมีการเข้ารหัสข้อความธรรมดาเป็น ciphertext แล้วข้อความนั้นจะถูกใส่ไว้ในช่องสาธารณะที่ไม่ปลอดภัย (เช่นอีเมล) สำหรับการส่ง ดังนั้นผู้โจมตีสามารถสันนิษฐานได้อย่างชัดเจนว่ามีaccess to the ciphertext generated by the cryptosystem.
ความพร้อมใช้งานของ Plaintext และ Ciphertext
ข้อสันนิษฐานนี้ไม่ชัดเจนเท่ากับข้อสันนิษฐานอื่น ๆ อย่างไรก็ตามอาจมีสถานการณ์ที่ผู้โจมตีสามารถมีได้access to plaintext and corresponding ciphertext. สถานการณ์ที่เป็นไปได้บางประการ ได้แก่ -
ผู้โจมตีมีอิทธิพลต่อผู้ส่งในการแปลงข้อความธรรมดาตามที่ตนเลือกและได้รับไซเฟอร์เท็กซ์
ผู้รับอาจเปิดเผยข้อความธรรมดาแก่ผู้โจมตีโดยไม่ได้ตั้งใจ ผู้โจมตีสามารถเข้าถึง ciphertext ที่เกี่ยวข้องที่รวบรวมจากช่องทางเปิด
ในระบบเข้ารหัสคีย์สาธารณะคีย์การเข้ารหัสจะอยู่ในโดเมนเปิดและเป็นที่รู้จักของผู้โจมตีที่มีศักยภาพ การใช้คีย์นี้เขาสามารถสร้างคู่ของข้อความธรรมดาและการเข้ารหัสที่สอดคล้องกัน
การโจมตีด้วยการเข้ารหัส
ความตั้งใจพื้นฐานของผู้โจมตีคือทำลายระบบเข้ารหัสและค้นหาข้อความธรรมดาจากไซเฟอร์เท็กซ์ ในการรับข้อความธรรมดาผู้โจมตีจะต้องค้นหาคีย์การถอดรหัสลับเท่านั้นเนื่องจากอัลกอริทึมเป็นสาธารณสมบัติแล้ว
ดังนั้นเขาจึงใช้ความพยายามอย่างเต็มที่ในการค้นหาคีย์ลับที่ใช้ในระบบเข้ารหัส เมื่อผู้โจมตีสามารถที่จะตรวจสอบที่สำคัญระบบการโจมตีถือว่าเป็นเสียหรือถูกบุกรุก
ตามวิธีการที่ใช้การโจมตีบนระบบเข้ารหัสแบ่งออกเป็นดังนี้ -
Ciphertext Only Attacks (COA)- ในวิธีนี้ผู้โจมตีสามารถเข้าถึงชุดของการเข้ารหัสได้ เขาไม่สามารถเข้าถึงข้อความธรรมดาที่เกี่ยวข้องได้ กล่าวว่า COA จะประสบความสำเร็จเมื่อสามารถกำหนดข้อความธรรมดาที่สอดคล้องกันได้จากชุดของการเข้ารหัสที่กำหนด ในบางครั้งคีย์การเข้ารหัสสามารถกำหนดได้จากการโจมตีนี้ ระบบเข้ารหัสสมัยใหม่ได้รับการปกป้องจากการโจมตีแบบเข้ารหัสเท่านั้น
Known Plaintext Attack (KPA)- ในวิธีนี้ผู้โจมตีจะรู้ข้อความธรรมดาสำหรับบางส่วนของไซเฟอร์เท็กซ์ ภารกิจคือการถอดรหัสรหัสลับส่วนที่เหลือโดยใช้ข้อมูลนี้ ซึ่งอาจทำได้โดยการกำหนดคีย์หรือวิธีอื่น ๆ ตัวอย่างที่ดีที่สุดของการโจมตีนี้คือการเข้ารหัสเชิงเส้นกับการเข้ารหัสบล็อก
Chosen Plaintext Attack (CPA)- ในวิธีนี้ผู้โจมตีจะเข้ารหัสข้อความที่ตนเลือกไว้ ดังนั้นเขาจึงมีคู่ ciphertext-plaintext ที่เขาเลือก สิ่งนี้ทำให้งานของเขาง่ายขึ้นในการกำหนดคีย์เข้ารหัส ตัวอย่างของการโจมตีนี้คือการเข้ารหัสแบบดิฟเฟอเรนเชียลที่ใช้กับบล็อกไซเฟอร์และฟังก์ชันแฮช ระบบเข้ารหัสคีย์สาธารณะที่ได้รับความนิยม RSA ยังเสี่ยงต่อการโจมตีแบบข้อความธรรมดา
Dictionary Attack- การโจมตีนี้มีหลายรูปแบบซึ่งทั้งหมดนี้เกี่ยวข้องกับการรวบรวม 'พจนานุกรม' ในวิธีที่ง่ายที่สุดของการโจมตีนี้ผู้โจมตีจะสร้างพจนานุกรมของไซเฟอร์เท็กซ์และข้อความธรรมดาที่สอดคล้องกันซึ่งเขาได้เรียนรู้ในช่วงเวลาหนึ่ง ในอนาคตเมื่อผู้โจมตีได้รับ ciphertext เขาจะอ้างอิงพจนานุกรมเพื่อค้นหาข้อความธรรมดาที่เกี่ยวข้อง
Brute Force Attack (BFA)- ในวิธีนี้ผู้โจมตีจะพยายามระบุคีย์โดยพยายามคีย์ที่เป็นไปได้ทั้งหมด หากคีย์มีความยาว 8 บิตจำนวนคีย์ที่เป็นไปได้คือ 2 8 = 256 ผู้โจมตีรู้รหัสลับและอัลกอริทึมตอนนี้เขาพยายามคีย์ 256 ทั้งหมดทีละคีย์เพื่อถอดรหัส เวลาในการโจมตีจะสูงมากหากคีย์ยาว
Birthday Attack- การโจมตีนี้เป็นรูปแบบหนึ่งของเทคนิคเดรัจฉานบังคับ ใช้กับฟังก์ชันแฮชการเข้ารหัส เมื่อนักเรียนในชั้นเรียนถูกถามเกี่ยวกับวันเกิดของพวกเขาคำตอบคือหนึ่งใน 365 วันที่เป็นไปได้ ให้เราสมมติวันเกิดของนักเรียนคนแรกคือ 3 ถสิงหาคมจากนั้นจะหานักเรียนต่อไปที่มีวันเกิดคือ 3 ถส.ค. เราต้องสอบถาม 1.25 * ?? √365≈ 25 คน
ในทำนองเดียวกันถ้าฟังก์ชันแฮชผลิต 64 บิตค่ากัญชากัญชาค่าที่เป็นไปได้ 1.8x10 19 ด้วยการประเมินฟังก์ชันซ้ำ ๆ สำหรับอินพุตที่แตกต่างกันผลลัพธ์เดียวกันคาดว่าจะได้รับหลังจากอินพุตสุ่มประมาณ 5.1x10 9
หากผู้โจมตีสามารถค้นหาอินพุตที่แตกต่างกันสองอินพุตที่ให้ค่าแฮชเท่ากันแสดงว่าเป็นไฟล์ collision และฟังก์ชันแฮชนั้นถูกกล่าวว่าเสีย
Man in Middle Attack (MIM) - เป้าหมายของการโจมตีนี้ส่วนใหญ่เป็นระบบรหัสลับสาธารณะที่มีการแลกเปลี่ยนคีย์ก่อนที่การสื่อสารจะเกิดขึ้น
โฮสต์ต้องการที่จะสื่อสารไปยังโฮสต์BจึงขอกุญแจสาธารณะของB
ผู้โจมตีสกัดกั้นคำขอนี้และส่งคีย์สาธารณะของเขาแทน
ดังนั้นไม่ว่าโฮสต์Aจะส่งไปยังโฮสต์Bผู้โจมตีสามารถอ่านได้
เพื่อรักษาสื่อสารโจมตีอีกครั้งเข้ารหัสข้อมูลหลังจากที่ได้อ่านด้วยกุญแจสาธารณะของเขาและส่งไปยังB
ผู้โจมตีจะส่งกุญแจสาธารณะของเขาในฐานะ‘s คีย์สาธารณะเพื่อให้Bใช้มันราวกับว่ามันคือการได้จาก
Side Channel Attack (SCA)- การโจมตีประเภทนี้ไม่ได้ต่อต้านระบบเข้ารหัสหรืออัลกอริทึมประเภทใดประเภทหนึ่ง แต่กลับเปิดตัวเพื่อใช้ประโยชน์จากจุดอ่อนในการนำระบบเข้ารหัสไปใช้จริง
Timing Attacks- พวกเขาใช้ประโยชน์จากข้อเท็จจริงที่ว่าการคำนวณที่แตกต่างกันใช้เวลาในการคำนวณโปรเซสเซอร์ต่างกัน การวัดเวลาดังกล่าวทำให้สามารถทราบเกี่ยวกับการคำนวณเฉพาะที่โปรเซสเซอร์กำลังดำเนินการอยู่ ตัวอย่างเช่นหากการเข้ารหัสใช้เวลานานขึ้นแสดงว่าคีย์ลับนั้นยาว
Power Analysis Attacks - การโจมตีเหล่านี้คล้ายกับการโจมตีตามเวลายกเว้นว่าจะใช้ปริมาณการใช้พลังงานเพื่อรับข้อมูลเกี่ยวกับลักษณะของการคำนวณพื้นฐาน
Fault analysis Attacks - ในการโจมตีเหล่านี้ข้อผิดพลาดเกิดขึ้นในระบบเข้ารหัสและผู้โจมตีจะศึกษาผลลัพธ์ที่ได้เพื่อหาข้อมูลที่เป็นประโยชน์
ความเป็นจริงของการโจมตี
การโจมตีระบบเข้ารหัสที่อธิบายไว้ในที่นี้ถือเป็นเรื่องวิชาการสูงเนื่องจากส่วนใหญ่มาจากชุมชนวิชาการ ในความเป็นจริงการโจมตีทางวิชาการจำนวนมากเกี่ยวข้องกับสมมติฐานที่ไม่เป็นจริงเกี่ยวกับสภาพแวดล้อมและความสามารถของผู้โจมตี ตัวอย่างเช่นในการโจมตีด้วยรหัสลับที่เลือกผู้โจมตีต้องการจำนวนคู่ธรรมดา - รหัสลับที่เลือกโดยเจตนา อาจไม่สามารถใช้งานได้จริงทั้งหมด
อย่างไรก็ตามข้อเท็จจริงที่ว่าการโจมตีเกิดขึ้นควรเป็นสาเหตุของความกังวลโดยเฉพาะอย่างยิ่งหากเทคนิคการโจมตีมีศักยภาพในการปรับปรุง