Category Archives: Blog

Digital Fortress

นวนิยายอีกเล่มของ แดน บราวน์ เกี่ยวกับ National Security Agency (NSA) หนึ่งในหน่วยงานที่ทรงอิทธิพลมากที่สุดของสหรัฐ หนึ่งในหน้าที่ของ NSA คือการข่าวที่ NSA ต้องคอยเฝ้าฟังจากสื่อแทบทุกประเภทเพื่อค้นหาข้อมูลสำคัญๆ ที่จะเป็นประโยชน์ในการรักษาความมั่นคงของชาติ .. การจะหาข่าวแต่ละชิ้นไม่ใช่ของง่ายเพราะปัจจุบันมีการเข้ารหัสลับป้องกันไว้ .. NSA ประสบปัญหาอย่างมากในการแอบถอดรหัสลับ จนกระทั่งวันนึง NSA สามารถคอมพิวเตอร์ที่เร็วมากจนถอดรหัสทุกชนิดได้ด้วยวิธี brute-force ในระยะเวลาอันสั้น .. NSA ปล่อยข่าวว่าโครงการสร้างคอมพิวเตอร์ดังกล่าวประสบความล้มเหลวเพื่อทำให้ทุกคนเชื่อว่าวิธีการเข้ารหัสลับปัจจุบันยังปลอดภัยอยู่จะได้แอบถอดรหัสได้สะดวกมือ .. การปล่อยข่่าวลวงนี้ ทำให้อัจฉริยะนายหนึ่งซึ่งเป็นเจ้าหน้าที่ถอดรหัสของ NSA ไม่พอใจ เขาเชื่อเรื่องเสรีภาพและสิทธิส่วนบุคคลในการสื่อสาร และไม่เห็นด้วยกับวิธีการของ NSA ที่แอบถอดรหัสได้อย่างอิสระ .. เขาลาออกจาก NSA และคิดวิธีการเข้ารหัสลับที่ไม่มีวันถอดได้นอกจากใช้กุญแจ .. รหัสที่ว่าคือ Digital Fortress .. เขาขู่ว่า ถ้า NSA ยังคงปกปิดเรื่องคอมพิวเตอร์ที่ถอดรหัสทุกชนิดได้ เขาจะปล่อย Digital Fortress ให้เป็นของสาธารณชน ซึ่งจะทำให้ NSA ไม่มีวันแอบถอดรหัสลับได้อีกต่อไป .. NSA ต้องแก้ไขวิกฤตินี้อย่างลับๆ โดยมีนักถอดรหัสสาวของ NSA กับแฟนหนุ่มซึ่งเป็นอาจารย์ด้านภาษาศาสตร์ เป็นนางเอกกะพระเอกของเรื่อง .. ใครอ่านผลงานของแดน บราวน์มาก่อนคงพอจับทางและเดาเรื่องออกว่าอะไรเป็นอะไร .. จบเล่มมีรหัสแถมมา

128-10-93-85-10-128-98-112-6-6-25-126-39-1-68-78

ผมถอดออกแล้ว (ต้องมีหนังสือเวอร์ชันภาษาอังกฤษนะ ถึงจะถอดได้ .. ถ้าขี้เกียจก็ Google เอาก็ได้) .. อืม .. ประโยคคลาสสิคของเรื่องแนวนี้เลย

แดน บราวน์ ยังคงเขียนเรื่องที่ก้ำกึ่งระหว่างถูก-ผิด ความจริงสองด้าน ให้คนอ่านเก็บไปคิดเองเหมือนเล่มก่อนๆ .. เหตุการณ์ยังคงเกิดและคลี่คลายในเวลาสั้นๆ ประมาณวันเดียวเหมือนเดิม.. และยังคงทำรีเสิร์ชมาอย่างดีเช่นเคย หลายๆ อย่างที่พูดถึงในเรื่อง Digital Fortress จึงมีตัวตนจริงๆ ไม่ว่าจะเป็น NSA, EFF, public key cryptography, brute-force technique, subliminal channel .. รวมถึง uncrackable encryption – วิธีเข้ารหัสลับที่ไม่มีวันถอดได้ยกเว้นว่ามีกุญแจ :)

Angels & Demons

เดินทางเร่ร่อนสัปดาห์กว่าๆ เพิ่งกลับมาถึงบ้านวันนี้เอง .. เจออะไรสนุกๆ หลายเรื่อง แต่เอาเรื่องนี้ก่อน …

