Phần 2: Nguồn gốc của Ledger Recover - Phân phối cổ phiếu an toàn | sổ cái

Phần 2: Nguồn gốc của Ledger Recover – Phân phối cổ phiếu một cách an toàn | sổ cái

Nút nguồn: 2785813

Chào mừng trở lại phần thứ hai của loạt blog của chúng tôi về Phục hồi sổ cáinguồn gốc của nó! Mục tiêu của chúng tôi là khám phá nhiều rào cản kỹ thuật gặp phải khi xây dựng dịch vụ khôi phục hạt giống và cách Ledger Recover giải quyết chúng bằng cơ sở hạ tầng và thiết kế an toàn.

Trong tạp chí phần trước, chúng tôi đã kiểm tra cách sao lưu Cụm từ khôi phục bí mật bằng cách tách cụm từ đó và cách Ledger Recover thực hiện điều đó cho bạn bằng cách sử dụng Chia sẻ bí mật có thể kiểm chứng của Pedersen.

Bây giờ bạn có ba cổ phiếu, câu hỏi tiếp theo là: làm cách nào bạn có thể phân phối chúng một cách an toàn cho các nhà cung cấp dự phòng của mình? Thật vậy, nếu một bên độc hại chặn tất cả các chia sẻ trong khi bạn đang truyền chúng, thì mục đích chia tách hạt giống ngay từ đầu đã bị phá vỡ. Trong an ninh mạng, điều này được gọi là Người đàn ông giữa cuộc chiến, trong đó kẻ tấn công đứng giữa bạn và người nhận của bạn, đồng thời can thiệp vào quá trình liên lạc để cố gắng khám phá bí mật.

Khi sử dụng Ledger Recover, việc truyền hạt giống của bạn được thực hiện thông qua cơ chế phân phối an toàn. Nó dựa trên một số công cụ mật mã và khái niệm toán học mà chúng tôi sẽ giải thích cặn kẽ.

Chúng tôi sẽ bắt đầu bằng cách mô tả vấn đề hiện tại chi tiết hơn. Sau đó, chúng tôi sẽ giới thiệu một số công cụ mật mã và khái niệm toán học mà Ledger Recover tận dụng để phân phối an toàn các cổ phiếu hạt giống của bạn cho các nhà cung cấp dự phòng.

Courier-In-The-Middle: Một ví dụ thực tế

Cách rõ ràng nhất để bảo vệ bạn khỏi một bên trung gian có chủ ý xấu là không có gì cả. Bạn có thể tự mình đi bộ đến nhà bạn bè hoặc tập hợp họ ở cùng một địa điểm kín để phân phát cổ phần. Nhưng điều này trở nên khó khăn hơn nhiều nếu bạn không có đối tác và muốn gửi chia sẻ cho một người quen ở xa.

Giả sử rằng mạng mà chúng ta liên lạc qua (ví dụ: dịch vụ bưu chính) vốn không đáng tin cậy, thì làm sao chúng ta có thể đảm bảo rằng những kẻ nghe lén sẽ không bao giờ nhìn thấy những chia sẻ bí mật của chúng ta?

Đã đến lúc giới thiệu Alice và Bob, và Eve khét tiếng, ba nhân vật mật mã nổi tiếng. Alice có một bí mật muốn chia sẻ với Bob và không còn lựa chọn nào khác ngoài việc gửi nó qua Eve, người đưa thư không đáng tin cậy của họ. Trong các từ mật mã, Alice và Bob muốn thiết lập một kênh liên lạc an toàn với nhau để trao đổi bí mật của họ một cách an toàn.

Đây là những gì Alice và Bob có thể làm:

  • Alice đặt bí mật của mình vào một chiếc hộp, khóa nó bằng ổ khóa cá nhân trước khi gửi cho Bob.
  • Khi Bob nhận được chiếc hộp, anh ấy nói thêm ổ khóa của chính mình, và gửi nó trở lại.
  • Bây giờ, Alice có thể sử dụng chìa khóa của mình để tháo ổ khóa khỏi hộp trước khi gửi nó lần cuối.
  • Để kết thúc quá trình, Bob chỉ cần sử dụng chìa khóa của mình để mở ổ khóa và lấy – cuối cùng – bí mật từ Alice.

