Giới thiệu
Chính phủ điện tử ở Estonia đã được xây dựng từ năm 1997. Để đảm bảo an toàn và bảo mật cho các dịch vụ số, các hệ thống liên lạc, Estonia đã ứng dụng công nghệ blockchain vào thử nghiệm từ năm 2008 và chính thức sử dụng năm 2012. Trong ứng dụng công nghệ blockchain ở Estonia, hạ tầng chữ ký ít phụ thuộc khóa KSI, gọi tắt là hạ tầng KSI hoặc hạ tầng chữ ký KSI, đóng vai trò cốt lõi và được sử dụng ở quy mô toàn cục để cung cấp các mạng, hệ thống và dữ liệu không bị thỏa hiệp, trong khi vẫn đảm bảo quyền riêng tư.
Hạ tầng này được cung cấp bởi công ty Guardtime Federal, LLC và đã được triển khai ở Estonia từ năm 2007. Về cơ bản, đây là một hệ thống phân phối toàn cục để cung cấp dịch vụ chữ ký được hỗ trợ bởi máy chủ và dán nhãn thời gian. Nghĩa là, chữ ký trong hạ tầng này được tạo thông qua một hệ thống các máy chủ phân cấp và được sử dụng để cung cấp bằng chứng về thời gian ký, bằng chứng về thực thể ký và tính toàn vẹn dữ liệu.
Tổng quan về hạ tầng chữ ký KSI
Dựa trên các tài liệu [1,2], mục này sẽ trình bày tổng quan về công nghệ hạ tầng chữ ký KSI.
Chữ ký ít phụ thuộc khóa
Chữ ký ít phụ thuộc khóa là một giải pháp thay thế cho chữ ký dựa trên PKI truyền thống. Theo [1], từ “keyless” (trong thuật ngữ keyless signature) không có nghĩa là không có khóa mật mã nào được sử dụng trong quá trình tạo chữ ký. Các khóa vẫn cần thiết cho việc xác thực, nhưng chữ ký có thể được xác minh theo cách đáng tin cậy mà không cần yêu cầu khóa vẫn giữ bí mật các khóa.
Chữ ký ít phụ thuộc khóa được triển khai trong thực tế dưới dạng đa chữ ký (multi-signatures), tức là nhiều tài liệu được ký tại một thời điểm. Quá trình ký bao gồm các bước:
Băm (Hashing): Các tài liệu cần ký được băm và các giá trị băm được sử dụng để biểu diễn cho tài liệu trong phần còn lại của quy trình.
Liên kết (Aggregation): Cây băm toàn cục tạm thời theo mỗi chu kỳ (global temporary per-round hash tree) được tạo ra để biểu diễn tất cả các tài liệu được ký trong mỗi chu kỳ (có thể được kéo dài đến 1 giây).
Công bố (Publication): Các giá trị băm ở đỉnh của các cây liên kết theo mỗi chu kỳ được thu thập thành một cây băm liên tục (perpetual hash tree), được gọi là lịch băm (hash calendar). Giá trị băm ở đỉnh của cây đó được công bố dưới dạng neo tin cậy (trust anchor) và được gọi là mã công bố (public code).
Lịch băm: Các giá trị băm ở đỉnh của các cây liên kết trong mỗi đơn vị thời gian được kết nối với nhau trong cây băm duy nhất trên toàn cục được gọi là lịch băm - để các lá mới chỉ được thêm vào một bên của cây. Giá trị băm ở đỉnh của lịch được công khai định kỳ trên các phương tiện truyền thông và được chứng kiến rộng rãi. Hiện nay, có rất nhiều kênh công khai được sử dụng rộng rãi để giúp cho việc công bố như vậy trở nên thuận tiện.
Tổng quan về hạ tầng chữ ký ít phụ thuộc khóa KSI
Đưa định danh vào chữ ký ít phụ thuộc khóa: Để mở rộng chữ ký ít phụ thuộc khóa thành chữ ký cá nhân, người dùng phải được định danh và xác thực bởi máy chủ và định danh của người ký được thêm vào cây băm toàn cục (cùng với giá trị băm đã được gửi để ký).
Tuy nhiên, giải pháp trên có thể dẫn đến những rắc rối sau: (i) khách hàng đã gửi yêu cầu ký cho một dữ liệu, nhưng sau đó phủ nhận điều đó; (ii) máy chủ tự ý tạo chữ ký cho một dữ liệu không mong muốn dưới danh nghĩa của khách hàng. Do đó, giải pháp này cần được bổ sung tính không thể chối bỏ (non-repudiation) để tránh những rắc rối như thế.
Cụ thể, giải pháp bổ sung tính không thể chối bỏ cho chữ ký ít phụ thuộc khóa chính là lược đồ chữ ký dựa trên máy chủ BLT [5]. Ý tưởng chính của lược đồ chữ ký BLT là để người ký cam kết một chuỗi khóa sao cho mỗi khóa được gán một khe thời gian biểu thị thời điểm nó có thể được sử dụng để ký thông điệp và sẽ chuyển từ khóa ký sang khóa xác minh khi thời điểm sử dụng đã trôi qua.
Hạ tầng KSI
Để sử dụng chữ ký ít phụ thuộc khóa trong thực tế, người ta cần một hạ tầng chữ ký ít phụ thuộc khóa [1] (gọi là hạ tầng KSI). Hạ tầng chữ ký KSI ban đầu được phát triển vào năm 2007 với mục tiêu đưa một thẻ chữ ký vào tệp số bất kỳ để tăng tính hiệu quả trong việc xác thực. Bằng cách khai thác giá trị băm của một tệp cùng với giá trị băm của các tệp khác được tạo trong cùng một khoảng thời gian (chu kỳ) và sau đó kết hợp chúng thành một cây băm Merkle, chúng ta sẽ nhận được các chữ ký ít phụ thuộc khóa (khoảng 2 KB) cho chúng. Trong hạ tầng này, các giá trị băm của các tệp trong khoảng thời gian hiện tại được liên kết về mặt mật mã với tất cả các giá trị băm của các tệp được đưa vào các quy trình này kể từ khi nó được khởi tạo theo lịch băm. Đây là một thể hiện của blockchain.
Các giá trị băm ở đỉnh theo mỗi chu kỳ được lưu trữ trong hạ tầng KSI sao cho nó luôn sẵn sàng để xác minh chữ ký. Dung lượng lưu trữ này ở mức xấp xỉ 2 GB mỗi năm và tỷ lệ theo thời gian, không theo số lượng đối tượng được ký hoặc xử lý.
Hơn nữa, khi dữ liệu ban đầu được băm và gửi đi như yêu cầu ký, nội dung của dữ liệu gốc khó có thể bị lộ trong các quy trình khác nhờ tính một chiều của hàm băm mật mã. Do vậy, nội dung dữ liệu được giữ kín bởi khách hàng, chỉ các giá trị băm của dữ liệu mới được phân phối rộng rãi.
KSI giải quyết nhu cầu chứng minh tính toàn vẹn dữ liệu và phát hiện các thay đổi về tính xác thực của dữ liệu trên thiết bị và dữ liệu lưu chuyển trên mạng. Về cơ bản, nó là một công nghệ blockchain, cung cấp xác thực dữ liệu quy mô lớn mà không phụ thuộc vào các cơ quan ủy quyền tập trung.
Kiến trúc Hạ tầng KSI: Kiến trúc hệ thống của hạ tầng KSI được mô tả trong Hình 2. Quá trình băm tài liệu diễn ra trong ứng dụng hình thành yêu cầu ký (hoặc dán nhãn thời gian) - sử dụng các công cụ phần mềm được cung cấp. Yêu cầu được gửi đến một cổng - thành phần hệ thống cung cấp dịch vụ cho người dùng cuối. Cổng thực hiện quá trình liên kết ban đầu của các yêu cầu nhận được trong chu kỳ liên kết - sau đó gửi yêu cầu liên kết của nó đến cụm liên kết ở mức cao hơn. Các yêu cầu được liên kết thông qua nhiều lớp máy chủ liên kết (bộ liên kết) trong mạng liên kết - và giá trị băm ở đỉnh duy nhất theo toàn cục được chọn bởi cụm lõi. Một phản hồi được gửi lại ngay lập tức thông qua các lớp liên kết.
Các giá trị băm ở đỉnh của mỗi chu kỳ liên kết được thu thập trong “cơ sở dữ liệu lịch” và được phân phối qua tầng “bộ nhớ đệm lịch” cho dịch vụ mở rộng, thường được đặt cùng với máy chủ cổng. Các ứng dụng khách sử dụng dịch vụ mở rộng cho mục đích xác minh.
KSI đáp ứng bảo mật: KSI được thiết kế để cung cấp xác thực an toàn, có thể mở rộng dựa trên chữ ký cho dữ liệu số và thông tin cá nhân.
KSI blockchain khắc phục hai điểm yếu lớn của blockchain truyền thống, tốc độ và khả năng lưu trữ, khiến nó có thể sử dụng được ở quy mô công nghiệp. Thứ nhất, blockchain KSI tỷ lệ theo thời gian nên nó tăng trưởng tuyến tính theo thời gian và độc lập với số lượng giao dịch, do vậy cho phép khả năng mở rộng số lượng xử lý yêu cầu mỗi giây. Thứ hai, KSI có một quy trình toán học đơn giản cung cấp chữ ký theo mức độ một giây, tức là cùng một lúc tạo chữ ký mỗi giây cho hàng tỷ yêu cầu của khách hàng.
Hạ tầng này hoạt động dựa trên thiết bị bảo mật Black Lantern, một nền tảng phần cứng và phần mềm tích hợp được xây dựng có chủ đích nhằm giảm thiểu các cuộc tấn công từ xa và vật lý lên hạ tầng và ứng dụng của người dùng.
Tổng quan về hạ tầng chữ ký ít phụ thuộc khóa KSI
Giá trị của KSI: Dữ liệu số theo định dạng, giao thức hoặc kích thước bất kỳ đều có thể được ký. Chữ ký của dữ liệu được lưu trữ trong “cơ sở dữ liệu lịch”, cung cấp tính lâu bền và trở thành một bản ghi không thể sửa đổi mà sẵn sàng cho việc xác minh công khai. Chữ ký KSI cung cấp bằng chứng về thời gian ký, bằng chứng về thực thể ký và tính toàn vẹn dữ liệu. Chữ ký của dữ liệu sau khi được tạo sẽ có giá trị vĩnh viễn, không giống như chữ ký dựa trên PKI. Cụ thể, nếu khóa hoặc chứng thư PKI riêng bị xâm phạm, chữ ký PKI phải được thu hồi. Chữ ký KSI không thể bị thu hồi và không cần phải bị thu hồi. KSI có thể được sử dụng kết hợp với PKI như mong muốn để bảo vệ tuổi thọ của chứng thư PKI.
Một vài đặc điểm so sánh giữa KSI và PKI
Hạ tầng PKI và hạ tầng KSI là các công nghệ nhằm làm cho dữ liệu số trở nên đáng tin cậy hơn bằng cách cung cấp các cơ chế xác định nguồn gốc của dữ liệu và tạo ra bằng chứng không thể bác bỏ rằng dữ liệu không bị sửa đổi trong một thời gian nhất định. Trong khi PKI dựa vào tính bí mật liên tục của khóa riêng, cần thiết cho việc xác định nguồn gốc, thì KSI chỉ dựa vào các thuộc tính mật mã của hàm băm và tính khả dụng của mã xác minh được công bố rộng rãi.
Chữ ký dựa trên PKI truyền thống
Trong một hệ thống chữ ký dựa trên PKI truyền thống, mỗi người dùng có một khóa riêng và một khóa công khai. Ở đó, khóa công khai được giả thiết là hiện với tất cả những người xác minh tiềm năng. Để ký một thông điệp, người ta áp dụng một hàm ký. Để xác minh một chữ ký, người ta phải sử dụng một hàm xác minh mà trả về 1 nếu và chỉ nếu chữ ký là hợp lệ.
Khóa là các liên kết yếu nhất trong bất kỳ hệ thống an toàn nào vì chúng có thể bị xâm phạm do các yếu tố khác nhau - chẳng hạn yếu tố kỹ thuật, con người hoặc cả hai. Trong quá trình tạo chữ ký cá nhân, một số loại bí mật cần được chia sẻ hoặc thiết lập trước (khóa, mật khẩu,…) để xác thực người ký. Do vậy, tính hợp lệ của chữ ký phụ thuộc vào các giả thiết rằng một số khóa riêng là an toàn.
Đối với hạ tầng PKI truyền thống, việc thu hồi khóa ngay lập tức đã trở thành một vấn đề phức tạp và cấp thiết. Ở đó, nhiều xác nhận bổ sung (như phản hồi OCSP, nhãn thời gian mật mã…) phải được thêm vào chữ ký cùng với chứng thư khóa công khai. Trong khi đó, hạ tầng KSI cung cấp một giải pháp chữ ký thay thế (cụ thể là chữ ký ít phụ thuộc khóa) mà giải quyết các vấn đề liên quan đến bài toán thu hồi khóa, trong đó việc ký là dựa trên máy chủ, tức là chữ ký được tạo ra theo sự hỗ trợ của các máy chủ chữ ký.
PKI so với KSI
Trong [3], tác giả A. Buldas đã đưa ra một vài so sánh liên quan đến bài toán thu hồi khóa giữa hạ tầng KSI và PKI, được liệt kê trong Bảng 1.
Tổng quan về hạ tầng chữ ký ít phụ thuộc khóa KSI
Bên cạnh đó, cũng cần lưu ý rằng hạn chế chính của các giải pháp chữ ký dựa trên máy chủ là máy chủ phải được tin cậy hoàn toàn. Tuy nhiên, vẫn chưa rõ liệu một hệ thống chữ ký dựa trên máy chủ như vậy có kém tin cậy hơn các giải pháp chữ ký dựa trên PKI truyền thống hay không, nơi các khóa ký được giữ bởi người dùng cuối.
Ứng dụng của hạ tầng KSI
Hạ tầng KSI giữ vị trí trung tâm trong ứng dụng công nghệ blockchain ở Estonia. Công nghệ này (Hình 3) có thể được tích hợp vào các cơ quan đăng ký của chính phủ, thông báo chính thức, đăng ký kinh doanh, hồ sơ tòa án kỹ thuật số và tất cả dữ liệu của chính phủ. Blockchain KSI về cơ bản được sử dụng để cung cấp một dịch vụ chữ ký. Khách hàng chuyển giá trị băm của tài sản số và nhận lại một thẻ để chứng minh sự tham gia của người dùng trong blockchain mà tạo ra “bằng chứng về sự tồn tại” cho thông tin số.
Tổng quan về hạ tầng chữ ký ít phụ thuộc khóa KSI
Theo Hình 3, việc trao đổi thông tin giữa các dịch vụ chính phủ và hạ tầng KSI được đảm bảo thông qua đường trục Internet (X-Road) ở Estonia. X-Road hỗ trợ nhiều dịch vụ điện tử của chính phủ ở Estonia.
Blockchain KSI được sử dụng cho cả quy trình bên trong và bên ngoài để duy trì tính toàn vẹn của hồ sơ và cho phép phát hiện hiệu quả các sửa đổi kể cả có chủ ý và không chủ ý đối với dữ liệu trên các thiết bị lưu trữ (data-at-rest).
Kết luận
Trong bài viết này trình bày khái quát về hạ tầng KSI. Bên cạnh X-road, hạ tầng này cũng đóng vai trò khá quan trọng trong chiến lược xây dựng chính phủ điện tử ở Estonia. Về cơ bản, hạ tầng này được xem là một giải pháp thay thế cho hạ tầng PKI truyền thống trong vấn đề quản lý và thu hồi khóa. Ưu điểm chính của hạ tầng KSI là cung cấp tính toàn vẹn cho dữ liệu mà không yêu cầu tiết lộ nội dung dữ liệu trong quá trình ký. Ngoài ra, bản thân hạ tầng KSI cũng được xem là một công nghệ blockchain ở Estonia [4] cho phép xử lý yêu cầu mỗi giây - đây là một hiệu suất có thể đáp ứng quy mô toàn cầu.
Với những thành công ban đầu trong việc triển khai chính phủ điện tử ở Estonia và triển vọng thấy được từ hạ tầng KSI đem lại, công nghệ này có thể được áp dụng và triển khai để phục vụ yêu cầu xây dựng chính phủ điện tử ở nước ta trong thời gian tới.