วันพุธที่ 14 มกราคม พ.ศ. 2552

การเข้ารหัส-ถอดรหัส

...การเข้ารหัสข้อมูลมีจุดประสงค์เพื่อรักษาความลับของข้อมูล ข้อมูลนั้นจะถูกเปิดอ่านโดยบุคคลที่ได้รับอนุญาตเท่านั้น หลักการของการเข้ารหัสข้อมูลคือแปลงข้อมูล (encrypt) ไปอยู่ในรูปของข้อมูลที่ไม่สามารถอ่านได้โดยตรง ข้อมูลจะถูกถอดกลับด้วยกระบวนการถอดรหัส (decryption)

...ข้อมูลที่สามารถอ่านได้ เรียกว่า plain text หรือ clear text ข้อมูลที่เข้ารหัสแล้วเราเรียกว่า cipher text ข้อมูลเมื่อเสร็จสิ้นการเข้ารหัสแล้ว ผลที่ได้ก็คือ cipher text ในการอ่านข้อความ cipher text นั้น การเข้ารหัสแบ่งออกเป็น 2 ประเภทใหญ่ๆคือ

...1. Symmetric Cryptography (Secret key)
หรือบางทีอาจเรียกว่า Single-key algorithm หรือ one-key algorithm คือ การเข้ารหัสและถอดรหัสโดยใช้กุญแจรหัสตัวเดียวกัน คือ ผู้ส่งและผู้รับจะต้องมีกุญแจรหัสที่เหมือนกันเพื่อใช้ในการเข้ารหัสและถอดรหัส ดังรูปที่ 2
รูปที่ 2 Symmetric Cryptography

...2. Asymmetric Cryptography (Public key)
การเข้ารหัสและถอดรหัสโดยใช้กุญแจรหัสคนละตัวกัน การส่งจะมีกุญแจรหัสตัวหนึ่งในการเข้ารหัส และผู้รับก็จะมีกุญแจรหัสอีกตัวหนึ่งเพื่อใช้ในการถอดรหัส ผู้ใช้รายหนึ่งๆจึงมีกุญแจรหัส 2 ค่าเสมอคือ กุญแจสาธารณะ (public key) และ กุญแจส่วนตัว (private key) ผู้ใช้จะประกาศให้ผู้อื่นทราบถึงกุญแจสาธารณะของตนเองเพื่อให้นำไปใช้ในการเข้ารหัสและส่งข้อมูลที่เข้ารหัสแล้วมาให้ ข้อมูลที่เข้ารหัสดังกล่าวจะถูกถอดออกได้โดยกุญแจส่วนตัวเท่านั้น
ในทางปฏิบัติแล้วมักมีการใช้การเข้ารัหสทั้งสองระบบร่วมกันเช่นในระบบ PGP (Pretty Good Privacy) ซึ่งใช้ในการเข้ารหัส E-mail จะใช้วิธีสร้าง session key ซึ่งเป็นรหัสลับตามแบบ secret key) เมื่อข้อมูลถูกเข้ารหัสด้วย session key แล้ว จากนั้น session key จะถูกเข้ารหัสโดยใช้กุญแจสาธารณะของผู้รับ และถูกส่งไปกับข้อมูลที่เข้ารหัสแล้ว

...การถอดรหัสนั้นทำในทางตรงกันข้าม ผู้รับจะใช้กูญแจส่วนตัวในการได้คืนมาของ session key ซึ่งหลังจากนั้นจึงนำ session key มาถอดรหัสข้อมูลอีกขั้นหนึ่ง

