กฎหมายคุ้มครองข้อมูลไทย จะเดินตามโมเดลไหนดี: สหภาพยุโรป หรือ เอเปค?

เวลาคุยกันว่า ประเทศไทยควรจะเลือกเดินตามหลักการคุ้มครองข้อมูลส่วนบุคคลของ EU (สหภาพยุโรป) หรือ APEC (ความร่วมมือทางเศรษฐกิจเอเชีย-แปซิฟิก) ก็มักจะมีคำอธิบายว่า ของ EU นั้นเน้นเรื่องสิทธิมนุษยชน แต่ของ APEC มองเรื่องเศรษฐกิจนะ (แล้วโน้มน้าวโดยนัยว่า ไทยน่าจะมองเรื่องเศรษฐกิจก่อน ตอนนี้เศรษฐกิจแย่)

ผมก็เคยอธิบายแบบเร็วๆ อย่างนั้นเหมือนกันนะ คือในแง่ที่มามันก็น่าจะทำนองนั้น

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

เราไม่จำเป็นต้องเลือกอย่างใดอย่างหนึ่ง สิทธิมนุษยชนกับเศรษฐกิจทั้งสองอย่างนี้ไปด้วยกันได้ โดยเฉพาะเศรษฐกิจดิจิทัลที่มันต้องตั้งอยู่บนฐาน “ความไว้เนื้อเชื่อใจกัน”

ถ้าเอาเศรษฐกิจอย่างเดียวไม่สนสิทธิมนุษยชนเลย ลองดูอุตสาหกรรมอาหารทะเลสิ ตอนนี้เป็นยังไง พอจะโดนแบนจริงๆ ก็ต้องรีบมาทำให้มันได้มาตรฐานอยู่ดี ตลาดที่เสียไปแล้วบางส่วนก็เสียไปเลย

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

….

อีกประเด็นคือ ของ EU ที่เราคุยกันเนี่ย อันนึงคือ General Data Protection Regulation (Regulation (EU) 2016/679) กับอีกอันคือ Directive (EU) 2016/680 ซึ่งทั้งคู่เพิ่งออกมาเมื่อปีที่แล้ว (2016 และจะมีผลบังคับใช้ในปี 2018)

ในขณะที่ APEC Privacy Framework ออกเมื่อปี 2005 (เริ่มร่างปี 2003 adopted ปี 2004 แต่ finalized ปี 2005)

ตอนปี 2005 นี่โลกเทคโนโลยีสารสนเทศเป็นอย่างไรบ้าง?

  • hi5 กำลังเริ่มเป็นที่นิยม (ตั้งปี 2004)
  • MySpace เป็นสื่อสังคมออนไลน์อันดับหนึ่ง (ตั้งปี 2003)
  • Facebook เพิ่งตั้งได้ปีเดียว (2004) แต่ยังจำกัดสมาชิกอยู่เฉพาะนักศึกษาในสหรัฐ (เปิดให้ลงทะเบียนทั่วไปปี 2006)
  • Gmail ก็เพิ่งเปิดให้บริการแบบจำกัดได้หนึ่งปีเหมือนกัน (2004) ต้องมี invite ถึงจะสมัครได้ และกว่าจะเปิดให้บริการทั่วไปก็ปี 2009
  • โทรศัพท์ “สมาร์ตโฟน” ในตอนนั้นคือ Nokia รุ่น 9300i (ประกาศพ.ย. 2005 วางขายจริง ม.ค. 2006) ระบบปฏิบัติการ Symbian 7.0S หน่วยความจำ 80 MB เบราว์เซอร์รองรับ HTML 4.01 กับ WML 1.3 ราคาเกือบสามหมื่น
  • ยังไม่มี iPhone (ออกปี 2007)
  • ยังไม่มี Google Android (กูเกิลซื้อบริษัทแอนดรอย์มาปี 2005 แล้วเอามาพัฒนาต่อ แล้วออกรุ่นแรกในปี 2008)
  • ยังไม่มี Line (ออกปี 2011)
  • ยังไม่มี Amazon Web Services (เริ่มปี 2006)

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

ซึ่งพอเป็นแบบนี้ มันก็ลำบากอยู่เหมือนกัน ที่จะคาดหวังให้กรอบกฎหมายจากปี 2005 อย่าง APEC Privacy Framework มันจะมาเห็นประเด็นอะไรในปัจจุบันแบบละเอียดๆ คือสมัยนั้นมันยังไม่มี (เอาจริงๆ มันก็พอมี เช่น APEC Cross-border Privacy Enforcement Arrangement จากปี 2010 แต่เราไม่ยอมอ้างกัน ไปอ้างแต่ของเก่า)

ในขณะที่ตอนร่าง General Data Protection Regulation ของ EU มันก็มีกรณีศึกษาอะไรให้สรุปเป็นบทเรียนเยอะแล้ว โดยเฉพาะจากอุตสาหกรรมอินเทอร์เน็ตและการประมวลผลข้อมูลที่มันเปลี่ยนไปอย่างมากในทศวรรษที่ผ่านมา เขาเลยปรับปรุงออกมาแบบนี้

ถ้าไทยจะมีกฎหมายใหม่ ก็ควรคิดถึงอนาคตไหม ไม่ใช่เอาวิธีคิดจากเมื่อ 12 ปีที่แล้วมาใช้ ประกาศปุ๊บ ล้าสมัยทันที เสียเวลาไหม

 

ภาพประกอบ: Nokia 9300i จาก Nokia Museum

Hacking Team RCS กับการดู “ข้อมูลเข้ารหัส” โดยไม่ต้องถอดรหัส

(ต่อเนื่องจากโพสต์นี้และโพสต์นี้ในเฟซบุ๊ก)

แม้จะยังไม่แน่ชัดว่าอุปกรณ์ชื่อ “SSLX-GEO” และ “SSLX-T200” ที่ทางกลุ่ม “พลเมืองต่อต้าน Single Gateway” พบในระบบที่อ้างว่าเป็นของกองทัพบกนั้นคืออะไร และทางกองทัพบกก็ได้ปฏิเสธข้อมูลดังกล่าวแล้ว

แต่เมื่อปีที่แล้ว มีเอกสารอีกชุดใน Wikileaks เป็นอีเมลและเอกสารส่งสินค้าของบริษัท Hacking Team ที่ระบุว่ามีการส่งสินค้า ติดตั้ง และทดสอบระบบส่งโปรแกรมฝังตัวเพื่อเข้าควบคุมเครื่องปลายทางที่ชื่อ Remote Control System (RCS) Galileo ในประเทศไทย เมื่อเดือนพฤษภาคม 2558

—-

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

พูดอีกอย่าง แม้ RCS จะไม่ได้ถอดรหัส แต่มันทำให้การเข้ารหัสหมดความหมาย

เมื่อ RCS เข้าควบคุมเครื่องได้แล้ว ก็แน่นอนว่าจะสามารถดูข้อมูลอื่นๆ ในเครื่องได้ด้วย ไม่เฉพาะข้อมูลการสื่อสาร

Citizen Lab พบหลักฐานว่าระบบนี้ถูกใช้ในหลายประเทศ เช่น อาเซอร์ไบจาน อียิปต์ เอธิโอเปีย ฮังการี อิตาลี คาซัคสถาน เกาหลี มาเลเซีย เม็กซิโก โอมาน ปานามา ซาอุดิอาระเบีย ซูดานอาหรับเอมิเรสต์ ตุรกี และประเทศไทย

—-

ข้อมูลคอมพิวเตอร์ในระบบเครือข่ายนั้น จำแนกได้เป็น 2 ประเภทใหญ่คือ

1) ข้อมูลที่อยู่นิ่งๆ ในเครื่อง หรือ ข้อมูล ณ จุดพัก (data at rest)

