Chapter 4 Integrity

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 6

74

บทที่ 4. Message Integrity Control

สิ่งที่สําคัญที่สุดในระบบเทคโนโลยีสารสนเทศคือ “ขอมูล” โดยองคประกอบทั้งหมดในระบบ


เทคโนโลยีสารสนเทศลวนแลวแตเปนองคประกอบที่ชวยในการสราง ประมวลและนําสงขอมูลจากแหลงขอมูล
ไปยังผูใชงาน ในการรองขอขอมูลขอมูลตางๆ ในระบบสารสนเทศไมวาจะเปนไฟลที่อยูในอินเตอรเน็ต ขอมูล
ในฐานขอมูล และขอมูลในรูปแบบอื่นๆ ผูรองขอจะไดรับขอมูลที่ตองการในชองทาง และในรูปแบบที่ผูใชงาน
รองขอ

ปญหาหนึ่งที่เกิดขึ้นในการเรียกใชงานขอมูลคือ ขอมูลที่ผูใชงานรองขอนั้นถูกเปลี่ยนแปลงระหวางการ
จัดสง ซึ่งอาจเกิดจากปญหาของชองทางการรับสงขอมูล หรือถูกผูไมหวังดีเปลี่ยนแปลงขอมูลดังกลาวระหวาง
ทาง หรือแมกระทั้ง ขอมูลที่ผูใชงานตองการนั้น ไมใชขอ มูลที่ถูกตอง อาจเนื่องมาจากไมได Download จาก
แหลงขอมูลที่เชื่อถือได เชนในกรณีที่ผูใชงานตองการ Download ขอมูลจากอินเตอรเน็ต ซึ่งไมใชเว็บไซตของผู
ใหบริการขอมูลนั้นๆ โดยตรง ซึ่งผูใชงานจะไมสามารถทราบไดเลยวาไฟลขอมูลนั้นคือไฟลขอมูลที่ตองการ
จริงหรือไม ไฟลดังกลาวถูกปลอมแปลงบางสวนไปอยางไรบาง การนําขอมูลที่มีปญหาเหลานัน้ ไปใชงาน อาจ
ทําใหเกิดความเสียหายขึน้ ในอนาคต

ในการตรวจสอบความถูกตองของขอมูลนั้นสามารถทําไดหลากหลายรูปแบบ เชน CheckSum , Hash


Function , Message Authentication Code , Digital Signature เปนตน ซึง่ กระบวนการในการตรวจสอบขอมูลใน
รูปแบบตางๆ นี้มีขอดีขอเสียแตกตางกันไปตามการออกแบบและวัตถุประสงคของการตรวจสอบขอมูลนั้นๆ

Check sum
กระบวนการที่งายที่สุดในการตรวจสอบความถูกตองของขอมูลคือการใช Checksum ซึ่ง Checksum คือ
การใชขอมูลเพิ่มเติมแนบสงไปกับขอมูลหลัก ซึ่งขอมูลเพิ่มเติมนี้จะมีความสัมพันธกับการจัดวางขอมูลตางๆ ที่
ฝงผูสงจะทําการคํานวณคา Check sum แลวแนบไปกับขอมูลในการสงครั้งเดียวหรือแยกสงได เมื่อขอมูลไปถึง
75

มือผูรับแลวจะทําการตรวจสอบความถูกตองของขอมูลไดโดยการใชฟงกชั่นในการตรวจสอบ ในโพรโตคอล
ตางๆ เชน TCP , UDP , IP , ICMP ตางก็มีฟลด Checksum อยูทั้งสิ้น หรือการใช Checksum กับไฟลที่จะ
เผยแพร เพื่อยืนยันความเปนตนฉบับ การใช Checksum ในกระบวนการบีบอัดและขยายไฟลตางๆ ก็ใชสําหรับ
การตรวจสอบความถูกตองของขอมูลเชนกัน

Hash function
ในกระบวนการเขารหัส หรือการสราง Digital Signature ของขอมูลตางๆ จะมีการใชงานฟงกชั่นแฮช
(Hash Function) รวมดวยเนื่องจากขอมูลที่จะทําการเติม Digital Signature นั้นจะมีความยาวแตกตางกัน บาง
ขอมูลที่มีความยาวสูงมากๆ จะใชเวลาในการสราง Digital Signature นาน นอกจากนี้ขอมูลที่มีความซ้ําซอนสูง
และซับซอนต่ําเมื่อทําการเขารหัสจะสงผลใหการถอดรหัสทําไดงาย ดังนั้น เพื่อเพิ่มความซับซอนของขอมูล
และลดขนาดขอมูลใหมีขนาดเล็กลง จึงจําเปนตองใชฟงกชั่นแฮชรวมดวย