นิยาย “เทวากับซาตาน” ของแดน บราวน์ .. เดินเรื่องในเวลาที่สั้นพอๆ กับ รหัสลับดาวินชี .. ออกจะชอบ เทวากับซาตานมากกว่านิดหน่อยตรงที่ มีรายละเอียดที่เล่นกับของข้อเท็จจริงที่ถูกต้องหลายอย่าง เช่น CERN สถาบันฟิสิกส์ในเจนีวา ที่เป็นต้นกำเนิดของ WWW .. จำได้ว่าใช้เว็บช่วงแรก เข้าไปที่ http://www.cern.ch บ่อยมาก อาจจะมากกว่า yahoo เสียอีก .. Large Hadron Collider (LHC) ของ CERN นั้นก็มีอยู่จริง อยู่คาบเกี่ยวพรมแดนฝรั่งเศสและสวิสจริง และเคยฟังเรื่องนี้จากผู้ออกแบบวิธีเก็บข้อมูลการชนของไฮโดรเจนในวงแหวนเครื่องเร่งอนุภาคตัวนี้มาก่อนแล้ว หน่วยข้อมูลที่ต้องวิเคราะห์แต่ละครั้งนั้นนับเป็น exabyte (~10E18 byte) เท่านั้นเอง (- -‘) .. เรื่อง antimatter quark meson เรื่องฟิสิกส์ต่างๆ ในหนังสือนิยายนี้เรียกได้ว่าบรรยายได้ถูกต้องมากทีเดียว ไม่เป็นที่ขัดใจเวลาอ่าน .. อีกด้านนึง ด้วยเคยเรียนศิลปะมาสามปีเลยอินไปกับ โรม วิหารเซนต์ปีเตอร์ โบสถ์ซิสทีน ปีเอต้า เดวิด .. อาจจะเรียกว่าโชคดีที่ได้ไปเห็นวิหารเซนต์ปีเตอร์ และแทบทุกแห่งที่หนังสือเรื่องนี้พูดถึงเลยนึกภาพตามได้ แม้จะไม่ได้เข้าไปดูในโบสถ์ซิสทีนเพราะช่วงที่ไปนั้นกำลังปิดซ่อมแซม แต่เพราะเรียนศิลปะนี่แหละทำให้ภาพเฟรสโก้ฝีมือไมเคิลแองเจโลในโบสถ์ซิสทีนเป็นภาพที่อยู่ในหัวชัดเจนเสียกว่าหน้าตัวเองเสียอีก .. วันที่ไปวิหารเซนต์ปีเตอร์นั้น ได้เห็นนักบวชระดับคาร์ดินาลจำนวนนึงในวิหาร แต่งตัวเต็มยศ กำลังเตรียมพิธีอะไรบางอย่าง ก็เลยนึกภาพของการแต่งกาย ความอลังการของพิธีได้ และเป็นบุญเหลือหลายที่วันนั้นเป็นวันที่พระสันตปาปาเสด็จมา .. ถึงจะนับถือพุทธ (หรืออาจจะเรียกว่าไม่นับถือศาสนาไหนเลยก็ได้) แต่ความรู้สึกที่ได้เห็นโป๊ปกับตาก็ไม่ใช่ธรรมดาเลย

..

เสน่ห์ในนิยายของ แดน บราวน์ สำหรับผม คงมาจากการแต่งเรื่องโดยอิงข้อเท็จจริงทางฟิสิกส์ คณิตศาสตร์ และศิลปะนี่ละมั๊ง

Being attacked ?