2) ข้อมูลที่วิ่งไปมาระหว่างเครื่อง 2 เครื่อง หรือ ข้อมูลระหว่างเดินทาง (data in transit)

—-

การเข้ารหัสการสื่อสารด้วย SSL (Secure Sockets Layer) หรือ TLS (Transport Layer Security) นั้นเป็นการเข้ารหัสข้อมูลประเภทที่ 2 (ข้อมูลระหว่างเดินทาง) เพื่อให้ข้อมูลที่ส่งจากปลายทางหนึ่งไปยังอีกปลายทางหนึ่งมีความปลอดภัย ไม่สามารถถูกดูได้โดยเครื่องที่ต้องผ่านระหว่างทาง (ระบบอินเทอร์เน็ตทำงานคล้ายระบบไปรษณีย์ในแง่ที่ว่ากว่าข้อมูลจะถึงจุดหมาย ต้องฝากส่งกันหลายต่อหลายทอด)

การถอดรหัสข้อมูลที่ส่งด้วย SSL/TLS นั้นเป็นเรื่องยากหากไม่มีกุญแจที่ใช้ส่งข้อมูลแต่ละครั้ง (และระบบทำงานปกติไม่มีรูรั่ว)

เมื่อการดักและถอดรหัสข้อมูลประเภทที่ 2 (ข้อมูลระหว่างเดินทาง) ทำได้ยาก อีกวิธีที่จะดูข้อมูลได้ก็คือ พุ่งเป้าไปยังข้อมูลประเภทที่ 1 (ข้อมูล ณ จุดพำนัก) แทน

—-

หาก “จุดพำนัก” ดังกล่าวสามารถระบุที่ตั้งได้ชัดเจน เป็นเครื่องในความครอบครองของบุคคลหรือหน่วยงานที่ติดต่อได้ การ “ขอ” ข้อมูลตรงๆ จากบุคคลหรือหน่วยงานดังกล่าว ก็เป็นเรื่องที่ทำได้ (ไม่ว่าจะถูกต้องตามกฎหมายหรือไม่ก็ตาม)

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

—-

อ่านความสามารถส่วนหนึ่งของ RCS และรายละเอียดเกี่ยวกับอีเมลสอบถามและการติดตั้งทดสอบในประเทศไทยเมื่อพฤษภาคม 2558 — ระบบนี้อาจจะเกี่ยวหรือไม่เกี่ยวกับคำสั่งกระทรวงไอซีทีที่ 163/2557 ตั้งคณะทำงานทดสอบระบบเฝ้าติดตามออนไลน์ เมื่อ 15 ธ.ค. 2557

—-

ในแง่นี้ แม้ระบบ Remote Control System จะไม่ใช่ระบบที่ถอดรหัสข้อมูลการสื่อสาร แต่ก็เป็นระบบที่ทำให้การเข้ารหัสข้อมูลการสื่อสารระหว่างเครื่องไม่มีความหมายอีกต่อไป

และในกรณีข้อมูลการสื่อสารที่เป็นการสื่อสาร 2 ฝั่งนั้น แม้ปลายทางอีกฝั่งจะไม่ติดเชื้อ RCS แต่เนื่องจากข้อมูลการสื่อสาร (เช่นการแชต) นั้นมีการแลกเปลี่ยนรู้เท่ากันทั้ง 2 ฝั่ง ก็แปลว่าตัว RCS ก็จะรู้ข้อมูลการสื่อสารของอีกฝั่งได้ด้วย (เฉพาะที่มีการแลกเปลี่ยนกับเครื่องที่ติดเชื้อ)

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

—-

สิ่งที่พอจะสบายใจได้บ้าง (หรืออาจจะไม่ก็ได้นะ) ก็คือ

1) RCS นั้นจะต้องทำอย่างเจาะจงเป้าหมาย (ส่วนเป้าหมายจะมีได้กี่เป้าหมายนั้น ก็แล้วแต่ทรัพยากร)

2) RCS ฝังตัวที่เครื่องเป้าหมายโดยอาศัยรูรั่วของแอปและระบบปฏิบัติการ (exploits) ถ้าเราหมั่นอัปเดตระบบปฏิบัติการและแอปเสียหน่อย (ใครใช้ระบบรุ่นเก่าๆ ที่โดนผู้ผลิตลอยแพแล้วก็เสียใจด้วย) ไม่ติดตั้งแอปน่าสงสัย และใช้เน็ตอย่างระมัดระวัง ไม่คลิกลิงก์มั่ว ไม่เปิดไฟล์แนบแปลกๆ (RCS Agent สามารถติดมากับไฟล์เช่น PDF, PowerPoint, Word) ก็พอจะปลอดภัยระดับหนึ่ง

ภาพหน้าจอจากเอกสาร RCS Certificates Case Study (หน้า 1-5) ของ Hacking Team

RCS Exploit Portal
RCS Exploit Portal

คำถาม-ข้อกังวลที่ต้องตอบ

คำถามเร็วๆ ตอนนี้คือ 

1) ใครเป็นคนควบคุมระบบนี้? ใช้อำนาจตามกฎหมายใด?

2) กลไกอะไรจะตรวจสอบการใช้อำนาจจากระบบนี้ เป็นกลไกที่ทำงานได้จริงไหม?

3) ความสามารถของ RCS นี่มีมากกว่าดักข้อมูล มันควบคุมเครื่องเป้าหมายได้ เปิดปิดกล้องได้ จะดาวน์โหลดข้อมูลอะไรมาใส่เครื่องเป้าหมายก็ได้ ถ้ามีการขอหมายหรือคำสั่งศาล คำสั่งจะอนุญาตให้ทำอะไรได้บ้าง?

4) ในซอร์สโค้ดที่หลุดออกมา มีการตั้งชื่อไฟล์ปลอมๆ ที่บ่งถึงรูปโป๊เด็ก เช่น “childporn.avi” และ “pedoporno.mpg” ซึ่งแม้อาจจะเป็นเรื่องตลกในกลุ่มโปรแกรมเมอร์ของ Hacking Team แต่ก็ทำให้เราเห็นถึงความเป็นไปได้ในการ “สร้างพยานหลักฐาน” – เรื่องนี้น่าห่วงมากๆ

วิดีโอโฆษณาของ Hacking Team

วิดีโอสาธิต RCS Galileo บน Windows

โลกของเราขาวไม่เท่ากัน: ข้อคำนึงเพื่อเว็บขาวดำแต่พอดี

ในช่วงเวลาที่คนจำนวนมากโศกเศร้า การแสดงออกนั้นมีได้หลากหลาย ผู้ดูแลเว็บไซต์และบัญชีสื่อสังคมจำนวนหนึ่งเลือกที่จะแสดงผลหน้าเว็บทั้งหมดเป็นขาวดำ (จริงๆ คือเทาไล่ระดับ หรือ grayscale แต่ก็เรียกกันติดปากว่า “ขาวดำ” อ่ะนะ) หรือสีโทนหม่นๆ หน่อย (ด้วยการปรับ saturate)

อย่างไรก็ตาม มีข้อควรระวังด้วย เพื่อไม่ให้กระทบกับการใช้งานหรือเกิดความผิดพลาดระหว่างใช้งาน โพสต์นี้ผมรวมเอาข้อแนะนำจากหลายๆ คนที่เจอบนเฟซบุ๊กมารวมเอาไว้ ขอขอบคุณคุณ @Nutn0nFufu Dogu, และ Kasiti Panthanom ด้วยครับ

ในช่วงแรกจะพูดถึงข้อควรระวังพื้นฐาน วิธีเฉพาะหน้าเพื่อทำสีโทนขาวดำ จากนั้นจะพูดถึงปัญหา ทางแก้ไขระยะยาว โดยอ้างอิงส่วนหนึ่งจาก Web Content Accessibility Guidelines ของ W3C และ human interface guidelines ของแอปเปิล

