- Bảo mật không cần xung nhịp liên quan đến các thiết kế CPU bất đồng bộ, trong đó sự phụ thuộc vào xung nhịp toàn cục được giảm thiểu hoặc loại bỏ.
- Các bộ xử lý hiện đại kết hợp bộ nhớ đệm, bộ quản lý bộ nhớ (MMU), xử lý song song và đa luồng, điều này làm phức tạp cả hiệu năng và bảo mật.
- Các thiết kế không sử dụng xung nhịp có thể giảm thiểu các cuộc tấn công dựa trên thời gian, nhưng chúng đòi hỏi các hình thức giám sát và kiểm toán mới. phần cứng.
- Ảo hóa, vCPU và các bộ tăng tốc chuyên dụng mở rộng bề mặt tấn công, khiến việc tích hợp bảo mật từ cấp độ silicon trở nên thiết yếu.
Thuật ngữ "bảo mật không cần xung nhịp" nghe có vẻ như một khái niệm tương lai , nhưng thực tế nó gắn liền mật thiết với cách thiết kế và bảo vệ các bộ xử lý và hệ thống hiện tại. Để hiểu đầy đủ về nó, chúng ta cần tìm hiểu cách thức hoạt động bên trong của CPU, cách tổ chức thực thi lệnh và vai trò của tín hiệu xung nhịp nổi tiếng thiết lập nhịp điệu cho toàn bộ hệ thống.
Trong những thập kỷ gần đây, các bộ xử lý đã tham gia vào một cuộc chạy đua để tăng tốc độ xung nhịp, tích hợp nhiều bóng bán dẫn hơn và nhân lên khả năng xử lý song song . Đồng thời, các thiết kế mới xuất hiện nhằm mục đích thoát khỏi sự phụ thuộc vào xung nhịp toàn cục, hoặc trên toàn bộ chip hoặc ở các phần cụ thể. Lĩnh vực này—các thiết kế bất đồng bộ hoặc không có xung nhịp—mở ra những cơ hội rất thú vị về mặt tiêu thụ điện năng và tản nhiệt… và cả những thách thức bảo mật cụ thể thường được nhóm lại dưới khái niệm bảo mật không có xung nhịp.
CPU là trung tâm của hệ thống và mối quan hệ của nó với xung nhịp.
Khi nói về bảo mật liên quan đến xung nhịp, điều đầu tiên cần nhớ chính xác là CPU là gì. Về cơ bản, bộ xử lý trung tâm là bộ não của máy tính : thành phần diễn giải và thực thi các lệnh chương trình, điều phối bộ nhớ, đầu vào/đầu ra và các bộ xử lý phụ chuyên dụng như GPU.
Bên trong một CPU hiện đại, chúng ta tìm thấy một số khối riêng biệt. Một mặt, có bộ xử lý số học và logic (ALU) , chịu trách nhiệm thực hiện các phép toán và logic với số nguyên. Mặt khác, có các thanh ghi, là những bộ nhớ nhỏ, cực nhanh, nơi lưu trữ dữ liệu mà bộ xử lý đang xử lý. Và trên hết, có một bộ điều khiển quyết định, theo từng chu kỳ, phải làm gì, đọc gì từ bộ nhớ và ghi gì.
Hầu hết các bộ xử lý hiện đại đều có thiết kế đồng bộ. Điều này có nghĩa là tất cả các khối bên trong của chúng được phối hợp bằng tín hiệu xung nhịp định kỳ , một loại máy đếm nhịp điện tử thiết lập tốc độ thực thi. Mỗi cạnh xung nhịp tiến thêm một bước trong chu kỳ lệnh: lệnh được nạp, giải mã, thực thi, kết quả được lưu trữ và chu kỳ bắt đầu lại.
Trong bộ xử lý truyền thống, xung nhịp được tạo ra bởi một bộ dao động bên ngoài, phát ra hàng triệu hoặc hàng tỷ xung mỗi giây. Tần số của các xung này, được đo bằng hertz, megahertz hoặc gigahertz, cho biết CPU có bao nhiêu "nhịp" mỗi giây để di chuyển dữ liệu và thực hiện các thao tác. Tần số xung nhịp càng cao thì khả năng xử lý mỗi giây càng lớn , miễn là phần còn lại của kiến trúc hỗ trợ điều đó.
Do đó, hiệu năng không chỉ phụ thuộc vào tốc độ xung nhịp mà còn phụ thuộc vào số lượng lệnh mỗi chu kỳ (IPC) mà bộ xử lý có khả năng hoàn thành. Tích của tốc độ xung nhịp và IPC cho chúng ta biết số lượng lệnh (hàng triệu lệnh) mỗi giây mà nó có thể thực thi, mặc dù các con số lý thuyết thường lạc quan hơn nhiều so với thực tế khi chạy các chương trình thực tế.
Từ hệ thống dây dẫn cố định đến bộ vi xử lý tích hợp
Để hiểu rõ hơn về thiết kế không có xung nhịp, việc xem xét lại sự phát triển của CPU là rất hữu ích. Các máy tính điện tử đời đầu, như ENIAC, là những máy có chương trình cố định được lập trình sẵn : để thay đổi tác vụ, hệ thống phải được đấu nối lại dây vật lý. Ý tưởng mang tính cách mạng là máy tính có chương trình được lưu trữ, trong đó các lệnh nằm trong bộ nhớ; bộ xử lý chỉ đơn giản là đọc và thực thi chúng.
Kiến trúc lưu trữ chương trình này, gắn liền với John von Neumann, cuối cùng đã trở thành tiêu chuẩn. Trong đó, các lệnh và dữ liệu chia sẻ cùng một không gian bộ nhớ , không giống như kiến trúc Harvard, vốn tách biệt vật lý hai loại thông tin này. Ngày nay, hầu hết các CPU đa năng đều tuân theo kiến trúc von Neumann, mặc dù vẫn còn nhiều bộ xử lý Harvard thuần túy hoặc lai ghép được tìm thấy trong thế giới hệ thống nhúng.
Các bộ vi xử lý đời đầu được chế tạo bằng rơle hoặc bóng chân không. Chúng cồng kềnh, chậm và có độ tin cậy rất hạn chế . Bước tiến vượt bậc sang bóng bán dẫn bán dẫn vào những năm 50 và 60 đã làm tăng tốc độ đáng kể đồng thời giảm mức tiêu thụ điện năng và kích thước . Từ đó trở đi, trọng tâm chuyển từ các mạch rời rạc sang các mạch tích hợp (IC), với ngày càng nhiều bóng bán dẫn được tích hợp trên một chip duy nhất.
Với sự ra đời của mạch tích hợp, đầu tiên là mạch tích hợp cỡ nhỏ (SSI), sau đó là cỡ trung bình (MSI), cỡ lớn (LSI), và cuối cùng là cỡ rất lớn (VLSI), CPU đã được thu nhỏ cho đến khi có thể nằm gọn hoàn toàn trên một hoặc vài chip . Sự tích hợp này đạt đến đỉnh cao với vi xử lý, trong đó toàn bộ đơn vị xử lý được sản xuất trên một chip silicon duy nhất.
Bộ vi xử lý Intel 4004 , ra mắt năm 1971, là một trong những bộ vi xử lý thương mại đầu tiên. Các thiết kế mạnh mẽ hơn, chẳng hạn như Intel 8080, nhanh chóng ra đời sau đó và trở thành nền tảng của máy tính cá nhân. Từ thời điểm đó trở đi, thuật ngữ CPU hầu như luôn được sử dụng để chỉ các bộ vi xử lý này.
Các thành phần bên trong quan trọng của một CPU hiện đại
Các CPU hiện đại dành một phần lớn diện tích bề mặt silicon cho các thành phần phụ trợ được thiết kế để tối đa hóa hiệu quả của mỗi chu kỳ xung nhịp . Ví dụ, hầu hết mọi bộ xử lý đều tích hợp nhiều cấp bộ nhớ đệm: các bộ nhớ nhỏ nhưng rất nhanh nằm gần các lõi, lưu trữ các bản sao của dữ liệu được sử dụng thường xuyên để chúng không phải liên tục truy cập RAM.
Ngoài bộ nhớ đệm L1, L2 và thường cả L3, một CPU phức tạp còn bao gồm một đơn vị quản lý bộ nhớ (MMU) có chức năng dịch các địa chỉ ảo (những địa chỉ do hệ điều hành xử lý) thành các địa chỉ vật lý trong RAM, quản lý bộ nhớ ảo và cung cấp sự cách ly giữa các tiến trình.
Trong mặt phẳng tính toán, chúng ta có một số đơn vị thực thi chuyên dụng: ALU dành cho số nguyên, đơn vị xử lý dấu phẩy động (FPU) dành cho các phép toán thập phân, các đơn vị tạo địa chỉ (AGU) để tính toán nhanh các vị trí bộ nhớ và, trong nhiều kiến trúc, các đơn vị vectơ hoặc SIMD để xử lý song song nhiều điểm dữ liệu.
Ngoài ra còn có một bộ điều khiển, có thể được thiết kế bằng mạch cứng hoặc dựa trên mã vi lệnh; tức là, một chương trình nội bộ dịch mỗi lệnh cấp cao thành một chuỗi tín hiệu điều khiển nội bộ. Trong nhiều bộ xử lý, mã vi lệnh này có thể được cập nhật, cho phép sửa chữa các lỗi thiết kế hoặc điều chỉnh tiếp theo đối với hoạt động của bộ xử lý.
Cuối cùng, có một loạt các thanh ghi nội bộ: thanh ghi đa năng, bộ tích lũy, bộ đếm chương trình, thanh ghi trạng thái với các cờ chỉ báo những điều như kết quả của một phép toán là bằng không, âm, hoặc đã gây ra tràn số, v.v. Tất cả điều này được phối hợp theo chu trình nạp, giải mã và thực thi lệnh kinh điển.
Cách chạy chương trình từng bước một
Nguyên lý hoạt động cơ bản của bất kỳ CPU nào đều xoay quanh việc lấy các lệnh từ bộ nhớ và xử lý chúng lần lượt. Quá trình này diễn ra qua ba giai đoạn chính. Đầu tiên là giai đoạn nạp lệnh , trong đó lệnh có địa chỉ được xác định bởi con trỏ chương trình được đọc từ bộ nhớ.
Tiếp theo là giai đoạn giải mã. Lệnh vừa được thu thập sẽ đi qua bộ giải mã nhị phân, bộ này sẽ kiểm tra mã hoạt động (opcode) của nó và dịch mẫu bit đó thành các tín hiệu cụ thể để kích hoạt hoặc vô hiệu hóa các phần của bộ xử lý. Điều này xác định xem đó là phép cộng, lệnh nhảy, lệnh tải từ bộ nhớ, v.v., và các thanh ghi hoặc địa chỉ nào liên quan.
Cuối cùng, thao tác được thực thi. Bộ xử lý số học và logic (ALU) hoặc đơn vị tương ứng thực hiện phép tính hoặc di chuyển dữ liệu, và kết quả thường được lưu trữ trong thanh ghi hoặc bộ nhớ. Nếu luồng chương trình cần được thay đổi, ví dụ như bằng một lệnh nhảy có điều kiện, con trỏ chương trình sẽ được cập nhật với một địa chỉ mới. Tập hợp các lệnh, dữ liệu và lệnh nhảy này chính là thứ tạo nên các vòng lặp, hàm, câu lệnh điều kiện và toàn bộ logic của chương trình.
Trong các bộ xử lý đơn giản, mọi thứ diễn ra tuyến tính và tuần tự. Nhưng các CPU hiện đại cố gắng chồng chéo nhiều giai đoạn này bằng cách sử dụng các kỹ thuật song song . Mục tiêu là để mỗi chu kỳ xung nhịp thực hiện càng nhiều công việc càng tốt, ngăn phần cứng bị nh闲 rỗi.
Song song hóa, phân kênh và thực thi không theo thứ tự
Để tránh lãng phí thời gian xử lý, các nhà thiết kế đã giới thiệu kỹ thuật đường ống xử lý lệnh . Đường dẫn dữ liệu được chia thành nhiều giai đoạn, tương tự như dây chuyền lắp ráp. Trong khi một lệnh đang được giải mã, lệnh tiếp theo đã được nạp từ bộ nhớ, và một lệnh khác nữa có thể đang được thực thi trong ALU.
Vấn đề là đôi khi một lệnh cần kết quả của một lệnh khác chưa hoàn thành. Điều này tạo ra sự phụ thuộc dữ liệu và buộc phải xuất hiện các khoảng dừng hoặc thời gian chờ trong đường ống xử lý. Để giảm thiểu những sự chậm trễ này, các kỹ thuật như chuyển tiếp toán hạng, dự đoán nhánh, và sau này là thực thi không theo thứ tự đã được phát minh , trong đó bộ xử lý tự động sắp xếp lại các lệnh miễn là kết quả cuối cùng của chương trình được đảm bảo.
Bước tiếp theo là thiết kế siêu vô hướng: trang bị cho bộ xử lý nhiều đơn vị thực thi cùng loại để có thể thực hiện nhiều lệnh trên mỗi chu kỳ xung nhịp , miễn là không có xung đột giữa chúng. Một bộ điều phối nội bộ sẽ phân tích luồng lệnh, phát hiện những lệnh nào có thể được thực thi song song và phân phối chúng giữa các đơn vị khác nhau.
Tất cả những thủ thuật này đều nằm trong phạm vi song song hóa cấp lệnh (ILP) . Những hạn chế thực tế của các kỹ thuật này và khó khăn ngày càng tăng trong việc tăng tốc độ xung nhịp mà không làm tăng đáng kể mức tiêu thụ điện năng và nhiệt lượng đã khiến các nhà sản xuất, ở một thời điểm nhất định, bắt đầu tập trung vào song song hóa cấp tác vụ : nhiều luồng và nhiều lõi trên mỗi chip (và các cơ chế như core parking ).
Đây là cách mà các bộ xử lý đa lõi và kiến trúc đa luồng phần cứng ra đời , trong đó mỗi lõi có thể duy trì trạng thái của nhiều luồng thực thi và nhanh chóng chuyển đổi giữa các luồng để sử dụng tài nguyên nội bộ hiệu quả hơn trong khi một số luồng khác chờ dữ liệu từ bộ nhớ.
Vai trò của tần số xung nhịp và các giới hạn vật lý của nó
Quay trở lại với bộ tạo xung nhịp, điều quan trọng cần nhớ là tín hiệu đồng bộ hóa bộ xử lý về cơ bản là một tín hiệu điện lan truyền khắp chip . Khi tần số tăng và số lượng bóng bán dẫn tăng lên, việc giữ cho tín hiệu đó được đồng bộ hoàn hảo ở mọi nơi trở nên rất khó khăn. Điều này dẫn đến các vấn đề về phân phối xung nhịp, lệch pha và tính toàn vẹn của tín hiệu.
Mặt khác, mỗi lần chuyển đổi xung nhịp khiến nhiều transistor thay đổi trạng thái, ngay cả khi một vùng nhất định của bộ xử lý không thực hiện bất kỳ hoạt động hữu ích nào vào thời điểm đó. Điều này dẫn đến tiêu thụ năng lượng và tỏa nhiệt chỉ đơn giản bằng cách duy trì xung nhịp. Để giảm thiểu điều này, các kỹ thuật như tắt/bật xung nhịp (clock gating) đã được giới thiệu, giúp tắt tín hiệu xung nhịp một cách chọn lọc trong các khối không sử dụng, giảm tiêu thụ năng lượng.
Tuy nhiên, vượt quá một ngưỡng nhất định, việc tăng tần số trở nên không hợp lý: các vấn đề về tiêu thụ điện năng, nhiệt độ và phân phối xung nhịp tăng vọt. Nút thắt cổ chai này là một trong những lý do tại sao ý tưởng loại bỏ hoàn toàn hoặc một phần xung nhịp toàn cục đã được nghiên cứu: đây là nơi các thiết kế bất đồng bộ hoặc "không xung nhịp" phát huy tác dụng.
Trong thiết kế bất đồng bộ, thay vì có một xung nhịp duy nhất thiết lập thời gian cho toàn bộ chip, chính các tín hiệu dữ liệu và điều khiển sẽ đồng bộ hóa các hoạt động . Các khối giao tiếp với nhau bằng cách sử dụng các giao thức yêu cầu và xác nhận (bắt tay): khi dữ liệu sẵn sàng, bên sản xuất sẽ thông báo cho bên tiêu thụ, và bên tiêu thụ sẽ phản hồi mà không cần chờ cạnh xung nhịp cố định.
Các bộ xử lý hoàn toàn bất đồng bộ tương thích với các tập lệnh đã biết đã được chế tạo , chẳng hạn như dòng AMULET dựa trên ARM hoặc các dự án dựa trên MIPS. Cũng tồn tại các thiết kế lai, trong đó chỉ một số đơn vị nhất định (ví dụ: một ALU cụ thể) hoạt động mà không cần xung nhịp toàn cục, trong khi phần còn lại của bộ xử lý vẫn hoạt động đồng bộ.
Chúng ta hiểu "bảo mật không cần đồng hồ" là gì?
Khi nói về bảo mật không cần đồng hồ, chúng ta đang kết hợp hai ý tưởng: một mặt, thiết kế bất đồng bộ như một kỹ thuật để giảm mức tiêu thụ năng lượng và nhiệt lượng ; mặt khác, hàm ý loại bỏ đồng hồ khi phân tích, giám sát và bảo vệ hành vi của hệ thống trước các cuộc tấn công hoặc lỗi.
Trong các hệ thống đồng bộ, nhiều công cụ bảo mật và giám sát dựa vào sự tồn tại của một nhịp điệu thời gian ổn định và có thể dự đoán được . Việc đếm chu kỳ, đo thời gian thực hiện một thao tác nhất định hoặc cố gắng phát hiện hành vi bất thường bằng cách đo lường sự thay đổi về thời gian vốn dĩ phải không đổi là tương đối dễ dàng.
Trong một hệ thống bất đồng bộ hoặc bán tự động không có đồng hồ, các tham chiếu thời gian cố định này trở nên loãng. Thời gian thực thi của một thao tác có thể phụ thuộc vào tính khả dụng thực tế của dữ liệu, tắc nghẽn trên một số tuyến đường nội bộ hoặc các biến đổi vật lý nhỏ. Từ góc nhìn của kẻ tấn công, điều này có thể khiến việc thực hiện các cuộc tấn công kênh phụ dựa trên thời gian trở nên khó khăn hơn vì đồng hồ toàn cục đóng vai trò là điểm tham chiếu chung biến mất.
Tuy nhiên, tính chất năng động này cũng làm phức tạp thêm vấn đề đối với bất kỳ ai muốn quan sát và kiểm toán hệ thống từ bên trong. Nhiều đầu dò và bộ đếm phần cứng được thiết kế để hoạt động dựa trên chu kỳ xung nhịp; nếu không có xung nhịp toàn cục rõ ràng, việc đo lường hiệu suất và phát hiện hoạt động đáng ngờ đòi hỏi các chỉ số và cơ chế khác.
Hơn nữa, thiết kế bất đồng bộ, nhờ không bị ràng buộc bởi xung nhịp, cho phép các đường dẫn dữ liệu được kích hoạt vào những thời điểm hơi khác nhau trong mỗi lần thực thi, có khả năng ngẫu nhiên hóa việc rò rỉ thời gian nhưng cũng có khả năng mở ra những cánh cửa khác, ví dụ như dưới dạng các mô hình tiêu thụ điện năng khác biệt và phức tạp hơn có thể bị khai thác bởi các cuộc tấn công phân tích điện năng.
Biểu diễn dữ liệu, kích thước từ và bảo mật
Một yếu tố quan trọng khác liên quan đến kiến trúc CPU là cách nó biểu diễn và xử lý dữ liệu. Hầu hết các bộ xử lý hiện đại đều sử dụng biểu diễn nhị phân , với các giá trị điện áp tương ứng với 0 và 1. Kích thước từ (8, 16, 32, 64 bit…) xác định phạm vi số nguyên có thể được xử lý trực tiếp và lượng bộ nhớ có thể truy cập.
Từ góc độ bảo mật, kích thước từ ảnh hưởng đến không gian địa chỉ và xác suất xảy ra xung đột, tràn số và lỗi con trỏ . Một hệ thống 32 bit với 2^32 địa chỉ khả dĩ có những hạn chế rất rõ ràng so với hệ thống 64 bit. Hơn nữa, nhiều cơ chế bảo vệ hiện đại, chẳng hạn như một số phần mở rộng bộ nhớ được bảo vệ, dựa trên việc có một không gian địa chỉ lớn.
Việc sử dụng MMU và cơ chế dịch địa chỉ cũng tạo ra một lớp trung gian giữa chương trình và bộ nhớ vật lý, điều này rất quan trọng để cách ly các tiến trình , triển khai bộ nhớ ảo và bảo vệ nhân hệ điều hành. Trong các ngữ cảnh bất đồng bộ, sự phối hợp giữa các cơ chế dịch địa chỉ này và các tín hiệu tay giữa các khối không có xung nhịp phải được thiết kế rất tốt để tránh tạo ra các lỗ hổng bảo mật hoặc tình trạng tranh chấp tài nguyên.
Ngược lại, các phần mở rộng vectơ (SIMD) và các đơn vị xử lý dấu phẩy động cho phép xử lý song song khối lượng lớn dữ liệu. Đây là con dao hai lưỡi: một mặt, nó tăng tốc các thuật toán mã hóa và các tác vụ phân tích ; mặt khác, nếu bị khai thác một cách độc hại, nó cung cấp sức mạnh tính toán khổng lồ để phá vỡ các thuật toán mã hóa yếu hoặc thực hiện các cuộc tấn công vét cạn.
Trong kịch bản không có đồng hồ hoặc bán bất đồng bộ, cách thức lập trình và bảo vệ các đơn vị tính toán song song này phải tính đến việc các mô hình thực thi và tiêu thụ không còn tuân theo nhịp điệu cố định do đồng hồ thiết lập , mà sẽ phản ứng với động lực thực tế của dữ liệu, điều này cũng ảnh hưởng đến thiết kế các biện pháp đối phó với các kênh phụ.
Song song hóa quy mô lớn, đa luồng và vectơ: tác động đến bảo mật không cần xung nhịp
Các bộ vi xử lý hiện đại hướng đến việc tăng hiệu năng không chỉ bằng cách tăng tốc độ xung nhịp mà còn bằng cách thực hiện nhiều tác vụ song song. Điều này bao gồm nhiều lõi, đa luồng phần cứng và các đơn vị xử lý vector có khả năng xử lý nhiều mục dữ liệu trên mỗi lệnh . Thêm vào đó là sự phát triển của các bộ tăng tốc chuyên dụng như GPU, DSP và TPU.
Từ góc độ bảo mật, mỗi khối thực thi mới và mỗi cấp độ song song mới đều là một bề mặt cần được bảo vệ thêm. Cần phải phối hợp tính nhất quán của bộ nhớ cache, quản lý bộ nhớ dùng chung , các cơ chế loại trừ lẫn nhau và ngăn ngừa các điều kiện tranh chấp và rò rỉ thông tin giữa các luồng hoặc tiến trình đồng thời.
Trong môi trường không có xung nhịp hoặc môi trường lai, sự phối hợp này dựa nhiều hơn vào các giao thức truyền thông giữa các khối hơn là vào chu kỳ xung nhịp toàn cục. Ví dụ, một nhân hệ điều hành có thể sử dụng các tín hiệu yêu cầu và xác nhận để truy cập bộ nhớ hoặc tài nguyên dùng chung, và độ trễ thực tế sẽ phụ thuộc vào lưu lượng truy cập thực tế tại thời điểm đó, chứ không phải vào một số chu kỳ cố định.
Nhìn từ bên ngoài, hành vi này khiến cho một số cuộc tấn công dựa vào việc đo thời gian chính xác dựa trên số chu kỳ xung nhịp trở nên khó khăn. Tuy nhiên, các nhà thiết kế bảo mật phải vượt ra ngoài việc đếm chu kỳ và sử dụng bộ đếm sự kiện, đo lưu lượng truy cập, mức tiêu thụ điện năng và các tín hiệu khác để phát hiện hành vi đáng ngờ.
Đó là lý do tại sao nhiều nhà sản xuất tích hợp các bộ đếm hiệu năng phần cứng, cho phép giám sát thời gian thực các yếu tố như lỗi bộ nhớ cache, dự đoán nhánh thất bại, truy cập bộ nhớ cụ thể, v.v. Khi được sử dụng đúng cách, các bộ đếm này là một công cụ mạnh mẽ để tối ưu hóa hiệu năng và tìm ra các mẫu bất thường đặc trưng của phần mềm độc hại hoặc các lỗ hổng bảo mật nâng cao, ngay cả trong các kiến trúc bán bất đồng bộ.
Ảo hóa, vCPU và sự cô lập trong môi trường hiện đại
Một yếu tố quan trọng khác trong bối cảnh hiện nay là ảo hóa. Trong điện toán đám mây, chúng ta thường xuyên làm việc với các CPU ảo (vCPU) , là các khối sức mạnh xử lý logic được phân bổ cho các máy ảo hoặc container trên phần cứng vật lý dùng chung.
Về cơ bản, mỗi vCPU là một tập hợp các luồng hoặc thời gian thực thi mà hypervisor lên lịch trên các lõi CPU vật lý. Để điều này hoạt động đúng cách, CPU vật lý cung cấp các chế độ đặc quyền cho phép hypervisor tạo và cô lập các máy ảo , chặn một số lệnh nhạy cảm và quản lý bộ nhớ của mỗi máy chủ mà không gây nhiễu hoặc theo dõi lẫn nhau.
Trong ngữ cảnh này, bảo mật không dựa trên đồng hồ có nghĩa là việc phân bổ thời gian CPU giữa các máy ảo không chỉ phụ thuộc vào một đồng hồ cố định, mà còn dựa trên các cơ chế lập lịch năng động hơn, được hỗ trợ bởi phần cứng . Trình quản lý ảo hóa vẫn nhận biết được các chu kỳ xung nhịp, nhưng cách các chu kỳ đó được chuyển đổi thành công việc hiệu quả trên mỗi lõi có thể được thay đổi bởi các khối bất đồng bộ nội bộ.
Từ góc độ bảo mật, điều này đòi hỏi thiết kế các công cụ giám sát không chỉ đơn thuần đếm số lần cập nhật mà còn có thể đọc các bộ đếm hiệu năng, số liệu thống kê sử dụng và các sự kiện cấp thấp để phát hiện việc lạm dụng tài nguyên, việc máy ảo thoát ra ngoài hoặc các mẫu bất thường cho thấy sự xâm nhập.
Hơn nữa, trong các môi trường tính toán chuyên sâu, nơi các đơn vị xử lý vector, GPU và các bộ tăng tốc khác được sử dụng tối đa tiềm năng, các nhà quản lý an ninh phải cân nhắc rằng các khối này, dù đồng bộ hay không đồng bộ, đều có thể trở thành công cụ để tăng tốc các cuộc tấn công mã hóa, khai thác tiền điện tử sau lưng người dùng hoặc phân tích khối lượng lớn dữ liệu bị đánh cắp.
Hiệu năng, mức tiêu thụ điện năng và khả năng ép xung so với thiết kế không có xung nhịp.
Cuối cùng, chúng ta cần xem xét mối quan hệ giữa hiệu năng và mức tiêu thụ điện năng. Tăng tốc độ xung nhịp thông qua ép xung (ví dụ, bằng cách thực hiện kiểm tra độ ổn định với OCCT ) cho phép CPU thực hiện nhiều phép toán hơn mỗi giây , nhưng đổi lại, nó làm tăng đáng kể mức tiêu thụ điện năng và nhiệt độ. Trên thực tế, nhiều bộ xử lý hiện nay đã tự động điều chỉnh tần số và điện áp theo khối lượng công việc và nhiệt độ bên trong.
Các thiết kế bất đồng bộ cung cấp một giải pháp thay thế: thay vì sử dụng xung nhịp rất nhanh và cố gắng giữ cho mọi thứ đồng pha, chúng cho phép mỗi khối hoạt động theo tốc độ được xác định bởi dữ liệu . Trong thời gian tải thấp, các phần không hoạt động hầu như không thay đổi trạng thái, giảm mức tiêu thụ điện năng mà không cần đến các cơ chế quản lý năng lượng phức tạp dựa trên xung nhịp.
Từ góc độ an toàn, việc tiêu thụ điện năng thấp hơn và tỏa nhiệt ít hơn không chỉ liên quan đến môi trường hay hóa đơn tiền điện. Chúng còn có nghĩa là giảm áp lực lên các linh kiện , giảm xác suất hỏng hóc do hiện tượng di chuyển điện tử hoặc rò rỉ dòng điện, và tiềm ẩn nguy cơ bị tấn công nhằm khai thác hành vi của hệ thống trong điều kiện nhiệt độ hoặc điện áp khắc nghiệt.
Tuy nhiên, việc thiết kế một hệ thống hoàn toàn bất đồng bộ và an toàn không phải là điều đơn giản. Nó đòi hỏi phải xác minh rất nghiêm ngặt các giao thức truyền thông giữa các khối, các điều kiện tranh chấp và các trạng thái trung gian để ngăn chặn hành vi không xác định có thể bị kẻ tấn công khai thác . Sự phức tạp của thiết kế, sự khan hiếm các công cụ hoàn thiện và nhu cầu tương thích ngược với phần mềm hiện có đã dẫn đến việc, hiện tại, hầu hết các bộ xử lý thương mại vẫn chủ yếu hoạt động đồng bộ với các vùng bất đồng bộ nhỏ.
Sự kết hợp của tất cả các yếu tố này—kiến trúc bên trong, quản lý xung nhịp, song song hóa, ảo hóa và năng lượng—khiến việc bảo mật trong môi trường không có xung nhịp toàn cục trở nên vô cùng phức tạp. Thiết kế bất đồng bộ giúp giảm thiểu một số cuộc tấn công dựa trên thời gian và tạo điều kiện thuận lợi cho các chiến lược tiết kiệm năng lượng tinh vi, nhưng chúng cũng đặt ra những thách thức mới đối với việc giám sát, kiểm toán và xác minh hành vi phần cứng. Do đó, chìa khóa nằm ở việc tích hợp các cơ chế quan sát và cách ly mạnh mẽ từ cấp độ silicon xuống đến phần mềm cấp cao nhất.
Người viết đam mê về thế giới byte và công nghệ nói chung. Tôi thích chia sẻ kiến thức của mình thông qua viết lách và đó là những gì tôi sẽ làm trong blog này, cho bạn thấy tất cả những điều thú vị nhất về tiện ích, phần mềm, phần cứng, xu hướng công nghệ, v.v. Mục tiêu của tôi là giúp bạn điều hướng thế giới kỹ thuật số một cách đơn giản và thú vị.