Trong suốt quá trình trao đổi, bất cứ khi nào Eve cầm chiếc hộp trong tay, nó luôn được bảo vệ bằng khóa của Alice, của Bob, hoặc của cả hai.

Mặc dù đây là một khởi đầu tuyệt vời, nhưng vẫn còn một số vấn đề cần giải quyết trong trường hợp này:

  • Chứng thực lẫn nhau: Alice và Bob cần những cách hoàn hảo để kiểm tra xem mỗi ổ khóa có thực sự đến từ bên kia hay không. Nếu không, Eve có thể hoán đổi nó với chiếc hộp và ổ khóa của riêng mình và đánh lừa Alice hoặc Bob tin rằng cô ấy là bên kia.
  • Chuyển tiếp bí mật: Nếu Eve đánh cắp chiếc hộp bị khóa, và sau đó đánh cắp chìa khóa của Alice hoặc Bob, cô ấy có thể lấy lại bí mật ban đầu. Thay vào đó, chúng tôi muốn đảm bảo rằng các khóa dài hạn bị rò rỉ trong tương lai không thể ảnh hưởng đến các gói bị đánh cắp cũ hơn.
  • Bảo vệ quyền riêng tư: Trong trường hợp này, địa chỉ của Alice và Bob được tiết lộ cho người chuyển phát nhanh. Tương đương với kỹ thuật số của quá trình này, chúng tôi muốn một giao thức không tiết lộ bất cứ điều gì về người nhận.
Bảo mật tin nhắn số

Trong an ninh kỹ thuật số, một kênh an toàn là một cách truyền dữ liệu giữa hai chứng thực các bên sao cho dữ liệu đó bảo mậttính toàn vẹn được đảm bảo. Khi bạn sử dụng một kênh bảo mật, những kẻ tấn công không thể nghe lén hoặc giả mạo thông tin liên lạc của bạn.

Giao thức của Ledger Recover cho cả sao lưu và khôi phục đều dựa trên Giao thức kênh an toàn, hoặc SCP. Nó sử dụng nhiều công cụ của hộp công cụ mã hóa hiện đại, chẳng hạn như mã hóa đối xứng và bất đối xứng, chứng chỉ và chữ ký số.
Các phần tiếp theo sẽ cung cấp cho bạn thông tin cơ bản nhanh về tất cả các khái niệm này, điều này sẽ cho phép bạn hiểu toàn bộ sơ đồ bảo mật được sử dụng trong Phục hồi sổ cái.

Mật mã đối xứng: Một công cụ mạnh nhưng hạn chế

Để đảm bảo tính bí mật của dữ liệu trao đổi giữa hai bên, dữ liệu thường được mã hóa và giải mã bằng cùng một khóa bí mật.
Quá trình này được gọi là mật mã đối xứng, đó là nghiên cứu về nguyên thủy liên quan đến một khóa bí mật duy nhất để đảm bảo một hoặc nhiều thuộc tính của kênh an toàn.

Mặc dù là một công cụ mạnh mẽ để bảo vệ thông tin liên lạc của bạn, mật mã đối xứng có một số hạn chế rõ ràng: Giả sử rằng Alice muốn trao đổi một số tin nhắn được mã hóa với Bob. Trước tiên, cô ấy chọn một khóa bí mật, sau đó chia sẻ nó với Bob trước khi bắt đầu gửi tin nhắn.
Tất nhiên vấn đề bây giờ trở thành: Làm thế nào để Alice chia sẻ khóa bí mật một cách an toàn với Bob? Nếu bất kỳ ai nắm giữ chìa khóa, thông tin liên lạc của Alice và Bob sẽ không còn được bảo mật nữa.
Alice có thể gặp trực tiếp Bob để đưa chìa khóa cho anh ta, nhưng trong trường hợp này tại sao không thảo luận với họ sau đó, tránh xa những đôi tai tò mò?

