Một chương trình sao lưu đơn giản cho các mô tả ví

Bài viết này được dịch máy
Xem bản gốc

Tác giả: salvatoshi

Nguồn: https://delvingbitcoin.org/t/a-simple-backup-scheme-for-wallet-accounts/1607

Việc sao lưu mô tả là cực kỳ quan trọng đối với bất kỳ tài khoản ví không có chữ ký đơn nào, vì việc mất mô tả có thể gây ra hậu quả thảm khốc (mất tiền) - ngay cả khi các từ khóa gốc về mặt lý thuyết đủ để khôi phục ví không bị mất. Điều này đúng ngay cả với ví đa chữ ký đơn giản, vì việc mất thông tin chỉ từ một xpub có thể khiến ví không thể khôi phục được.

Do thiếu tiêu chuẩn, mọi người đã tạo ra nhiều giải pháp sao lưu khác nhau và một số thậm chí còn khắc nó trên các tấm kim loại.

Tôi cho rằngđây không phải là cách tiếp cận tốt và nên tránh. Các từ mô tả không phải là từ gốc, do đó, chúng phải được xử lý hoàn toàn khác nhau về cả lý thuyết lẫn thực tế.

Trong bài viết này, tôi sẽ cung cấp tóm tắt bối cảnh và phác thảo những gì tôi cho rằng là cấu trúc lý tưởng cho tiêu chuẩn sao lưu tài khoản ví mà ví phần mềm có thể áp dụng.

Động lực: Bảo mật so với Quyền riêng tư

Từ khóa được giữ bí mật và được sử dụng để bảo vệ tài liệu quan trọng có thể chi tiêu tiền. Nếu hạn chế truy cập từ khóa hạt giống bị vi phạm, điều đó có nghĩa là kẻ tấn công sẽ giành được quyền sở hữu số tiền (ít nhất là quyền kiểm soát cụ thể được bảo vệ bởi khóa có liên quan). Do đó, việc tiếp cận được các từ khóa hạt giống rất có giá trị đối với kẻ tấn công và chúng sẵn sàng đầu tư vào các cuộc tấn công phức tạp hơn, tốn kém hơn vì phần thưởng tiềm năng cao.

Do đó, đối với từ hạt giống :

  • Sao lưu điện tử có rủi ro cao : Thiết bị ký phần cứng được thiết kế riêng để lưu trữ các từ gốc trong một con chip an toàn, tách biệt với thiết bị chạy ví phần mềm.
  • Các bản sao lưu dự phòng của các từ hạt giống cũng có rủi ro cao : các từ hạt giống phải được bảo vệ bằng các thiết bị vật lý và việc đặt nhiều bản sao ở nhiều vị trí khác nhau sẽ khiến việc bảo vệ toàn diện trở nên khó khăn hơn.

Phần mô tả (và phần nhỏ hơn là xpub ) chỉ cần được đặt ở chế độ riêng tư : việc chạm vào phần này sẽ chỉ cho phép kẻ tấn công lục lọi tiền của bạn. Tất nhiên đây là điều không tốt, nhưng không có giá trị bằng việc rút thẳng tiền của bạn. Kẻ tấn công có thể sử dụng nó để lấy thông tin về bạn và thực hiện các cuộc tấn công tiếp theo, nhưng sẽ mất hứng thú với cuộc tấn công nếu nó trở nên quá tốn kém và phức tạp .

Đối với phần mô tả :

  • Sao lưu điện tử là điều không thể tránh khỏi : mọi người tham gia sử dụng tài khoản này đều cần phải sử dụng bản sao lưu điện tử trong ví phần mềm của riêng họ.
  • Rủi ro của việc sao lưu dự phòng bổ sung là rất nhỏ .

