tech

Publishing Your PGP Public Key on Facebook

Facebook recently announced that users can upload and publish their PGP public key on their profiles. This seems like a great way to assure you that you are getting a genuine key, assuming that the key owner's Facebook profile is intact.

I created my first PGP key a long time ago, hoping that I'd be exchanging encrypted (or at least signed) emails all the time. But it takes two to communicate. I have already published my public key on my profile. So if we are friends on Facebook, you can try downloading the key and send my an encrypted message.

Windows 8

Couldn't believe I'd say this. I kinda prefer Windows 8 over Ubuntu 12.10 now. Had to install Windows for thesis writing and it feels faster and smoother. Maybe I fucked Ubuntu up a bit (continually upgraded since 7.04). Also the bonus is games! Still have to go back to Ubuntu for coding stuff though. Too many dependencies.

Browser - Phone Bookmark Sync Indecision

Surprisingly, there seems to be no perfect solution for me to synchronise website bookmarks between my web browser (Google Chrome) and my Android phone. Maybe it's too much to ask for something free, secure and effortless.

Many people suggest PhoneMarks, which seems to be nice, but I just don't want to grant my Google Docs access to other companies than, well, Google. People also say that Dolphin Browser supports bookmark sync but it seems to use bookmarks in my Google account as well.

Maybe the problem is I'm so used to Google Chrome. The soon-to-be-released Firefox 4 looks quite nice and has a native bookmark sync feature (to Firefox Mobile). Still, I don't know if it will convince me to leave Google Chrome.

เว็บไซต์หนังสือพิมพ์ The Guardian ถูกปิดกั้น???

จะอัปเดตตามเวลาต่อท้ายไปเรื่อย ๆ นะครับ

เผลอตื่นตอนเช้ามืดแล้วหลับต่อไม่ลงเลยหาข่าวอ่าน เห็นเขาว่าเมื่อวานมีของแซ่บ ๆ ใน The Guardian แต่พอเปิดเข้าไปดูก็พบว่ามีปัญหาในการเชื่อมต่อ (มันว่า connection was reset) เลยขอมาโน้ตทิ้งไว้หน่อย

อย่างไรก็ดี พอสักเจ็ดโมงเช้าก็เข้าได้ตามปกติ

ผมใช้ True เดี๋ยวตอนกลางวันจะไปลองกับเจ้าอื่น

[08:00] มีเพื่อนบอกว่าใช้ TOT เข้าไม่ได้ เจอ connection reset เช่นกัน

กรณีผิดฝาผิดตัวใน Twitter และ Facebook

ช่วงหนึ่งเดือนที่ผ่านมามีหลายคนพบว่าจู่ ๆ หน้า Twitter หรือ Facebook ที่เปิดอยู่ก็กลายเป็นของคนอื่น ผมก็เคยเจอหนหนึ่งที่ไปโผล่หน้า Facebook ของหญิงสาว เป็นเรื่องค่อนข้างน่ากลัวเพราะเราสามารถทำอะไรกับบัญชีผู้ใช้นั้นได้มากมาย เช่น อัพเดตข้อความ ลบเพื่อน ดูรายชื่อเพื่อน

เท่าที่ผมทราบ เรื่องนี้เกิดกับผู้ที่ใช้บริการอินเทอร์เน็ตของ True และก็น่าจะเป็นปัญหาที่ True เอง ดังที่ผู้ใช้อินเทอร์เน็ตชื่อ Sajal ตั้งข้อสังเกตไว้ว่า หากเป็นปัญหาที่ Twitter จริง เหตุผิดฝาผิดตัวนี้ก็น่าจะเกิดกับคนต่างชาติบ้าง เพราะ Twitter เองก็มีผู้ใช้หลักสิบล้านบัญชี เท่าที่ผมเห็น ก็มีแต่คนไทยเท่านั้นที่พบปัญหา

ทีนี้ ปัญหานี้น่าจะเกิดจากอะไร ผมคิดว่าน่าจะเป็นเรื่องคุกกี้ (Cookie) ชื่อฟังดูน่ากิน แต่อาจเป็นช่องโหว่ด้านความปลอดภัยและความเป็นส่วนตัวที่น่ากลัว

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