ปรับสี ให้คำนึงถึงการใช้งานด้วย

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

สีเบเยอร์

เลือกสี iPhone

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

สำหรับเว็บไซต์ที่

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

ไม่ควรปรับสี “ทั้งเว็บไซต์” ให้เป็นขาวดำ แต่ให้พิจารณาปรับเฉพาะจุด และอาจพิจารณาทางเลือกอื่น เช่น ปรับเฉพาะภาพโลโก้เป็นขาวดำ แสดงแบนเนอร์ด้านบนของทุกหน้า แสดงภาพใหญ่ในหน้าแรกหน้าเดียว หรือทำเป็น landing page แยกออกมาต่างหากก่อนเข้าหน้าเว็บหลัก (ไม่ค่อยอยากแนะนำเท่าไหร่สำหรับ landing page)

วิธีเฉพาะหน้า

ก่อนอื่นขอพูดถึง 2 เทคนิคที่ขณะนี้หลายเว็บไซต์ใช้อยู่ก่อน คือการใช้ CSS filter (ทั้ง grayscale() และ saturate()) กับการใช้ JavaScript แบบ “หว่านแห” ครอบจักรวาล เพื่อเปลี่ยนสี “ทั้งเว็บไซต์”

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

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

แม้เบราว์เซอร์รุ่นใหม่ๆ หน่อยปรับปรุงประสิทธิภาพของ filter grayscale() และ filter saturate() ให้ดีขึ้นมากแล้ว แต่ถ้าใช้ทั้งหน้ากับทุก element ก็อาจจะหน่วงบ้าง

จริงๆ แล้วในเรื่องนี้นั้น CSS filter ก็ยังทำงานได้เร็วกว่า JavaScript แต่สาเหตุที่บางคนเลือกใช้ JavaScript (เช่น grayscale.js) ก็เพราะตัว Internet Explorer ยังรองรับ CSS filter ได้ไม่เต็มที่

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

ตัวอย่าง CSS filter ที่ใช้กันมาก

[*|html|body|Element] {
    -webkit-filter: grayscale(100%);
    filter: grayscale(100%);
    filter: url('grayscale.svg#grayscale');
    filter: gray;
}

คุณ Fufu Dogu สรุปปัญหาที่พบบนเบราว์เซอร์ต่างๆ ไว้ดังนี้

  • Chrome – แสดงผลขาวดำได้ มีปัญหาเรื่อง z-index จะคำนวณผิดไปจากเดิม
  • Safari – แสดงผลขาวดำได้ อาจมีหน่วงบ้างถ้าเว็บใหญ่
  • Firefox – แสดงผลขาวดำได้ มีปัญหาเรื่อง position, z-index, ถ้าใช้ * เว็บหน้าเสียเลย
  • IE <= 9 แสดงผลขาวดำได้ มีปัญหาเรื่อง pseudo Element จะไม่ขาวดำ, IE 10-12 ใช้งานไม่ได้, IE 13-14 ใช้งานได้

z-index ในที่นี้คือเลขระบุตำแหน่ง “แกนลึก” หรือระดับชั้นของหน้าเว็บ นึกถึงว่าหน้าเว็บก็เหมือนกระดาษ และเราเอากระดาษมาซ้อนกันได้หลายๆ แผ่น วิธีระบุว่าเรากำลังพูดถึงกระดาษแผ่นไหนอยู่ ก็คือเลข z-index นั่นเอง (เลขยิ่งมากยิ่งอยู่บน, เลข 0 คือแผ่นหลังสุด) การอ้างอิง z-index ผิด จะทำให้อินเทอร์เฟซบางส่วนทำงานผิดพลาดได้ และส่งผลต่อการใช้งาน (เช่นโปรแกรมอาจจะสั่งให้เปลี่ยนการแสดงผลข้อความที่อยู่บนกระดาษแผ่นที่ 3 แต่พอใช้ filter ปุ๊บ โปรแกรมมันหากระดาษแผ่นที่ 3 ไม่เจอแล้ว ก็เลยเปลี่ยนข้อความไม่ได้)

ดังนั้นเว็บไซต์ไหนที่ซีเรียสกับความถูกต้องในการใช้งาน หลังแทรก CSS filter เข้าไป อย่าลืมทดสอบพวกการใช้งานหลักๆ ที่สำคัญๆ ด้วย ว่ายังใช้ได้ผลถูกต้องเหมือนเดิมไหม

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

ปรับสีแบบงานละเอียด

“งานละเอียด” ที่ว่า มี 2 ระดับความละเอียด (ไม่มีหลักอะไร แบ่งเอาเองนี่แหละ)

แบบแรกคือ ใช้ CSS override ทำ stylesheet ขึ้นมาใหม่อีกชุด แล้วแก้ไข CSS เพื่อแสดงผลขาวดำเป็นจุดๆ ไป (ไม่ได้สั่งให้ทำแบบครอบจักรวาลทุกจุด) เช่น แก้เฉพาะตัว img หรือกำหนด class ขึ้นมาเฉพาะอันหนึ่งแล้ว element ไหนต้องการให้เป็นขาวดำก็เพิ่ม class ดังกล่าวเข้าไป จากนั้นก็ไปประกาศใช้หลัง stylesheet หลัก เพื่อให้ค่าต่างๆ ตัว stylesheet ที่ประกาศทีหลังนี้ ไปทับ (override) ค่าเดิมของตัว stylesheet หลัก

แบบสอง ละเอียดขึ้นไปอีก คือออกแบบธีมใหม่เลย โดยให้คำนึงถึงด้วยว่า เมื่อ UI ถูกลดสีลงแล้ว จะส่งผลต่อการใช้งานอย่างไรบ้าง ผู้ใช้จะยังแยกแยะปุ่มต่างๆ ข้อความเตือนต่างๆ ได้เหมือนเดิมหรือไม่ (ซึ่งตรงนี้มันปรับด้วย CSS อย่างเดียวไม่ได้) มี visual element หรือ visual cue อะไรที่จะเสริมการแยกแยะได้อีกบ้าง

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

ท้องฟ้าเรียงเป็นชั้นสีคล้ายธงชาติไทย

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

W3C แนะนำไว้ใน Web Content Accessibility Guidelines (WCAG) ว่า contrast ratio ของสีตัวอักษรขนาดเล็กและพื้นหลังควรอยู่ที่อย่างน้อย 4.5:1 และตัวอักษรขนาดใหญ่ (14 pt bold หรือ 18 pt regular ขึ้นไป) ควรมี contrast ratio ที่อย่างน้อย 3:1

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

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

ทั้งหมดนี้ควรคำนึงถึงสาระที่ต้องการจะสื่อหรือประโยชน์ใช้สอย รวมถึงประโยชน์ของสาธารณะ โดยเฉพาะเรื่องที่เกี่ยวกับความปลอดภัยสาธารณะ

bw-map

bw-js100

แปลงรูปเป็นขาวดำทีละเยอะๆ

สำหรับผู้ที่ต้องการแปลงรูปจำนวนมากให้เป็นขาวดำ บน Windows มีโปรแกรมฟรีอย่าง IrfanView และ XnView ช่วยได้ (สามารถปรับขนาด ตัดภาพ แปลงฟอร์แมต เปลี่ยนสีรูป เปลี่ยนชื่อรูป ได้ทีละเยอะๆ) ดูตัวอย่างการใช้ฟังก์ชัน batch processing จากคลิปนี้