คุณสมบัติของฟงกชั่นแฮชทีด่ ีควรมีดังตอไปนี้

1. ผลลัพธของฟงกชั่นแฮชควรมีผลลัพธเฉพาะตัวกับขอมูลที่ทําการแฮชนัน้ ๆ ขอมูลแตละตัวเมื่อผาน
ฟงกชั่นแฮชแลวไมควรมีผลลัพธที่เหมือนกัน
2. สามารถทํางานไดอยางรวดเร็ว
3. มีการกระจายตัวสูง การนําขอมูลใดๆ มาแฮชควรไดรับผลลัพธที่อยูในชวงที่กําหนดไวแตละ
ตําแหนงมีความเปนไปไดในการเกิดเทาๆ กัน
4. รหัสแฮช (Hash Code) ที่ไดไมควรแกกลับเปนขอมูลได

ตัวอยางฟงกชนั่ แฮชที่มีการใชงานไดแก MD5, SHA-1 และ CRC32 เปนตน


76

MD5

MD5 (Message-Digest Algorithm 5) เปนอัลกอริทึมที่ใชในการสรางแฮช หรือ digest ของขอมูลเพื่อใช


ในการตรวจสอบความถูกตองของขอมูล สําหรับ MD5 ถูกนําไปใชในการทํางานที่หลากหลายเชนการ
ตรวจสอบความถูกตองของไฟลที่แชรกันในอินเตอรเน็ต การตรวจสอบความถูกตองของการบีบอัดและขยาย
ขอมูล เปนตน สําหรับ MD5 จะทําการสรางขอมูลที่เปนตัวแทน หรือเปนขอมูลในการตรวจสอบขอมูลตางๆ ซึ่ง
จะมีลักษณะเปนตัวเลขฐานสิบหกจํานวน 32 ตัว

MD5 เปนอัลกอริทึมที่คิดคนขึ้นโดย Ron Rivest ในป 1991 ซึ่งมาใชทดแทน MD4 ตอมาในป 1996 มี
การคนพบชองโหวของ MD5 ซึ่งขณะนั้นยังไมถือวาเปนชองโหวรายแรงนัก แตนักคณิตศาสตรก็ไดแนะนําให
ใช SHA-1 แทน ในป 2004 มีการคนพบชองโหวของ MD5 ที่ถือวาเปนชองโหวรายแรงทําให MD5 มีการใชงาน
ลดนอยลงเรื่อยๆ จนกระทั่งป 2007 มีการคนพบกระบวนการที่ทําใหไฟล 2 ไฟลมีคา MD5 เดียวกันได

SHA

SHA (Secure Hash Algorithm) เปนอัลกอริทึมในการสรางแฮช โดย National Security Agency (NSA)
และประกาศใชเปนมาตรฐานโดย NIST ในการทํางานของ SHA จะสราง Message Digest ของขอมูลตางๆ ซึ่ง
จะมีความปลอดภัยดังนี้

1. ไมสามารถคํานวณไดวาขอมูลใดคือขอมูลตนฉบับของ Message Digest


2. ขอมูล 2 ขอมูลใดๆ จะไมมี Messag Digest ที่ตรงกันแนนอน
3. หากมีการเปลี่ยนแปลงขอมูลเพียงเล็กนอย จะมีการเปลี่ยนแปลงอยางมากใน Message Digest

สําหรับอัลกอริทึมในกลุมของ SHA นี้จะมีอัลกอริทึมอยูหลาย ตัวเชน SHA-1, SHA-224, SHA-256,


SHA-384 และ SHA-512 โดยตัวเลขหลัง SHA คือตัวเลขบอกขนาดของ Message Digest ที่ไดจากการใช
อัลกอริทึมนั้นๆ ยกเวน SHA-1 จะมี Message Digest ขนาด 160 บิต
77

สําหรับความปลอดภัยในการใช SHA-1 นั้นปจจุบันมีการคนพบจุดออนของ SHA-1 และกระบวนการ


ในการคนหาขอมูลดิบที่ผาน SHA-1 แลวได Message Digest ที่ตรงกันไดหลากหลายวิธี