ตัวอย่างของคุกกี้ที่เราน่าจะคุ้นเคยกันก็คือ การใช้มันเป็น "ใบผ่านทาง" เข้าเว็บไซต์โดยไม่ต้องใส่รหัสผ่านบ่อย ๆ ด้วยการติ๊กในช่อง Remember Me เวลาจะล็อกอินเข้าเว็บไซต์ต่าง ๆ ทำให้แม้ปิดเบราว์เซอร์ไปแล้ว เปิดมาใหม่ ไม่ต้องใส่รหัสผ่าน เนื่องจากว่าที่เว็บไซต์ปลายทางยังเก็บข้อมูลไว้ว่า ผู้ใช้คนนี้มีข้อมูลคุกกี้แบบนี้อยู่ หากใครเอาข้อมูลคุกกี้ที่ตรงกันส่งมาให้ ก็จะถือว่าล็อกอินได้เลย

ถึงตรงนี้เราอาจจะมองเห็นปัญหาแล้ว ว่าแม้เราจะไม่รู้รหัสผ่าน แต่ถ้ามีคุกกี้ของคนอื่นอยู่ ก็เป็นไปได้ที่จะสวมรอยเป็นคนคนนั้นได้

แล้วคุกกี้นี้มันขโมยกันได้หรือไม่ คำตอบที่น่าตกใจคือ ขโมยได้ และขโมยได้ง่ายพอสมควร

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

เราอาจจะเคยได้ยินข่าวคราวของซอฟต์แวร์ชื่อ Firesheep ที่จะคอยดักจับข้อมูลต่าง ๆ ในอากาศ และเลือกเอามาเฉพาะข้อมูลที่เป็นคุกกี้ของเว็บไซต์ดัง ๆ อย่าง Facebook จากนั้นก็จะสวมรอยเป็นเจ้าของคุกกี้ผู้โชคร้ายนั้นให้อย่างง่ายดาย

กลับมาที่ปัญหาผิดฝาผิดตัว ผมคิดว่าสาเหตุก็คือ True นั้นใช้ Transparent Proxy นั่นคือการเชื่อมต่ออินเทอร์เน็ตของเราจะต้องผ่านเครื่อง "คนกลาง" (proxy) ของ True ก่อน ซึ่งจริง ๆ มันก็มีประโยชน์ เช่น หากเราจะดูวิดีโอคลิปยอดนิยมจาก YouTube เราก็ไม่จำเป็นต้องดาวน์โหลดจากเครื่องเซิร์ฟเวอร์ในต่างประเทศ เนื่องจากน่าจะมีคนดาวน์โหลดมาดูก่อนหน้าเราแล้ว และข้อมูลยังถูกเก็บใน Proxy เราก็ดาวน์โหลดจาก Proxy ของ True ที่ตั้งอยู่ในประเทศแทน เพื่อความเร็วที่สูงกว่า

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

การป้องกันทั้งจากเหตุสับสนใน Proxy นี้ และจาก Firesheep น่าจะมีดังนี้

  1. หมั่นออกจากระบบเว็บไซต์ (log out) เมื่อใช้งานเสร็จแล้ว การออกจากระบบจะทำให้ข้อมูลคุกกี้ของเราในเว็บไซต์นั้นหมดอายุ คุกกี้ที่เครื่องเราเก็บไว้และอาจมีคนดักจับได้ก่อนหน้านี้ก็จะใช้ไม่ได้ นอกจากนี้ เราไม่ควรกำหนดให้เว็บไซต์จดจำการล็อกอินของเรา ด้วยเหตุผลเดียวกัน

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

    เพราะฉะนั้นเราควรเลือกใช้ SSL ทุกครั้งที่มีโอกาส เพื่อความสะดวกเราอาจดาวน์โหลดส่วนเสริมของเบราว์เซอร์ที่ช่วย "บังคับ" ให้เว็บไซต์เลือกใช้ช่องทางที่มี SSL โดยส่วนเสริมนี้ของ Firefox มีชื่อว่า HTTPS Everywhere และของ Chrome มีชื่อว่า KB SSL Enforcer

  3. ใช้บริการ Proxy หรือ VPN ที่น่าเชื่อถือ แนะนำให้หาอ่านต่อจาก Google

