Skip to main content

Chữ ký một lần sẽ tăng cường bảo mật của Cardano như thế nào?

Ngày 22 tháng 01 năm 2024 - Chia sẻ bài viết này trên Twitter | FacebookTelegram

Cardano bảo vệ tính bất biến của sổ cái, trong số những thứ khác, bằng cách sử dụng sơ đồ Chữ ký tiến hóa khóa (KES). Lược đồ KES cung cấp cái gọi là bảo mật chuyển tiếp (forward security). Nếu khóa ký của SPO bị xâm phạm, chúng không thể bị khai thác để ghi đè lên lịch sử sổ cái. Điều này là do giao thức của Cardano bao gồm một cơ chế trong đó các khóa dùng để ký khối được xoay và các khóa cũ sẽ bị xóa. Một trong những giả định về bảo mật là các nhà vận hành pool stake (SPO) sẽ xóa các khóa cũ. Hệ thống Chữ ký một lần (OSS) sẽ tăng cường bảo mật của Cardano bằng cách làm cho các khóa ký tự hủy sau khi ký mỗi khối mới. Sẽ không thể ký lại khối vì sẽ không có chìa khóa để làm việc đó.

Bảo mật chuyển tiếp và KES

Bảo mật chuyển tiếp là một thuộc tính của hệ thống mật mã nhằm đảm bảo rằng việc xâm phạm khóa hiện tại không ảnh hưởng đến tính bí mật của các phiên trước đó vì các khóa khác đã được sử dụng.

Nói cách khác, ngay cả khi kẻ thù có thể lấy được khóa giải mã, họ cũng không thể sử dụng nó để giải mã các thông tin liên lạc trong quá khứ. Điều này là do mỗi phiên sử dụng một khóa duy nhất, khóa này sẽ bị xóa hoặc cập nhật sau khi sử dụng.

Một nguyên tắc tương tự được sử dụng trong Cardano để ký các khối.

Nếu khóa bí mật của SPO bị xâm phạm tại một thời điểm nào đó, chữ ký được tạo trước thời điểm đó vẫn hợp lệ và không thể giả mạo.

Điều này đạt được bằng cách chia thời gian tồn tại của người ký thành các giai đoạn và sử dụng khóa bí mật khác nhau cho mỗi giai đoạn. Khóa bí mật của mỗi kỳ được lấy từ khóa trước đó và sẽ bị xóa sau khi sử dụng. Khóa công khai được giữ nguyên trong mọi thời kỳ.

KES giới hạn phạm vi của mỗi khóa bí mật trong một khoảng thời gian cụ thể (hiện tại là 90 ngày) và đảm bảo rằng các khóa bí mật cũ sẽ bị xóa và không thể khôi phục được. Do đó, ngay cả khi kẻ tấn công có được khóa bí mật trong một khoảng thời gian nhất định, họ chỉ có thể giả mạo chữ ký trong khoảng thời gian đó chứ không thể giả mạo chữ ký trong khoảng thời gian trước đó hoặc tương lai.

Nếu kẻ thù lấy được khóa ký của một operator duy nhất, hắn ta chỉ có thể ghi đè lên những khối được operator này tạo ra trong khoảng thời gian khóa hoạt động. Đây có thể là một số lượng khối tương đối nhỏ. Những Slot leader được chọn ngẫu nhiên dựa trên số tiền stake của họ. Có một số lượng lớn SPO trong mạng Cardano. Để kẻ thù có cơ hội xâm phạm Cardano, hắn ta cần phải lấy được không chỉ một khóa duy nhất mà còn nhiều khóa từ một số lượng lớn SPO.

Một cách để lấy khóa ký là đánh cắp chúng từ SPO. Nếu SPO xóa khóa cũ thì chúng không thể bị đánh cắp. Tuy nhiên, việc xóa các phím không thể bị ép buộc. Về mặt lý thuyết, SPO có thể giữ các khóa cũ.

Hệ thống OSS có thể ngăn chặn việc thực hiện các cuộc tấn công vì sẽ không có khóa nào có thể bị lạm dụng. Mỗi khối mới sẽ được ký bằng một khóa duy nhất sẽ chỉ được tạo cho chữ ký một lần.

Chữ ký một lần

Trong bài viết trước, chúng tôi đã giải thích các nguyên tắc cơ bản của chữ ký một lần. Mật mã lượng tử này có tiềm năng sử dụng rất lớn. Chúng tôi sẽ xem xét cách nó có thể được sử dụng để tăng cường bảo mật cho Cardano.

Chữ ký một lần có thể được sử dụng để triển khai chữ ký theo thứ tự, tức là một cơ chế cụ thể trong đó có thể xác định tính hợp lệ của một chuỗi tin nhắn hoặc khối.

Hệ thống OSS là một loại chữ ký trong đó bất kỳ khóa bí mật nào cũng có thể được sử dụng để ký chỉ một thông điệp duy nhất và sau đó tự hủy. Khái niệm này đặc biệt hữu ích trong bối cảnh công nghệ Blockchain, trong đó việc duy trì tính toàn vẹn và trật tự của các khối là rất quan trọng.