Đối với truyền thông kỹ thuật số, chúng tôi cần một phương pháp an toàn để chia sẻ khóa đối xứng và bắt đầu trao đổi dữ liệu được bảo vệ. Đã đến lúc giới thiệu công trình của hai người khổng lồ về mật mã hiện đại, Whitfield DiffieMartin địa ngục.

Mật mã bất đối xứng: Ẩn các phần riêng tư của bạn
Thỏa thuận khóa Diffie-Hellman

Với Mật mã khóa công khai, Diffie và Hellman đã đưa ra một cách tiếp cận mới để bảo mật thông tin liên lạc. Họ đã định nghĩa một giao thức với hai khóa riêng biệt để mã hóa và giải mã. Hai phím thường được gọi là khóa công khai và riêng tư, tạo thành một cặp có thể được sử dụng để mã hóa/giải mã và ký/xác minh dữ liệu.

Khóa công khai và khóa riêng tư
Mật mã khóa công khai là cơ sở của hầu hết bảo mật kỹ thuật số của chúng tôi. Nó được sử dụng để bảo vệ bạn trên web và cũng là cách bạn chứng minh quyền sở hữu tiền xu và mã thông báo trên tất cả các chuỗi khối công khai.

Tìm hiểu thêm về chủ đề này trên Ledger Academy!

Điều thực sự hấp dẫn đối với chúng tôi là cách Diffie và Hellman đề xuất sử dụng mật mã khóa công khai để phân phối khóa đối xứng. Phương pháp của họ, được gọi là Trao đổi khóa Diffie-Hellman, bao gồm trao đổi qua lại giữa hai bên để cuối cùng đồng ý về một bí mật được chia sẻ. Nếu được thực hiện đúng cách, những kẻ nghe trộm không thể tính toán cùng một bí mật được chia sẻ từ thông tin mà họ tình cờ nghe được.

Tạo bí mật chung k

TL; DR là trong sơ đồ trên, về mặt toán học, Eve không thể tìm ra bí mật k mặc dù cô ấy có quyền truy cập vào tất cả các thông tin liên lạc của Alice và Bob. Để hiểu tại sao bí mật được chia sẻ này lại an toàn trước bất kỳ kẻ nghe trộm nào, chúng ta cần tìm hiểu một chút về lý thuyết nhóm. 

Tính bảo mật của trao đổi khóa Diffie-Hellman phụ thuộc vào độ phức tạp của bài toán logarit rời rạc trên một nhóm tuần hoàn. Nhóm tuần hoàn là nhóm được tạo bởi một phần tử duy nhất.
Tóm lại, Alice và Bob thực hiện các bước sau để đồng ý về một bí mật chung k:

  1. Alice và Bob đồng ý về một nhóm tuần hoàn G đặt hàng n được tạo ra bởi một phần tử g
  2. Alice rút ngẫu nhiên một số 0 < a < n và gửi pa = ga ∈ G gửi Bob
  3. Bob rút ngẫu nhiên một số 0 < b < n và gửi pb = gb ∈ G đến Alice
  4. Alice tính toán bí mật được chia sẻ k =(pb )a ∈ G
  5. Bob tính toán bí mật được chia sẻ k =(pa )b ∈ G

Tính bảo mật của giao thức phụ thuộc vào độ khó của việc tìm kiếm k = gab được g, ga, gb. Đây được gọi là Tính toán giả định Diffie-Hellman (CĐH). Giả thuyết rằng CDH khó giải quyết giả định rằng vấn đề logarit rời rạc thật khó để giải quyết.

Trong sơ đồ này, mặc dù bí mật được chia sẻ an toàn khỏi bị nghe trộm, nhưng không có gì đảm bảo về nguồn gốc của dữ liệu được trao đổi. Để tương tác được an toàn, Alice và Bob cần bằng cách nào đó chứng minh danh tính của họ với nhau.

Xác thực lẫn nhau và chữ ký số

Chữ ký viết tay thường được sử dụng để xác nhận và chấp nhận nội dung của tài liệu. Chỉ người ký mới có thể tạo ra chữ ký nhưng bất kỳ ai “biết” chữ ký trông như thế nào đều có thể xác minh rằng tài liệu đã được ký bởi đúng người.