Do đó, việc tạo nhiều bản sao lưu cho các mô tả của bạn, dù là bản vật lý, bản điện tử, trên ổ cứng hay trên bộ nhớ đám mây, là một phương pháp hiệu quả để giảm rủi ro mất tiền - nó không khiến bạn gặp rủi ro cao hơn so với việc sao lưu dự phòng các từ gốc của mình.

Tôi khuyên bạn nên sử dụng cơ chế khôi phục khóa thời gian như ví liana để giải quyết cơ bản rủi ro mất tiền do quản lý từ hạt giống không đúng cách.

Vậy, làm thế nào để sao lưu đúng các mô tả và thuật ngữ ví của bạn?

Sao lưu vật lý rất dễ dàng -- tất cả những gì bạn cần là một máy in. Sao lưu giấy cũng tốt nếu bạn có bản sao lưu dự phòng. Trong bài viết này tôi chỉ quan tâm đến việc sao lưu điện tử.

Các tính chất mong muốn của sao lưu điện tử

  • Crypto : Điều này cho phép lưu trữ bản sao lưu trong hoàn cảnh không đáng tin cậy, chẳng hạn như nhà cung cấp dịch vụ đám mây hoặc thậm chí là diễn đàn công cộng.
  • quyền kiểm soát truy cập : giải mã phải là việc mà chỉ những người tham gia dự định mới có thể thực hiện (thường là một nhóm con của những người đồng ký).
  • Dễ thực hiện : Không yêu cầu sử dụng các công cụ phức tạp.
  • Không phụ thuộc vào nhà cung cấp : Lý tưởng nhất là có thể triển khai bằng bất kỳ thiết bị ký phần cứng nào.
  • Tính tất định : Kết quả sao lưu là như nhau đối với cùng một tải. Không quan trọng nhưng sẽ rất tuyệt nếu có.

Một chương trình sao lưu crypto xác định đơn giản (bản nháp)

Chúng ta có thể crypto đơn giản dữ liệu (trong trường hợp này là chính mô tả) bằng xpub của mỗi người tham gia mà chúng ta muốn có thể giải mã mô tả.

Ý tưởng 1 : Chúng ta có thể làm tốt hơn. Chúng tôi tạo khóa đối xứng 32 byte ngẫu nhiên $s$, crypto$s$ bằng mỗi khóa công khai, sau đó sử dụng $s$ để crypto dữ liệu. Điều này làm giảm kích thước của bản sao lưu từ $O(n·|data|)$ xuống $O(n + |data|)$ (trong đó$n$ là số khóa công khai).

Chú thích của người dịch: Khi số lượng người tham gia (khóa công khai) là n, để đảm bảo mọi người tham gia đều có thể giải mã, xpub của mỗi người được sử dụng trực tiếp để crypto n bản sao được mã crypto của tải trọng, do đó là $n·|data|$; nhưng nếu khóa đối xứng được sử dụng để crypto tải trọng, sẽ chỉ có 1 bản sao crypto của tải trọng, và bản sao còn lại là n (độ dài cố định) bản sao crypto của khóa đối xứng s, do đó $n + |dữ liệu|$.

Ý tưởng 2 : Không có gì phải che giấu với bất kỳ người tham gia nào đã biết mô tả. Do đó, tính bảo mật có thể được giảm xuống để vẫn giữ bí mật đối với bất kỳ ai không có quyền truy cập vào thông tin mô tả . Mỗi người đồng ký của chúng tôi đều có khóa công khai (xpub trong tài khoản ví của họ), vì vậy chúng tôi có thể sử dụng lại khóa này làm khóa crypto. Tuy nhiên, với crypto bất đối xứng, cần có private key để giải mã. Điều này là không mong muốn vì private key có thể được đặt trong một con chip an toàn mà không thể dễ dàng lập trình bằng logic giải mã tùy chỉnh. Ngược lại, chúng ta có thể tái sử dụng entropy của chính khóa công khai để tạo ra khóa đối xứng và sử dụng nó để "crypto" giá trị bí mật được chia sẻ $s$. Sau đó, đối với bất kỳ người tham gia $i$ nào sử dụng khóa công khai $p_i$, chúng tôi sẽ suy ra khóa đối xứng $s_i = \operatorname{sha256}(``\textrm{BACKUP_INDIVIDUAL_SECRET}” | p_i)$ của họ. Điều này tránh được crypto bất đối xứng và chỉ yêu cầu truy cập vào khóa công khai từ chip bảo mật - một tính năng mà tất cả các thiết bị ký Bitcoin đều đã có.

