MeldID: từ tài khoản duy nhất đến hệ thống quản lý truy cập số
Khi lần đầu làm quen với MeldID, tôi xem nó chủ yếu như một dịch vụ xác thực số đơn nhất. Giờ đây, dự án đã có các ứng dụng cho iPhone và Android, tích hợp xác thực TOTP ngoại tuyến, khôi phục dữ liệu tự động giữa các thiết bị và xác nhận đăng nhập trong các dịch vụ đã kết nối.
Khi lần đầu tôi tìm hiểu về MeldID, tôi nhìn nhận nó chủ yếu như một hạ tầng cho việc xác thực số toàn hệ thống. Người dùng tạo một tài khoản duy nhất, điền hồ sơ quản lý và sau đó có thể sử dụng nó trong các ứng dụng khác nhau — để đăng nhập và chuyển dữ liệu cho phép mà không cần điền lại các biểu mẫu giống nhau nhiều lần.
Tôi mong đợi rằng sự phát triển tiếp theo sẽ hướng về hồ sơ và dịch vụ kết nối. Nhưng dự án nhanh chóng biến từ một hạ tầng máy chủ gần như không rõ ràng thành một công cụ quản lý truy cập hàng ngày.
Bước tiếp theo là các ứng dụng cho iPhone và Android. Và điều đặc biệt thú vị không phải là việc xuất hiện của khách hàng di động, mà là những nhiệm vụ mà nó có thể hợp nhất.
Thông thường TOTP — với một nhiệm vụ khác
Trong ứng dụng có một bộ tạo mã dùng một lần theo tiêu chuẩn TOTP — chính là những con số thay đổi liên tục được sử dụng cho xác thực hai yếu tố.
Tiêu chuẩn này không tự nó được xem là sáng chế riêng. Người dùng thêm một tài khoản và nhận mã, có thể dùng trong dịch vụ hay trang web của bên thứ ba.
Hầu hết các bộ xác thực trả lời câu hỏi: «Làm thế nào để hiển thị mã sáu chữ số?» Ở đây, vấn đề mở rộng hơn nhiều: làm thế nào để quản lý an toàn vòng đời của các bí mật TOTP — từ việc thêm và lưu trữ đến khôi phục trên thiết bị khác và xóa hồ sơ.
Chế độ ngoại tuyến hoạt động đầy đủ
Ở góc độ nào đó, lợi ích chính có vẻ chỉ nằm ở việc tạo mã cục bộ. Nhưng trong MeldID, chế độ ngoại tuyến còn có nhiều hơn thế.
Các hồ sơ đã lưu vẫn tiếp tục hoạt động mà không cần internet. Các mã được tạo trực tiếp trên điện thoại, do đó việc mất kết nối tạm thời không cản trở quá trình xác thực hai yếu tố.
Cũng có thể thêm hồ sơ TOTP mới ngoại tuyến. Hồ sơ này được lưu trữ cục bộ và dùng ngay để tạo mã. Khi có internet trở lại, việc thêm hồ sơ sẽ tự động gửi đến kho lưu trữ an toàn và đồng bộ với các thiết bị khác.
Việc chỉnh sửa và xóa các hồ sơ đã đồng bộ cần phải kết nối đến máy chủ. Điều này giúp tránh các phiên bản khác nhau của cùng một kho dữ liệu trên các điện thoại khác nhau.
Kết quả là, khả năng thao tác chính nằm ngoại tuyến, còn những thay đổi cần áp dụng đồng bộ sẽ được thực hiện sau khi kết nối mạng trở lại.
Điện thoại mới không đồng nghĩa với bộ mã mới
Vấn đề không vui nhất của bất kỳ bộ xác thực nào chính là sau khi mất, hỏng hay thay điện thoại. Trong tình huống bình thường, người dùng phải tìm mã dự phòng, chuyển hồ sơ thủ công hoặc kết nối lại ứng dụng với từng dịch vụ một.
Ở đây, kho lưu trữ không liên kết với thiết bị cụ thể nào mà với tài khoản MeldID. Sau khi đăng nhập vào máy mới và khởi tạo kho lưu trữ an toàn, các hồ sơ sẽ tự động được khôi phục.
Không quan trọng thiết bị trước đó là Android hay iPhone, hay là thiết bị mới — có thể kết nối nhiều điện thoại mà không cần tạo thủ công quá trình chuyển đổi cho từng nền tảng.
Giả sử điện thoại bỗng nhiên hỏng trong khi đi du lịch. Thay vì khôi phục truy cập riêng cho từng dịch vụ, người dùng đăng nhập MeldID trên thiết bị mới và hoàn tất cài đặt kho lưu trữ. Sau đó, các hồ sơ TOTP của họ sẽ quay trở lại ứng dụng.
Trên một điện thoại, có thể quản lý nhiều tài khoản MeldID khác nhau. Kho của chúng tách biệt rõ ràng: hồ sơ của một tài khoản không bị trộn lẫn với dữ liệu của tài khoản khác và không hiển thị trên thiết bị nếu chưa được ủy quyền phù hợp.
Thông tin lưu trữ trên máy chủ
Khả năng khôi phục tự động có nghĩa là dữ liệu cần phải được lưu trữ ở đâu đó. Tuy nhiên, bí mật TOTP không được ghi vào cơ sở dữ liệu dưới dạng rõ.
Nội dung hồ sơ được đặt trong một container đã mã hóa. Trong kiến trúc hiện tại, sử dụng mã hóa xác thực AES-256-GCM, và khóa của kho bảo vệ riêng biệt khỏi cơ sở dữ liệu.
Do đó, rò rỉ một cơ sở dữ liệu cũng không biến thành danh sách bí mật sẵn sàng để tạo mã. Kẻ tấn công sẽ nhận được các khối dữ liệu đã mã hóa, chứ không phải dữ liệu TOTP mở.
Điều này đòi hỏi không nên đặt quá nhiều hy vọng. Nói chính xác hơn, bí mật TOTP mở không được lưu trong database, và một bản sao duy nhất của database cũng không đủ để sử dụng chúng.
Xác nhận đăng nhập qua MeldID
Chức năng quan trọng thứ hai của ứng dụng là Login Approval, nghĩa là xác nhận đăng nhập riêng biệt.
Nếu trang web hoặc ứng dụng hỗ trợ MeldID, người dùng có thể bắt đầu đăng nhập qua tài khoản của mình chỉ bằng một thao tác. Khi chế độ bảo vệ được bật, việc xác thực thành công chưa đủ: xác nhận mới xem như hoàn tất chỉ sau khi xác nhận trên thiết bị di động đáng tin cậy.
Yêu cầu này có thể được chấp thuận nếu chính người dùng bắt đầu đăng nhập, hoặc bị từ chối nếu hoạt động đó có vẻ bất thường.
Khác với xác nhận push bình thường, Login Approval tích hợp ngay vào kiến trúc của MeldID và có thể được các dịch vụ liên kết hệ thống này sử dụng.
Thông báo push chỉ mang chức năng thông báo về hoạt động mới. Trong đó không có password, mã TOTP, token hay dữ liệu nào khác có thể dùng để xác thực.
TOTP và Login Approval bổ sung cho nhau
TOTP vẫn là tiêu chuẩn phổ biến và hoạt động ngay cả trong các dịch vụ không biết gì về MeldID. Sau khi tải hồ sơ, mã được tạo ra cục bộ.
Login Approval cần thiết nơi chính việc xác thực diễn ra qua MeldID. Nó thêm thao tác có ý thức của người dùng vào quá trình đăng nhập và cho phép ngăn chặn trước khi tạo ra phiên mới.
Vì vậy, ứng dụng có thể là bộ xác thực bình thường cho một trang web bên thứ ba, đồng thời cũng là phương tiện xác nhận đăng nhập vào hệ thống kết nối.
Những thay đổi trong chính MeldID
Khi lần đầu tôi làm quen với dự án, ý tưởng chính của nó dường như là quản lý tài khoản duy nhất và hồ sơ di động. Bây giờ, rõ ràng là MeldID đang dần trở thành trung tâm quản lý truy cập số cá nhân.
Trong đó có thể:
nhận mã TOTP mà không cần internet;
thêm hồ sơ mới ngoại tuyến;
tự động khôi phục chúng trên thiết bị mới;
sử dụng nhiều điện thoại;
chia tách nhiều tài khoản trên cùng một thiết bị;
xác nhận hoặc từ chối các đăng nhập mới.
Giá trị của ứng dụng không nằm ở việc nó có thể hiển thị mã số sáu chữ số tiếp theo. Nhiệm vụ rộng hơn — giữ truy cập khi đổi thiết bị, không mất dữ liệu khi không có mạng và cung cấp cho chủ sở hữu sự lựa chọn cuối cùng có ý thức trước khi bắt đầu một phiên mới.
Độ an toàn không dựa vào một cơ chế duy nhất nào, mà dựa trên tập hợp các giải pháp: bí mật TOTP không lưu trữ rõ ràng, quyền truy cập không cố định vào một điện thoại, các tài khoản riêng biệt được giữ tách biệt và việc đăng nhập thành công vào các dịch vụ được hỗ trợ chỉ sau khi xác nhận từ thiết bị đáng tin cậy.