คัดลอกบทความไปใช้โดยไม่ได้รับความยินยอม ส่ง notice ไม่พอ ต้องส่ง invoice ไปด้วย

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

เหตุผลหลักๆ ที่มีการส่ง invoice เรียกเก็บเงิน เพราะเนื้อหาที่ระบุ CC นั้นต้องการ back link อย่างชัดเจน ซึ่งมีผลต่อ SEO ซึ่งน่าจะเป็นค่าตอบแทนที่สมน้ำสมเนื้อในการนำบทความไปใช้ในขั้นต่ำสุด (ห้าม unfollow tag ด้วย) ส่วนของเนื้อหา Copyright นี่ก็ตรงๆ ตัวอยู่แล้ว โดยทั้ง 2 ส่วนนี้ โดยส่วนใหญ่คนนำไปใช้มักนำไปใช้งานเพื่อสร้างผลตอบแทนต่อตัวเองอยู่แล้ว เพราะฉะนั้นการแบ่งส่วนผลตอบแทนที่คาดว่าจะเกิดจากนำเนื้อหาของเราไปใช้ จึงเป็นเรื่องที่ควรทำ และน่าจะ win-win กับทุกฝ่าย

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

สั้นๆ กับ Windows 10 Technical Preview

Untitled

ลงใช้ประมาณชั่วโมงกว่าๆ ได้ประมาณนี้

  • เครื่องที่ติดตั้งเป็น Sony VAIO 11E ซึ่งเป็น APU AMD, RAM 4G และ SSD 128GB โดย ไม่ได้ติดตั้งผ่าน VM ลงแบบ clean install ทับไปแทนตัว Windows 8.1 และเลือกไม่เก็บไฟล์ระบบเก่าไว้
  • การติดตั้งเหมือน Windows 8 ทุกอย่าง โดยระยะเวลาติดตั้งก็พอๆ กับ Windows 8
  • เจอจอฟ้า 1 ครั้งหลังจาก boot เข้าระบบครั้งแรก เป็นเพราะ driver การ์ดจอของ ATI (error code มันแจ้งมาแบบนั้น)
  • ส่วนของ start menu นั้นโดยรวมแม้จะเป็น UI Metro แต่ความรู้สึกเหมือน start menu บน Windows 7 อย่างมาก ส่วนที่แตกต่างคือการเอา Tile ของ Start Screen มาใส่บริเวณ icon เรียกใช้งานพวก Computer-Network แทน แล้วขยายออกด้านขวามือยาวๆ ไปแทนการเรียก Tile จากหน้า Start screen แบบ fullscreen ซึ่งส่วนตัวมองว่าเป็นการพัฒนาที่เหมาะสมกับ desktop computer ดีมาก เพราะทำให้ผู้ใช้ไม่รู้สึกแปลกแยกเวลาเข้าหน้า start screen ผ่าน desktop mode
  • ปุ่ม shutdown หาง่ายกว่าเดิม และรู้สึกดีกว่า Windows 7 ด้วยซ้ำไป
  • Charm bar ไม่โผล่มาแม้จะลากเมาส์ไปสุดจอด้านขวาแล้ว แต่ใช้ Win + C ยังเรียกได้อยู่ คาดว่าเพราะบน desktop mode มันไม่มีประโยชน์ใดๆ เพราะที่ start menu ก็มีความสามาถพวกนี้ครบอยู่แล้ว
  • Task View ดูดีนะ แต่ยังไม่สุด คงต้องปรับอีกพอสมควร เพราะยังงงๆ อยู่ ไม่มี indicator ช่วยคนใช้งานเพียงพอว่าอยู่ตรงไหน ย้ายไป-มาไม่ได้
  • เรื่อง driver ไม่น่าเป็นปัญหา คิดว่าใช้ของ Windows 8 ได้ทันที
  • การ sync profile จาก account เดิม โดยเป็นการย้ายแบบอัพเกรดมาจากเครื่องเดิม สามารถทำได้เลย wallpaper หรือพวก app profile มาครบเกือบทั้งหมดในเวลาไม่นานนัก แต่มีปัญหาว่าถ้าใช้ account ที่ sync ร่วมกับเครื่องอื่น จบพบว่าเครื่องเก่า start screen ที่ตั้งไว้ถูกปรับตาม Windows 10 ที่เพิ่งลงไป เลยต้องกลับมาไล่ปรับใหม่อีกรอบ
  • ความเร็วในการตอบสนอง และใช้การใช้ส่วนใหญ่ไม่ได้แตกต่างจาก Windows 8.1 เลย