Thứ tự của các khối rất quan trọng vì nó xác định trạng thái của Blockchain tại bất kỳ thời điểm nào. Nếu thứ tự của các khối bị thay đổi, nó sẽ dẫn đến trạng thái khác của Blockchain.

Chữ ký số đóng vai trò quan trọng trong việc duy trì trật tự này. Khi một khối mới được tạo, nó sẽ được người tạo khối ký. Chữ ký này đóng vai trò như một con dấu xác minh tính hoàn tất của khối và vị trí của nó trong chuỗi.

Việc sử dụng một khóa duy nhất cho mỗi chữ ký có thể cung cấp thêm một lớp bảo mật. Vì mỗi khóa chỉ có thể được sử dụng một lần nên không thể sử dụng lại khóa để ký một khối khác hoặc thay đổi thứ tự của các khối hiện có. Với OSS, không thể ghi đè lên lịch sử của sổ cái Cardano.

Và về bản chất, trình tự chữ ký một lần có thứ tự có thể giúp người dùng xác định một cách chắc chắn khối nào hợp lệ và khối nào không, từ đó đảm bảo tính toàn vẹn và trật tự của Blockchain.

Bạn có thể hình dung các chữ ký được sắp xếp giống như một loạt các hộp bị khóa, mỗi hộp chứa một chìa khóa duy nhất. Các hộp này được sắp xếp theo một thứ tự cụ thể. Chìa khóa trong mỗi hộp chỉ có thể được sử dụng một lần để mở khóa hộp tiếp theo trong chuỗi và sau đó nó sẽ tự hủy. Điều này có nghĩa là mỗi khóa bí mật (hoặc khóa duy nhất trong hộp) chỉ có thể được sử dụng để ký một tin nhắn duy nhất. Thứ tự của các chữ ký được xác định bởi trình tự của các hộp.

Trong ngữ cảnh của KES, chữ ký được sắp xếp có thể được xem như một chuỗi các khóa được sử dụng theo một thứ tự cụ thể để ký. Mỗi khóa trong chuỗi này chỉ có thể được sử dụng một lần và sau đó nó sẽ tự hủy. Điều này có nghĩa là ngay cả trong cùng một khoảng thời gian, các khóa khác nhau sẽ được sử dụng để ký các khối khác nhau. Không là một chiếc chìa khóa duy nhất trong một thời kỳ nhất định như hiện nay.

Thay đổi này có thể nâng cao tính bảo mật của mạng Cardano bằng cách làm cho mạng có thể chống lại một số loại tấn công nhất định tốt hơn. Ví dụ: nó có thể giúp ngăn chặn các cuộc tấn công chuỗi dài, trong đó kẻ tấn công cố gắng viết lại lịch sử của Blockchain bằng cách sử dụng các khóa cũ.

Hãy giải thích khái niệm cơ bản về cách hoạt động của chữ ký theo thứ tự.

Khi một bên ký vào một thông điệp, anh ấy cũng chỉ định một thẻ t. Khóa ký cho phép ký bất kỳ tin nhắn nào nhưng yêu cầu là tin nhắn chỉ có thể được ký theo thứ tự t tăng dần. Nghĩa là, khi một tin nhắn được ký ở thẻ t0 thì sẽ không thể ký một tin nhắn ở thẻ trước đó (t1 < t0). Và mọi tin nhắn đều được ký với thẻ t.

Khóa chung sẽ là khóa chung cho sơ đồ chữ ký một lần.

Để ký một thông điệp tại thẻ t, cần phải xây dựng một cặp khóa công khai và khóa riêng chữ ký một lần mới và ủy quyền cho khóa chung mới. Khi ký để ủy quyền, hãy ký toàn bộ bộ ba khóa/thẻ/tin nhắn công khai.

Chữ ký bao gồm toàn bộ chuỗi chữ ký từ khóa chung ban đầu đến khóa chung mới nhất.

Việc xác minh yêu cầu xác minh chuỗi chữ ký cũng như các thẻ trong chuỗi xuất hiện theo thứ tự tăng dần.

Ý tưởng là cách duy nhất để tạo ra chữ ký mới là gắn nó vào chuỗi chữ ký.

Do đó, khi kẻ tấn công tạo ra chữ ký ở thẻ t0, hắn ta đã cam kết thực hiện tất cả các chữ ký mà hắn sẽ tạo ra ở thẻ t1 < t0. Nếu kẻ tấn công cố gắng ký một tin nhắn khác tại thời điểm t1, điều này sẽ tạo thành một nhánh trong chuỗi, vi phạm đặc tính bảo mật một lần.

OSS sẽ ngăn chặn các cuộc tấn công vào Cardano như thế nào?

Hiện tại, chưa có thông tin chi tiết nào về cách triển khai hệ thống OSS. Tuy nhiên, có thể giả định một hệ thống như vậy có thể hoạt động như thế nào.

