3.8 KiB
title: เก็บพาสเวิร์ดผู้ใช้เป็น text ธรรมดา date: Mar 9, 2015 author: sipp11 category: tech tags: security, failed icon: briefcase slug: sipa-or-th-store-password-in-plaintext
ด้วยความที่อึ้งกับเพราะปกติไม่ค่อยได้เข้าไปใน web SIPA - สำนักงานส่งเสริมอุตสาหกรรมซอฟต์แวร์แห่งชาติ เท่าไหร่ ก็เลยจำ password ไม่ได้ แต่พอเข้าได้กลับได้พบสิ่งที่น่าสะพรึงกลัว สำหรับองค์กร ซอฟต์แวร์ ของประเทศที่ไม่ควรจะทำอะไรให้มันขี้เกียจนัก
ปัญหามันก็มีอยู่ที่ว่า พอ forget password แล้วนั่น mail ที่เค้าส่งกลับมาเป็นด้านล่างนี้!
มันอาจจะดูไม่แปลกสำหรับบางคนนะครับ แต่การที่เค้าส่ง password เดิมเรากลับมาได้นั้น แปลว่า เค้าก็ต้องเก็บ password เราเป็นแบบนั้นด้วย? แสดงว่า ถ้าเกิด database server เค้าถูกโจมตี password ของเราก็จะถูกเอาไปใช้ง่ายๆ อย่างนั้นเลย
แล้วควรจะต้องทำอย่างไร?
อย่างง่ายและประหยัดที่สุดคือ การเก็บ password เป็น hash digest ครับ เพราะการทำเป็น digest นั้นจะเป็น 1-way encryption ไม่สามารถย้อนกลับไปดูได้ว่า จริงๆ password ที่ผู้ใช้ใช้นั้นคืออะไรกันแน่ การตรวจสอบนั้นก็ไม่ยากเพราะเมื่อผู้ใช้ใส่ password เพื่อจะเข้าระบบก็ทำการหา hash ใหม่เพื่อเทียบกันกับที่เก็บไว้ในฐานข้อมูลเดิม
การได้มาซึ่ง hash digest นั้นก็ไม่ได้มีวิธีเดียว ก็จะมีตั้งแต่บ้านๆ md5
ที่ใช้กันเกลื่อนแต่ก็ยังดีกว่าไม่มีครับ สำหรับปัจจุบันนั้นอย่างน้อยก็ควรจะใช้ sha-1
(Secure Hash Algorithm 1)
สำหรับเวลา forget password ก็ควรจะสร้าง token จำกัดเวลาไว้เพื่อให้ผู้ใช้ที่เข้าถึง email นั้นได้จริงๆ เข้าไป reset password ได้ตัวเองตามเงื่อนไขต่างๆ เพราะสำหรับผู้ให้บริการแล้วนั้น ก็ไม่มีความจำเป็นที่จะรู้ password ของผู้ใช้ด้วยซ้ำไป
ตอนนี้ก็ขอเศร้าซักพักครับ องค์กรของชาติเราบุคลากรไม่พอ? หรือไม่คิดจะทำให้ดี?