สัปดาห์ที่ผ่านมา มีคน/โปรแกรม/etc. พยายามจะ access root/system/daemon accounts ทาง ssh บ่อยครั้งขึ้น .. สังเกตพบว่าเกิดกับทุกๆ เซิร์ฟเวอร์ที่ดูแลอยู่ (กรุงเทพฯ ขอนแก่น ราชบุรี) ซึ่งไม่มีข้อมูลอะไรบอกว่าเซิร์ฟเวอร์ทั้งหมดนี้มีอะไรเกี่ยวข้องกัน เลยเดาว่าน่าจะโจมตีแบบสุ่ม ไม่ได้จำเพาะเจาะจงว่าจะเป็นใคร … pattern การโจมตีเหมือนกันๆ (เข้าใจว่าใช้โปรแกรมหรือสคริปต์) .. ที่ผ่านมา IP ยังไม่ซ้ำกัน .. whois แล้วมาจาก ISP คนละแห่งกัน .. แต่ที่น่าสนใจคือ ทุก IP มาจาก “เกาหลีใต้” .. :(

Oct 13 03:31:47 ns sshd[89811]: Failed password for nobody from 220.76.147.222 port 49508 ssh2
Oct 13 03:31:54 ns sshd[89817]: Failed password for root from 220.76.147.222 port 49636 ssh2
Oct 13 03:31:57 ns sshd[89819]: Failed password for root from 220.76.147.222 port 49673 ssh2
Oct 13 03:32:00 ns sshd[89827]: Failed password for root from 220.76.147.222 port 49716 ssh2
Oct 13 03:32:05 ns sshd[89831]: Failed password for root from 220.76.147.222 port 49750 ssh2
Oct 13 03:32:08 ns sshd[89833]: Failed password for root from 220.76.147.222 port 49818 ssh2
Oct 13 03:32:22 ns sshd[89843]: Failed password for www from 220.76.147.222 port 49992 ssh2
Oct 13 03:32:43 ns sshd[89859]: Failed password for mysql from 220.76.147.222 port 50289 ssh2
Oct 13 03:32:45 ns sshd[89861]: Failed password for operator from 220.76.147.222 port 50321 ssh2
...

จริงๆ log ยาวกว่านี้เยอะ (~70 ครั้ง/วัน) .. มีใครเจออุบัติการณ์แบบนี้บ้างเนี่ยะ ? .. เอาคืนซักเปรี้ยงดีมั้ย ? .. ลอล

มีเรื่องดีๆ มาฝาก

เพิ่งอ่าน นิยายเด่นในฉบับ ของ บางกอกรายสัปดาห์ จบ … ขอบคุณพี่หน่อยมากๆ ที่เอามาฝากกันในห้อง #tlwg … ระหว่างอ่าน น้ำตาไหลไปหลายรอบ ..

ถ้ายังไม่เ่คยอ่าน ก็ขอแนะนำครับ

.. เรื่องนี้ยาวประมาณ 6-8 ชั่วโมงอ่าน ..bookmark ไว้ได้เลย :D

Mail Client

โปรแกรมอ่านเมลเป็นโปรแกรมที่หาถูกใจได้ยากที่สุด บนลินุกซ์นี่เคยลองโปรแกรมอ่านเมลมาเป็นสิบตัว ตั้งแต่ pine, mutt, .. สุดท้ายก็มาลงที่ sylpheed ทำงานเร็ว กินหน่วยความจำก็น้อย ภาษาไทย ok บันทึกเป็น MH export เป็น mbox ได้ ใช้ GTK+ 1.x .. ระยะหลังๆ พยายามปรับเข้า GTK 2.x / GNOME 2.x เลยได้ตามหาโปรแกรมอ่านเมลอีกรอบ ..

  1. Balsa เป็นความหวังแรก เพราะค่อนข้าง lightweight แต่มันมีปัญหากับ SSL/TLS .. ลงทุนเอา fetchmail ไปโหลดเมลมาให้ Balsa อ่านจาก local mbox ก็ยังติดจุกจิกหลายเรื่อง ใช้อยู่ประมาณวันนึงก็ทนไม่ไหว ลบทิ้งไป .. balsa is broke :(
  2. Mozilla Mail … โอเคแหละ เสียที่กินหน่วยความจำเยอะ ตามสไตล์ Mozilla .. ใช้แล้วก็ยังไม่ถูกใจอยู่ดี (เรื่องมาก :P)
  3. Thunderbird .. โดยรวม ดูดี น่าใช้ ฟึเจอร์ครบเท่าที่ต้องการ .. พอ ps aux ดู VSZ/RSS แล้วแทบจะ rpm -e ซะเดี๋ยวนั้น .. โปรแกรมอ่านเมลไรฟะ virtual size ร้อยกว่าเม็ก .. บ้าป่าว .. นี่ขนาดเพิ่งใช้ มีเมลไม่ถึงห้าฉบับนะเนี่ยะ ..

สุดท้าย ก็มาใช้ Evolution จนได้ .. กินหน่วยความจำพอสมควร แต่ไม่บ้าเลือดเหมือน Tbird .. เวอร์ชัน 2.0.1 นี่ถอดชนวนระเบิดไปหลายจุด เท่าที่ใช้มาก็ยังไม่มีอาการแครชอย่างที่เคยเจอกับ 1.5.x/2.0.0 … แสดงผลภาษาไทยก็ ok … อืม คงลองใช้ดูสักวันสองวัน …

Shopping

สัปดาห์ก่อนโน้นออกตุนเสบียง ไปเจอลูกอมยี่ห้อ UNIX กับมาม่าต้มยำเส้นชาเขียว (- -‘) … สอยมาซะ

SCO จะฟ้องมั้ยวะเนี่ยะ ลอล .. (ที่จริงคนที่ฟ้องได้น่าจะเป็น Open Group ซึ่งถือสิทธิ์ TM ของ UNIX)

แกะมาม่าใส่ถ้วย .. (อันนี้ถ้วยบะหมี่เอฟเอฟ ขนาดกำลังพอดี มีฝาให้ด้วย)

เส้นมาม่าผสมชาเขียว …

สุกแล้ว รสต้มยำ มีแต่เครื่องปรุงกับ พริก ไม่ให้น้ำมัน พริกเผา .. กินแล้วก็ ok เอาอะไรมาก บะหมี่กึ่งสำเร็จรูป

It’s a ramdisk – not tmpfs !

แจ้งที่ผิด ของ blog เมื่อวานนะครับ .. สำหรับ udev จะให้ทำงานได้ต้อง enable ramdisk (CONFIG_BLK_DEV_RAM) ไม่ใช่ tmpfs .. และควรตั้ง Initial RAM disk support (CONFIG_BLK_DEV_INITRD) ด้วย .. :P

เริ่มทยอยทำ Extras packages สำหรับ TLE 7.0 แล้ว .. อยากคอมไพล์ด้วย GCC 3.4 ให้ได้ทั้งหมด (TLE 7.0 ใช้ GCC 3.4 เป็นตัวหลัก และ GCC 3.3 เป็นตัว compat.) บางแพ็กเกจก็คอมไพล์ยากเป็นบ้าทั้งที่ใช้ GCC 3.3 แล้วผ่านฉลุย …. GCC 3.4 มันคงเข้มงวดมากขึ้นแหละ โดยเฉพาะ C++

สองสามวันมานี้ #tlwg สนทนาธรรมกันบ่อย โยงไปถึงกลศาสตร์ควอนตัม (quantum mechanics) ด้วย .. ในบางมุมมองแล้ว ทั้งสองเรื่องเป็นการพยายามอธิบายสิ่งเดียวกันนั่นแหละ .. :)

g-v-m again

อย่างที่บอกไปวันก่อนเรื่อง gnome-volume-manager ว่ามันอาศัยการทำงานของโปรแกรมอื่นๆ อีกหลายตัว ซึ่งยุ่งๆ อยู่ประมาณนึงเหมือนกัน .. สมมติ ว่าเสียบ USB drive เข้ากับ USB port การทำงานจะประมาณนี้

usb -> kernel -> /sbin/hotplug -> udev -[dbus] -> hald – [dbus] -> g-v-m

เมื่อมีอุปกรณ์ใหม่ปรากฏในระบบ hotplug ในเคอร์เนลจะได้รับสัญญาณจากฮาร์ดแวร์ เคอร์เนลจะแจ้งเตือน userspace ผ่านทาง /sbin/hotplug .. สคริปต์ของ hotplug จะเรียกใช้ udev ซึ่งทำหน้าทีสร้างไฟล์ใน /dev เพื่อใช้ในการอ้างอิง USB drive จากนั้น HAL (daemon/agent) จะได้รับสัญญาณผ่านทาง D-BUS ว่ามีอุปกรณ์เพิ่มเข้ามาในระบบ .. HAL จะเป็นตัวแจ้งผ่านทาง D-BUS ไปยัง applications ต่างๆ เพื่อให้รู้ว่ามี USB drive ต่อพ่วงเข้ามา (สำหรับกรณีนี้ HAL จะทำหน้าที่ update /etc/fstab ด้วย) .. g-v-m ก็จะได้รับแจ้ง และทำงานตามคอนฟิกที่ผู้ใช้กำหนดไว้ (e.g., load kernel modules & mount USB drive)

สำหรับการติดตั้งใช้งาน จะวุ่นวายหน่อยก็ตรง udev ซึ่งจะควรจะทำงานเป็นอันดับแรกๆ ใน init scripts ตามหลัง sysfs ติดๆ (udev ต้องใช้ข้อมูลจาก sysfs ในการทำงาน) แปลว่า udev ต้องสามารถสร้างไฟล์ใน /dev ได้ก่อนที่จะ remount / เป็น read/write หลายๆ ดิสโตรจึงเลือกให้ udev ทำงานบน tmpfs แทนสตอเรจจริงๆ .. ใครที่คอมไพล์เคอร์เนลเองก็อย่าลืม enable tmpfs ไว้ด้วยเน้อะ