...การรวมกันของวิธีการเข้ารหัสสองวิธีเป็นการรวมความสะดวกของการเข้ารหัสแบบสาธารณะกับความเร็วในการเข้ารหัสแบบทั่วไป เนื่องจากการเข้ารหัสแบบทั่วไปเร็วกว่าการเข้ารหัสแบบสาธารณะประมาณ 1000 เท่า แต่การเข้ารหัสแบบสาธารณะมีข้อดีในเรื่องวิธีแจกจ่ายรหัส ดังนั้นจึงนิยมใช้การเข้ารกัสข้อมูลซึ่งมีขนาดใหญ่ด้วยวิธีการเข้ารหัสแบบทั่วไป และใช้ของการเข้ารหัสแบบสาธารณะสำหรับการส่งกุญแจของการเข้ารหัสแบบทั่วไป


ระบบรักษาความปลอดภัยของคอมพิวเตอร์

ระบบรักษาความปลอดภัยของคอมพิวเตอร์
...การรักษาความปลอดภัยบนระบบปฏิบัติการ LINUX เริ่มจากความปลอดภัยของเครื่องคอมพิวเตอร์ลูกข่ายหรือเวิร์กสเตชัน (Workstation) เนื่องจากความปลอดภัยของระบบเครือข่ายในองค์กรเริ่มจากคอมพิวเตอร์เพียงเครื ่องเดียวที่มีปัญหาเรื่องความปลอดภัย จนเป็นช่องโหว่ที่ทำให้เกิดความเสียหายได้การประเมินความปลอดภัยของเวิร์กสเตชันเมื่อใดที่ท่านพิจารณาความปลอดภัยของเวิร์กสเตชันให้พิจารณาประเด็นสำคัญต่อไปนี้*ความปลอดภัยของ BIOS และ Boot Loader : ตรวจสอบให้แน่ใจว่าเวิร์กสเตชันปลอดภัยจากผู้ไม่มีสิทธิ์ที่จะเข้ามาใช้งานในทางกายภาพ และไม่สามารถบูตเข้าสู่โหมด Single User หรือโหมดที่เรียกว่า Rescue Mode โดยไม่มีรหัสผ่านหรือพาสเวิร์ด (Password)*ความปลอดภัยเกี่ยวกับรหัสผ่าน : ตรวจสอบให้แน่ใจว่ารหัสผ่านหรือพาสเวิร์ดของผู้ใช้งานมีความรัดกุมมากเพียงพอ*ขอบข่ายของการควบคุม : ตรวจสอบสิทธิ์ของผู้ใช้งานบนเครือข่าย ทั้งผู้ใช้งานที่มีสิทธิ์จำกัด รวมทั้งท่านที่มีเอกสิทธิ์ทั้งหลาย โดยตรวจสอบสิทธิ์การใช้งานทรัพยากรบนเครื่องหรือเครือข่ายให้รัดกุมที่สุด*การตรวจสอบการให้บริการเครือข่ายบนเครื่อง : ตรวจสอบให้แน่ใจในขณะเครื่องกำลังทำงานอยู่ โดยตรวจสอบว่ามีบริการของเครือข่ายใดบ้างที่เครื่องของท่านกำลังรอคอยการให้บริการจากเครือข่าย โดยที่การรอคอยบริการจากเครือข่ายเหล่านี้มีความจำเป็นต้องใช้ทั้งหมดหรือไม่?*ตรวจสอบไฟร์วอลล์ (Firewall) ที่ติดตั้งบนเวิร์กสเตชัน : ประเภทของไฟร์วอลล์ที่ใช้ รวมทั้งความจำเป็นที่จะต้องใช้*ตรวจสอบเครื่องมือในรูปแบบของซอฟต์แวร์สำหรับสื่อสารกับเครื่องอื่น ๆ บนเครือข่ายความปลอดภัยของ BIOS และ Boot Loaderการติดตั้งรหัสผ่านให้กับ BIOS รวมทั้ง Boot Loader จะช่วยให้สามารถป้องกันการเข้ามาใช้งานเวิร์กสเตชันของท่านโดยไม่ได้รับอนุญาต การติดตั้งรหัสผ่านให้กับ BIOS หลังจากที่ท่านได้ปิดการใช้งานอุปกรณ์บางอย่างบนเวิร์กสเตชันจะสามารถช่วยให้ป้องกันการก๊อบปี้แฟ้มข้อมูล รวมทั้งป้องกันมิให้ผู้ประสงค์ร้ายจัดตั้งค่า BIOS ให้มีการบูตระบบจากฟลอปปี้ดิสก์หรือซีดีรอม ซึ่งจะทำให้สามารถแฮก (Hack) เข้าสู่ระบบได้การติดตั้งรหัสผ่านให้กับ BIOSต่อไปนี้เป็นเหตุผลหลักที่ท่านจะต้องพิจารณาใส่รหัสผ่านให้กับ BIOS
...1. ป้องกันมิให้ผู้อื่นสามารถตั้งค่า Configure ใน BIOS : หากสามารถตั้งค่า BIOS ได้ จะทำให้มีการบูตจากฟลอปปี้ดิสก์ ซึ่งเป็นวิธีหนึ่งที่เข้าสู่ Rescue Mode หรือ Single User Mode และเมื่อเข้าสู่โหมดนี้ได้แล้ว จะสามารถส่งโปรแกรมที่ทำอันตรายเข้าไปในระบบ รวมทั้งสามารถทำสำเนาข้อมูลข่าวสารอันมีค่าของท่านได้ ท่านจะต้องใส่รหัสผ่านหลังจากที่ท่านได้จัดตั้งค่า BIOS ดังต่อไปนี้*Disable Floppy Disk Drive*ปิดพอร์ต Serial ทั้ง Com1 และ Com2*ปิดพอร์ต USB ด้วยการ Disable On-Board USB Devices*ปิดพอร์ต Parallel โดยการ Disableรหัสผ่านที่ท่านใส่อาจต้องมีถึง 2 ชั้น โดยชั้นแรกเป็นรหัสผ่านสำหรับเซตอัป CMOS ส่วนรหัสผ่านอีกชั้นหนึ่งเป็นรหัสผ่านที่จะต้องใส่ก่อนที่จะบูตฮาร์ดดิสก์หมายเหตุการปิดพอร์ตต่าง ๆ เหล่านี้ทำในกรณีที่ท่านคิดว่าจะไม่ใช้งานเครื่องสักระยะหนึ่ง หรือต้องการป้องกันเครื่องในยามคับขัน อย่างไรก็ดีรหัสผ่านของ BIOS ไม่ใช่วิธีการที่ป้องกันได้เด็ดขาด เนื่องจากผู้ไม่ประสงค์ดีสามารถถอดแบตเตอรี่หรือตั้งจั๊มเปอร์ (Jumper) เพื่อให้ข้อมูลข่าวสาร เช่น รหัสผ่านของ BIOS สูญหายไปได้ ทางที่ดีใช้โปรแกรมเข้ารหัสแฟ้มข้อมูลจะดีกว่า เนื่องจากหากใครก๊อบปี้ไปก็ไม่สามารถเปิดดูได้หากไม่มีรหัสผ่านที่ป้องกันมาอย่างดีเหล่านี้
...2. ป้องกันการบูตระบบ : การใส่รหัสผ่านที่ BIOS ยังสามารถป้องกันการบูตระบบได้ โดยที่ผู้ใช้งานจะต้องใส่รหัสผ่านเสียก่อน จึงจะบูตระบบปฏิบัติการได้การใส่รหัสผ่านให้กับ Boot Loaderต่อไปนี้เป็นเหตุผลสำคัญที่ท่านจะต้องพิจารณาใส่รหัสผ่านเพื่อป้องกัน LINUX Boot Loader
2.1. ป้องกันมิให้สามารถ Access เข้าสู่ Single User Mode : หากผู้ไม่ประสงค์ดีสามารถบูตเข้าสู่ Single Mode ได้ เขาจะสามารถเป็นผู้ใช้ในระดับ Root ได้
2.2. ป้องกันมิให้สามารถ Access เข้าสู่ GRUB Console : ถ้าเครื่องของท่านใช้ GRUB เป็น Boot Loader ผู้ไม่ประสงค์ดีจะสามารถใช้ GRUB Editor เพื่อเปลี่ยนค่า Configuration หรือรวบรวมข้อมูลข่าวสารเกี่ยวกับค่า Configuration บนเครื่องจากคำสั่ง cat
...3. ป้องกันมิให้มีการ Access เข้ามาที่เครื่องโดยระบบปฏิบัติการที่ไม่มีความปลอดภัยที่เพียงพอปกติ Boot Loader ที่มากับ LINUX สำหรับทำงานบนเครื่องพีซีที่ใช้ซีพียูตระกูล x86 จะมีอยู่ 2 รายการ ได้แก่ GRUB และ LILO (รายะเอียดเกี่ยวกับการทำงานของ Boot loader แต่ละตัวให้ดูจาก Red Hat Reference Guideการใช้รหัสผ่านเพื่อปกป้อง GRUBท่านสามารถจัด Configure เพื่อใส่รหัสผ่านให้กับ GRUB ใน Configuration Files ได้ ประการแรกให้กำหนดรหัสผ่านที่ต้องการ จากนั้นเปิด Shell Prompt แล้ว Login เข้าไปด้วย Root ก่อนที่จะพิมพ์ข้อความดังนี้/sbin/grub-md5-cryptเมื่อหน้าจอปรากฏ Prompt เพื่อให้ท่านใส่รหัสผ่านบนหน้าจอ ให้ท่านใส่ชื่อรหัสผ่านลงไป จากนั้นกดปุ่ม Enter จะปรากฏข้อความดังนี้password: xxxxxxxx < ----- ใส่รหัสผ่าน$1$bv0350$PZHL35jVyF01a5eL02R7V/ < ----- ค่าที่เครื่องสร้างขึ้นมาหลังจากใส่รหัสผ่านต่อไปให้แก้ไข GRUB Configuration Files ที่มีชื่อว่า /boot/grub/grub.conf ให้เปิดไฟล์ จากนั้นเลื่อนไปใต้บรรทัดที่มีข้อความว่า Time-out = จากนั้นแทรกข้อความต่อไปนี้ลงไปPassword --md5 ให้เปลี่ยน เป็นค่าที่เครื่องคอมพิวเตอร์สร้างขึ้นหลังจากที่ใส่รหัสผ่านใน /sbin/grub-md5-cryptครั้งต่อไปที่ท่านบูตระบบขึ้นมา ที่เมนูของ GRUB จะไม่ยอมให้ท่านสามารถ Access เข้าตัว Editor หรือคำสั่งโดยไม่กดปุ่ม "p" จากนั้นตามด้วยรหัสผ่านของท่านเองเสียก่อนอย่างไรก็ดีวิธีนี้ก็ยังไม่สามารถป้องกันการบูตเข้าสู่ระบบปฏิบัติการที่ไม่ปลอดภัยสำหรับฮาร์ดดิสก์ที่เป็นระบบ Multi-Boot ดังนั้นเพื่อให้การป้องกันมีความสมบูรณ์ยิ่งขึ้น ดังนั้นท่านจะต้องแก้ไขบางส่วนในไฟล์ /boot/grub/grub.confหมายเหตุGRUB ยอมรับรหัสผ่านที่มีรูปแบบอักษรเปล่า ๆ ไม่ต้องเข้ารหัส อย่างไรก็ดีเพื่อป้องกันปัญหาที่อาจเกิดขึ้นควรเลือกใช้ MD5 ซึ่งเป็นการเข้ารหัสจะดีกว่าภายใน /boot/grub/grub.conf ให้ท่านมองบรรทัดที่เป็นไตเติล (Title) ของระบบปฏิบัติการที่ไม่ปลอดภัย จากนั้นเพิ่มบรรทัดที่มีคำว่า lock เข้าไปใต้บรรทัดนั้น ตัวอย่างเช่นTitle DOSLockระบบปฏิบัติการที่ไม่ปลอดภัยในที่นี้หมายถึงระบบปฏิบัติการ DOS ซึ่งขณะที่จะบูตท่านสามารถเลือกบูตจาก DOS หรือ LINUX โดยตรงบนฮาร์ดดิสก์แบบ Multi-Bootข้อควรระวังท่านควรจะต้องมีบรรทัดที่เป็นรหัสผ่านอยู่ภายใน /boot/grub/grub.conf เพื่อให้การทำงานเป็นไปตามปกติ มิเช่นนั้นผู้ประสงค์ร้ายสามารถ Access เข้าไปที่ GRUB Editor Interface เพื่อนำบรรทัดที่มีข้อความว่า Lock ออกไปได้หากท่านต้องการที่จะมีรหัสผ่านสำหรับ Kernel หรือระบบปฏิบัติการเป็นการเฉพาะ ให้เพิ่มคำว่า Lock เข้าไปที่ Stanza จากนั้นตามด้วยบรรทัดที่เป็นรหัสผ่านในแต่ละ Stanza ที่ท่านต้องการมีรหัสผ่านเป็นการเฉพาะเพื่อป้องกัน ท่านจะต้องกำหนดรหัสผ่านให้เป็นไปในรูปแบบดังต่อไปนี้Title DOSLockPassword -md5 อีกเรื่องหนึ่งที่ต้องตระหนักคือข้อความที่อยู่ภายใน /boot/grup/grup.conf ปกติจะมีข้อความที่สามารถอ่านได้ทันที ดังนั้นเป็นเรื่องที่ดีถ้าท่านจะเปลี่ยนแปลงสักนิดเพื่อป้องกัน โดยไม่ทำให้การทำงานของไฟล์นี้เปลี่ยนแปลง ท่านจะต้องกำหนดด้วยคำสั่งดังนี้cmod 600 /boot/grub/grub.confการติดตั้งรหัสผ่านให้กับ LILOLILO เป็น Boot Loader ที่เรียบง่ายกว่า GRUB และไม่มี Command Interface ดังนั้นท่านไม่ต้องกังวลใจว่าผู้โจมตีจะสามารถ Access เข้าไปที่ระบบก่อนที่จะโหลด Kernel เสร็จ อย่างไรก็ดี LILO มีจุดอ่อนที่ผู้โจมตีสามารถบูตเข้าสู่โหมด Single User หรือบูตที่ระบบปฏิบัติการที่ไม่มีความปลอดภัยได้ท่านสามารถกำหนดให้ LILO จะต้องสอบถามหารหัสผ่านทุกครั้งก่อนที่จะบูตระบบปฏิบัติการรวมทั้ง Kernel ได้โดยการเพิ่มรหัสผ่านเข้าไปที่ส่วน Global ของ Configuration Files ของมัน วิธีการปฏิบัติคือให้ไปที่ Shell Prompt แล้ว Login ด้วย Root จากนั้นให้แก้ไขไฟล์ที่ชื่อ /etc/lilo.conf โดยใส่รหัสผ่านไว้ที่บริเวณก่อนหน้า image Stanza โดยรหัสผ่านที่ใส่มีลักษณะดังนี้Password= < -----------ใส่ชื่อรหัสผ่านที่ท่านต้องการจะใช้งาน
...หมายเหตุทุกครั้งที่ท่านแก้ไขข้อความใน /etc/lilo.conf ท่านจะต้องรันคำสั่ง /sbin/lilo -v เพื่อให้การเปลี่ยนค่าใน /etc/lilo.conf นั้นมีผลในทางปฏิบัติเช่นเดียวกับ /boot/grub/grub.conf และ Lilo.conf เป็นไฟล์ที่สามารถเปิดอ่านได้ เป็นข้อความชัดเจน หากท่านต้องการป้องกัน LILO ด้วยรหัสผ่าน ท่านควรอนุญาตให้ Root สามารถอ่าน รวมทั้งสามารถ Edit ได้เพียงผู้เดียว และเนื่องจากรหัสผ่านอาจเป็นแบบอักษรเปล่า ดังนั้นท่านสามารถกำหนดรหัสผ่านที่มีการเข้ารหัสดังนี้cmod 600 /etc/lilo.confการติดตั้ง LILO ส่วนใหญ่จะใช้ Configuration Files ดังต่อไปนี้boot = /dev/hda # or your root partitiondelay = 10 # delay, in tenth of a second (so you can interact)vga = 0 # optional. Use "vga=1" to get 80x50#linear # try "linear" in case of geometry problems.image = /boot/vmlinux # your zImage fileroot = /dev/hda1 # your root partitionlabel = Linux # or any fancy nameread-only # mount root read-onlyother = /dev/hda4 # your dos partition, if anytable = /dev/hda # the current partition tablelabel = dos # or any non-fancy name

VIRUS

ประเภทของไวรัสคอมพิวเตอร์

1. บูตไวรัส
...บูตไวรัส (boot virus) คือไวรัสคอมพิวเตอร์ที่แพร่เข้าสู่เป้าหมายในระหว่างเริ่มทำการบูตเครื่อง ส่วนมาก มันจะติดต่อเข้าสู่แผ่นฟลอปปี้ดิสก์ระหว่างกำลังสั่งปิดเครื่อง เมื่อนำแผ่นที่ติดไวรัสนี้ไปใช้กับเครื่องคอมพิวเตอร์เครื่องอื่นๆ ไวรัสก็จะเข้าสู่เครื่องคอมพิวเตอร์ตอนเริ่มทำงานทันที
...บูตไวรัสจะติดต่อเข้าไปอยู่ส่วนหัวสุดของฮาร์ดดิสก์ ที่มาสเตอร์บูตเรคคอร์ด (master boot record) และก็จะโหลดตัวเองเข้าไปสู่หน่วยความจำก่อนที่ระบบปฏิบัติการจะเริ่มทำงาน ทำให้เหมือนไม่มีอะไรเกิดขึ้น

2. ไฟล์ไวรัส
...ไฟล์ไวรัส (file virus) ใช้เรียกไวรัสที่ติดไฟล์โปรแกรม เช่นโปรแกรมที่ดาวน์โหลดจากอินเทอร์เน็ต นามสกุล.exe โปรแกรมประเภทแชร์แวร์เป็นต้น

3. มาโครไวรัส
...มาโครไวรัส (macro virus) คือไวรัสที่ติดไฟล์เอกสารชนิดต่างๆ ซึ่งมีความสามารถในการใส่คำสั่งมาโครสำหรับทำงานอัตโนมัติในไฟล์เอกสารด้วย ตัวอย่างเอกสารที่สามารถติดไวรัสได้ เช่น ไฟล์ไมโครซอฟท์เวิร์ด ไมโครซอฟท์เอ็กเซล เป็นต้น

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

5. หนอน
...หนอน (Worm) เป็นรูปแบบหนึ่งของไวรัส มีความสามารถในการทำลายระบบในเครื่องคอมพิวเตอร์สูงที่สุดในบรรดาไวรัสทั้งหมด สามารถกระจายตัวได้รวดเร็ว ผ่านทางระบบอินเทอร์เน็ต ซึ่งสาเหตุที่เรียกว่าหนอนนั้น คงจะเป็นลักษณะของการกระจายและทำลาย ที่คล้ายกับหนอนกินผลไม้ ที่สามารถกระจายตัวได้มากมาย รวดเร็ว และเมื่อยิ่งเพิ่มจำนวนมากขึ้น ระดับการทำลายล้างยิ่งสูงขึ้น