วิทยาการอำพรางข้อมูล (Steganography)

บทความนี้เผยแพร่ครั้งแรกเมื่อ 8 พ.ค. 2554 เนื้อหาเชิงเทคนิคบางส่วนอาจไม่เป็นปัจจุบัน

" วิทยาการอำพรางข้อมูล (Steganography)ได้ถูกนำมาใช้เป็นเครื่องมือรับส่งข้อความลับของกลุ่มผู้ก่อการร้าย โดยหนังสือพิมพ์ New York Times ได้ตีพิมพ์บทความหนึ่งที่กล่าวถึงกลุ่มผู้ก่อการร้ายอัลกออิดะห์ (al-Qaeda) ได้ใช้วิทยาการอำพรางข้อมูล (Steganography)เพื่อทำการเข้ารหัส (Encode) ข้อความลงในแฟ้มข้อมูลภาพและส่งอีเมล์ผ่านเครือข่าย USENET เพื่อเตรียมการและปฏิบัติการก่อการร้ายโจมตีเมื่อวันที่ 11 เดือนกันยายน "

วิทยาการอำพรางข้อมูล (Steganography) คือการซ้อนข้อมูลลับในสื่อทั่วๆไปเช่น รูป เสียง วิดีโอ สิ่งพิมพ์ โดยเทคนิคนี้แตกต่างจาก วิทยาการเข้ารหัสลับ (Cryptography) สำหรับวิทยาการเข้ารหัสลับ สามารถถูกสังเกตุได้ไม่ยากว่าข้อมูลนั้นๆถูกเข้ารหัสอยู่และอาจจะสามารถถูกถอดรหัสได้ถ้ามีอุปกรณ์ที่ดีพอ(ขึ้นอยู่กับหลายปัจจัย) แต่วิทยาการอำพรางข้อมูล จะอาศัยการแฝงข้อมูลลับไปกับสื่อทั่วไปทำให้สังเกตุได้ยากและยังสามารถใช้วิทยาการเข้ารหัสลับเข้ารหัสข้อมูลลับนั้นอีกชั้นก็ได้

วิทยาการอำพรางข้อมูล เทคนิคนี้ถูกใช้มานานตั้งแต่สมัยกรีกโบราณโดยชาวกรีกมีวิธีในการสื่อสารข้อมูลเตือนภัยการบุกรุกของศัตรู โดยเขียนข้อความที่เป็นความลับบนแผ่นไม้ แล้วใช้เทียนเคลือบข้อความนั้นไว้อีกชั้นหนึ่ง คนทั่วไปไม่สามารถเห็นข้อความนั้นได้ นอกจากมีการลอกเทียนที่เคลือบบนข้อความนั้นออกไป เทคนิควิทยาการอำพรางข้อมูล (Steganography) และ วิทยาการเข้ารหัสลับ (Cryptography) ถูกใช้มากที่สุดในช่วงสงครามโลกครั้งที่สองโดยเทคนิคที่ใช้มากที่สุดคือการใช้หมึกล่องหน โดยการใช้น้ำมะนาวหรือน้ำนมเขียนข้อความลงบนกระดาษ ข้อความนี้ไม่สามารถมองเห็นได้ จนกว่าจะนำกระดาษนั้นไปอังกับไฟ เพื่อให้ความร้อนเปลี่ยนหมึกที่เขียนไปเป็นสีที่เข้มขึ้น จนสามารถอ่านข้อความได้ด้วยตาเปล่า

สำหรับในข้อมูล Digital นั้นผมจะนำเสนอเฉพาะการซ่อนข้อมูลลับไปกับรูปภาพโดยแบ่งออกเป็นสองประเภท

1.)LSB(Least Significant Bits) วิธีนี้จะใช้วิธีการเปลี่ยน Bit สุดท้าย(ค่าสีที่มีนัยน้อยสุด)ของสีเพื่อใช้เก็บข้อมูลลับ โดยทั่วไปในไฟล์ภาพประเภทที่ไม่ถูกการบีบอัดเช่น BMP,PNG จะใช้ 3 Byte ในการระบุสี 1 Pixel โดย 3 Byte นั้นคือ R,G,B อย่างละ Byte

จะเห็นว่าถ้าเราจะซ้อนข้อความที่เป็น ASCII นั้นต้องใช้เกือบ 3 Pixel ในการเก็บอักษรหนึ่งตัว(1 ASCII = 8 Bit)