สรุป ง่ายๆ มีแค่ start menu และ Task View ใหม่ที่น่าสนใจ อย่างอื่นนี่เล็กๆ น้อยไม่มีอะไรที่ดู wow เท่าไหร่ ถ้าไม่รีบอยากลองใช้ของพวกนี้ หรือต้องปรับแก้โปรแกรมให้รองรับ Windows 10 แนะนำให้รอ version beta หรือ RC น่าจะดีที่สุด

คำแนะนำในการเก็บรหัสผ่านในระบบสำหรับนักพัฒนาซอฟต์แวร์ และผู้ดูแลระบบไอที

คำแนะนำนี้เหมาะสำหรับนักพัฒนาซอฟต์แวร์ และผู้ดูแลระบบไอทีเป็นสำคัญ สำหรับบุคคลทั่วไปแนะนำให้อ่าน ตั้งรหัสผ่านอย่างไรให้ปลอดภัย แทนนะครับ

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

หลักของการเก็บรหัสผ่านในฐานข้อมูลนั้น

1. ไม่ใช่การเก็บตัวรหัสผ่านจริงๆ ลงไป

2. ไม่ควรใช้การจัดเก็บรหัสผ่านที่สามารถย้อนกลับมาเป็นรหัสผ่านต้นทางได้ ไม่ว่าจะทางใดก็ทางหนึ่ง

