Chương 2. Ứng dụng chữ ký số DSA/ECDSA đảm bảo an toàn cho ‘chiếc ví tiền mật mã’
3. Ứng dụng chữ ký số DSA/ECDSA đảm bảo an toàn cho “chiếc ví tiền mật mã”
3.3 Thử nghiệm và đánh giá
Trong phần này em xin trình bày mô tả về thiết kế một chiếc ví được phân phối hai yếu tố an toàn. Cụ thể, để chống tấn công A phân phối khóa riêng tư của cô ấy tại hai thiết bị mà A sở hữu, trường hợp này là máy tính và điện thoại thông minh của A. Khi một giao dịch Bitcoin được khởi tạo trên máy tính của A thì sẽ có một thông báo được gửi tới điện thoại của A thông qua ứng dụng được cài đặt trên điện thoại. Nếu A nhấn xác nhận, thì hai thiết bị sẽ ký giao dịch bằng chữ ký ngưỡng và thực thi giao dịch đó. Như vậy, không có thiết bị nào có thể tạo được chữ ký mà khi chữ ký được tạo là sự kết hợp cả hai thiết bị ( một là máy tính của A và một là điện thoại thông minh của A). Khi một kẻ tấn công muốn đánh cắp bitcoin của A thì kẻ đó phải đánh cắp (kiểm soát) được cả hai thiết bị của A. Điều này giúp Bitcoin được đảm bảo an toàn hơn trong thực tế sử dụng.
3.3.1 Mô hình bảo mật
Trao đổi giữa máy tính và điện thoại cần có sự bảo mật nhất định. Trong giai đoạn khởi tạo một kết nối an toàn giữa hai thiết bị cần có sự liên lạc và trao đổi dữ liệu an toàn. Để khởi tạo một kết nối an toàn giữa hai thiết bị, ta tận dụng được camera có sẵn trên điện thoại thông minh nên có thể sử dụng phương pháp quét mã vạch 2D trên màn hình máy tính. Thư viện mã vạch Zxing được sử dụng vì nó cung cấp nền tảng trên cả hai thiết bị có thể sẵn sàng để tạo trên máy tính và đọc trên điện thoại. Đây là một phương pháp khá an toàn cho giai đoạn khởi tạo do nó
không yêu cầu kết nối mạng internet. Máy tính để bàn chuyển keyshare và khóa công khai cho điện thoại hoàn thành khởi tạo. Máy tính để bàn sau đó xóa tất cả bản ghi khóa chính của điện thoại. Sau giai đoạn này tất cả thông tin, dữ liệu trao đổi được thực hiện thông qua TLS đảm bảo một kết nối an toàn và đáng tin cậy.
Với giao thức TLS dữ liệu được đảm bảo an toàn cũng như được kiểm tra tính toàn vẹn khi truyền qua môi trường internet. Với TLS, việc tấn công từ chối dịch vụ vào máy tính được kiểm soát.
3.3.2 Giao thức ứng dụng hai yếu tố
• Khởi tạo
- Máy tính để bàn: Tạo ví và hiển thị mã QR với chứng chỉ công khai và mật khẩu một lần
- Điện thoại: Quét mã QR và bắt đầu kết nối TLS sử dụng chứng chỉ công cộng.
- Điện thoại: Xác thực bằng mật khẩu một lần
- Điện thoại: Gửi qua chứng nhận công khai và nhận keyshare
• Giao dịch
- Máy tính để bàn: Tạo giao dịch
- Máy tính để bàn: Tạo máy chủ socket TLS và đợi cho điện thoại để kết nối - Điện thoại: Kết nối với máy tính để bàn bằng TLS với xác thực phía máy client - Điện thoại: Cung cấp cho người dùng lựa chọn phê duyệt giao dịch.
Tiếp tục nếu người dùng chấp thuận
- Máy tính để bàn: Bắt đầu giao thức ngưỡng - Điện thoại: Tham gia vào giao thức ngưỡng
- Máy tính để bàn: Hoàn tất giao dịch với sản phẩm chữ ký và thêm vào blockchain
Hình 10: giao thức khởi tạo
Hình 11: Giao thức giao dịch.
3.3.3 Sử dụng
Khi một ví mới được tạo trong MultiBit, mã QR sẽ hiển thị. Ứng dụng Android quét mã QR có chứa chứng chỉ tự ký cho máy tính và mật khẩu một lần.
Điện thoại sau đó khởi tạo TLS kết nối với máy tính bằng chứng chỉ. Điện thoại xác thực chính nó bằng cách sử dụng mật khẩu một lần và sau đó gửi chứng chỉ tự ký của riêng nó để xác thực client TLS có thể được bật trên các kết nối trong tương lai.
Sau đó, máy tính để bàn sẽ gửi keyshare của điện thoại và xóa nó khỏi bộ nhớ. Khi MultiBit cố gắng ký giao dịch, sever khởi chạy và dịch vụ DNS-SD được đăng ký server lắng nghe kết nối đến từ client. Trong khi ứng dụng điện thoại chạy, nó sẽ tìm dịch vụ này và cố gắng khởi tạo kết nối TLS với server( máy tính).
Nếu thành công, màn hình sẽ gửi thông tin giao dịch cùng với khóa công khai của ví tới điện thoại. Nếu điện thoại có keyshare cho khóa công khai, nó sẽ hiển thị cho người dùng thông tin giao dịch cùng với khả năng cho phép hoặc hủy giao dịch.
Nếu người dùng chọn cho phép nó, sơ đồ ngưỡng được chạy để tạo chữ ký trên máy tính. Cuối cùng, máy tính phát sóng giao dịch đã ký với Bitcoin
Thời gian(s) Bước 1 ( máy tính) 0.26 Bước 2 ( điện thoại) 0.36 Bước 3 ( máy tính) 0.58 Bước 4(điện thoại) 11.04
Tổng 13.26
Bảng trên cho thấy thời gian thực thi của mỗi bước công việc được thực hiện trên các thiết bị. Chúng ta có thể thấy thời gian chủ yếu tập trung tại bước 4, đây là bước mà chi tiêu được tạo và xác minh.
KẾT LUẬN
Hiện nay Bitcoin là đồng tiền mật mã có giá trị lớn nhất thế giới, với những tính chất, ưu điểm của nó so với các loại tiền tệ thông thường có thể đây xẽ là đồng tiền chung cho toàn thế giới trong tương lai. Tuy nhiên trong thực tế sử dụng, đồng tiền này vẫn còn tồn tại nhiều bất cập và chưa phù hợp với những mô hình sử dụng tiền phổ biến hiện nay. Đặc biệt trong mô hình kiểm soát tài chính của các doanh nghiệp, tổ chức khi chi tiêu tiền cần có sự tham gia của nhiều bên nhằm công khai và minh bạch các khoản chi tiêu đó trong nội bộ doanh nghiệp và tổ chức.
Với những công nghệ hiện tại của Bitcoin như các tập lệnh đa chữ ký là chưa đủ để áp dụng trên mô hình thực tế. Tuy nhiên với chữ ký ngưỡng DSA/ECDSA có thể giải quyết những vấn đề bảo mật còn tồn tại trong bài toán trên. Với khả năng của nó có thể giúp tăng cường bảo mật cho bitcoin trong ví.
Trong đồ án tốt nghiệp này em đã trình bày khái quát về chữ ký số, tổng quan về đồng tiền mật mã bitcoin và ứng dụng chữ ký ngưỡng DSA/ECDSA trong việc bảo mật ví tiền Bitcoin cùng những đánh giá của cá nhân em. Tuy nhiên do hạn chế về kiến thức, thời gian cũng như kinh nghiệm của bản thân còn non kém nên bài viết còn nhiều thiếu sót và hạn chế mong nhận được sự đóng góp của thầy cô và bạn bè để em hoàn thiện đồ án của mình hơn nữa.
Một lần nữa em xin chân thành cảm ơn sự hướng dẫn tận tình từ thầy giáo TSKH. Nguyễn Khắc Việt giảng viên trường Đại Học FPT và thầy giáo TS. Lại Minh Tuấn cùng toàn thể cán bộ giảng viên trường Học Viện Kỹ Thuật Mật Mã đã giúp đỡ em trong quá trình thực hiện và hoàn thành đồ án này.
Em xin chân thành cảm ơn!