Skip to main content

Bảo Mật Một Trình Xác Thực

Mỗi ứng cử viên xác thực được khuyến khích vận hành độc lập, vì nhiều cấu hình đa dạng sẽ tăng cường sức chống chịu của mạng. Các ứng cử viên xác thực nên bắt đầu giai đoạn thiết lập ngay bây giờ để kịp thời cho việc ra mắt.

Quản lý Khóa - HSM

Điều tối quan trọng là kẻ tấn công không thể đánh cắp khóa của một trình xác thực. Nếu điều này có thể xảy ra, nó sẽ đặt toàn bộ số tiền đặt cược được giao phó cho trình xác thực bị xâm phạm vào nguy hiểm. Các mô-đun bảo mật phần cứng là một chiến lược quan trọng để giảm thiểu nguy cơ này.

Các mô-đun HSM phải hỗ trợ chữ ký ed25519 cho trung tâm. YubiHSM2 hỗ trợ ed25519thư viện yubikey này có sẵn. YubiHSM có thể bảo vệ một khóa cá nhân nhưng không thể đảm bảo rằng nó sẽ không ký hai lần cùng một khối trong một môi trường an toàn.

Nhóm Tendermint cũng đang làm việc để mở rộng ứng dụng Ledger Nano S của chúng tôi để hỗ trợ ký trình xác thực. Ứng dụng này có thể lưu trữ các khối gần đây và giảm thiểu các cuộc tấn công ký đúp.

Chúng tôi sẽ cập nhật trang này khi có thêm giải pháp lưu trữ khóa.

Các Loại Khóa

Có hai loại khóa:

  • Khóa Tendermint: Một khóa duy nhất được sử dụng để ký các phiếu bầu đồng thuận.
    • Nó được liên kết với khóa công khai mpvalconspub (Để có được giá trị này, chạy crossfid tendermint show-validator)
    • Nó được tạo ra khi nốt tạo ra với crossfid init.
  • Khóa Ứng Dụng: Khóa này được tạo từ tệp nhị phân crossfid và được sử dụng để ký các giao dịch. Khóa ứng dụng được liên kết với khóa công khai có chứa tiền tố cosmospub và địa chỉ có tiền tố cosmos.

Khóa Tendermint và khóa ứng dụng được dẫn xuất từ các khóa tài khoản được tạo bằng lệnh crossfid keys add.

Lưu ý: Khóa điều hành của trình xác thực có liên kết trực tiếp với khóa ứng dụng và sử dụng các tiền tố mpvalopermpvaloperpub được dành riêng cho mục đích này.

Các Nút Chằng (Bảo Vệ DDOS)

Các trình xác thực có trách nhiệm đảm bảo rằng mạng có thể chịu được các cuộc tấn công từ chối dịch vụ.

Một cách được khuyến nghị để giảm thiểu các nguy cơ này là các trình xác thực cần cấu trúc mạng của mình một cách cẩn thận trong kiến trúc gọi là nút chằng.

Các nút trình xác thực chỉ nên kết nối với các nút đầy đủ mà họ tin tưởng vì họ tự vận hành chúng hoặc được vận hành bởi những trình xác thực khác mà họ biết qua xã hội. Một nút trình xác thực thông thường sẽ vận hành trong trung tâm dữ liệu. Hầu hết các trung tâm dữ liệu đều cung cấp kết nối trực tiếp tới mạng của các nhà cung cấp đám mây lớn. Trình xác thực có thể sử dụng những kết nối này để kết nối tới các nút chằng trên đám mây. Điều này chuyển dịch gánh nặng từ chối dịch vụ từ nút của trình xác thực trực tiếp tới nút chằng của nó và có thể yêu cầu bật hoặc khởi tạo các nút chằng mới để giảm thiểu cuộc tấn công vào các nút sẵn có.

Các nút chằng có thể được khởi tạo nhanh chóng hoặc thay đổi địa chỉ IP. Bởi vì các liên kết tới nút chằng nằm trong không gian IP riêng tư nên kẻ tấn công dựa trên internet không thể gây rối được trực tiếp. Chiến lược này đảm bảo rằng các đề xuất và phiếu bầu của trình xác thực luôn đến được phần còn lại của mạng lưới.

Để thiết lập kiến trúc nút chằng của bạn, bạn có thể làm theo các hướng dẫn bên dưới:

Nút trình xác thực nên chỉnh sửa config.toml:


# Danh sách các nút, cách nhau bằng dấu phẩy, để giữ kết nối liên tục

# Không thêm các ngang hàng trong danh sách này nếu bạn không muốn quảng cáo chúng
persistent_peers = [danh sách các nút chằng]

# Đặt giá trị đúng để bật reactor trao đổi ngang hàng
pex = false

Nút Chằng nên chỉnh sửa config.toml:


# Danh sách các ID ngang hàng để giữ riêng tư (sẽ không được lan truyền đến các ngang hàng khác)

# Ví dụ ID: 3e16af0cead27979e1fc3dac57d03df3c7a77acc@3.87.179.235:26656

private_peer_ids = "node_ids_of_private_peers"

Làm thế nào để các trình xác thực tự bảo vệ chống lại các cuộc tấn công từ chối dịch vụ?

Cuộc tấn công từ chối dịch vụ xảy ra khi một kẻ tấn công gửi một lượng lớn lưu lượng internet tới một địa chỉ IP để ngăn cản máy chủ tại địa chỉ IP đó kết nối với internet.

Một kẻ tấn công quét mạng, cố gắng tìm hiểu địa chỉ IP của các nút trình xác thực khác nhau và ngắt kết nối chúng khỏi giao tiếp bằng cách gửi lưu lượng đến.

Một cách được khuyến nghị để giảm thiểu những rủi ro này là các trình xác thực cần cẩn thận cấu trúc mạng của họ bằng cách sử dụng kiến trúc nút chằng.

Nút trình xác thực được mong đợi chỉ kết nối với các nút đầy đủ mà họ tin tưởng bởi vì họ tự vận hành các nút đầy đủ đó hoặc tin tưởng rằng các nút đầy đủ được vận hành bởi các trình xác thực khác mà họ biết qua xã hội. Một nút trình xác thực thường được vận hành trong một trung tâm dữ liệu. Hầu hết các trung tâm dữ liệu cung cấp các liên kết trực tiếp tới mạng của các nhà cung cấp đám mây lớn. Trình xác thực có thể sử dụng những liên kết đó để kết nối tới các nút chằng trên đám mây. Đây là cách chuyển di gánh nặng từ chối dịch vụ từ nút của trình xác thực trực tiếp tới các nút chằng của nó và có thể yêu cầu thiết lập hoặc kích hoạt các nút chằng mới để giảm thiểu các cuộc tấn công vào các nút hiện có.

Các nút chằng có thể được khởi tạo nhanh chóng hoặc thay đổi địa chỉ IP của chúng. Bởi vì các liên kết tới các nút chằng nằm trong không gian IP riêng tư, một cuộc tấn công dựa trên internet không thể làm phiền chúng trực tiếp. Chiến lược này đảm bảo rằng các đề xuất khối và phiếu bầu của trình xác thực có cơ hội cao hơn nhiều để đến được phần còn lại của mạng.

Để biết thêm chi tiết về nút chằng, xem Tài liệu Tendermint hoặc Tổng quan về Kiến trúc Nút Chằng trên diễn đàn.