สำหรับคนใช้ OS X (หรือ macOS .. ฮ่วย) และถนัด Automator (มากับโอเอสอยู่แล้ว) ลองทำ Workflow ตามรูปนี้ (กล่องล่างสุดคือ Apply ColorSync Profile: Gray Tone ถ้าไม่มี ใช้ Apply Quartz Composition Filter: Black and White แทนก็ได้ แต่มันจะออกแนวทำรูปเก่า ไม่ใช่ปรับสีเทาอย่างเดียว)

Convert to B&W Automator Workflow

เรียนรู้ร่วมกันเรื่องการใช้สีกับ UI

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

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

ตัวอย่างคำแนะนำจากแอปเปิลในการใช้สีในอินเทอร์เฟซของ iOS:

Be aware of colorblindness and how different cultures perceive color. People see colors differently. Many colorblind people, for example, find it difficult to distinguish red from green (and either color from gray), or blue from orange. Avoid using these color combinations as the only way to distinguish between two states or values. For example, instead of using red and green circles to indicate offline and online, use a red square and a green circle. Some image-editing software includes tools that can help you proof for colorblindness. Also consider how your use of color might be perceived in other countries and cultures. In some cultures, for example, red is used to communicate danger. In others, red has positive connotations. Make sure the colors in your app send the appropriate message.

ถอดความได้ดังนี้

“ให้คำนึงถึงภาวะตาบอดสีและการที่สีถูกรับรู้ต่างกันในต่างวัฒนธรรม

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

ตัวอย่างเช่น แทนที่จะใช้วงกลมสีแดงและวงกลมสีเขียวเพื่อบ่งบอกถึงสถานะออฟไลน์และออนไลน์ ให้ใช้สี่เหลี่ยมสีแดงและวงกลมสีเขียวแทน

ซอฟต์แวร์แก้ไขภาพบางตัวจะมีเครื่องมือที่ช่วยให้คุณตรวจสอบการใช้งานในภาวะตาบอดสี

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

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

ดูเพิ่มเติมเรื่องนี้ได้ที่ Understanding WCAG 2.0: Contrast และถ้าอยากทดลองว่าคนตาบอดสีเห็นสีอย่างไร มีซอฟต์แวร์จำลองให้ใช้ฟรีทั้งบน Windows และ Mac ชื่อว่า Color Oracle หรือถ้าจะลองกับหน้าเว็บไซต์แบบไม่ต้องลงโปรแกรมอะไรในเครื่อง ไปที่เว็บ Colorblind Web Page Filter

สรุป/ตัดจบ

  • พิจารณา ประโยชน์ใช้สอย+ความปลอดภัย ว่าเหมาะสมไหมที่จะปรับสีของทั้งเว็บไซต์ (ด้วยการแทรกโค้ดที่ยังไม่ได้ทดสอบผลกระทบ) หรือจะใช้วิธีอื่นแทน (เช่น ปรับสีเฉพาะโลโก้ หรือขึ้นแบนเนอร์เอา)
  • การบังคับปรับสีด้วยโค้ดลัดแบบ “หว่านแห” อาจทำได้หากเป็นการทำเฉพาะหน้าไปก่อน แต่ควรตรวจสอบตามหลังด้วย เพื่อซ่อมปัญหาที่น่าจะเกิดตามมาแน่ (โดยเฉพาะเรื่อง contrast) และหากทำได้ก็ควรเปลี่ยนไปใช้โค้ดที่เฉพาะเจาะจง ปรับสีเฉพาะจุด เลือกปรับสีด้วยมือจะดีกว่า
  • การใช้สีให้คำนึงถึงการใช้งาน
    • แผนภูมิ แผนภาพ แผนที่ หรือภาพถ่าย ที่สีมีความสำคัญ ให้พิจารณาคงสีเดิมไว้ หรือปรับลดสีลงให้ยังอยู่ในระดับที่ยังแยกแยะและใช้ประโยชน์จากภาพได้
    • ตัวอักษร ให้มี contrast ที่เหมาะสมเมื่อเทียบกับพื้นหลัง contrast ratio ที่แนะนำคือ 4.5:1 ขึ้นไป (สำหรับตัวอักษรขนาดเล็ก) และ 3:1 ขึ้นไป สำหรับตัวอักษรขนาดใหญ่ (14 pt bold หรือ 18 pt regular ขึ้นไป) – ลองดูตัวอย่างคู่สีโทนขาวดำ ที่คุณ Fufu Dogu ทำมา และดูตัวอย่างคู่สีอื่นๆ เพิ่มเติมที่ Color Contrast for Better Readability
    • ปุ่ม ป้ายแจ้งเตือน UI อื่นๆ ให้ตรวจสอบว่า หลังจากปรับสี ยังสามารถแยกแยะปุ่มที่อยู่ใกล้เคียงกันได้หรือไม่ โดยเฉพาะคำถามที่ให้ผู้ใช้เลือก 2 ทาง หากแยกลำบากให้เพิ่ม visual element เช่นสัญลักษณ์ต่างๆ เข้าไปเป็นตัวช่วย
  • ถ้าทำได้ ควรมีโหมดปกติให้ผู้ใช้สลับกลับมาได้ด้วย (เช่นที่เว็บไซต์ Jeban.com ทำ)
  • หากมีเวลา ลอง(ขอเวลาจากบอส)ศึกษา Web Content Accessibility Guidelines เพื่อการทำเว็บที่ทุกคนเข้าถึงได้

 

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

 

(“โลกของเราขาวไม่เท่ากัน” เป็นชื่อหนังสือที่ ม.ล.ปริญญากร วรวรรณ และ วรพจน์ พันธุ์พงศ์ เขียนร่วมกัน – สำนักพิมพ์ openbooks)

Quick notes on Thailand’s new cybercrime law amendment (26 Apr 2016 rev)

Quick points for my international friends who want to get some gists about the development of Thailand’s new amendment of Computer-related Crime Act, as of 14 June 2016. Here I discussed the timeline, small notes on two different revisions on April 2016, and points of concerns regarding freedom of expression, privacy, and encryption.

If you don’t have much time, look at Section 14 (1) [online defamation], 14 (2) [“public safety”], 15 para. 3 [burden of proof to the intermediary], 17/1 [Settlement Commission], 18 (7) [investigative power to access encrypted data-at-rest], 20 (4) [Computer Data Screening Committee can block content that is totally legal], and 20 para. 5 [will be used to circumvent data-in-transit encryption].

Thai Netizen Network also made some recommendations to the Bill (updated 28 June 2016).

Timeline

  • 26 April 2016 — The Cabinet submitted the Bill to National Legislative Assembly (NLA).
  • 28 April — NLA 1st hearing – approved the Bill in principles (160 to 0) and sent it to Review Subcommittee. The Subcommittee has 60 days to review, with possible 30 days extension if needed.
  • ~26 June ~26 July — NLA should received the revised Bill and continue for the 2nd hearing. Updated: the Subcommittee decided to extended the review for another 30 days. Sections that got lots of comments are 14, 15, 16/1, 16/2, 18 (and in connection to 19), 20, and 21 (and in connection to 29).
  • There will be three hearings in NLA. In some cases, all the 1st, 2nd and 3rd hearings could be done in one day.
  • ICT Minister said the government willing to have all Digital Bills in effect by the end of 2016.

Read the Bill (in English)

  • Read Computer-related Crime Act (CCA) amendment (26 April 2016 draft) and its English translation, side by side.
  • There was a revision approved by the Cabinet on 19 April 2006.
    • The 19 April and 26 April revisions are almost identical.
    • Except that Section 13 and Section 14 of 19 April revision (both amend Section 18 of 2007 Act) are merged and become single Section 13 of 26 April revision.
    • So the Section number starting from Section 14 is shifting up.
    • This note is based on 26 April 2016 revision.
    • To avoid confusion, it will refer to the number of the Section to be amended.
  • The Minister responsible for this Act will be the Minister of Digital Economy and Society (new name of Minister of ICT).