Mặc dù có các thuộc tính tương tự, chữ ký điện tử cung cấp thêm sự đảm bảo mạnh mẽ bằng cách tận dụng mật mã bất đối xứng:

  • Tính xác thực: bất kỳ ai cũng có thể xác minh rằng thư đã được ký bằng khóa riêng tư tương ứng với khóa chung được chỉ định.
  • Không bác bỏ: người ký không thể phủ nhận việc đã ký và gửi thông điệp.
  • TÍNH TOÀN VẸN: tin nhắn không bị thay đổi trong quá trình truyền.

Bây giờ, miễn là chúng tôi biết và tin tưởng khóa công khai của phóng viên của chúng tôi, chúng tôi có thể kiểm tra tính xác thực của tất cả các tin nhắn bằng cách xác minh chữ ký số của chúng.
Tuy nhiên, trong hầu hết các trường hợp trong thế giới thực, chúng tôi hoặc không biết rõ đối tác của mình hoặc họ có thể cần phải thường xuyên thay đổi cặp khóa riêng tư/công khai của mình vì lý do bảo mật. Điều này đòi hỏi phải có thêm một lớp xác minh và tin cậy dưới dạng Giấy chứng nhận, chứa mô tả của một thực thể và khóa công khai của chúng.

Mỗi chứng chỉ được ký bởi một khóa công khai gốc. Bằng cách có Tổ chức phát hành chứng chỉ gốc (hoặc Root CA) mà chúng tôi luôn tin tưởng, chúng tôi có thể tạo chuỗi tin cậy bằng cách sử dụng chữ ký số liên tiếp.

Đường cong Elliptic: Mật mã khóa công khai cấp độ tiếp theo

Mật mã đường cong elip (ECC) là một lĩnh vực phụ của Mật mã khóa công khai, bao gồm việc sử dụng các đường cong elip cho các ứng dụng mã hóa, ví dụ như mã hóa hoặc sơ đồ chữ ký. 
Dựa trên toán học hiện đã được hiểu, ECC cung cấp một nền tảng an toàn hơn đáng kể so với các hệ thống mật mã khóa công khai trước đó như RSA.

Với cùng mức độ bảo mật, ECC có độ dài khóa nhỏ hơn so với các hệ thống mật mã bất đối xứng khác, điều này làm cho nó trở thành lựa chọn tốt cho các hệ thống nhúng có tài nguyên hạn chế.
Nếu bạn muốn biết thêm, bài viết này có thể giúp hiểu rõ hơn về Đường cong Elliptic.

Thứ tự của một đường cong Elliptic
Thứ tự của một phần tử g của một nhóm là một tham số quan trọng của trao đổi khóa Diffie-Hellman. Khi nhóm là một Đường cong Elliptic, phần tử đó là một điểm và thứ tự của nó là số lần nó có thể được thêm vào chính nó trước khi lặp lại giá trị ban đầu của nó.
Lưu ý rằng phép cộng này không liên quan gì đến tổng thông thường của bạn trên các số thực, nhưng có các tính chất tương tự của phép cộng.

Hãy lấy đường cong Elliptic E: vâng2 =x3 + 2x +3 trên cánh đồng 𝔽97 làm ví dụ. Là một hàm rời rạc, nó được biểu diễn bằng các điểm trong hình bên dưới. Chúng tôi sẽ tập trung vào điểm p =(3, 6) và tất cả các bội số của nó.

Chúng tôi thấy rằng sau 5.P, chúng tôi quay lại từ đầu và chúng tôi đạt được những điểm giống như trước. Bất kể giá trị của vô hướng là bao nhiêu P được nhân lên, chúng tôi sẽ luôn đạt được một trong 5 điểm ban đầu của chúng tôi.
Như vậy thứ tự của P là 5 và nhóm con mà nó tạo ra chứa chính xác 5 điểm. Tuy nhiên, đối với các ứng dụng mật mã, thứ tự lớn hơn 5, làm tăng tính ngẫu nhiên.

