Không, nếu không có "bộ đệm dữ liệu" (cục bộ), mã do "hỗ trợ kỹ thuật" cung cấp không thể phụ thuộc vào "ít nhất một id người dùng (số nguyên) và ngày hết hạn".
Chi tiết hơn: Câu hỏi yêu cầu xác thực (một lần), trong đó
- đầu vào có thể dễ dàng được cung cấp bởi con người, thông qua một kênh được xác thực (cũng không bị nghe trộm).
- ứng dụng không có bộ nhớ liên tục/dành riêng cho người dùng.
Vấn đề chính mà tôi thấy là "bộ đệm dữ liệu bị hỏng": Để xác minh đầu vào, thuật toán sẽ phải so sánh kết quả với đầu vào khác.
Ví dụ: hãy xem xét thủ tục đăng nhập dựa trên hàm băm được đơn giản hóa quá mức:
Người dùng cung cấp mật khẩu. Một thuật toán lấy mật khẩu làm đầu vào, cùng với một chuỗi do bộ đệm dữ liệu cung cấp; tính toán hàm băm của mật khẩu và so sánh nó với chuỗi.
Nếu không có bộ đệm dữ liệu, thì thuật toán chỉ có thể sử dụng mã hóa cứng các giá trị, tức là các giá trị được cung cấp cùng với ứng dụng và không phụ thuộc vào đầu vào của người dùng.
Bình luận:
"để ngày hiện tại có thể hoạt động như một bảng thời gian."
Lưu ý rằng để bảng một lần được bảo mật hoàn hảo, khóa phải là ngẫu nhiên.Điều này không thêm bất kỳ bảo mật.
Ngoài phạm vi vì điều này không được coi là an toàn hoặc trong phạm vi của câu hỏi OP:
Nếu bạn muốn có một giá trị được mã hóa cứng cho một ngày cụ thể, cách đơn giản nhất cho việc này là đưa các hình ảnh mã hóa cứng của hàm một chiều (được khởi tạo bằng hàm băm mật mã) vào ứng dụng.
Sau đó, bộ phận hỗ trợ kỹ thuật có thể cung cấp cụm mật khẩu mà con người có thể đọc được (Cf. Stackexchange: Cụm mật khẩu từ điển dài, Stackexchange: Tại sao sử dụng ký tự ngẫu nhiên trong pw? ), nơi bộ phận hỗ trợ kỹ thuật có "cụm mật khẩu hợp lệ" cho mỗi ngày.
Cụm mật khẩu có thể được cung cấp dưới dạng đầu vào bởi người dùng; hình ảnh của nó sẽ được so sánh với các giá trị được mã hóa cứng có liên quan đến ngày đó. Tuy nhiên, điều này không an toàn vì nhiều lý do:
(1) Các giá trị được mã hóa cứng
- sẽ giống nhau cho tất cả người dùng, ví dụ: không thể chứa id người dùng
- một khi cụm mật khẩu bị rò rỉ, bất kỳ ai có thể truy cập ứng dụng
(2) Ngày không thực sự tăng cường bảo mật, ngoại trừ việc kẻ thù sẽ phải biết rằng các ngày khác nhau có các cụm mật khẩu khác nhau.
Nên tôi cũng cần đề nghị chống lại điều này.