Tôi là một giáo dân đang cố gắng hiểu sâu hơn về tiền điện tử và nhắn tin riêng tư bằng cách xây dựng một "nền tảng" nhắn tin mã hóa đầu cuối, tập trung (bằng chứng về khái niệm).
Tin nhắn được các thiết bị gửi đến "máy chủ" (chạy trên Pi của tôi trong mạng gia đình của tôi), nơi chúng được lưu trữ và từ đó người nhận có thể truy xuất chúng thông qua lệnh gọi api. Máy chủ chỉ biết mức tối thiểu để phân phối tin nhắn một cách chính xác trong khi văn bản tin nhắn được mã hóa và toàn bộ tin nhắn được ký hợp lệ.
Tôi hiện đang phải đối mặt với thách thức sau: Tôi muốn đổi tên một thuộc tính của định dạng thông báo được sử dụng bởi các ứng dụng khách (nghĩ rằng JSON: message.body â message.content). Vấn đề bây giờ là (1) tất cả các tin nhắn trước đó được lưu trữ trên máy chủ ở định dạng cũ và (2) một máy khách "cũ" có thể cố gắng nhắn tin cho một máy khách "mới", điều này buộc tôi phải giải quyết bằng cách nào đó sự không khớp này giữa các định dạng của thông điệp được truyền đạt.
Nếu các khóa riêng có sẵn cho máy chủ, đây sẽ là một vấn đề nhỏ: chỉ cần chuyển đổi tin nhắn sang định dạng tin nhắn mong muốn của người nhận. Nhưng vì tôi đang cố gắng thực sự riêng tư và các khóa riêng tư chỉ có chủ sở hữu tương ứng của chúng biết nên đây không phải là một tùy chọn. Các tin nhắn không thể được sửa đổi bởi máy chủ.
Tôi cảm thấy rằng cốt lõi của vấn đề này nằm ở một thách thức cơ bản hơn mà tôi chắc chắn rằng mọi người có nhiều khả năng hơn tôi đã đưa ra các giải pháp và tồn tại các phương pháp tiêu chuẩn hóa. Như vậy đây là câu hỏi của tôi: Nói chung, các giải pháp nhắn tin e2ee (ví dụ: tín hiệu, ma trận) xử lý các thay đổi đối với cấu trúc của dữ liệu được mã hóa như thế nào? Những cách tiếp cận nào tồn tại ngoại trừ việc cắt bỏ các phiên bản cũ và loại bỏ mọi lịch sử tin nhắn?
Tôi xin lỗi nếu câu hỏi này nghe có vẻ mơ hồ hoặc quá rộng. Tôi chỉ là một người mới cố gắng để có được bức tranh toàn cảnh.
Cảm ơn rất nhiều.