Points of Concerns

1. Criminalisation of Speech and Computer Data

  • Section 14 (1) — Online defamation: language still open for online defamation
  • Section 14 (2) — “Public safety”: Vague and general terms like “public safety” and “economic stability” in this Section are undefined specifically in any Thai criminal law, but will be used to criminalised computer data.
    • From our communication with the lawmaker, they said this is meant to be for the crime against computer system of public infrastructure. If that’s the case, it can be better written in the draft, using terms like “critical infrastructure” or “critical information infrastructure”.
  • Read iLaw analysis on this (in Thai)

2. Disproportionate Intermediary Liability

  • Section 15 paragraph 2 — Blanket power: Minister power to issue additional procedural rules, which may additionally limits civil rights but require no review from Parliament.
  • Section 15 paragraph 3 — Burden of proof: if service provider follows the Ministerial procedural rules, they may exempted from penalty, but service provider has to prove their innocence.
  • Section 3 — No differentiation of intermediary types: Section 3 (since 2007 version) do defined two different types of “service providers”, but for the rest of the Act it does not really differentiated them. Every service providers got the same level of penalty.
    • We should at least differentiated between “mere conduit” and “hosting”.
    • EU E-Commerce Directive has three: “mere conduit” (Article 12), “caching” (Article 13) and “hosting” (Article 14).
  • See Manila Principles on Intermediary Liability

3. Unpredicability of Law — Judicial Process

  • Section 17/1 — Settlement Committee: for offences with 2 years or less jail term. Not sure what is the consequence, but definitely will creates unpredictability of law enforcement
    • The Settlement Committee will be appointed by the Minister. It will be consisted of three persons, one of whom has to be an inquiry official according to the Criminal Procedure Code. No other requirements stated in the Bill.

4. Expanded Investigative Power — Access to Encrypted Data-at-Rest

  • Section 18 — Expands investigative power of Section 18 to non-CCA offences
    • The entire Section 18 in 26 April 2016 revision of CCA amendment is almost identical to the 2007 CCA in use currently, except mainly this expansion.
  • Section 18 (together with Section 19, which are conditions in order to use the power in Section 18) in the current 2007 CCA is already a problem in itself, particularly about the authorisation of power. When compared to similar law on investigative power to gather electronic evidence like one in Section 25 of Special Investigation Act, Sections 18+19 of CCA required lesser check and balance.
  • Section 18 (7) is about accessing encrypted computer system or data.

5. Expanded Information Control

  • Section 20 — Expands blocking and data removal power to non-CCA offences
  • Section 20 (4) — Blocking of content that is totally legal: Computer Data Screening Committee may ask Court the block/remove data that breach “public order” or “moral high ground of people” even its not illegal
    • The Computer Data Screening Committee will be appointed by Minister. Will consisted of five persons. Two must come from relevant private sector. No other requirements stated in the Bill.
    • Thai Journalist Association is very concerned about this.
  • Film industry associations, like Motion Picture Association (regional) and Federation of National Film Associations of Thailand (local), support the expansion of Section 20 to also include site-blocking if copyright infringement occurs.
    • They also citing the damages from Facebook Live and call for measures to takedown such streaming, or any new technology that may infringe intellectual property rights, on social media.

6. Disintegrity of Secured Communication

  • Section 20 paragraph 5 — Additional technological measures to censor encrypted data: Minister can issue additional rules to facilitate data blocking/removal “in response to changing technology”
    • In the “reasons for amendment” document attached with the draft submitted to NLA, it said to block a web page that use public-key encryption a “special method and tools” are needed (see page 28-30 of the documents submitted to NLA, in the last column. You will see the keywords like “SSL”).
    • In order to block a specific URL, the URL has to be known first. The ISP will compare the URL with its blacklist. If matched, it will tell the user that the access is not allowed.
    • For an HTTPS encrypted webpage, the ISP know only first part of URL (the domain name). For example, if the entire URL is https://www.facebook.com/thainetizen, ISP will see only https://www.facebook.com. So they cannot compare and cannot block the URL specifically. They can block the entire www.facebook.com, but that will be very unpopular.
    • It is possible to circumvent the encryption, so ISP can block a specific URL again.
    • But this will affect confidentiality and integrity of the data on the network, as well as its availability (as the data may be blocked and inaccessible).
    • The same tool can also use for the surveillance of private communication.
  • Read Thai Netizen Network analysis on this Section 20 and how it related to MICT Order No. 163/2557 and the “Single Gateway” project (in Thai).
  • See also The Right to Privacy in Thailand and State of Surveillance: Thailand reports.

Stop This

Don’t agree with the Amendment proposal?
Sign the Petition: https://change.org/singlegatewayreturn
and keep spread it around.

Follow more updates and actions from Thai Netizen Network website at https://thainetizen.org and its Facebook page at https://www.facebook.com/thainetizen.

ติดตั้ง HTTPS พร้อมใบรับรองฟรีจาก Let’s Encrypt บน shared host​ (DreamHost)

Let’s Encrypt เป็นบริการออกใบรับรองการเข้ารหัสเว็บ ที่ให้บริการฟรี ที่ผ่านบริการนี้ต้องเสียเงิน ประมาณ 500 บาทไปจนถึงเกินหมื่นก็มี ซึ่งในทางเทคนิคแล้ว ใบรับรองพวกนี้เหมือนกันหมดไม่ว่าจะฟรีหรือจ่ายเท่าไรก็ตาม

Let’s Encrypt ให้บริการฟรีได้ ส่วนหนึ่งเพราะมันทำให้กระบวนการต่างๆ ทำได้ด้วยตัวเองได้โดยผู้ใช้ (มีสคริปต์มาให้รันเองได้ และในอนาคตจะเป็นระบบอัตโนมัติมากขึ้น) ค่าใช้จ่ายก็เลยถูกลง และอีกส่วนหนึ่งเพราะมีองค์กรหลายแห่งสนับสนุนเงินทุน รวมๆ คือคนเหล่านี้อยากเห็นอินเทอร์เน็ตที่มันปลอดภัยขึ้น (ซึ่งพอคนมั่นใจกับการใช้งานอินเทอร์เน็ตมากขึ้น เดี๋ยวธุรกิจอะไรอื่นๆ ที่ทำตังค์ได้ มันจะตามมาเอง)

อย่างไรก็ตาม ณ ตอนนี้ สคริปต์ของ Let’s Encrypt นี่มันจะใช้บนเครื่องที่เรามี permission เข้าถึง root ของเซิร์ฟเวอร์ได้เท่านั้น คนใช้ shared host นี่หมดสิทธิ์

แต่ช้าก่อน — ถ้าใครใช้ DreamHost หรือเว็บโฮสต์ที่อนุญาตให้เราติดตั้งใบรับรองได้เองทางหน้าเว็บ ก็ไม่ต้องเสียใจ มีวิธีอยู่ คือเรารันสคริปต์นั่นในเครื่องโน๊ตบุ๊กหรือเดสก์ท็อปของเราเองก่อน (บน Linux หรือ OS X) แล้วจากนั้นก็ค่อยเอาไฟล์ต่างๆ ไปใส่ไว้ใน Dreamhost อีกที ผ่านคอนโทรลพาเนลบนหน้าเว็บปกติ

