ดีไซน์แพตเทิร์นเพื่อเพิ่มความปลอดภัย โดยการจัดเก็บรหัสผ่านที่เข้ารหัสด้วยฟังก์ชันแฮชหลายรูปแบบ

Main Article Content

นฤพล สุวรรณวิจิตร
สมเกียรติ ช่อเหมือน
วรเชษฐ์ อุทธา

บทคัดย่อ

การรักษาความปลอดภัยของข้อมูลส่วนบุคคลที่เก็บอยู่ในฐานข้อมูลของเว็บแอปพลิเคชันเป็นสิ่งที่สำคัญ ในปัจจุบันการสร้างความปลอดภัยให้กับข้อมูลส่วนบุคคลโดยเฉพาะรหัสผ่านมีการนำฟังก์ชันแฮชมาใช้ ซึ่งฟังก์ชันแฮชเป็นอัลกอริทึมทางคณิตศาสตร์ที่ใช้ในการเข้ารหัสข้อมูลแบบทางเดียวไม่สามารถถอดรหัสกลับเป็นข้อมูลต้นฉบับได้ แต่อาศัยการเปรียบเทียบในการตรวจสอบความถูกต้องของข้อมูล โดยทั่วไปแล้วแต่ละเว็บแอปพลิเคชันจะเลือกใช้ฟังก์ชันแฮชเพียงฟังก์ชันหรืออัลกอริทึมเดียวในการเข้ารหัสผ่านของผู้ใช้ ไม่ได้ออกแบบซอฟต์แวร์ให้มีความสามารถในการปรับเปลี่ยนอัลกอริทึมได้โดยง่าย ผู้วิจัยเห็นว่าดีไซน์แพตเทิร์นนั้นถูกนำมาใช้ในการออกแบบซอฟต์แวร์ที่ดี ซึ่ง Strategy Pattern เป็นหนึ่งในแพตเทิร์นที่สำคัญของดีไซน์แพตเทิร์นที่สามารถนำมาประยุกต์ใช้ในการออกแบบซอฟต์แวร์ ที่มีอัลกอริทึมให้เลือกหลากหลายและรองรับการปรับเปลี่ยนอัลกอริทึมได้อย่างอิสระ เพื่อให้เหมาะสมในแต่ละสถานะการณ์ ในงานวิจัยนี้ผู้วิจัยจึงมีความสนใจที่จะนำดีไซน์แพตเทิร์น ทั้ง Strategy pattern และ Factory method pattern มาประยุกต์ในออกแบบและพัฒนาซอฟต์แวร์ ในส่วนของฟังก์ชันแฮชให้มีความหลากหลายในการเข้ารหัส และการเลือกสร้าง instance ของฟังก์ชันแฮช ผลจากการวิจัยพบว่าระบบมีความยืดหยุ่นในการเปลี่ยนแปลงและเพิ่มเติมฟังก์ชันแฮชใหม่ๆ เพื่อจัดการกับการจัดเก็บรหัสผ่านผู้ใช้ด้วยฟังก์ชันแฮชหลายรูปแบบ และยังทำให้รหัสผ่านมีความปลอดภัยมากยิ่งขึ้นโดยการเพิ่มซับซ้อนในการเจาะระบบเมื่อเทียบกับฟังก์ชันแฮชแบบเดียว

Article Details

How to Cite
สุวรรณวิจิตร น., ช่อเหมือน ส., & อุทธา ว. (2024). ดีไซน์แพตเทิร์นเพื่อเพิ่มความปลอดภัย โดยการจัดเก็บรหัสผ่านที่เข้ารหัสด้วยฟังก์ชันแฮชหลายรูปแบบ . วารสารวิทยาศาสตร์ มข., 52(2), 157–169. https://doi.org/10.14456/kkuscij.2024.14
บท
บทความวิจัย

References

Al-Hawari, F. (2022). Software design patterns for data management features in web-based information systems. Journal of King Saud University - Computer and Information Sciences 34(10): 10028 – 10043. doi: 10.1016/j.jksuci.2022.10.003.

Bijlsma, L.A., Kok, A.J.F., Passier, H.J.M., Pootjes, H.J. and Stuurman, S. (2022). Evaluation of design pattern alternatives in Java. Software: Practice and Experience 52(5): 1305 – 1315. doi: 10.1002/spe.3061.

Jha, P.C., Bali, V., Narula, S. and Kalra, M. (2014). Optimal component selection based on cohesion & coupling for component based software system under build-or-buy scheme. Journal of Computational Science 5(2): 233 – 242. doi: 10.1016/j.jocs.2013.07.003.

Khosravi, K. and Guéhéneuc, Y-G. (2017). A Quality Model for Design Patterns. Source: https://www.researchgate.net/publication/249885094_A_Quality_Model_for_Design_Patterns. Retrieved from 28 October 2023.

Ntantogian, C., Malliaros, S. and Xenakis, C. (2019). Evaluation of password hashing schemes in open source web platforms. Computers & Security 84(2): 206 – 224. doi: 10.1016/j.cose.2019.03.011.

Osman, T. and Ömer, T. (2018). An Experimental Evaluation of The Effect of SOLID Principles to Microsoft vs Code Metrics. AJIT-e: Online Academic Journal of Information Technology 9(34): 7 - 24. doi: 10.58 24/1309-1581.2018.4.001.x.

Patel, H. (2023). An insight on software development lifecycle (SDLC) process models. Advance doi: 10.31124/advance.22354453.v1.

Ramasamy, S., Jekese, G. and Hwata, C. (2015). Impact of Object Oriented Design Patterns on Software Development. International Journal of Scientific and Engineering Research 3(2): 6.

Rashidi, H. (2012). Using the Strategy Pattern to select encryption algorithms dynamically in application softwares. Source: https://www.semanticscholar.org/paper/890587e99f753ba42e510071e50e24bd6ddce654. Retrieved from 28 October 2023.

Roman, A.L. (2019). Ameliorating Password Security Authentication Using BCRYPT Algorithm with Dynamic Salt Generation. Journal of Advanced Research in Dynamical and Control Systems 11. 1240 - 1245. doi: 10.5373/JARDCS/V11SP12/20193331.

Shri, R.N. and Ravikumar, B. (2018). Enhancement of public cloud, application security, using Bcrypt algorithm.International Journal of Scientific Research in Computer Science, Engineering and Information Technology 3(3): 1029 – 1032. doi: 10.32628/CSEIT1833362.

Temaj, G. (2020). Factory Design Pattern. Source: https://www.researchgate.net/publication/350611051_ Factory_Design_Pattern. Retrieved from 28 October 2023.

Vaghela, R.K. and Pithva, K.A. (2016). Software design pattern approach to develop login framework. In: Proceedings of the 2016 3rd International Conference on Computing for Sustainable Global Development (INDIACom), New Delhi, India. 1013 – 1017.

Verma, C. and Liu, L. (2003). Re-engineering legacy code with design patterns : A case study in mesh generation software. Source: https://www.semanticscholar.org/paper/1aa8ba2e3cd596f3c501e0966530ab24c6bb190e. Retrieved from 28 October 2023.

Watts, S. (2023). The importance of SOLID design principles. BMC Blogs. Source: https://www.bmc.com/blogs/solid-design-principles/. Retrieved from 27 October 2023.

Zotos, K. (2007). Object-oriented design principles in mathematics. Applied Mathematics and Computation 188(2): 1430 – 1436. doi: 10.1016/j.amc.2006.11.009.