- vừa được xem lúc

One-click Login với Metamask, sử dụng chữ ký điện tử có rủi ro gì?

0 0 56

Người đăng: Minh Tuấn Ngụy

Theo Viblo Asia

Online users ngày càng trở nên không thích (hoặc cảm thấy khó chịu) đối với sử dụng tính năng đăng ký truyền thống sử dụng username/email và password. Họ thích sử dụng tính năng đăng nhập chỉ bằng một cú nhấp chuột thông qua Facebook, Google hoặc GitHub hơn nhiều, đỡ cần phải suy nghĩ xem đặt mật khẩu là gì, username là gì, có cần lưu lại để sau này đăng nhập lại không ..v.v. Tuy nhiên, nó đi kèm với một sự đánh đổi.

Ưu điểm:

  • Không cần phải điền form nhiều trường phức tạp
  • Không cần phải nhớ thêm username/email và password khác
  • Toàn bộ quá trình đăng nhập mất vài giây thay vì vài phút.

Nhược điểm

Tuy nhiên, có một phương pháp giải quyết vấn đề trên mà các developer blockchain hay sử dụng, đăng nhập chỉ với 1-click với Metamask , hay còn gọi là "Login with Metamask"

Imgur

Có vẻ rất là ổn đúng không?

Trên hình chúng ta có thể thấy rằng, chỉ cần chúng ta ấn Sign (ký) là có thể login vào tài khoản game rồi chơi như bình thường thôi. Cách login không hề rườm rà và chẳng lộ thông tin cá nhân ở đâu cả, rất là tiện.

Cơ chế login cũng rất đơn giản. Ý tưởng cơ bản là về mặt mật mã, chúng ta có thể chứng minh rằng mình là chủ sở hữu tài khoản nếu chúng ta vào một đoạn message mà server yêu cầu. Nếu bạn gửi một đoạn chữ ký (signature) đã ký với message đó tới server, thì server sẽ coi bạn là chủ sở hữu của địa chỉ ví công khai đó. Vậy nên, hoàn toàn có thể xây dựng hệ thống định danh bằng phương pháp này.

Hệ thống login 1-click với Metamask

Vậy thì có vấn đề gì ở đây nhỉ?

Như bài đầu tiên mình có phân tích tại Lại hack game Blockchain, truy cập vào tài khoản bất kỳ trong game, mình đã có thể truy cập vào account bất kỳ của một game thông qua địa chỉ ví công khai (public key) của người đó. Tuy nhiên, các developer cũng rất ít khi gặp lỗi sơ đẳng như vậy (nhưng cũng không phải là không có, mình cũng có khai thác ở một game khác cũng đăng nhập thông qua public key và được thưởng một khoản tương xứng ?)

Thông thường, developer sẽ yêu cầu chúng ta ký vào một đoạn message. Tuy nhiên, các bạn có thể thấy rằng khi mình login vào game, mình đã ký vào đoạn message có nội dung là "Verify Account". Chúng ta đã biết rằng chữ ký điện tử thì sử dụng private key để mã hoá và public key để giải mã. Vậy thì private key của mỗi ví chỉ có 1, nội dung ký cũng chỉ có 1 => bản mã cũng chỉ có 1. Ơ thế vậy thì có thể sử dụng lại bản mã sau khi ký xong để login vào game à?

Test thử xem sao nhé.

Request này có thể thấy rằng, mình đã gửi public key và signature sau khi mình ký vào chữ "Verify Account", login thành công.

Tuy nhiên, mình sử dụng https://www.myetherwallet.com/wallet/sign để lấy ví mình ký vào chữ "Verify Account" thì cũng nhận được kết quả tương tự.

Vậy là, hoàn toàn mình có thể dựng lên một trang web, yêu cầu mọi người ký vào message "Verify Account" và rồi có thể lấy được signature và sử dụng nó để đăng nhập vào game/ứng dụng (nếu họ có chơi game/ứng dụng đó).

Tuy cần một chút phishing nhưng với người dùng hiện nay, nhất là cơn bão GameFI đang đổ bộ, hoàn toàn mọi người sẽ không để ý đến cái message để ký đó mà mọi người sẽ ký luôn để login vào game chơi, chỉ có chúa mới biết được rằng hệ thống backend của những game đó có đang thu thập Signature của người chơi hay không, họ có thể sử dụng lại để đăng nhập vào các game khác nếu có nội dung ký tương tự.

Ví dụ như game này, nếu mình có giá trị Signature của user thì chẳng phải mình có thể đổi password được hay sao ?

Vậy làm sao để login với Metamask an toàn

  • Sử dụng giá trị Nonce ngẫu nhiên gửi cùng message khi yêu cầu user ký
  • Giá trị Nonce hết hạn sau một khoảng thời gian nhất định
  • Thay đổi Nonce khi login thành công
  • ....

Tham khảo

Bình luận

Bài viết tương tự

- vừa được xem lúc

Game NFT, Defi - Mass Adoption cho Blockchain - Khi những con cá nhanh sẽ chiến thắng cá mập

Bài viết này dựa trên sự chia sẻ của mình về công nghệ Blockchain đang dần mass adoption thông qua việc đổ bộ vào nền công nghiệp gaming và các chìa khoá rút ra từ những Game NFT đã thành công như Aav

1 1 57

- vừa được xem lúc

Build a Play-to-Earn NFT Game platform and Monetize your business

P2E NFT Game Development:. In recent times, the gaming industry has been abuzz with the concept of Play-to-Earn gaming, and the excitement is well-founded.

0 0 6

- vừa được xem lúc

How Play-to-Earn Games are Changing the Gaming Landscape

Economic Opportunities for Players:. P2E games allow players to earn cryptocurrency or other digital assets by participating in the game.

0 0 5

- vừa được xem lúc

Axie Infinity Clone Script: Revolutionizing Crypto Gaming and Trading with NFTs

In the dynamic world of blockchain technology, the fusion of gaming and cryptocurrency has birthed a revolutionary concept: play-to-earn games, and at the forefront of this movement stands Axie Infini

0 0 1

- vừa được xem lúc

How to Make Money Quickly with NFTs in 2024?

The realm of digital art and collectibles has undergone a transformative shift with the advent of non-fungible tokens (NFTs). Currently, there are a multitude of promising NFT startups within the cryp

0 0 5

- vừa được xem lúc

Why NFT Game Development Spells Opportunity for Business Leaders

NFT Game Development is one of the emerging business ideas with the potential of transforming the world by analyzing the idea of the entrepreneur and the form of entertainment that could be a new tren

0 0 4