ENTROPY VÀ TẦM QUAN TRỌNG CỦA ENTROPY
Entropy là gì?
Trong tính toán, entropy là một độ đo tính ngẫu nhiên hoặc tính không dự đoán được của thông tin [1] mà một hệ điều hành hoặc ứng dụng thu thập được để sử dụng trong việc tạo các khóa mật mã yêu cầu dữ liệu ngẫu nhiên. Khi mức độ entropy cao được sử dụng để mã hóa, dữ liệu người dùng có thể được bảo vệ an toàn trước các tấn công cả khi truyền qua mạng và ngay tại trên các thiết bị lưu trữ.
Các hệ thống máy tính truyền thống tiếp cận đến tương tác của con người với máy tính như chuyển động của chuột, các hoạt động mạng và các thao tác nhập bàn phím để tìm entropy. Dữ liệu không thể đoán trước dựa trên entropy phần mềm sau đó được chuyển thành số ngẫu nhiên và được sử dụng cho nhu cầu mật mã.
Nhưng ngoài các máy tính truyền thống, người dùng cũng sử dụng rất nhiều các thiết bị và hệ thống khác có quyền truy cập Internet. Do đó, nhu cầu dữ liệu ngẫu nhiên ngày càng gia tăng để giảm thiểu các vấn đề bảo mật trong môi trường điện toán đám mây, hệ thống nhúng và thiết bị kết nối vạn vật (IoT). Ngược lại, các hệ thống dựa trên đám mây và các thiết bị cải tiến bị hạn chế trong tương tác với người dùng, do đó không thể tạo ra entropy dựa trên phần mềm đủ mạnh cho các nhu cầu về mật mã.
Tầm quan trọng của entropy
Trước năm 2012, các vấn đề với entropy dựa trên phần mềm hầu như không được nhắc đến. Sau đó, nhóm nghiên cứu từ Đại học California, San Diego và Đại học Michigan, Mỹ đã phát hiện ra rằng, thuật toán RSA và thuật toán chữ ký số (Digital Signature Algorithm - DSA) không còn tạo ra các khóa đảm bảo an toàn. Các nhà nghiên cứu đã đánh giá tính bảo mật của các khóa công khai được sử dụng trong các thiết bị Internet như tường lửa và bộ định tuyến. Kết quả cho thấy hầu hết các máy chủ SSH và TLS đều chứa các khóa công khai dễ đoán. Ngoài ra, các nhà nghiên cứu cũng phát hiện ra rằng 10% khóa SSH và 5% khóa HTTPS trùng lặp [2].
Lý do là các thiết bị kết nối Internet bị hạn chế về tài nguyên và tương tác với người dùng. Các thiết bị IoT được phát triển dựa trên giả định rằng entropy được tạo bằng phần mềm là đủ cho mật mã, nhưng cách tiếp cận này dường như không hiệu quả. Các thiết bị IoT sử dụng khóa mật mã có thể đoán được sẽ dễ dàng bị chuyển đổi từ thiết bị hữu ích thành công cụ gián điệp.
Ngoài ra, các hệ thống dựa trên đám mây không tương tác với phần cứng của thiết bị người dùng. Thay vào đó, các nhà cung cấp dịch vụ đám mây sử dụng một hình ảnh vàng duy nhất (golden image) của một máy ảo khách và tạo ra nhiều phiên bản của nó để đáp ứng nhu cầu của người dùng. Những trường hợp này khó có khả năng tạo entropy. Do đó, điện toán đám mây đang trở thành một hướng tấn công hấp dẫn cho tin tặc.
Việc tìm kiếm một nguồn entropy thực sự đáng tin cậy đã trở thành vấn đề cấp thiết đối với các nhà phát triển. Trong khi ngày càng thiếu hụt entropy chất lượng cao, cách tiếp cận sử dụng phần mềm truyền thống để tạo entropy là thất bại khi áp dụng cho các hệ thống máy tính hiện đại. Mặc dù các chuyên gia khuyến nghị nên tạo khóa mật mã với các bộ tạo bit ngẫu nhiên tất định, nhưng tồn tại một rủi ro là các giá trị ban đầu hoặc mầm khóa được cung cấp cho các bộ tạo này để phát triển khóa có thể dễ dàng bị truy tìm và xâm phạm bởi tội phạm mạng.
Một giải pháp khả thi cho vấn đề này là tìm các nguồn entropy bên ngoài có thể được chia sẻ an toàn bởi nhiều ứng dụng trong môi trường của sản phẩm...
THÁCH THỨC VÀ GIẢI PHÁP VỀ ENTROPY
Trong thế giới kết nối như hiện nay, hầu hết các thiết bị từ truyền thống đến IoT đều cần liên lạc an toàn trên Internet để tránh lộ, lọt các thông tin nhạy cảm như tên người dùng, mật khẩu, thông tin ngân hàng hoặc hồ sơ y tế quan trọng.
Mật mã là giải pháp quan trọng để bảo mật dữ liệu tại chỗ hoặc trên IoT. Nhưng mật mã sẽ thất bại khi thiết bị sử dụng khóa dễ đoán (yếu) được tạo ra từ dữ liệu ngẫu nhiên có entropy thấp. Các máy tính tất định tiêu chuẩn gặp khó khăn trong việc tạo ra tính ngẫu nhiên tốt, đặc biệt là các thiết bị IoT bị hạn chế về tài nguyên sẽ có ít cơ hội để thu thập entropy cục bộ trước khi bắt đầu các truyền thông mạng. Các nguồn tốt nhất của tính ngẫu nhiên thực sự dựa trên các hiện tượng vật lý không thể đoán trước, chẳng hạn như hiệu ứng lượng tử nhưng chúng có thể không thực tế để đưa vào các thiết bị IoT.
NIST đã đưa ra một dự án có tên: “Entropy là một Dịch vụ: Mở khóa toàn bộ tiềm năng của mật mã” (Entropy as a Service: Unlocking the full potential of cryptography) viết tắt là EaaS, trong đó nghiên cứu các kiến trúc dịch vụ Internet mới, cung cấp các nguồn entropy an toàn cho các thiết bị IoT. Nghiên cứu của NIST cũng đề cập đến cả vấn đề độ tin cậy trên Internet, đặc biệt phù hợp với các dịch vụ hữu ích cho các mục đích cơ bản như vậy.
DỊCH VỤ ENTROPY
EaaS (Entropy as a Service) là một dịch vụ Internet sáng tạo được thiết kế để cung cấp các nguồn entropy chất lượng cao cho các thiết bị IoT, hệ thống nhúng và nhà cung cấp dịch vụ đám mây. Những nguồn entropy này dựa trên các quá trình vật lý của bộ dao động vòng hoặc các thiết bị lượng tử có thể cung cấp tính ngẫu nhiên thực sự. Các nhà phát triển có thể sử dụng EaaS để nạp mầm cho các ứng dụng hoặc thiết bị của họ với entropy chất lượng cao và chắc chắn rằng các sản phẩm của họ được bảo vệ mạnh mẽ trước các cuộc tấn công mạng. Các thành phần chính của kiến trúc EaaS cơ sở được hiển thị trong Hình 1.
Hình 1. Kiến trúc EaaS của NIST
Các thành phần quan trọng là thiết bị entropy lượng tử, máy chủ EaaS và gốc phần cứng của thiết bị tin cậy (TPM, Intel® IPT, ARM® TrustZone®) trong hệ thống khách hàng.
Trong vi kiến trúc này, hệ thống máy khách được trang bị thiết bị gốc phần cứng tin cậy (HRT). Ví dụ về các thiết bị HRT là môđun nền tảng đáng tin cậy, công nghệ bảo vệ định danh Intel® và công nghệ ARM® TrustZone. Hệ thống máy khách chạy một ứng dụng phần mềm chuyên dụng có khả năng giao tiếp với thiết bị HRT cục bộ ở một đầu và với EaaS ở đầu kia. Ứng dụng giao tiếp với máy chủ entropy bằng các giao thức văn bản tiêu chuẩn, chẳng hạn như HTTP.
Quy trình máy khách gửi yêu cầu và nhận dữ liệu có entropy cao từ một EaaS như sau:
1) Ứng dụng chuyên dụng khởi tạo quy trình lấy entropy từ máy chủ EaaS bằng cách chuyển tín hiệu đầu tiên sang thiết bị HRT và lấy khóa công khai của nó.
2) Ứng dụng chuyên dụng yêu cầu nhãn thời gian từ máy chủ thời gian sử dụng NTP.
3) Ứng dụng sẽ gửi khóa công khai của thiết bị HRT đến máy chủ EaaS thông qua cuộc gọi HTTP GET.
4) Máy chủ EaaS nhận khóa công khai của người yêu cầu, đọc giá trị ngẫu nhiên R (si) tiếp theo có sẵn, ký tên với khóa riêng của EaaS, đóng dấu với thời gian hiện tại và gửi lại giá trị được mã hóa cho khách hàng.
5) Ứng dụng trên máy khách nhận kết quả qua HTTP và gửi nó đến thiết bị HRT.
6) Thiết bị HRT xác minh chữ ký bằng khóa công khai EaaS, kiểm tra nhãn thời gian của dữ liệu về độ mới, giải mã kết quả bằng khóa riêng của máy khách. Nếu chữ ký là chính xác và dữ liệu ngẫu nhiên được chấp nhận, thì thiết bị HRT sẽ gửi cho máy khách một vé (ticket) để cho phép hệ thống máy khách sau này có thể chứng minh được rằng nó đã nhận dữ liệu entropy chất lượng cao từ EaaS.
Đặc biệt chú ý, dữ liệu ngẫu nhiên thu được từ Bước 6 của giao thức không được sử dụng trực tiếp để xây dựng các khóa mật mã hoặc làm mầm cho DRBG. Thay vào đó, các cơ chế mã hóa đã biết để kết hợp nhiều nguồn dữ liệu ngẫu nhiên phải được sử dụng để trộn dữ liệu ngẫu nhiên thu được từ nhiều phiên bản EaaS từ xa với tính ngẫu nhiên cục bộ, đối với hệ thống máy khách và thiết bị HRT để tạo mầm cho DRBG được NIST phê duyệt. Các cơ chế mã hóa như vậy được biết đến như là sự trích xuất entropy/ngẫu nhiên.
NIST đặc biệt khuyến nghị tối thiểu hai trường hợp EaaS độc lập ở các vị trí địa lý khác nhau được sử dụng làm nguồn từ xa. Dữ liệu thu được từ quá trình trích xuất ngẫu nhiên phải được cung cấp như một mầm cho DRBG được NIST phê duyệt. Sau đó, việc tạo khóa mật mã phải được thực hiện bởi DRBG đã được NIST phê duyệt được nạp mầm trên hệ thống máy khách hoặc bên trong thiết bị HRT.
Cấu trúc này đảm bảo rằng kẻ tấn công sẽ không có bất kỳ lợi thế có ý nghĩa nào để hiểu rõ hơn về các khóa mật mã được tạo cục bộ trên hệ thống máy khách.
Hình 2. Mô hình hướng dẫn sử dụng cho máy khách EaaS
Trong mô hình f là một hàm băm; EaaS1,..., EaaSn là các trường hợp EaaS độc lập cung cấp dữ liệu cho việc tính toán Uout = f(x0,x1,...,xn) với xi, 1 ≤ i ≤ n là dữ liệu thu được từ các trường hợp EaaSi sử dụng khóa truy cập EaaS của máy khách; Chú ý rằng chỉ có duy nhất một khóa truy cập của máy khách cho tất cả các trường hợp EaaSi.
Lưu ý rằng EaaS không tạo khóa, nó chỉ cho phép các hệ thống máy khách tạo ra các khóa mật mã mạnh mà máy chủ EaaS không có khả năng để hiểu rõ hơn về các khóa máy khách. Nhiều người không tin tưởng bất kỳ sự ủy quyền tập trung nào cho một dịch vụ cung cấp một mục đích cơ bản như vậy. EaaS được thiết kế để phân phối và tổng hợp độ tin cậy trên một tập hợp có thể mở rộng gồm nhiều bên tham gia khác nhau, đưa ra một ủy quyền tập thể. Bằng cách kết hợp các kỹ thuật mật mã đã biết theo những cách mới, kiến trúc này sẽ cung cấp entropy mới cho các thiết bị IoT khi cần thiết. Kiến trúc này sẽ phân phối độ tin cậy trên hàng ngàn máy chủ rải rác trên khắp thế giới, đủ khả năng để mọi chính phủ và mọi công ty công nghệ trên thế giới có thể tham gia trực tiếp vào nguồn gốc của sự tin cậy phi tập trung, mỗi bên đảm bảo một cách tích cực và độc lập.
CÁC NHÀ CUNG CẤP EAAS
Ngày càng có nhiều ví dụ về các giải pháp EaaS thành công trên thị trường. Chẳng hạn, Whitewood, một nhà phát triển các giải pháp bảo mật tiền điện tử của Mỹ cung cấp giải pháp EaaS miễn phí cho phần mềm tại chỗ cũng như các tùy chọn trả phí cho cấp phép vĩnh viễn hoặc mô hình dựa trên tiêu dùng. Whitewood đã tạo ra phần mềm netRandom nhận dữ liệu ngẫu nhiên từ một máy entropy và cung cấp cho các hệ điều hành, thiết bị IoT và máy ảo với nguyên liệu mầm duy nhất.
Crypto4A - một công ty an ninh mạng của Canada cũng thực hiện tất cả các khuyến nghị của NIST trong giải pháp sẵn sàng lượng tử của mình. Nhà cung cấp EaaS này sử dụng môđun bảo mật phần cứng được phát triển đặc biệt để triển khai nhiều nguồn entropy và cung cấp thiết kế bộ tạo số ngẫu nhiên theo NIST SP-800-90 với dữ liệu dựa trên lượng tử. Môđun của họ đảm bảo mức độ bảo mật mật mã và tính xác thực dịch vụ cần thiết cho các khách hàng của công ty.
Quintessence Labs - một công ty bảo mật có trụ sở tại Úc hiện đang kiểm thử nghiêm ngặt sản phẩm qStream của họ nhằm cung cấp entropy được tạo dựa trên lượng tử ở tốc độ cao cho các bộ tạo số giả ngẫu nhiên. Công ty đã phát triển một hệ thống quản lý entropy hiệu quả, tuân thủ theo quy định của KMIP và FIP 140-2 mức 3.
PriVerify Corp là một công ty tư nhân chuyên về bảo mật thông tin của Mỹ. Công ty này hiện đang cung cấp hai giải pháp EaaS là EaaS cho các máy chủ Linux và EaaS cho IoT.
LỢI ÍCH CỦA EAAS DÀNH CHO NHÀ PHÁT TRIỂN
EaaS hữu ích cho các nhà phát triển ứng dụng và thiết bị khi giúp họ không cần cố gắng tìm kiếm các nguồn entropy an toàn của riêng họ. Họ có thể ra mắt sản phẩm của mình nhanh hơn mà chắc chắn rằng các thiết bị và ứng dụng sẽ bảo vệ an toàn dữ liệu người dùng. EaaS cho phép các sản phẩm mới truy cập entropy thực sự từ một kiến trúc dựa trên Internet. Cách tiếp cận này cho phép các nhà phát triển luôn cập nhật các sản phẩm của họ với entropy thực sự để tạo ra mật mã mạnh mẽ để chắc chắn rằng các giải pháp của họ có thể chống lại được các cuộc tấn công mạng hiện đại.
Hơn nữa, giải pháp EaaS cũng có thể hữu ích cho các doanh nghiệp trong việc đánh giá tính bảo mật của hệ thống doanh nghiệp của họ. Các doanh nghiệp có thể chứng thực sức mạnh của các khóa được tạo từ các tài nguyên dựa trên phần mềm của họ. Ngoài ra, các doanh nghiệp cũng có thể sử dụng EaaS để nhận entropy cho các điểm cuối nếu muốn hoàn toàn chắc chắn rằng cơ sở dữ liệu của họ được bảo vệ.
Đối với việc sử dụng entropy trong môi trường đám mây, EaaS có thể giúp tránh các trường hợp khi hai máy ảo được tạo từ một hình ảnh vàng chung sẽ nhân đôi quỹ entropy cục bộ của chúng. Để tránh điều này, sau khi nhân bản, hình ảnh chỉ cần yêu cầu dữ liệu ngẫu nhiên mới từ máy chủ EaaS khi khởi động.
SỬ DỤNG ENTROPY TRONG MỘT SỐ HỆ ĐIỀU HÀNH
Hiện nay, trong một số hệ điều hành đã tích hợp sẵn các bộ tạo số ngẫu nhiên có khả năng thu thập entropy từ các sự kiện của máy hoặc từ thao tác người dùng như /dev/random [3], [4] trên Linux hay CNG [5], [4], [6] trên Windows. Đối với một số thiết bị thì việc thu thập entropy này là khả thi và không tốn nhiều thời gian, tuy nhiên đối với các thiết bị di động sử dụng hệ điều hành Linux nhúng thì các sự kiện có thể khai thác cho nguồn entropy là khá ít hoặc thậm chí không có, dẫn đến việc tích lũy entropy rất lâu hoặc không thể. Do đó, EaaS có thể được coi là một giải pháp hoàn hảo nhằm cung cấp entropy chất lượng cao cho các sản phẩm mật mã thông dụng sử dụng các hệ điều hành mà trên đó việc thu thập entropy từ thiết bị là không khả thi. Việc kết hợp entropy từ các EaaS khác nhau và entropy của thiết bị như được mô tả trong Hình 2.
KẾT LUẬN
Cụm từ “gót chân Achilles” của việc đảm bảo độ an toàn mật mã có thể hiểu là sự thiết hụt độ mạnh của khóa được sử dụng để bảo vệ dữ liệu quan trọng. EaaS được xây dựng để phục vụ như một cơ sở của hệ sinh thái trong tương lai của các máy chủ mà từ đó có khả năng cung cấp entropy chất lượng cao có thể xác minh cho máy khách gửi yêu cầu để mở khóa toàn bộ tiềm năng mật mã.
Nói cách khác, EaaS là một dịch vụ dựa trên đám mây mới cho phép các nhà phát triển có được entropy chất lượng cao cần thiết để mã hóa mạnh dữ liệu người dùng. Dịch vụ này đáp ứng nhu cầu cho các ứng dụng dựa trên đám mây, các thiết bị nhúng và IoT. EaaS không tạo ra các khóa mật mã mà nó cung cấp các mầm duy nhất cho các bộ tạo số ngẫu nhiên một cách an toàn.
TÀI LIỆU THAM KHẢO 1. Shannon, Claude E. (1948). “A Mathematical Theory of Communication”. Bell System Technical Journal. 27 (4): 623–656. 2. Heninger, Nadia, et al. "Mining your Ps and Qs: Detection of widespread weak keys in network devices." Presented as part of the 21st USENIX Security Symposium (USENIX Security 12). 2012. 3. Müller, Stephan. "Documentation and Analysis of the Linux Random Number Generator, Version 3.6. Prepared for BSI by atsec information security GmbH." (2020). 4. Alzhrani, Khudran, and Amer Aljaedi. "Windows and linux random number generation process: A comparative analysis." International Journal of Computer Applications 113.8 (2015). 5. Niels Ferguson. “The Windows 10 random number generation infrastructure”, 2019. 6. Dorrendorf, Leo, Zvi Gutterman, and Benny Pinkas. "Cryptanalysis of the windows random number generator." Proceedings of the 14th ACM conference on Computer and communications security. 2007. |