ขั้นตอนวิธีทำเอามาจาก Using Let’s Encrypt With Dreamhost โดย jmhobbs

  1. เริ่มจากไปบอก DreamHost ก่อนว่าให้เพิ่ม secure hosting ไปที่ชื่อโดเมนของเรา
    ล็อกอินเข้า DreamHost panel ที่ด้านซ้ายเลือก “Domains” –> “Secure Hosting” –> “Add Secure Hosting” (ใครใช้ shared host ยี่ห้ออื่น ลองหาทางดูครับ อาจจะมีคล้ายๆ กัน)
    Add secure hosting in Dreamhostตรงนี้เราก็เลือกชื่อโดเมนที่เราต้องการให้มีการเข้ารหัส
    Choose domain name to add secure hosting
    จบขั้นนี้ปุ๊บ สิ่งที่เราได้ก็คือ ชื่อโดเมนที่เราเลือก จะมีการเข้ารหัสด้วย HTTPS แล้ว แต่ใบรับรองที่ใช้จะเป็น self-signed (เซ็นรับรองด้วยตัวเราเอง) ซึ่งเวลาใครมาเข้าเว็บไซต์เรา เบราว์เซอร์มันก็จะเตือนว่า ไม่น่าเชื่อถือนะ สิ่งที่เราจะทำต่อไปก็คือ ไปขอใบรับรอง ที่ Let’s Encrypt (บุคคลที่สาม) เป็นคนเซ็นให้เรา เพื่อให้เบราว์เซอร์มันพอใจ (และคนอุ่นใจ)
  2. ก่อนจะใช้ Let’s Encrypt ก็ต้องติดตั้งมันลงเครื่องโน๊ตบุ๊กหรือเดสก์ท็อปของเรา
    โดยไปดึงสคริปต์มาด้วย git (ถ้ายังไม่มี ก็ติดตั้ง git ก่อน)

    git clone https://github.com/letsencrypt/letsencrypt
  3. จากนั้นก็ ขอใบรับรอง ด้วยสคริปต์ของ Let’s Encrypt
    cd letsencrypt
    ./letsencrypt-auto certonly --manual --debug

    คำอธิบายอ็อปชัน

    • certonly ระบุเพื่อบอกว่า ให้สร้างใบรับรอง แต่ไม่ต้องติดตั้ง (เดี๋ยวเราติดตั้งเอง – ผ่านคอนโทรลพาเนลของ Dreamhost)
    • –manual บอกว่า เราจะทำ domain validation ยืนยันว่าเรามีสิทธิ์ในชื่อโดเมนนั้นเอง (ผ่านการเอาข้อความอันนึงไปวางไว้ที่เซิร์ฟเวอร์นั้น)
    • –debug ใส่อ็อปชันนี่ ถ้ารันบน OS X, ถ้าใช้ Linux ก็ไม่ต้องใส่

    ตรงนี้สคริปต์อาจจะติดตั้งโปรแกรมที่จำเป็นลงในเครื่อง เช่น libxml2, python2.7 (ถ้าบน OS X ก็ผ่าน homebrew) ก็ดูๆ ครับ ว่ามันสำเร็จไหม ถ้าไม่มีปัญหาอะไร สคริปต์ก็จะพาเราไปสู่ขั้นที่ 4

  4. สคริปต์จะถาม อีเมลของเรา (ใช้กรณีกู้กุญแจที่หาย)
    Let's Encrypt asking for e-mail
    และ ชื่อโดเมนที่เราต้องการใบรับรองLet's Encrypt asking for domain name
    ตรงขั้นนี้มันจะเตือนเราว่าทางระบบจะทำการบันทึก ที่อยู่ไอพี (IP address) ที่เราใช้เพื่อขอใบรับรองนะ เราโอเคไหมที่จะให้คนอื่นรู้ที่อยู่ไอพีที่เรากำลังใช้อยู่ขณะนี้ (ของเครื่องที่เรากำลังใช้อยู่ ไม่ใช่เว็บเซิร์ฟเวอร์) ถ้าเราโอเค ก็ตอบตกลงไป
    Let's Encrypt warns about IP logging
  5. ถึงตรงนี้มันจะให้เรายืนยันว่า เรามีสิทธิ์ในชื่อโดเมนที่เราขอไปจริงๆ ด้วยการให้เราสร้างไฟล์ที่มีชื่อตามที่มันกำหนดในไดเรกทอรีที่กำหนด (ตรงสีเขียว) โดยในไฟล์นั้นต้องมีข้อความที่กำหนดด้วย (สีแดง) — อย่าเพิ่งกด ENTER จนกว่าเราจะสร้างไฟล์ที่ว่าเสร็จ
    Let's Encrypt asking for domain validationวิธีสร้างก็ตามนี้ คือ (ในอีกหน้าจอนึง-ล็อกอินเข้าไปที่เซิร์ฟเวอร์ ไม่ได้ทำที่เครื่องเราเองนะ) เข้าไปที่ไดเรกทอรีของเว็บไซต์เราก่อน (อันนี้เป็นการแบ่งไดเรกทอรีในแบบของ Dreamhost ใครใช้โฮสต์อื่นก็ปรับไปนะครับ) จากนั้นก็สร้างไดเรกทอรีที่กำหนด แล้วก็สร้างไฟล์และเอาข้อความที่มันบอกไปใส่ เพื่อบอกว่า นี่ไง เราสร้างได้ เรามีสิทธิ์จริงๆ นะ

    cd [domain]
    mkdir -p .well-known/acme-challenge/
    echo -n "[RedContent]" > .well-known/acme-challenge/[GreenFilename]

    พอจัดการเรื่องที่เซิร์ฟเวอร์เสร็จ ก็กลับมาที่หน้าจอที่เครื่องเรา แล้วกด ENTER ได้เลย

    ถ้าระบบมันเจอไฟล์ที่เราสร้างไว้อย่างถูกต้องที่เซิร์ฟเวอร์ ระบบมันจะสร้างใบรับรองให้เรา เก็บไว้ที่ /etc/letsencrypt/live/[domain]
    ข้างในไดเรกทอรีดังกล่าวจะมีไฟล์อยู่ 4 ไฟล์: cert.pem, chain.pem, fullchain.pem, privkey.pem ซึ่งเราจะเอาไปใช้ในขั้นต่อไป
    **ไฟล์เหล่านี้อย่าให้คนอื่นรู้** ไม่งั้นเขาจะปลอมตัวเป็นเว็บไซต์ของเราได้

  6. ถึงตรงนี้เราจะเริ่มก๊อปปี้ใบรับรองต่างๆ ไปใส่ในคอนโทรลพาเนลของ Dreamhost
    เริ่มด้วยการคลิก Edit ที่ท้ายชื่อโดเมน ในหน้า “Secure Hosting”
    Add certificate in Dreamhostจะเจอหน้า “Certificate Settings”
    ให้เราเลือก “Manual configuration”
    มันจะขึ้นช่องให้เราใส่ใบรับรองต่างๆ อยู่ 4 ช่อง
    Add certificate in Dreamhost4 ช่องนี้ ให้ใส่ดังนี้

    • Certificate Signing Request: ลบทิ้งให้ว่าง
    • Certificate: เอาข้อความในไฟล์ cert.pem มาใส่
    • Private Key: แปลง privkey.pem เป็นฟอร์แมต RSA ด้วย openssl แล้วนำข้อความมาใส่
    • Intermediate Certificate: เอาข้อความในไฟล์ chain.pem มาใส่

    วิธีดูข้อความในไฟล์

    sudo less /etc/letsencrypt/live/[domain]/cert.pem

    วิธีแปลง privkey.pem เป็นฟอร์แมต RSA แล้วเอาไปเก็บไว้ที่ privkey.key (จากนั้นก็เอาข้อความใน privkey.key ไปใช้)

    sudo openssl rsa -in /etc/letsencrypt/live/bact.cc/privkey.pem -out privkey.key

    ใส่ครบทุกช่องแล้ว ก็คลิก “Save changes now”

  7. เท่านี้ก็น่าจะเสร็จแล้ว — แต่ถ้าอยากให้ทุกครั้งที่เรียก http://abc.xyz แล้วให้มัน redirect ไปที่ https:///abc.xyz อัตโนมัติ ก็ทำขั้นนี้เพิ่มหน่อย — ใส่โค้ดนี้ลงในไฟล์ .htaccess
    RewriteEngine On
    RewriteCond %{HTTPS} !=on
    RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
  8. ลองเข้าเว็บไซต์ของเราดู ว่าเข้ารหัสและมีใบรับรองสวยงามอย่างที่หวังไหม หลังการแก้ไขต่างๆ อาจจะต้องรอสักพัก ไม่น่าจะเกิน 15 นาที เพื่อให้ระบบมันรีเฟรช
  9. ทดสอบความเรียบร้อยอีกที ด้วย การทดสอบจาก SSL Labs เพื่อดูว่าเรายังขาดตกตรงไหนอีก
  10. อย่าลืมว่า ใบรับรองของ Let’s Encrypt จะหมดอายุทุกๆ 3 เดือน ดังนั้นพอใกล้ๆ 3 เดือนก็อย่าลืมทำซ้ำตั้งแต่ขั้นที่ 3 ใหม่นะครับ

