Điểm:1

X3DH và trao đổi khóa giữa khóa nhận dạng Alice và khóa được ký trước của Bob (DH1)

lá cờ in

Tôi đang làm quen với giai đoạn trao đổi khóa Signal và theo như tôi hiểu về cả 3 lần trao đổi giữa khóa tạm thời Alice và tất cả các khóa Bob từ gói, tôi có một vài suy nghĩ về việc trao đổi khóa giữa Khóa nhận dạng AliceKhóa đã ký trước của Bob.

Tôi biết điều này là để xác thực Alice và xác nhận rằng cô ấy có khóa riêng nhận dạng nhưng trao đổi này có thể được thay thế bằng một trong số:

  1. Khóa nhận dạng Alice <-> Khóa nhận dạng Bob
  2. Khóa nhận dạng Alice <-> Khóa một lần của Bob
fgrieu avatar
lá cờ ng
Giao thức được thảo luận không được biết đến rộng rãi. Do đó, một liên kết đến mô tả được sử dụng làm tài liệu tham khảo sẽ hữu ích.
Điểm:2
lá cờ us

Nếu có điều gì đó trong giao thức Signal có vẻ đáng ngạc nhiên, thì lý do có thể liên quan đến thỏa hiệp khóa. Điều chính cần ghi nhớ là thực tế là "khóa nhận dạng" là bí mật dài hạn.

Giả sử Alice có khóa dài hạn $a^*$ và Bob có khóa dài hạn $b^*$, với các khóa công khai tương ứng $g^{a^*}$$g^{b^*}$. Họ có thể thực hiện thỏa thuận khóa DH bình thường với các khóa dài hạn này và đồng ý với bí mật $g^{a^*b^*}$ và tiến hành trao đổi tin nhắn được mã hóa. Nhưng chúng tôi quan tâm đến thỏa hiệp các khóa dài hạn. Nếu khóa dài hạn của Alice $a^*$ bị xâm phạm vào một thời điểm nào đó sau đó, thì kẻ tấn công có thể tính toán $g^{a^*b^*}$ và vi phạm quyền riêng tư của các tin nhắn được mã hóa (trong tất cả các kết nối của Alice!).

Nếu bạn đã quen thuộc với Signal, thì bạn có thể biết cách Signal phục hồi sau sự xâm nhập của khóa trong các tình huống thông thường. Chúng tôi sử dụng một "bánh cóc không đối xứng liên tục." Alice gửi một cái mới/mới $g^{a_i}$ với mọi tin nhắn và Bob gửi một tin nhắn mới $g^{b_j}$ với mỗi tin nhắn. Tại mọi thời điểm, họ có thể sử dụng phiên bản mới nhất $g^{a_i}$$g^{b_j}$ để lấy khóa chia sẻ hiện tại $g^{a_i b_j}$.

Điểm quan trọng ở đây là $a_i$$b_j$ chìa khóa là tạm thời. Alice có thể ném đi $a_i$ sau khi Bob thừa nhận rằng anh ấy đã chuyển sang sử dụng $g^{ a_{i+1}}$. Nếu kẻ tấn công thỏa hiệp Alice tại thời điểm $t$, kẻ tấn công này chỉ học $a_t$. Sau một thời gian ngắn, Alice và Bob sẽ ngừng sử dụng $a_t$ và bắt đầu sử dụng $a_{t+1}$, và kẻ tấn công sẽ không thể đọc tin nhắn của họ.

Vì vậy, nếu ratcheting không đối xứng liên tục là cách để phục hồi từ thỏa hiệp chính, và chúng tôi lo lắng về lâu dài khóa (danh tính) bị xâm phạm, thì giải pháp tự nhiên là thực hiện một bánh cóc không đối xứng ngay khi kết nối được thiết lập (sử dụng các khóa nhận dạng).

Đây là cách tôi muốn nghĩ về X3DH. Hãy nghĩ về các khóa nhận dạng dài hạn như $a_0$$b_0$. Các bên có thể thỏa thuận về khóa $g^{a_0 b_0}$. Họ cũng ngay lập tức gửi các tin nhắn tiếp theo trong bánh cóc bất đối xứng của mình: Alice gửi $g^{a_1}$ và Bob gửi $g^{b_1}$. Sau đó, sẽ có các thỏa thuận quan trọng được ghép lại mang lại $g^{a_1 b_0}$$g^{a_0 b_1}$. X3DH kết hợp cả 3 thỏa thuận chính này với nhau. Điều quan trọng, $a_1$$b_1$thời gian ngắn bí mật -- duy nhất cho phiên này và bị loại bỏ sau khi bánh cóc di chuyển qua chúng. Nếu một khóa dài hạn như $a_0$ bị rò rỉ, ngay cả những tin nhắn đầu tiên trong kết nối cũng được bảo vệ vì các bên đã tiến trước một bước, kết hợp các giá trị mới $a_1, b_1$.

Đây là bản chất của X3DH. Đặc tả Signal trông hơi khác so với những gì tôi đã mô tả, vì một trong những mục tiêu là cho phép các bên thiết lập kết nối không đồng bộ. Vì vậy, chúng tôi sẽ để Alice (ví dụ) tính toán trước và đăng $g^{a_1}$ trước thời hạn, dưới dạng "khóa trước đã ký". Khi Bob muốn thiết lập kết nối với Alice lần đầu tiên, anh ta tìm nạp $g^{a_1}$ và sau đó gửi của mình $g^{b_1}$ đến cô ấy. Theo quan điểm của tôi về X3DH, $g^{a_1}$$g^{b_1}$ có vai trò đối xứng, nhưng trong Signal vai trò của chúng không hoàn toàn giống nhau -- một trong số chúng đã được tính toán trước ("khóa trước đã ký" của Alice) và vai trò kia được tính toán tại thời điểm kết nối ("khóa tạm thời" của Bob). Trong thông số Tín hiệu, bạn sẽ thấy các thuật ngữ khác nhau phá vỡ tính đối xứng trong giao thức.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.