Như đã giải thích ở phần trước, hệ thống có thể hoạt động với thẻ. Thẻ có thể xác định số thứ tự của một khối. Khi ký một khối mới, cần phải tăng thẻ (số thứ tự).

Khi một khối được ký và thẻ được tăng lên, một mã định danh duy nhất sẽ được tạo. Mã định danh duy nhất này được liên kết với sự kết hợp cụ thể của khối (khối có thể được biểu thị bằng hàm băm), chữ ký và thẻ.

Hãy thử giải thích nó bằng một ví dụ đơn giản.

Hãy tưởng tượng bạn đang chơi trò chơi xếp hình với bạn bè (bạn là SPO). Mỗi người trong số các bạn có một bộ khối duy nhất và các bạn đang cùng nhau xây dựng một tòa tháp. Mỗi khối đại diện cho một tập hợp các giao dịch hoặc một phần dữ liệu và tháp đại diện cho Blockchain.

Chữ ký dùng một lần giống như những nhãn dán độc đáo mà mỗi người trong số các bạn dán lên khối của mình khi thêm khối đó vào tháp. Nhãn dán này đặc biệt đến mức chỉ dùng được một lần rồi biến mất (chìa khóa tự hủy). Nó được tạo ra bằng cách sử dụng một khóa bí mật, giống như một cây đũa thần. Nhưng đây là điểm đáng chú ý - cây đũa thần chỉ có thể tạo ra một nhãn dán và sau đó nó sẽ vỡ.

Bây giờ, giả sử bạn muốn đảm bảo rằng các khối (hoặc giao dịch) được thêm vào tháp (hoặc blockchain) theo đúng thứ tự. Đây là nơi các thẻ và số nhận dạng duy nhất xuất hiện.

Mỗi nhãn dán (hoặc chữ ký) bạn tạo bằng cây đũa thần (hoặc khóa bí mật) đều có một thẻ hoặc mã nhận dạng duy nhất. Thẻ này có thể là một số hoặc một mã khác nhau cho mỗi nhãn dán. Khi bạn đặt khối của mình lên tháp, mọi người có thể nhìn thấy thẻ trên nhãn dán của bạn và biết chính xác vị trí của nó trong chuỗi.

và nếu ai đó cố gắng di chuyển các khối xung quanh hoặc thêm một khối vào sai vị trí, bạn sẽ biết vì các thẻ trên nhãn dán sẽ không đúng thứ tự. Đây là cách chữ ký được sắp xếp có thể giúp đảm bảo trình tự chính xác của các khối trong blockchain.

Còn những chiếc đũa thần (hay những chiếc chìa khóa bí mật) thì sao? Chà, sau khi bạn sử dụng cây đũa phép của mình để tạo nhãn dán, nó sẽ bị vỡ (hoặc tự hủy). Điều này có nghĩa là ngay cả khi ai đó tìm thấy cây đũa phép bị gãy của bạn, họ cũng không thể sử dụng nó để tạo nhãn dán mới hoặc làm xáo trộn thứ tự các khối trong tháp.

Bạn có thể hỏi điều gì ngăn cản ai đó sử dụng các cây đũa thần (chìa khóa) khác nhau để xây dựng một tòa tháp khác (Blockchain) với thứ tự các khối (chuỗi thẻ) giống nhau hoặc tương tự.

Việc tạo ra một Blockchain khác phù hợp với thứ tự của Blockchain ban đầu không đơn giản như người ta tưởng.

Mỗi cây đũa thần (chìa khóa) là duy nhất và chỉ có thể tạo nhãn dán (chữ ký) cho một khối cụ thể. Và kẻ thù không thể chỉ sử dụng một cây đũa phép khác để tạo nhãn dán cho khối đã có nhãn dán đó.

Trong một cuộc tấn công chuỗi dài, kẻ thù cố gắng tạo ra một blockchain khác bắt đầu từ một thời điểm nào đó trong quá khứ. Điều này giống như việc cố gắng xây dựng một tòa tháp khác bắt đầu từ giữa. Nhưng hãy nhớ rằng các nhãn dán (chữ ký) từ các khối trước đây đã có sẵn và không thể thay đổi được. Và kẻ tấn công không thể thay thế chúng bằng những cái mới.

Trong Blockchain, thứ tự các khối được xác định bằng cơ chế đồng thuận. Điều này giống như một quy tắc trong trò chơi của chúng tôi nói rằng thứ tự các khối trong tháp do tất cả người chơi cùng nhau quyết định. Và kẻ thù không thể tự mình thay đổi thứ tự các khối.

Lời kết

Khi OSS được triển khai ở Cardano, đảm bảo bảo mật sẽ cao hơn đáng kể. Thực hiện một cuộc tấn công chuỗi dài sẽ gần như không thể tưởng tượng được. Kẻ thù không thể lấy được các khóa tự hủy ngay sau khi ký các khối.

Nguồn bài viết tại đây


Picture

Đọc thêm các bài viết liên quan tại thẻ Tags bên dưới