พิมพ์ข้อความสะดวกสวยงามด้วย Markdown

ก่อนอื่นขออธิบายคำศัพท์บางอย่าง

  • HTML - เรียกง่าย ๆ ก็คือภาษาที่ใช้เขียนหน้าเว็บ มีลักษณะเป็น "Markup Language" คือถ้าต้องการทำอะไรกับข้อความก็หาอะไรพิเศษไปครอบไว้ ตัวอย่างเช่นจะทำอักษรตัวหนา (Strong) ก็ครอบข้อความด้วยคำสั่ง strong จาก <strong>หนา</strong> ก็จะกลายเป็น หนา
  • WYSIWYG Editor - หรือตัวช่วยพิมพ์แบบ What You See Is What You Get คือโปรแกรมเล็ก ๆ ฝังในหน้าเว็บที่ช่วยใส่คำสั่ง HTML กับข้อความให้เราอย่างเนียน ๆ โดยที่เราไม่ต้องพิมพ์คำสั่งเอง แต่กดปุ่มเอา ดูผลลัพธ์ได้ขณะที่พิมพ์ หน้าตาประมาณข้างล่างนี้ (ของ wordpress.com) ของแต่ละที่ก็อาจจะมีลูกเล่นต่างกันไป

WYSIWYG

ประเด็นก็คือ เวลาที่เราพิมพ์อะไรยาว ๆ เพื่อโพสต์ออนไลน์ แล้วกลัวว่าพิมพ์ ๆ อยู่จะเกิดปัญหาเครื่องดับ เน็ตหลุด ทำให้มันหาย เราก็ต้องหาอะไรมาพิมพ์เก็บไว้ก่อน จะพิมพ์ใส่ Notepad มันก็ได้แต่ข้อความโล้น ๆ ไม่มีตัวหนาตัวเอียง จะพิมพ์ใส่ Word (WYSIWYG เช่นกัน) แล้วเวลาก๊อบมาใส่ตัว WYSIWYG ในหน้าเว็บมันก็อาจจะไม่ได้อย่างใจ ต้องมานั่งแก้ใหม่ วันนี้มีทางออกมาเสนอ นั่นคือการพิมพ์แบบ Markdown

Markdown เป็นรูปแบบ (syntax) การพิมพ์แบบที่ประนีประนอมความเป็นข้อความโล้น ๆ กับการจัดแบบอักษรเข้าด้วยกัน (พูดอีกอย่างหนึ่ง คือเป็น Markup ที่จำง่าย ใกล้สามัญสำนึกกว่า HTML) ดูตัวอย่างก่อนดีกว่า

ถ้าพิมพ์ **หนา** ก็จะได้ หนา

ถ้าพิมพ์ _เอียง_ ก็จะได้ เอียง

ถ้าพิมพ์

- รายการ 1 - รายการ 2 - รายการ 3

ก็จะได้

  • รายการ 1
  • รายการ 2
  • รายการ 3

การทำงานของมันก็คือ เราก็พิมพ์ข้อความไปตามรูปแบบ Markdown นี่ แล้วเวลาจะแสดงผลในหน้าเว็บก็ติดตั้งส่วนเสริมของเว็บไซต์ให้แปลงรูปแบบข้อความ Markdown เป็น HTML (ต่างจากพวก WYSIWYG ที่เก็บข้อมูลเป็น HTML ไว้เลย) ซึ่งส่วนเสริมนี้ก็มีอยู่ในตัวช่วยจัดการเว็บไซต์ยอดนิยมอย่าง Drupal และ Wordpress อยู่แล้ว (จะเอาตัวแปลง Markdown ไปเชื่อมกับเว็บแบบอื่น ๆ ก็ไม่ยากเลย)

ข้อดีของมันก็คือ ในข้อมูลดิบก่อนการแสดงผลที่เป็นข้อความโล้น ๆ เนี่ย มันก็มีการเน้นแบบอักษรบ้างอยู่แล้ว คือแม้จะไม่มีตัวแปลง Markdown ก็ยังอ่านรู้ความว่าคนพิมพ์ต้องการจัดรูปแบบอะไรตรงไหน และยังแก้ไข คัดลอก เผยแพร่ ง่ายกว่าแบบ WYSIWYG ที่พอเกิดความผิดพลาดอาจจะแก้ได้ยากกว่า ความสามารถบางอย่างพวกเชิงอรรถ1 ผมว่า Markdown นี่ง่ายกว่าด้วยซ้ำ บล็อกนี้ก็ใช้ Markdown

