ATM nuốt thẻ sau nhiều lần nhập sai không phải vì nó ghét bạn
Có một lần mình nhập sai mã PIN ở cây ATM.
Sai một lần.
Máy chỉ báo nhập lại.
Sai lần thứ hai.
Vẫn chưa có chuyện gì.
Nhưng đến một số lần nhất định, ATM giữ luôn chiếc thẻ.
Lúc đó cảm giác đầu tiên thường là bực.
Mình vẫn là chủ của chiếc thẻ.
Tại sao hệ thống lại không cho mình thêm một cơ hội?
Sau này nghĩ kỹ hơn mới thấy, ATM không thật sự đang đánh giá một lần nhập sai.
Nó đang đánh giá chuỗi hành vi vừa xảy ra.
Một lần nhập sai có thể chỉ là quên mật khẩu.
Nhưng nhiều lần nhập sai liên tiếp lại mang một ý nghĩa hoàn toàn khác.
Điều thay đổi không phải là từng action.
Điều thay đổi là mức độ rủi ro mà chuỗi action đó tạo ra.
Điều đó làm mình nghĩ khá nhiều khi đọc về @NewtonProtocol.
Điểm mình thấy thú vị là Newton không chỉ đặt câu hỏi:
“Action này có được phép không?”
Mà policy còn có thể phải trả lời một câu hỏi khác:
“Action này đang xuất hiện trong một bối cảnh bình thường hay một chuỗi hành vi bất thường?”
Đó là khác biệt rất lớn.
Một action đứng riêng có thể hoàn toàn hợp lệ.
Nhưng khi nó lặp lại với tần suất bất thường, policy có thể cần đưa ra một quyết định khác trước khi execution được phép xảy ra.
Đây là chỗ mình thấy Newton không đơn thuần kiểm tra quyền.
Authorization Before Execution không chỉ đánh giá action chuẩn bị được execute.
Nó còn cho phép policy sử dụng chính ngữ cảnh của chuỗi hành vi để quyết định liệu execution đó có còn an toàn hay không.
Nói cách khác, Newton không mặc định rằng mười action hợp lệ sẽ luôn tạo thành một chuỗi hợp lệ.
Policy có thể nhìn vào nhịp độ, tần suất hoặc dấu hiệu bất thường trước khi đưa ra quyết định cuối cùng.
Điểm quan trọng không phải là Newton “đoán” ai xấu hay ai tốt.
Điểm quan trọng là policy có quyền đổi câu trả lời ngay trước execution, khi chuỗi hành vi bắt đầu vượt khỏi trạng thái bình thường.
Một action hôm nay có thể vẫn giống action trước đó, nhưng nhịp lặp lại của nó đã khiến rủi ro thay đổi.
Tự phản biện.
Nhưng một policy nhạy với rủi ro cũng luôn có cái giá của nó.
Quay lại cây ATM.
Nếu hệ thống quá nhạy, chỉ vài lần nhập sai vì căng thẳng hoặc nhớ nhầm cũng khiến thẻ bị giữ.
Người dùng hợp lệ sẽ là người chịu bất tiện đầu tiên.
Nhưng nếu policy chỉ nhìn từng lần nhập PIN như những sự kiện hoàn toàn độc lập, thì một chuỗi thử đoán mật khẩu cũng sẽ trông vô hại cho đến khi quá muộn.
Lúc đó, vấn đề không nằm ở từng lần nhập sai.
Mà nằm ở việc hệ thống không nhìn thấy rủi ro đang được tạo ra từ cả chuỗi hành vi.
Điều mình muốn thấy rõ hơn từ
@NewtonProtocol không phải là policy có thể xử lý bao nhiêu request mỗi giây.
Mà là cách policy đánh giá được khi nào một chuỗi action đã vượt qua ngưỡng bình thường để cần thay đổi quyết định authorization, thay vì chỉ lặp lại cùng một câu trả lời cho từng action riêng lẻ.
Với mình, một authorization layer chỉ thực sự đáng tin khi nó không xem mọi action là những sự kiện cô lập.
Rủi ro đôi khi không nằm trong một action, mà nằm trong nhịp lặp lại của nó.
#Newt $SPCXB $LAB $NEWT