Ý tưởng 3 : Tính ngẫu nhiên duy nhất trong quá trình này là giá trị bí mật được chia sẻ $s$. Để làm cho điều này hoàn toàn mang tính xác định, chúng ta có thể sử dụng entropy kết hợp của các mô tả để suy ra một giá trị bí mật chung mang tính xác định mà bất kỳ ai biết các mô tả đều có thể biết. Giả sử các xpub khác nhau trong trình mô tả là $p_1, p_2, \dots, p_n$ (theo thứ tự từ điển), thì một lựa chọn đơn giản là: $s = \operatorname{sha256}(``\textrm{BACKUP_DECRYPTION_SECRET}” | p_1 | p_2 | \dots | p_n)$.

Phần tiếp theo sẽ tổng hợp tất cả những ý tưởng này.

kế hoạch

Sau đây, dữ liệu $data$ sẽ được sao lưu vẫn chưa được xác định, nhưng (ít nhất) nó sẽ bao gồm mô tả hoặc các thuật ngữ ví BIP388 . Toán tử “⊕” biểu diễn phép toán XOR (OR loại trừ) theo bit.

  • Giả sử $p_1, p_2, \dots, p_n$ là các khóa công khai trong các thuật ngữ mô tả/ví, theo thứ tự tăng dần theo từ điển.
  • Cho $s = \operatorname{sha256}(``\textrm{BẢN_GIẢI_BÍ_MÃ_SAO_TRÙNG}” | p_1 | p_2 | \dots | p_n)$
  • Đặt $s_i = \operatorname{sha256}(``\textrm{BACKUP_INDIVIDUAL_SECRET}” | p_i)$
  • Cho $c_i = s \oplus s_i$
  • Sử dụng thuật toán AES-GCM để crypto dữ liệu $data$ bằng khóa đối xứng $s$

Bản sao lưu cuối cùng là danh sách $c_i$ và bản sao crypto của $data$.

Giải mã

Để giải mã một dữ liệu được sao lưu, chủ sở hữu của khóa công khai cụ thể $p$ sẽ tính $s = \operatorname{sha256}(``\textrm{BACKUP_INDIVIDUAL_SECRET}” | p)$, sau đó cố gắng tính toán khóa đối xứng $c_i \oplus s$ cho mỗi $c_i$ và sử dụng khóa đối xứng để giải mã tải trọng.

Cân nhắc về an toàn

Theo định nghĩa, crypto xác định không đáp ứng được tính chất " bảo mật ngữ nghĩa " thường được sử dụng trong mật mã học; tuy nhiên, trong bối cảnh của chúng ta, có thể giả định một cách an toàn rằng kẻ tấn công không thể lấy được văn bản thuần túy và không có văn bản thuần túy nào khác crypto bằng cùng giá trị bí mật $s$.

Công việc tương lai

Tôi hy vọng điều này sẽ tạo ra một thông số kỹ thuật chính thức hơn để tất cả ví phần mềm đều áp dụng cùng một tiêu chuẩn.

Nguồn
Tuyên bố từ chối trách nhiệm: Nội dung trên chỉ là ý kiến của tác giả, không đại diện cho bất kỳ lập trường nào của Followin, không nhằm mục đích và sẽ không được hiểu hay hiểu là lời khuyên đầu tư từ Followin.
Thích
Thêm vào Yêu thích
Bình luận