Kết hợp tất cả: ECDH với xác thực

Bây giờ chúng tôi có tất cả các công cụ cần thiết để tạo một giao thức trao đổi khóa tuyệt vời:  Đường cong elip Diffie-Hellman (ECDH).

ECDH là một sơ đồ mật mã được tiêu chuẩn hóa thực hiện trao đổi khóa Diffie-Hellman mà chúng tôi đã mô tả ở trên, bằng cách sử dụng mật mã Đường cong Elliptic để tạo các cặp khóa và bí mật dùng chung.

Trao đổi khóa ECDH được xác thực

Nó bắt đầu bằng cách chọn một Đường cong Elliptic và điểm tạo của nó. Sau đó, hai bên trao đổi chứng chỉ đáng tin cậy, cho phép họ xác minh tính xác thực của các khóa công khai tương ứng. Sau khi được xác thực, họ có thể tạo một bí mật chung k được tính như sau:

k = dA . NSB . G
dA: Khóa riêng của Alice
dB: Khóa riêng của Bob
G: điểm EC

Để đạt được chuyển tiếp bí mật thuộc tính, cặp khóa của cả Alice và Bob phải là tạm thời, tức là chúng được tạo ngay tại chỗ và được sử dụng cho một lần thực hiện giao thức. Chúng ta nói về một Đường cong Elliptic Diffie-Hellman Phù du (ECDHE). Trong trường hợp này, các khóa tạm thời được ký bởi cả khóa tĩnh trên thiết bị và HSM, cho phép xác thực khóa mạnh mẽ. Ngay cả khi việc truy cập trái phép vào các khóa tĩnh xảy ra trong tương lai, nó sẽ không cấp khả năng giải mã cho các trao đổi được bảo vệ bởi các khóa tạm thời.

Hơn nữa, chúng tôi đã triển khai một cải tiến đáng chú ý cho giao thức bằng cách ẩn các khóa tĩnh của thiết bị trong kênh bảo mật. Biện pháp phòng ngừa này ngăn chặn những kẻ tấn công có được khả năng hiển thị trên chứng chỉ tĩnh của thiết bị, do đó, có thể dẫn đến rò rỉ số nhận dạng duy nhất được sử dụng trong các hoạt động sao lưu/khôi phục.

Quay lại Ledger Recover: Hành trình của một hạt giống

Được rồi, thời gian để tạm dừng một phút.

Chúng tôi đã đề cập đến rất nhiều chủ đề, liên quan đến cả bảo mật và toán học, và kết quả là một giao thức để liên lạc an toàn qua bất kỳ mạng không an toàn nào. Hãy tóm tắt những gì chúng ta đã thấy cho đến nay:

Hai thực thể có thể có liên lạc an toàn qua một kênh không an toàn bằng cách đồng ý về một bí mật độc đáo nhờ sự ECDHE, đây là một triển khai của giao thức thỏa thuận khóa Diffie-Hellman sử dụng chìa khóa phù du để bảo vệ bí mật về phía trước. Mỗi thực thể có thể xác minh tính xác thực phóng viên của họ nhờ ban đầu Xác minh chứng chỉ.

Trong trường hợp Khôi phục sổ cái, chúng tôi đã thiết lập bốn kênh bảo mật sử dụng Giao thức kênh bảo mật. Các kênh này kết nối thiết bị với từng nhà cung cấp sao lưu và bộ điều phối, tất cả đều được trang bị Mô-đun bảo mật phần cứng (HSM).

Mỗi diễn viên giữ chứng chỉ cá nhân của mình, được ký bởi Chứng chỉ sổ cái đóng vai trò là gốc của chuỗi tin cậy. Khi thiết bị của người dùng lần đầu tiên truyền ý định thực hiện sao lưu tới Dàn nhạc, nó sẽ khởi tạo một ECDHE đã được xác thực. Dưới đó mTLS các phiên, Dàn nhạc truyền thông tin sẽ liên kết các kênh bảo mật trong tương lai với yêu cầu sao lưu cụ thể của người dùng, cùng với danh tính của người dùng sẽ được yêu cầu xác thực khi thực hiện khôi phục hạt giống sau này.

