Điểm căn bản nhất của blockchain là cho phép con người chia sẻ các thông tin, dữ liệu có giá trị theo một cách an toàn và không thể bị lấy cắp. Đặc tính này có được là do thông tin được ghi vào blockchain gần như sẽ không thể bị thay đổi hoặc xoá bỏ.
Tuy nhiên, ngay cả đối với các hệ thống blockchain được thiết kế tốt nhất vẫn có thể bị tấn công gây mất an toàn thông tin. Trên thế giới, ngày càng có nhiều báo cáo về các vấn đề bảo mật liên quan đến quy tắc đồng thuận, thực hiện giao dịch, tổ chức ví tiền điện tử và các phần mềm dựa trên công nghệ blockchain.
Hôm nay, CoinZ Việt sẽ cùng các bạn tìm hiểu về các vấn đề an toàn thông tin cùng với mức độ bảo mật của công nghệ blockchain hiện nay.
Tấn công 51%
Về mặt lý thuyết, chuỗi khối blockchain có dạng một chuỗi tuần tự các khối (block). Tuy nhiên, trong thực tế hoạt động, có thể xảy ra một số trường hợp phân nhánh khi hai khối block ứng viên cạnh tranh nhau để tạo ra chuỗi blockchain dài nhất.
Nghĩa là, sau khi hai block cùng (hoặc cách nhau một thời gian ngắn) được hai nút đào (mining node) nào đó tìm ra đáp án, chúng sẽ cùng được truyền thống tin từ nút đào đến các nút khác để xác thực và ghép nối vào bản sao blockchain của các nút đó.
Như vậy, sẽ dẫn đến hiện tượng một số nút sẽ chấp nhận một block ứng viên này, trong khi một số nút khác lại chấp nhận block ứng viên khác vào blockchain. Kết quả là hai phiên bản cạnh tranh nhau của blockchain xuất hiện.
Blockchain hoạt động theo mô hình quản trị dân chủ, hay còn gọi là đa số. Blockchain luôn xác nhận các chuỗi khối dài nhất. Thông thường, phiên bản blockchain chính với sự tham gia của rất nhiều nút đào trên toàn thế giới sẽ có tốc độ tạo thêm khối mới nhanh nhất. Vì vậy, giữa hai phiên bản của blockchain, phiên bản nào có đa số các nút đồng thuận lựa chọn sẽ được làm chuỗi chính.
Ở đây, xuất hiện lỗ hổng “tấn công 51%”: khi đối tượng tấn công (attacker/hacker) kiểm soát được nhiều hơn 51% số nút (hoặc năng lực hoạt động) của blockchain thì attacker/hacker đó có khả năng tạo thêm vào chuỗi các giao dịch (hoặc các khối) không hợp lệ.
Ví dụ, mạng lưới blockchain của đồng tiền mã hóa Verge (đồng tiền điện tử được tạo ra năm 2014 với tên gọi DogeCoinDark, đến năm 2016 được đổi tên thành Verge) bị tin tặc đánh cắp hơn 1,7 triệu USD bởi một cuộc tấn công 51%. Bitcoin Gold cũng đã bị tin tặc đánh cắp 17,5 triệu USD cũng bởi một cuộc tấn công như vậy. Thậm chí, bằng các cơ chế giả mạo ngay trong quá trình đào, chỉ cần chiếm hơn 25% số nút cũng có thể kiểm soát được chuỗi blockchain.
Tấn công 51% đe dọa làm sụp đổ hệ thống blockchain và các đồng tiền mã hóa, tuy nhiên về mặt lý thuyết khi quy mô của blockchain càng lớn thì khả năng xảy ra lỗ hổng “tấn công 51%” ngày càng nhỏ (do khả năng khó tập hợp đủ số lượng nút).
Còn trên thực tế, gần đây với sự gia tăng giá trị của tiền điện tử đã tạo ra các nhóm đào (mining pool – tập hợp các nút riêng lẻ, năng lực yếu lại với nhau nhằm nâng cao xác suất tìm ra đáp án giải các câu hỏi của hệ thống blockchain) và những chiếc máy đào ASIC chuyên dụng (Application Specifiec Integrated Circuit) khiến cho quyền lực tập trung vào tay của một vài cá nhân, cùng với sự thu hút của các nhóm tin tặc đã làm gia tăng nguy cơ bảo mật từ lỗ hổng “tấn công 51%”.
Bảo mật giao dịch
Tập lệnh (script) được sử dụng ở đầu vào và đầu ra dựa trên ngôn ngữ lập trình có thể tạo ra nhiều khuôn dạng giao dịch khác nhau.
Ví dụ, hợp đồng blockchain là cách thức áp dụng blockchain vào các dịch vụ xác thực và tài chính. Ngoài ra, còn dạng “hợp đồng thông minh”, trong đó các chương trình máy tính được lưu trữ trong một số loại blockchain có thể tự động hóa các giao dịch.
Trong năm 2016, tin tặc khai thác một điểm yếu không lường trước được trong một hợp đồng thông minh được viết trên blockchain của tiền Ethereum và ăn cắp 3,6 triệu ether, trị giá khoảng 80 triệu USD vào thời điểm đó, từ tổ chức tự trị phân cấp (DAO), một loại quỹ đầu tư dựa trên blockchain mới.
Để khắc phục vấn đề bảo mật, người ta đã sử dụng tập lệnh tạo ra hợp đồng tương đối phổ biến áp dụng kỹ thuật nhiều chữ ký (multisig). Hợp đồng càng nhiều điều khoản thi hành thì tập lệnh điều khiển càng phức tạp, dẫn đến xác suất sai sót khi cấu hình các giao dịch càng cao.
Giao dịch cấu hình sai thông thường sẽ bị loại bỏ vì không thể sử dụng được (các điều khoản thi hành không thể thực thi được), nhưng vẫn tồn tại các trường hợp tin tặc đưa vào các đoạn mã độc để phá vỡ bảo mật giao dịch hoặc hoạt động của blockchain. Vì vậy, cần phải thiết kế các biện pháp kiểm tra các tập lệnh tạo ra giao dịch trong blockchain. Các nhà nghiên cứu vẫn đang phát triển các phương pháp nhằm đảm bảo các hợp đồng thông minh không bị sai sót.
Bảo mật ví tiền điện tử
Ví tiền điện tử là một ứng dụng đóng vai trò giao diện của người dùng, cho phép kiểm soát quyền truy cập tiền, quản lý các khoá và địa chỉ, theo dõi số dư, tạo và ký các giao dịch. Ở góc độ kỹ thuật, ví tiền chỉ cấu trúc dữ liệu dùng để lưu trữ và quản lý các khoá (gồm cặp một khoá bí mật và một khoá công khai) của người dùng.
Trên thực tế, tiền điện tử được ghi vào blockchain và người dùng kiểm soát tiền của mình bằng cách dùng các khoá trong ví tiền để ký các giao dịch. Từ khoá bí mật có thể dùng hàm mật mã một chiều để tạo ra một khoá công khai. Từ khoá công khai có thể dùng hàm băm mật mã một chiều để tạo ra địa chỉ tiền điện tử.
Địa chỉ tiền điện tử là một dãy các chữ số và ký tự có thể chia sẻ với người muốn chuyển tiền. Nếu so sánh với ngân phiếu, địa chỉ tiền điện tử chính là tên người thụ hưởng được viết ở dòng sau mục ghi “trả theo yêu cầu của…”. Một địa chỉ tiền điện tử có thể thể hiện người sở hữu cặp khoá bí mật/công khai, hoặc có thể đại diện cho một tập lệnh thanh toán.
Như vậy, khi tiến hành giao dịch, tập lệnh gắn giao dịch với đầu ra là địa chỉ tiền điện tử có thể được kích hoạt bằng thông tin về khoá công khai của địa chỉ và khoá cá nhân của chủ ví. Vì ví điện tử lưu trữ thông tin về khoá nên nếu ví bị thất lạc hoặc lộ lọt thông tin sẽ khiến người chủ ví không thể truy cập tiền và ký giao dịch được nữa. Do vậy, ví tiền điện tử, khi ở dạng các trao đổi tiền điện tử trực tuyến đã trở thành mục tiêu chính của tin tặc.
Để bảo đảm an toàn thông tin cho ví tiền điện tử, các biện pháp dưới dạng sử dụng kỹ thuật nhiều chữ ký đã được áp dụng. Một cách đơn giản, kỹ thuật nhiều chữ ký tương tự như một ổ khóa chỉ mở khi đủ chìa khóa đến từ bộ những chìa khóa đã được định trước.
Bởi vì kỹ thuật nhiều chữ ký chỉ cho phép giao dịch được thực hiện khi có nhiều hơn một chữ ký số, nên phần tính năng bảo mật đó cũng có thể áp dụng cho bảo mật ví điện tử.
Ví dụ, khi kỹ thuật nhiều chữ ký được sử dụng để cấu hình ví tiền điện tử, có thể yêu cầu bổ sung chữ ký của chủ ví khi thực hiện giao dịch điện tử. Cách thức này sẽ giúp tránh được các giao dịch giả mạo, kể cả khi ví trực tuyến bị chiếm đoạt, do chữ ký của chủ ví thường không được lưu trong ví. Ngoài ra, kỹ thuật nhiều chữ ký còn cho phép thực hiện các biện pháp bảo mật khác khi tiến hành rút tiền, cụ thể qua dữ liệu sinh trắc học, kỹ thuật bảo mật hai lớp…
Phương án hiệu quả phòng chống tấn công an toàn thông tin đối với ví tiền điện tử là sử dụng kiểu ví lạnh (không kết nối với Internet một cách trực tiếp), khi không có kết nối giữa ví lạnh và Internet, tin tặc không thể ăn cắp tiền từ ví điện tử.
Một cách thức tương tự khác là sử dụng ví điện tử dạng thiết bị phần cứng (ví dụ dạng USB được giữ ngoại tuyến (offline) lưu trữ các thông tin bí mật). Thiết bị phần cứng này có thể được cắm vào máy tính khi cần thiết sẽ thực hiện các giao dịch đã được khởi tạo với điều kiện xác thực được chủ thể giao dịch.
Theo đó, chỉ khi tiến hành giao dịch thì mới kết nối thiết bị với Internet, thời gian còn lại thiết bị ở chế độ ví lạnh. Cách thức này an toàn hơn ví lạnh thuần tuý, nhưng cũng có nhược điểm về an toàn khi phải tránh đánh mất thiết bị và giao diện làm việc không linh hoạt bằng ví tiền điện tử trực tuyến.
An toàn thông tin đối với phần mềm
Lỗi trong các phần mềm nền tảng của blockchain hoàn toàn là có và rất nghiêm trọng nếu không kịp thời khắc phục. Mặc dù các bài nghiên cứu về blockchain thường mô tả chi tiết các quy trình hoạt động của blockchain là an toàn, nhưng phần mềm nền tảng blockchain vẫn có thể bị lỗi vận hành.
Trong quá khứ, lỗi phần mềm nổi tiếng nhất có thể kể đến là CVE-2010-5139 xảy ra vào tháng 8 năm 2010. Trên mạng Bitcoin, do một lỗi liên quan đến tràn giá trị số nguyên (integer overflow), một giao dịch không hợp lệ đã thực hiện chuyển 0,5 Bitcoin thành 184 tỷ Bitcoin trong một block. Lỗi này sau 8 giờ mới được các chuyên gia khắc phục.
Trường hợp lỗi phần mềm khác là một khối được xử lý ở phiên bản 0.8 đã không được xử lý ở phiên bản 0.7 khi chuyển cơ sở dữ liệu từ BerkeleyDB sang LevelDB. Vừa qua, cũng đã xuất hiện lỗ hổng tấn công từ chối dịch vụ nằm trong phần mềm hỗ trợ Bitcoin Core có khả năng đánh sập những phiên bản Bitcoin Core đời cũ khi tạo ra các block mã độc thực hiện giao dịch chi tiêu nhiều lần với cùng một số lượng Bitcoin.
Block mã độc có thể được gửi xung quanh mạng Bitcoin và làm hỏng phần mềm của bất kỳ nút đào nào nhận được nó. Theo đó, chỉ với khoảng 80.000 USD (12,5 Bitcoin) cho việc tạo một block, tin tặc có thể làm sập toàn bộ hệ thống Bitcoin, rẻ hơn rất nhiều so với chi phí để thực hiện một cuộc tấn công 51% vào blockchain của Bitcoin. Các trường hợp nêu trên đã chỉ ra vấn đề về an toàn thông tin đối với blockchain sau một thời gian vận hành đủ dài sẽ phát sinh lỗi phần mềm.
Tổng kết
Công nghệ chuỗi khối Blockchain là một công nghệ hoàn toàn mới và phức tạp. Blockchain được thiết kế để chống lại việc thay đổi của thông tin, dữ liệu. Bảo mật là thách thức lớn nhất của blockchain. Nguyên tắc cốt lõi của blockchain là phi tập trung và nó có ý nghĩa quan trọng đối với an toàn thông tin. Một mô hình tập trung phụ thuộc vào kiểm soát truy cập và kiểm tra để loại bỏ các hành vi, dữ liệu, đối tượng không hợp lệ ra khỏi hệ thống.
Nhưng trong mô hình phi tập trung, các hoạt động đó lại thuộc trách nhiệm của người sử dụng. Chính vì tính an toàn, bảo mật của blockchain dựa trên các đáp án (hoặc bằng chứng xử lý), không phải là kiểm soát truy nhập, nên tính chất của blockchain là mở và không yêu cầu mã hoá. Theo thời gian, chúng ta sẽ ngày càng hoàn thiện về mô hình hệ thống, phần mềm nền tảng và phụ trợ, theo đó kinh nghiệm bảo đảm an toàn thông tin tốt hơn, dễ sử dụng hơn.
Tuy nhiên cũng cần lưu ý rằng không phải tất cả các blockchain đều được tạo ra như nhau, có phạm vi ứng dụng giống nhau. Tuỳ thuộc vào loại blockchain được ứng dụng trong các ngành, nghề, lĩnh vực khác nhau, ghi lại những sự kiện, hồ sơ y tế, xử lý giao dịch, công chứng, danh tính hay chứng minh nguồn gốc… thì vấn đề bảo mật cụ thể của blockchain cũng sẽ khác nhau và sẽ được làm rõ trong các bài phân tích ứng dụng khác của công nghệ chuỗi khối blockchain.