MAC
เปนขอมูลสารสนเทศที่ใชในการพิสูจนตน โดย MAC นี้มีขอแตกตางจากฟงกชั่นแฮช คือจําเปนตองใช
คียเปนองคประกอบหนึ่งในการทํางานดวย โดยอัลกอริทึม MAC จะรับพารามิเตอรสองตัวคือขอมูลที่ตองการ
รับรอง และคียลับของผูสง ดังนั้นผลลัพธที่ไดจากอัลกอริทึม MAC จึงสามารถรับรองไดทั้งความถูกตองของ
ขอมูลที่สง และความเปนเจาของขอมูลนั้นๆ ได

Digital Signature
ลายมือชื่อดิจิตอล (Digital Signature) คือ ขอมูลอิเล็กทรอนิกสที่ไดจากการเขารหัสขอมูลดวยกุญแจ
สวนตัวของผูส งซึ่งเปรียบเสมือนเปนลายมือชื่อของผูสง คุณสมบัติของลายมือชื่อดิจิตอล นอกจากจะสามารถ
ระบุตัวบุคคล และ เปนกลไกการปองกันการปฏิเสธความรับผิดชอบแลว ยังสามารถปองกันขอมูลที่สงไปไมให
ถูกแกไข หรือ หากถูกแกไขไปจากเดิมก็สามารถลวงรูได

กระบวนการสรางและลงลายมือชื่อดิจิตอลเริ่มจากการนําเอาขอมูลที่จะสง ผานฟงกชันแฮชจนได Message


Digest แลวทําการเขารหัสดวยกุญแจสวนตัวของผูสง และผลลัพธที่ไดคือ ลายมือชื่อดิจิตอล ของขอมูลชุดนั้น
จากนั้นจึงทําการสง ลายมือชื่อไปพรอมกับขอมูลตนฉบับ ผูรับจะตรวจสอบขอมูลที่ไดรับวาถูกแกไขระหวาง
ทางหรือไม โดยการนําขอมูลตนฉบับที่ไดรับ มาผานฟงกชั่นแฮชเพื่อใหได Message Digest ฝงผูรับ และ
ถอดรหัสขอมูลลายมือชื่อดิจิตอลดวย กุญแจสาธารณะของผูสง จะได Message Digest ทางฝงผูสง แลวทําการ
เปรียบเทียบ Message Digest ทั้งสองวาเหมือนกันหรือไม ถาเหมือนกันแสดงวาขอมูลที่ไดรับนั้นถูกตอง ไมถูก
แกไข ถา Message Digest ที่ได แตกตางกันจะหมายถึงขอมูลที่ไดรับถูกเปลี่ยนแปลงระหวางทาง

จากกระบวนการดังกลาวเราจะพบวาลายมือชื่อดิจิทัลจะแตกตางกันไปตามขอมูลตนฉบับและบุคคลที่
จะลงลายมือชือ่ กระบวนการที่ใชจะมีลักษณะคลายคลึงกับการเขารหัสแบบอสมมาตร แตการเขารหัสจะใช
78

กุญแจสวนตัวของผูสง และการถอดรหัสจะใชกุญแจสาธารณะของผูสง ซึ่งสลับกันกับ การเขาและถอดรหัส


แบบกุญแจอสมมาตร ในการรักษาขอมูลใหเปนความลับ

รูปที่ 21 กระบวนการทํา Digital Signature ของขอมูลตางๆ

ตัวอยางการทํางานที่มีการนําเทคนิคตางๆ ของการตรวจสอบ Integrity มาชวยในการตรวจสอบวาขอมูลมีการ


เปลี่ยนแปลงไปจากตนฉบับหรือไมดังนี้

1. Checksum ในหนวยความจํา และโปรแกรมตางๆ ในอุปกรณอิเล็กทรอนิกส


2. Checksum ในโปรโตคอลตางๆ เชน IP, TCP, ICMP, UDP
3. Checksum ในหมายเลขบัตรประชาชน หมายเลขบัตรเครดิต หรือหมายเลขบัญชีธนาคารตางๆ
4. Checksum ในกระบวนการบีบอัดและขยายไฟล
79

5. คา MD5 และ SHA1 ของซอฟตแวรตางๆ ที่ให Download ในอินเตอรเน็ต


6. คา Digital Signature ของขอมูลตางๆ ที่ผูใชงานสงไปยังคนอื่นๆ
7. คา Signature ในการตรวจสอบความผิดปกติในระบบ Intrusion Detection System ที่ตรวจสอบการ
เปลี่ยนแปลงขอมูลในไฟลระบบที่สําคัญ

You might also like