Bảo vệ bí mật với HSM
Dù chúng tôi cố gắng tránh điều đó đến mức nào, đôi khi chúng tôi vẫn phải lưu trữ và xử lý các bí mật trên máy chủ. Điều này có thể nguy hiểm vì bảo vệ máy chủ và quyền truy cập của họ là một nhiệm vụ không hề nhỏ. Để giảm thiểu rủi ro này, các công ty và ngành công nghiệp coi trọng bảo mật sử dụng Mô-đun bảo mật phần cứng. Chúng là phần cứng chuyên dụng bảo vệ các khóa mật mã và cung cấp quá trình xử lý mật mã. Chúng ta sẽ nói nhiều hơn về HSM trong các phần sau của loạt blog này.

Mọi thứ đã sẵn sàng để cuối cùng thực hiện phần quan trọng nhất của toàn bộ hoạt động: truyền ba phần hạt giống của người dùng.

Một lần nữa, chúng tôi tạo các kênh bảo mật mới, nhưng lần này là giữa thiết bị Sổ cái của người dùng và HSM của Nhà cung cấp dự phòng trực tiếp. Chia sẻ hạt giống được truyền trong một kênh được mã hóa đầu cuối đến nơi lưu trữ cuối cùng của chúng, đồng thời đảm bảo rằng chúng đang đến đúng đích (đây là nơi tính năng có thể xác minh của Chia sẻ bí mật Pedersen được giới thiệu trong phần 1 là hữu ích).
Thiết bị của người dùng xác thực từng HSM của Nhà cung cấp dịch vụ sao lưu và Nhà cung cấp dịch vụ sao lưu biết rằng họ đang trao đổi với thiết bị Sổ cái chính thức duy nhất đã khởi tạo yêu cầu sao lưu cụ thể này.
Không ai ngoài thiết bị của người dùng và các HSM của Nhà cung cấp dịch vụ dự phòng từng thấy các chia sẻ hạt giống được mã hóa bằng các khóa đối xứng của các kênh bảo mật được xác thực lẫn nhau này, thậm chí cả Dàn nhạc.

Được nhận an toàn… và được lưu trữ?

Trong phần này, chúng tôi đã giới thiệu một số khái niệm mới, một số khái niệm khá kỹ thuật. Mỗi một trong những khái niệm này được yêu cầu để thiết lập một đường truyền an toàn đảm bảo tính bảo mật và tính toàn vẹn của trao đổi. Bất kể sự an toàn của mạng, bây giờ chúng tôi có thể gửi các chia sẻ bí mật của mình mà không sợ rằng chúng có thể bị giả mạo hoặc bị chặn. Đó là khá nâng cấp!

Toàn bộ quá trình được hỗ trợ bởi mật mã âm thanh và phần cứng bảo mật, dưới dạng thiết bị phần cứng Ledger của bạn và HSM do mỗi nhà cung cấp dịch vụ sao lưu sở hữu.

Bây giờ là lúc chuyển sang khôi phục các cổ phiếu hạt giống! Tất cả những gì chúng ta phải làm là yêu cầu các nhà cung cấp sao lưu gửi lại cho chúng ta những chia sẻ mà họ đang lưu trữ trên cơ sở hạ tầng của họ…

Nhưng chờ đã: Chính xác thì họ lưu trữ dữ liệu rất nhạy cảm này như thế nào? Sẽ chẳng có ích gì nếu chúng tôi có các kênh liên lạc an toàn nhất, nhưng các nhà cung cấp dịch vụ sao lưu của chúng tôi chỉ giữ các chia sẻ ở dạng văn bản rõ ràng, đề phòng bị đánh cắp.

Vì vậy, trước khi chúng ta nói về phục hồi – chúng ta sẽ đạt được điều đó, tôi hứa! –, chúng ta phải đi đường vòng nhanh trong Phần 3 để thảo luận về tính bảo mật của các cổ phần hạt giống của chúng ta khi nghỉ ngơi. Giữ nguyên!

Dấu thời gian:

Thêm từ Ledger