รูปประกอบจาก http://blog.pupasoft.com/2009/11/09/aeronzsteganography/

ซึ่งวิธีนี้จะทำให้สีของภาพเปลี่ยนแปลงแต่ไม่สามารถสังเกตุได้ด้วยตาปล่าวและยังไม่ทำให้ขนาดไฟล์เปลี่ยนแปลงแต่อย่างใด

2.)ซ่อนข้อมูลไว้นอก Pixel ของรูป สำหรับวิธีนี้มักจะถูกใช้กับกรณีรูปภาพที่ผ่านการบีบอัด(Compression) มาแล้วเช่น jpeg, gif เพราะว่าภาพที่ถูกบีบอัด(Compression) นี้จะไม่สามารถใช้เทคนิค LSB(Least Significant Bits) เนื่องจากการ Compression คา pixels ของภาพที่แสดงจะมีคาไมตรงกับภาพตนฉบับเสียทีเดียวนั้นข้อแตกต่างก็คือเทคนิคนี้จะได้ภาพเหมือนต้นฉบับทุกประการแต่ขนาดไฟล์จะต่างไปจากเดิม

ทั้งนี้การที่เราจะตรวจสอบว่ารูปหรือสิ่งใดๆเป็นของจริงที่ยังไม่ถูกแก้ไขนั้น(ข้อมูล Digital)เราสามารถใช้ Hash เช่น MD5sum,Sha1sum เข้ามาช่วยในการตรวจสอบดังเช่น ในเทคนิค LSB(Least Significant Bits) จะเห็นว่าสีเปลี่ยนแปลงน้อยจนมองไม่ออกด้วยตาปล่าวและขนาดไฟล์ก็ไม่เปลี่ยนแปลงแต่ Hash ไม่เหมือนเดิมแน่นอน :D (ทั้งนี้ยังมีเทคนิคขั้นสูงในการสร้าง hash ให้เหมือนต้นฉบับได้เราอาจจะใช้ Hash สองชั้นในการยืนยันเช่น Sha1 + MD5)

เฉลย

สำหรับโจทย์ที่ผมได้ให้ไปหารหัสลับจากรูป Monalisa นี้

error@ERROR:~/key$ wget http://std.kku.ac.th/5230405096/avinci.jpg

--2011-04-27 11:27:44-- http://std.kku.ac.th/5230405096/avinci.jpg

Resolving std.kku.ac.th... 202.12.97.31

Connecting to std.kku.ac.th|202.12.97.31|:80... connected.

HTTP request sent, awaiting response... 200 OK

Length: 37234 (36K) [image/jpeg]

Saving to: `avinci.jpg'

100%[==========================================================================================================================================>] 37,234 --.-K/s in 0.02s

2011-04-27 11:27:44 (2.05 MB/s) - `avinci.jpg' saved [37234/37234]

error@ERROR:~/key$ outguess -k "davinci" -r avinci.jpg davinci.txt

Reading avinci.jpg....

Extracting usable bits: 38481 bits

Steg retrieve: seed: 145, len: 41

error@ERROR:~/key$ cat davinci.txt

password : http://mayaseven.blogspot.com

Reference :

1.)http://th.wikipedia.org/wiki/%E0%B8%A7%E0%B8%B4%E0%B8%97%E0%B8%A2%E0%B8%B2%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B8%AD%E0%B8%B3%E0%B8%9E%E0%B8%A3%E0%B8%B2%E0%B8%87%E0%B8%82%E0%B9%89%E0%B8%AD%E0%B8%A1%E0%B8%B9%E0%B8%A5

2.)http://blog.pupasoft.com/2009/11/09/aeronzsteganography/

3.)http://norraseth.blogspot.com/2010/02/steganography.html

#เขียนโดย MaYaSeVeN

Steganographyวิทยาการอำพรางข้อมูล

อยากรู้ว่าระบบของคุณมีช่องโหว่แบบนี้ไหม?

ทีมผู้เชี่ยวชาญของ MAYASEVEN ทดสอบเจาะระบบแบบเดียวกับที่ผู้โจมตีจริงทำ พร้อม AI agent ที่เราพัฒนาขึ้นเอง — ผู้เชี่ยวชาญตอบกลับภายใน 1 วันทำการ