ช่วงที่ผ่านมามีคนตั้งคำถามมากมายเกี่ยวกับการเก็บรหัสผ่าน(Password) ของเว็บไซต์ต่างๆทั่วโลกรวมถึงประเทศไทยด้วย ว่าการเก็บเป็นแบบข้อความโดยไม่มีการเข้ารหัส (plain text) สมควรหรือไม่ บางคนก็ว่าเว็บไซต์ไม่ได้มีการทำธุรกรรมออนไลน์ใดๆ ไม่จำเป็นต้องเก็บแบบเข้ารหัสหรอก ไม่ต้องให้ความสำคัญหรือจริงจังอะไร แต่หารู้ไม่ว่าการเก็บข้อมูล password แบบไม่เข้ารหัสนั้นแฝงไปด้วยภัยอันตรายมากมาย
เว็บไซต์กับรูปแบบการเก็บ Password
ไม่ว่าจะเป็นเว็บไซต์ของบริษัทชื่อดังหรือไม่ก็ตาม ก็ยังพบเห็นได้ทั่วไปกับพฤติกรรมการเก็บ Password แบบที่ไม่เข้ารหัส โดยถึงแม้ว่าเว็บไซต์เหล่านั้นจะไม่มีการทำธุรกรรมออนไลน์แต่อย่างใด แต่กลับมีการระบุให้ผู้ใช้งานทั่วไปที่ต้องการสมัครสมาชิกของเว็บไซต์เหล่านั้นกรอกข้อมูลสำคัญของตนเองในแบบฟอร์มการสมัครสมาชิกด้วยเช่นกัน นั่นหมายความว่าเว็บไซต์เหล่านั้นก็จะเก็บข้อมูลสำคัญของผู้ใช้งานไว้พร้อมกับการเก็บ password แบบไม่เข้ารหัสไว้นั่นเอง
รูปภาพตัวอย่างเว็บไซต์ที่เก็บ password แบบไม่เข้ารหัส
โดยปกติเว็บไซต์ทั่วไปจะมีการเก็บ Password เป็น 3 แบบด้วยกันคือ
การเก็บข้อมูลแบบ plain text คือการเก็บ password แบบไม่มีการเข้ารหัสแต่อย่างใด
การเก็บข้อมูลแบบเข้ารหัส แต่สามารถถอดรหัสได้
การเก็บโดยใช้เป็นแบบ one-way hashing คือการเข้ารหัสแบบทางเดียว กล่าวคือเมื่อทำการเข้ารหัสไปแล้ว จะไม่สามารถทำกระบวนการย้อนกลับหรือถอดรหัส(decryption) ได้อีก
รูปภาพตัวอย่างการใช้งาน Hash function
นั่นหมายความว่าหากเราทดสอบด้วยการ “ลืม password (forgot password)” กับเว็บไซต์ใดๆ แล้วเว็บไซต์ส่ง email กลับมายังฝั่งผู้ใช้งานพร้อมกับ password ของผู้ใช้ นั่นหมายความว่าเว็บไซต์เหล่านั้นมีการเก็บ password เป็นแบบ 1, 2 แน่นอน และมักจะพบว่าเป็นแบบที่ 1 อีกด้วย
ภัยจากการเก็บ Password แบบไม่เข้ารหัส
ถ้ามองแบบผิวเผิน การเก็บ Password แบบไม่เข้ารหัสก็น่าจะไม่มีพิษมีภัยอะไร แต่จริงๆ แล้วมันทำให้เกิดภัยอันตรายต่างๆ ได้มากมายเช่น
การปลอมแปลงตัวตน(Impersonate Person) ในปัจจุบันการใช้งานเว็บไซต์ใดๆ จะมี username เปรียบเสมือนตัวแทนของเรา ไม่ว่าเราจะกระทำสิ่งใดก็แล้วแต่ในเว็บไซต์นั้นๆ เช่น การเขียนข้อความลงในกระทู้ภายในเว็บไซต์ การส่งข้อความให้กับผู้ใช้งานอื่น เป็นต้น เปรียบเสมือนเป็นการกระทำของตัวเราเอง โดยทางเว็บไซต์จะเก็บการกระทำต่างๆ จากผู้ใช้งานลง log file หากมีการเก็บ password เป็นแบบ plain text จะทำให้ผู้ดูแลเว็บไซต์หรือใครก็แล้วแต่ที่สามารถเข้าถึง database ที่เก็บ password นั้นๆ ได้ สามารถปลอมแปลงเป็นผู้ใช้งานใดๆ ก็ได้ ซึ่งอาจนำไปสู่กาสร้างสถานการณ์และโยนความผิดกับผู้ใช้งานใดๆ ก็เป็นได้
การได้มาซึ่งข้อมูลสำคัญของบุคคล(Internal Threat & Information Leak)
จากที่กลาวไปก่อนหน้านี้ว่า ยังมีเว็บไซต์หลายเว็บไซต์ที่ให้ผู้สมัครสมาชิกจำเป็นต้องกรอกข้อมูลสำคัญของผู้ใช้งานเช่น เลขประจำตัวประชาชน, ที่อยู่, เบอร์โทรศัพท์, วัน/เดือน/ปีเกิด เป็นต้น หากผู้ดูแลสามารถทราบถึง password ที่ไม่ได้เข้ารหัสของผู้ใช้งานได้ ก็อาจจะเข้าถึงข้อมูลสำคัญเหล่านี้ได้ และอาจนำข้อมูลสำคัญเหล่านี้ไปใช้ในทางที่ผิดต่อไปได้
การเข้าถึง account อื่นๆของผู้ใช้งาน (Using same password in multiple account)มีหลายท่านที่มีการใช้งาน username, password เหมือนๆกันในหลายๆเว็บไซต์ หรือในหลายๆ email account นั่นหมายความว่าหากเว็บไซต์หนึ่งในนั้นสามารถถูกเข้าถึง password ที่ไม่ได้เข้ารหัสไว้ได้ ไม่ว่าจะเกิดจากการถูกแฮ็ค หรือผู้ดูแลระบบเข้าถึงข้อมูลดังกล่าวเองก็ตามที ผู้ที่ได้ password นั้นไปก็จะสามารถเข้าถึง account ในเว็บไซต์อื่นๆที่มีความสำคัญของผู้ใช้งานได้ รวมถึงผู้ที่ได้ password อาจไปแก้ไข password ของผู้ใช้งานนั้นได้อีกด้วย
การหลอกล่อมาเพื่อให้ได้ password (Phishing with genuine website) *** หากมี Hacker สามารถเจาะเข้าไปในเว็บไซต์ชื่อดังที่มีชื่อเสียงแต่กลับเก็บ password เป็นแบบ plain text ได้ Hacker อาจพยายามหลอกล่อให้ผู้อื่นเข้ามาสมัครเว็บไซต์ชื่อดังดังกล่าว เพื่อหวังผลทางด้านโปรโมชั่นหรือรับข่าวสารใดๆก็แล้วแต่ เมื่อมีเหยื่อติดกับ Hacker ก็จะได้ทั้ง password ซึ่งอาจจะมีการใช้ร่วมกับเว็บไซต์อื่น, รวมถึงข้อมูลส่วนตัวที่สำคัญอื่นๆก็เป็นได้
*** อ้างอิงแนวคิดนี้จาก http://pantip.