Abstract [eng] |
Everyday a lot of people are required to prove their identity while using network services (e. g., email, bank, government institutions). Currently, there are a lot of various authentication methods, differing by their strengths and weaknesses. Though, the problem of secure authentication remains. During the recent years, blockchain technology has gain a lot of traction and is being experimented with and applied in various fields, such as, finance, insurance, medicine, Internet of things, etc. Blockchain applicability for user authentication and identity management is also being evaluated. The goal of this master's thesis is to create a blockchain based user authentication system, taking into account problems observed in related work of other authors. Literature on user authentication, blockchain and its practical applicability is analyzed in this thesis. Based on the analysis, a theoretical model for blockchain based user authentication system is proposed. Theoretical model is then implemented practically, and a prototype is created. Prototype consists of a newly developed \"Ethereum\" smart contract, used for managing users' authentication data and authentication itself. This smart contract is deployed to \"Ethereum\" blockchain network, which is used by two websites. When administrator registers a new user in the smart contract once, the user can authenticate to both of the websites even though the websites connect to different blockchain network nodes. User authentication information is stored in the blockchain and therefore synchronized between the network's nodes. Eventually, it is analyzed how the time needed to verify user authentication information in the created smart contract corelates with the number of registered users. The results are compared to other popular way of storing user authentication information – \"MySQL\" database. |