ส่วนใครใจไม่ร้อน รอได้ ก็รออีกหน่อย ทาง Dreamhost ประกาศแล้วว่า จะหาทางให้สามารถใช้ Let’s Encrypt บน Dreamhost ได้แบบง่ายๆ แค่คลิกๆ ก็เสร็จ

“อยากกด Like จนมือสั่น”

สืบเนื่องจากกรณีตำรวจอยากดูข้อมูลการพูดคุยกันของประชาชนบนโซเชียลมีเดีย

นิตยสาร Way สัมภาษณ์ประมาณสิงหาปีที่แล้ว ฉบับสั้น “5 คำถาม” ตีพิมพ์ลงฉบับ 56 ธีมเล่ม “Human 2.0”

ส่วนฉบับยาวเพิ่งออกมาเมื่อเดือนนี้ (ก.พ. 2557) ในชื่อว่า “อยากกด Like จนมือสั่น” ว่าด้วยความเคลื่อนไหวเปลี่ยนแปลงบนสื่อสังคม การแสดงออกทางการเมือง การควบคุมสื่อ และสิทธิมนุษยชน

ภาพประกอบนี้ถ่ายที่ชั้น 2 ตึกคณะนิติ จุฬา หน้าร้านถ่ายเอกสาร – โซฟานี่ก็ไปยืมมาจากร้านถ่ายเอกสาร ช่วยกันยกกับพี่ช่างภาพ

eh?

เข้าเว็บไซต์มหาวิทยาลัยเที่ยงคืนไม่ได้? ลิงก์เสีย? ลองนี่

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

ถ้าลิงก์ที่มีอยู่เป็นลิงก์จากสมัย http://www.geocities.com/midnightuniv/ หรือ http://www.geocities.com/midnight2545/ ให้เปลี่ยนคำว่า geo ในลิงก์เป็น reo แล้วลองเข้าดูใหม่

ถ้าลิงก์ที่มีอยู่หน้าตาแนวๆ นี้ http://www.midnightuniv.org/midnight2544/XXX.html
ให้ลอก XXX มาใส่ตามลิงก์นี้ http://thaiis.com/midnightuniv-org-v1/XXX.html

เช่น http://www.midnightuniv.org/midnight2544/0009999708.html
ก็เป็น http://thaiis.com/midnightuniv-org-v1/midnight2544/0009999708.html

ส่วนถ้าอยากไล่ดูบทความในแบบเดิมๆ ไปที่หน้าแรกแบบเก่าเก่าและแบบเก่าได้ที่สองลิงก์นี้ครับ

สำหรับเว็บไซต์มหาวิทยาลัยเที่ยงคืนรุ่นใหม่ล่าสุด ซึ่งมีบทความใหม่ๆ ออกมาอยู่เรื่อยๆ เข้าดูได้ที่ http://www.midnightuniv.org/

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

Person API ขุดประกอบประวัติบุคคลจากอินเทอร์เน็ต

วันนี้ได้อ่านเกี่ยวกับบริการของบริษัท FullContact ซึ่งเพิ่งไปซื้อกิจการบริษัท Cobook ผู้ผลิตโปรแกรมสมุดโทรศัพท์ของ Mac มาเมื่อปลายปีก่อน

ความสามารถอันนึงของ Cobook และซอฟต์แวร์คล้ายๆ กัน อย่างตัว Contacts ของ Gmail ก็คือ มันสามารถ “merge” หรือรวมที่อยู่ติดต่อที่ซ้ำๆ กันให้มาเป็นอันเดียวได้ เช่น คนๆ นึงอาจจะมีมีหลายเบอร์โทร มีอีเมล มีทวิตเตอร์ มี LinkedIn มีบัญชีโซเชียลมีเดียอื่นๆ บางบัญชีใช้ชื่อจริง บางบัญชีเป็นชื่อเล่น ซอฟต์แวร์พวกนี้มันช่วยรวมทั้งหมดให้มาอยู่ในระเบียนเดียวกันได้ จะได้จัดการและค้นหาได้ง่ายๆ

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

FullContact Person API

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

เช่น รู้แค่ชื่ออะไร ทำงานที่ไหน ก็หาเบอร์มือถือหรืออายุได้แล้ว เป็นต้น

คือในทางหนึ่ง มันก็สะดวกดี สำหรับคนที่ต้องการติดต่องานหรือมีธุระอะไรจำเป็น (และชอบธรรม)

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

Person API ของ FullContact ก็เสนอบริการแบบนั้น มันใช้ข้อมูลที่เก็บรวบรวมมาจากทั่วอินเทอร์เน็ตและฐานข้อมูลที่เปิดเผยสาธารณะ เอามาประมวลผล ต่อจิ๊กซอว์ และสร้างประวัติของบุคคล พร้อมที่อยู่ติดต่อ อายุ และข้อมูลส่วนตัวอื่นๆ ได้

FullContact บอกว่าตัวเองเป็นบริษัทให้บริการ “contact management” ข้อมูลที่ให้บริการก็มี ประวัติบุคคล ชื่อ อีเมล พิกัดที่ตั้ง โดยโฆษณาว่า มีข้อมูลติดต่ออยู่ 1 พันล้านระเบียน สามารถจับคู่ข้อมูลพวกนี้ให้เราได้ 6 ใน 10 ครั้ง ในเวลาแค่ 150 มิลลิวินาที (หนึ่งวินาที จับคู่ให้เราแบบนี้ได้เกือบ 7 คน) และมีความแม่นยำสูงถึง 90%

หน่วยงานความมั่นคงก็ต้องมีอะไรทำนองนี้ใช้แน่ๆ ล่ะครับ ถ้าในตลาดมันมีซะขนาดนี้แล้ว

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

เนื่องจากเมืองไทยยังไม่มีกฎหมายคุ้มครองส่วนบุคคลเป็นการเฉพาะ (แม้รัฐธรรมนูญจะระบุถึงสิทธิในความเป็นส่วนตัวเอาไว้หลายมาตรา) เราลองไปดูคำพิพากษาของศาลฎีกาสหรัฐที่คล้ายๆ กับเรื่องนี้กัน

“People disclose the phone numbers that they dial or text to their cellular providers, the URLS that they visit and the e-mail addresses with which they correspond to their Internet service providers, and the books, groceries and medications they purchase to online retailers . . . I would not assume that all information voluntarily disclosed to some member of the public for a limited purpose is, for that reason alone, disentitled to Fourth Amendment protection.” United States v. Jones, 565 U.S. ___, 132 S. Ct. 945, 957 (2012) (Sotomayor, J., concurring).
อ้างจาก International Principles on the Application of Human Rights to Communications Surveillance