หากอยากลองก่อน ก็ลองได้ที่นี่ ชาว Drupal และ Wordpress ก็ไปโหลดส่วนเสริมกันมาได้ตามสะดวก


  1. ตัวอย่างเชิงอรรถ แค่พิมพ์ [^1] ตรงที่อ้างถึง กับที่อธิบาย สองที่ก็เสร็จแล้ว ↩︎

How email softwares might reveal your location

This is not a new thing. It was me who just realised it a couple of days ago. If you are using an email client software like Thunderbird or Outlook then you might have revealed your location, or at least your IP address, unintentionally. Here's how.

For those who might not be familiar with technical jargons, these might help:

  • IP address - A set of digits assigned to your computer when you connect to a network to distinguish you from other people. Just like usual addresses, normally we are assigned "local" IP addresses in schools or workplaces. This means you and your friends might be behind one IP address of your organisation's internet connection.
  • Internet Service Provider (ISP) - Those companies you pay for you internet connection. Leading ones here in Thailand are TOT, True, and 3BB.

Just like normal postal service, email was designed to have a level of traceability. Every email contains some "routing information" in its header. Here's how it looks:

example email header

And this is no secret. If you use Gmail you can view the header by selecting "Show original" menu.

Gmail's show original

There should be a similar option (might sound like "view source) in other email services as well. I'm too lazy to capture screenshots from all.

So, let's look at what happens when you use an email software:

  1. You open the software and type in the receipients and some text.
  2. You press "Send".
  3. The software connects to a mail server of whatever service you use.
  4. The software logs in with your username and password, encrypted or not depending on your configuration.
  5. The software sends out your email.

At the point that the software connects to the server, your IP address is sent along. It can be found in the email's header like this one.

My email header

From above, I sent an email from Thunderbird and my IP address was included. You can see both my local IP address (192.168.1.40) and my house's IP address (58.9.xxx.xxx). I can even tell which ISP I use. You might try looking for the word "Received" in your or your friend's email header.

The IP address together with the time can be used to determine my account information of the internet connection I use, and that can be uncomfortable. So let's see what we can do about that.

  • Use a web-based interface: When we use Gmail or Hotmail from the website, we are working on their servers. Our IP addresses in the header would be those of the servers instead.
  • Use a proxy server, or a VPN: This is a bit more advanced and can be a whole new entry. For now I recommend you to consult Google.

There might be some more ways to protect your privacy. If anyone has anything to share you are more than welcome.

mobile web server

เวลาเราเช่าเว็บเซิร์ฟเวอร์ เราจ่ายเงินให้กับอะไรบ้าง คร่าว ๆ ก็น่าจะเป็น

  • สถานะ "ออนไลน์" หรือเปิดอยู่และเข้าถึงผ่านอินเทอร์เน็ตได้ตลอดเวลาของเครื่องคอมพิวเตอร์
  • ตัวเซิร์ฟเวอร์ หรือซอฟต์แวร์ที่คอยรับ-ส่งข้อมูลและประมวลผลตามซอฟต์แวร์ที่เราเขียนใส่เข้าไป
  • พื้นที่เก็บไฟล์
  • บริการเบ็ดเตล็ดอื่น ๆ เช่น การสำรองข้อมูลอัตโนมัติ บันทึกการเข้าใช้งาน

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

ที่ยังไม่แน่ใจ/หาอ่านไม่เจอก็มีแค่ว่าจะทำยังไงให้เราเข้าถึงตัวเซิร์ฟเวอร์จากอินเทอร์เน็ตทั่ว ๆ ไปได้ ถ้าต่อเน็ตผ่านไวไฟก็คงใช้พวก dynamic dns ได้ แต่ถ้าต่อผ่าน EDGE หรือ 3G นี่ยังไม่รู้

ถ้าทำได้ครบแล้ว เราก็น่าจะได้เว็บเซิร์ฟเวอร์ในกระเป๋ากางเกง ง่ายต่อการซุกซ่อน ไม่ทิ้งร่องรอยมาก ยากต่อการยึดครอง

หน้าเว็บในฐานะหลักฐานของอาชญากรรม

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

ตำรวจอาจจะนำฮาร์ดดิสก์ไดรว์มาทำสำเนาต่อหน้าผู้ต้องหา โดยก่อนทำสำเนาก็ใช้อุปกรณ์ที่ช่วยให้อ่านข้อมูลได้อย่างเดียว จากนั้นก็สร้าง "ลายเซ็น" หรือ hash ของข้อมูลเก็บไว้ทั้งสองฝ่าย ภาระความน่าเชื่อถือของหลักฐานก็อยู่ที่กระบวนการทำสำเนาข้อมูลนี่เอง

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

จับภาพหน้าจอ? ข้อมูลบนหน้าเว็บที่เราเห็น ๆ กันนั้นล้วนเป็นข้อมูลที่ถูกดาวน์โหลดมาไว้ในเครื่องก่อนที่จะแสดงผลทั้งสิ้น เมื่อมันถูกดาวน์โหลดมาแล้วย่อมแปลว่าเจ้าของเครื่องจะทำอะไรก็ได้ ยิ่งเว็บเบราว์เซอร์รุ่นใหม่ ๆ มีเครื่องมือแก้ไขหน้าเว็บมาให้พร้อมก็ยิ่งง่าย ลองดูภาพหลักฐานทวีตจากอนาคตของผมนี่สิ ใช้เวลาทำนาทีเดียว

ทวีตจากอนาคต

เท่าที่ผมเข้าใจ เราอาจจะพูดได้ว่าเราไม่สามารถแน่ใจเรื่องเวลาบนอินเทอร์เน็ตได้ ถ้ากระทู้ในเว็บบอร์ดมีเพียงวันที่กำกับ เราก็ไม่มีทางทราบเวลาที่เนื้อหานั้นถูกสร้างขึ้น มิพักจะต้องกล่าวถึงว่าวันที่นั้นก็ยังต้องถูกพิสูจน์ต่อไปว่าถูกต้องจริงหรือไม่

ก็ยังคิดไม่ตก ลองอ่านกรณีศึกษาในต่างประเทศไปบ้างนิดหน่อย มีแต่คนพูดถึง Wayback Machine หรือบริการเรียกดูหน้าเว็บตามช่วงเวลาในอดีตของโครงการหอจดหมายเหตุอินเทอร์เน็ต ที่น่าเชื่อถือพอสำหรับคดีทั่วไปเพราะเป็นบุคคลที่สามที่ยากที่จะมีส่วนได้ส่วนเสีย (ทำให้ Dell ชนะคดีชื่อโดเมน dellcomputerssuck.com มาแล้ว) แต่ก็นั่นล่ะ ข้อมูลมันไม่ค่อยครบถ้วน และคนทำเว็บสามารถป้องกันไม่ให้ Wayback Machine มาเก็บข้อมูลได้ไม่ยาก

ตอนนี้กำลังอ่านพวกนี้อยู่ แต่มึนภาษากฎหมายแฮะ

False Sense of Security

มีวิธีให้เลือกมากมายเพื่อรักษาความปลอดภัยของการส่งข้อมูลผ่านอินเทอร์เน็ต

ปัญหาก็คือ ถ้ารู้แค่วิธีใช้เครื่องมือที่ช่วยเรื่องพวกนี้อย่างผิวเผิน มันก็อาจจะทำให้เรารู้สึกปลอดภัยกว่าความเป็นจริง อาจเผลอเรอ ยิ่งอันตรายกว่าการไม่รู้จักเครื่องมือพวกนั้นแล้วเลี่ยงการส่งข้อมูลผ่านอินเทอร์เน็ตไปเลย

ทางเลือกที่ดีกว่าคือการเข้าใจกลไกต่าง ๆ ว่าอะไรสามารถเกิดขึ้นในขั้นตอนไหนได้บ้าง แต่บางครั้งมันก็ยากและกินเวลา

ทำไงความปลอดภัยจึงจะเป็นเรื่องง่าย

Subscribe to tech