หลักง่ายๆ ก่อน 2 ข้อนี้ ทำให้เกิดวิธีคิดในการเก็บรหัสผ่านเพียงแค่ hash (หรือบางเอกสารเรียก fingerprint หรือค่า message digest) ของรหัสผ่านนั้นๆ กล่าวคือ การกระทำใดๆ ในตัวระบบ ต้องไม่มีความสามารถที่สามารถย้อนกลับวิธีการได้มาซึ่งข้อมูล hash ได้ (Non-invertibleเพื่อเป็นการป้องกันรหัสผ่านที่แท้จริงจากการนำไปใช้งานได้ทันทีหลังจากระบบถูก hack แล้วถูก dump ข้อมูลเหล่านี้ออกไป เพราะแม้ว่ารหัสผ่านที่ถูกนำออกไปจะเป็นเพียงแค่ hash ของข้อมูล แต่การโจมตีแบบ rainbow table attacks ก็สามารถถอดรหัสผ่านใดๆ ที่เป็นเพียงแค่ค่า hash ย้อนกลับมาเป็นรหัสผ่านเดิมได้ไม่ช้าก็เร็ว เพราะแม้มีความเป็นไปได้น้อยมากๆ แต่ก็ถือว่ามีความเสี่ยง

หลักการขอ rainbow table attacks คล้ายๆ การ brute force รหัสผ่านโดยทั่วไป แต่เป็นการกระทำต่อ hash เป็นหลัก โดยสุ่มชุดข้อมูลที่คิดว่าเป็นรหัสผ่าน มาเข้าขั้นตอน hash ที่เป็นที่นิยมใช้ให้ได้ซึ่งค่า hash แล้วเอาชุดข้อมูลดังกล่าว ใส่ลงในฐานข้อมูล rainbow tableไว้ แล้วเมื่อมีการ hack ระบบเกิดขึ้นแล้วได้ชุดข้อมูล hash ที่ dump ออกมา ก็เอาไปทดสอบเทียบกับชุดข้อมูลในฐานข้อมูลที่สร้างไว้ก่อนหน้านี้ ก็จะย้อนกลับมาได้ว่า ข้อมูล plaintext ที่เป็นส่วนย้อนกลับของ hash มีค่าใด

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

โดยด้านล่างเป็นลักษณะของฟังค์ชั่นโดยทั่วไปที่มักใช้กัน

[hash] = [salt] + [hash_function([salt] + [password])]

[salt] = เป็นการสุ่มจากวิธีการสุ่มใดๆ ที่ปลอดภัยที่สุดเท่าที่ทำได้ คำแนะนำคือควรใช้วิธีการสุ่มจากฟังค์ชั่นแบบ Cryptographically Secure Pseudo-Random Number Generator (CSPRNG)

[hash_function] ก็เลือกว่าจะเอาตัวไหนก็ได้ แต่ที่ใช้ๆ กันก็ แต่พวก MD5 หรือ SHA-1 ที่มันหาง่าย แต่มันก็แข็งแรงน้อยลงมากๆ ไม่แนะนำ และเดี่ยวนี้มันพูดกันที่ระดับ SHA-2 กันไปแล้ว (SHA-2 = SHA-256 หรือ SHA-512)

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

hash= PBKDF2(hash_function_name, password, salt, iterations, length)

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

โดยการทำแบบนี้ “ช่วยให้ผู้ใช้งานทั้งระบบยังพอมีเวลาในการปรับเปลี่ยนรหัสผ่านชุดใหม่ได้ใน ระยะเวลาที่น่าจะปลอดภัยมากที่สุด” เพราะหากว่ากันตามความเป็นจริงแล้ว ในวงการด้านการเข้ารหัสข้อมูลนั้น ทราบกันดีว่า ไม่มีวิธีการใดอะไรที่สามารถเข้ารหัสข้อมูลได้ปลอดภัยที่สุดไปตลอดกาล เพราะเทคโนโลยีด้านการคำนวนของ CPU/GPU นั้นเร็วมากขึ้นทุกวัน การจัดเก็บข้อมูลที่ปลอดภัยในช่วงเวลาหนึ่งอาจไม่ปลอดภัยในอีกไม่กี่ปีต่อมา เพราะเราสามารถแกะ และคำนวนหาค่าต่างๆ หรือสุ่มชุดข้อมูลต่างๆ ได้เร็วและหลายหลากขึ้น ตาม CPU/GPU ที่เร็วขึ้นเพื่อมาสร้าง rainbow table ได้ทุกขณะ

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

อ้างอิง

Ref: https://www.flickr.com/photos/nyuhuhuu/4443886636

เว็บ se-ed.com เก็บรหัสผ่านสมาชิกของร้านเป็น plaintext!

เมื่อวานนั่งหาหนังสือ กะว่าจะสั่งหนังสือสัก 2-3 เล่ม แต่ลืมรหัสผ่าน se-ed.com เลยเข้า https://www.se-ed.com/forgot-password.aspx เพื่อขอขั้นตอนการปลดล็อคผ่านทางอีเมลเพื่อเข้าระบบ

2014-09-08_110337

 

แต่สิ่งที่ได้กลับมาทำให้ตกใจไม่น้อยเพราะ….

2014-09-08_110831

 

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

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

ใช้จ่ายผ่าน internet ควรรู้ความเสี่ยง ระมัดระวัง และรู้วิธีการแก้ไขปัญหา

ปรกติเวลาผมชำระเงินผ่าน internet ผมมักเลือก Paypal เป็นอันดับแรกหากมี แต่ถ้าไม่มีผมจะใช้บัตรเครดิตอย่าง KTC, Citibank, UOB หรือ AEON เป็นหลัก เพราะมีระบบแจ้งเตือนเมื่อชำระเงินผ่าน internet และมักมีการโทรมาสอบถามยอดใช้จ่ายผ่าน internet อยู่ตลอด ซึ่งบางครั้งเร็วมากในระดับวินาที กดจ่ายเงินไปปั๊บ ไม่เกิน 10 วินาที จะมีเจ้าหน้าที่โทรมาสอบถามทันที ซึ่งผมเจอกับ 4 แบรนด์นี้เป็นประจำ แม้จะไม่ทุกยอดที่ใช้จ่าย แต่หากเป็นยอดสั่งซื้อแปลกๆ มักไม่พลาด เช่นสั่งซื้อเพลงผ่าน iTunes สั่งซื้อแอพผ่าน Play Store หรือเว็บขายของอย่าง eBay เป็นต้น

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

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

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