“ผู้คนเปิดเผยหมายเลขโทรศัพท์ที่พวกเขาโทรหรือส่งข้อความ ให้กับผู้ให้บริการโทรศัพท์มือถือ เปิดเผยตัวชี้แหล่งในอินเทอร์เน็ต (URL) ที่พวกเขาเข้าชมและที่อยู่อีเมลที่พวกเขาติดต่อด้วย ให้กับผู้ให้บริการอินเทอร์เน็ต และเปิดเผยถึงหนังสือ ของชำ และยาที่พวกเขาซื้อ ให้กับผู้ขายปลีกทางอินเทอร์เน็ต … ศาลไม่เชื่อว่าข้อมูลทั้งหมดที่มีการเปิดเผยโดยสมัครใจให้กับสมาชิกบางคนในพื้นที่สาธารณะเพื่อจุดประสงค์เฉพาะอย่าง ไม่ควรได้รับการคุ้มครองตามข้อแก้ไขรัฐธรรมนูญครั้งที่ 4 (Fourth Amendment) เพียงเพราะเหตุผลนั้นเพียงอย่างเดียว” United States v. Jones, 565 U.S. ___, 132 S. Ct. 945, 957 (2555) (Sotomayor, J., พิพากษายืน).
อ้างจาก หลักการระหว่างประเทศว่าด้วยการใช้หลักสิทธิมนุษยชนกับการสอดแนมการสื่อสาร

Fourth Amendment หรือ ข้อแก้ไขรัฐธรรมนูญครั้งที่ 4 นี่พูดถึงสิทธิในความเป็นส่วนตัว พูดถึงเรื่องการขอค้นตัวค้นบ้าน

ศาลฎีกาในคดีนี้บอกว่า ใช่ คนน่ะเปิดเผยข้อมูลต่างๆ ให้กับผู้ให้บริการ แต่มันก็มีเจตนาในการเปิดเผยอยู่ ว่าเปิดเผยเพราะเขาจะรับบริการนี้ ในครั้งนี้ ดังนั้นข้อมูลก็ควรจะถูกใช้เพื่อการนั้นเท่านั้น ไม่ควรจะถูกเอาไปใช้ในเรื่องอื่นต่อ

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

(ภาพประกอบจากเว็บไซต์ FullContact)

ไหลข้ามพรมแดน ทั้งคน ข้อมูล ทุน สินค้า และความน่าปวดหัว

Freedom of Movement.

(จากข่าว “ประธานาธิบดีฝรั่งเศสเร่งปราบการเลี่ยงภาษีโดยบริษัทไอทีจากสหรัฐ”)

ผมว่าปัญหาเลี่ยงภาษีโดยอาศัยความแตกต่างทางกฎหมายในแต่ละประเทศ/รัฐ/เขตเศรษฐกิจ นี่ก็เป็นตัวอย่างนึงของความ “เอาไม่อยู่” อีกต่อไปแล้วของขอบเขตกฎหมายที่อยู่บนฐานรัฐชาติ

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

แม้อุปลักษณ์ “เครือข่าย” จะเป็นอุปลักษณ์ยอดนิยม ที่ถูกใช้ในการเข้าใจและอธิบายแนวคิดและสิ่งต่างๆ ในยุค “อินเทอร์เน็ต” นี้ — แต่กรณีนี้ อุปลักษณ์ “ของไหล” อาจจะเหมาะกว่า

เราลองคิดว่า คน ข้อมูล ทุน และสินค้า ก็เหมือนกับน้ำ

ถ้ามีรู น้ำก็ไหล ถ้ามีแรงดัน น้ำก็ไหล
ถ้าระดับสองที่ไม่เท่ากัน น้ำก็ไหลจากสูงไปต่ำ
น้ำไหลไปทุกที่ เจอกำแพงก็ไหลไปตามแนวกำแพง จนไปสุดกำแพงแล้วไหลต่อ
น้ำมามากๆ พังกำแพงได้อีก

คนไหล เงินไหล สินค้าไหล ข้อมูลไหล
ปัญหาปวดหัวระหว่างประเทศมักจะวนๆ กับเรื่องพวกนี้
ผู้อพยพ แรงงานต่างชาติ การเข้าออกของทุน กำแพงภาษี การคุมข้อมูล

การลงทุนโครงสร้างพื้นฐานในประเทศ ก็เน้นเรื่องการไหลพวกนี้ เพื่อให้ระบบเศรษฐกิจและสังคมมันมีประสิทธิภาพ

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

หรือไฟฟ้า ประปา ถนนหนทาง รางรถไฟ ก็เป็นโครงสร้างพื้นฐานที่ว่าด้วยการไหลทั้งนั้น

จึงเห็นได้ว่าโดยพื้นฐานแล้ว รัฐบาลประเทศต่างๆ ก็อยากให้ของมันไหลแหละ แต่เขาต้องเป็นคนควบคุมการไหล/ต้องไหลในระดับที่เขาคุมได้

การเจรจาหรือมาตรการระหว่างประเทศอื่นๆ จำนวนหนึ่งก็มาจากความคาดหวังในระดับของการไหลที่ไม่ตรงกันของสองพื้นที่

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

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

Trans-Pacific Partnership และการแก้ไขกฎหมายลิขสิทธิ์ … จะคุ้มครองทุกฝ่ายให้แฟร์ๆ ได้ยังไง?

ความคิดเห็นเรื่องการเข้าเป็นสมาชิกความตกลงหุ้นส่วนยุทธศาสตร์ทางเศรษฐกิจภาคพื้นแปซิฟิก (Trans-Pacific Partnership Agreement) หรือ ทีพีพี (TPP) โดย Susan Chalmers @susan_chalmers ผู้เชี่ยวชาญกฎหมายทรัพย์สินทางปัญญาและ(อดีต)ที่ปรึกษาด้านนโยบายของ InternetNZ ผู้ดูแลระบบโดเมนของนิวซีแลนด์ ซึ่งมาเมืองไทยเมื่อปลายปีที่แล้ว เพื่อแลกเปลี่ยนกับนักกฎหมายและผู้ประกอบการอินเทอร์เน็ตไทย

“นอกจากปัญหาเทคนิคทางกฎหมาย เช่นกรณี ‘สำเนาชั่วคราว’ แล้ว การเข้าร่วม TPP อาจทำให้เกิดการผูกขาดทางการค้า เช่นมาตราที่ว่าด้วยการนำเข้าซ้อน (parallel import) ระบุว่า เจ้าของลิขสิทธิ์มีสิทธิในการขอให้ประเทศสมาชิกห้ามนำเข้าสินค้าลิขสิทธิ์อย่างเดียวกันจากประเทศอื่น ซึ่งอาจส่งผลให้ราคาหนังสือ สื่อการสอน ภาพยนตร์ เพลง โปรแกรมคอมพิวเตอร์ และงานอันมีลิขสิทธิ์อื่นมีราคาแพงขึ้นได้

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

นอกจากนี้แล้ว ไทยยังต้องอยู่ภายใต้ความตกลงทริปส์พลัส (TRIPS+) ซึ่งเป็นความตกลงระหว่างประเทศเกี่ยวกับกฎหมายทรัพย์สินทางปัญญาที่จะขยายระยะเวลาคุ้มครองลิขสิทธิ์จาก 50 ปีหลังการเสียชีวิตของผู้เขียนออกไปเป็น 70 ปีหลังการเสียชีวิตสำหรับเจ้าของงานที่เป็นบุคคลธรรมดา และอาจยาวนานถึง 95 ปีหลังการตีพิมพ์หรือยาวนานถึง 120 ปีหลังการสร้างสรรค์ผลงานสำหรับเจ้าของผลงานที่เป็นนิติบุคคล

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

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