
Облачные платформы для квантовых вычислений, такие как IBM Quantum, открыли новую эру квантовых исследований и экспериментов, предлагая пользователям удаленный доступ к квантовому оборудованию. Однако эта доступность вводит уникальные проблемы безопасности, особенно в форме атак по сайд-каналам. Этот долгий пост детально описывает уязвимости по временному сайд-каналу на квантовом сервисе IBM, как это продемонстрировано атакой Quantum Leak, и расширяет основные концепции анализа по сайд-каналам, усовершенствования машинного обучения и практические стратегии по снижению уязвимостей.
Мы рассмотрим основы и историю анализа по сайд-каналам, практические уязвимости в реальном мире, усовершенствования с использованием машинного обучения и предоставим примеры кода, иллюстрирующие как обнаружение, так и судебную экспертизу. Это руководство будет полезно для исследователей, инженеров по безопасности, студентов и заинтересованных сторон в бизнесе, которые стремятся понять или защититься от современных угроз по сайд-каналам в квантовых и классических условиях.
Анализ по сайд-каналам (SCA) — это техника оценки безопасности, используемая для обнаружения скрытой информации или секретов (например, криптографических ключей) путем измерения "утечек" из физических характеристик или операционного поведения устройства. Вместо атаки на основные математические слабости алгоритма, SCA использует косвенную информацию, такую как время, потребление энергии, электромагнитные излучения или даже акустические сигналы. Краткий обзор утечек ключевых векторов представлен на Keysight Side-Channel Analysis Overview:
Если криптографический алгоритм занимает немного больше времени на обработку определенных секретных ключей или данных, атакующий с высокоразрешенной временной информацией может реконструировать чувствительные ключи без прямого доступа к ним.
SCA взломали внедрения DES, AES, RSA, ECC и позволили восстановить секреты из изолированных аппаратных кошельков, смарт-карт и многого другого.
Облачные квантовые сервисы, такие как IBM Quantum и Google Quantum AI, демократизировали доступ к квантовому оборудованию. В мультиарендной облачной среде пользователи удаленно отправляют квантовые схемы. Поставщик облака управляет планированием, постановкой в очередь и выполнением этих схем на общих квантовых процессорах.
Атака Quantum Leak, подробно описанная в этой статье ACM, демонстрирует, как временные сайд-каналы могут быть использованы в квантовой платформе IBM облачным злоумышленником для извлечения информации о совместно расположенных рабочих нагрузках.
1. Измерение времени постановки в очередь и выполнения:
Злоумышленники отправляют изготовленные задачи и записывают точное время принятия, постановки в очередь и завершения задач.
2. Корреляция колебаний:
Незначительные колебания во времени выполнения задачи могут коррелировать с активностью других арендаторов (например, длиной очереди задач, сложностью схемы или даже структурой схемы).
3. Вывод чувствительной информации:
С достаточным количеством временных образцов и статическим анализом злоумышленники могут делать выводы о:
┌──────────────┐ ┌─────────────┐
│ Атакующий │─────►│ Очередь в Клауде │
└──────────────┘ └─────────────┘
▲ │
│ Совместно расположенные ▼
┌──────────────┐ ┌─────────────┐
│ Пользователь-жертва │─────►│Квантовый Чип │
└──────────────┘ └─────────────┘
Атакующий наблюдает временные колебания, основанные на активности жертвы.
Временные сайд-каналы подрывают изоляцию ресурсов в облачном квантовом вычислении, позволяя злонамеренному арендатору тайно узнавать о (или даже общаться с) со-жителями на одном квантовом устройстве.
Машинное обучение (MO) усиливает современный анализ по сайд-каналам, автоматически извлекая значимые признаки из шумных данных измерений. В сложных, высокоразмерных пространствах (таких как дифференциальный анализ мощности или шум по времени) модели MO, такие как сверточные нейронные сети (CNN), деревья решений или неконтролируемая кластеризация, превосходят в распознавании тонких паттернов, которые указывают на операции, зависящие от секретов.
Архив Криптологии IA (2025/1754) приводит последние машинно-обученные атаки по сайд-каналам против пост-квантовых криптографических схем таких как шифрование на основе решеток и подписи на основе хешей.
Ниже приведена упрощенная реализация с использованием scikit-learn, классифицирующая два ключа на основе синтетических временных данных:
import numpy as np
from sklearn.ensemble import RandomForestClassifier
from sklearn.model_selection import train_test_split
# Поддельные временные следы для двух значений ключа
n_samples = 300
key0_traces = np.random.normal(loc=0.030, scale=0.002, size=(n_samples, 1)) # Ключ=0
key1_traces = np.random.normal(loc=0.035, scale=0.002, size=(n_samples, 1)) # Ключ=1
X = np.vstack([key0_traces, key1_traces])
y = np.array([0]*n_samples + [1]*n_samples)
# Разделение на тренировочную/тестовую выборки
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
clf = RandomForestClassifier(n_estimators=100)
clf.fit(X_train, y_train)
print("Точность на тестовой выборке:", clf.score(X_test, y_test))
Несмотря на минимальное разделение, классификатор сможет с высокой надежностью восстановить секретный бит.
# Случайное введение задержек в симулированном планировщике задач
import time, random
def execute_job(job):
r_delay = random.uniform(0.01, 0.05)
time.sleep(r_delay) # Добавьте переменный шум к каждой задаче
# ... выполните квантовую схему ...
Давайте продемонстрируем обнаружение и базовый эксперимент, используя атаки по времени на облачные (или удаленные) сервисы.
Вы можете использовать команду time или Python для измерения точных времен отправки задач или вызовов API.
for i in {1..100}; do
start=$(date +%s%N)
curl -s https://some.quantum.api/submit_job > /dev/null
end=$(date +%s%N)
duration=$(( (end - start)/1000000 ))
echo "$duration" >> timings.log
done
Это записывает времена откликов в миллисекундах для дальнейшего анализа.
import requests, time
timings = []
for i in range(100):
t0 = time.perf_counter()
requests.get('https://some.quantum.api/submit_job')
t1 = time.perf_counter()
timings.append(t1 - t0)
with open('timings.csv', 'w') as f:
for t in timings:
f.write(f"{t}\n")
После сбора временных данных используйте Python или Bash/awk для анализа результатов.
awk '{ total += $1; count++ } END { print "Ср.",total/count }' timings.log
awk '{ sum+=$1; sumsq+=$1*$1 } END { print "Ст.дев:", sqrt(sumsq/NR - (sum/NR)**2) }' timings.log
import matplotlib.pyplot as plt
import numpy as np
data = np.loadtxt('timings.csv')
plt.hist(data, bins=40)
plt.title("Гистограмма времени задач")
plt.xlabel("Время (секунды)")
plt.ylabel("Частота")
plt.show()
# Простейшее обнаружение аномалий (3-сигма правило)
outliers = data[abs(data - data.mean()) > 3 * data.std()]
print("Обнаружено аномалий:", len(outliers))
Атаки по временным сайд-каналам, давным-давно практиковавшиеся в встроенных и криптографических областях, теперь угрожают обещаниям безопасности облачного квантового вычисления — особенно при мультиарендинге. Как показала атака Quantum Leak на IBM Quantum, даже самые продвинутые бэкэнды могут случайно утекать чувствительную информацию о рабочих нагрузках через тонкие временные вариации.
Алгоритмы машинного обучения еще больше укрепляют эти угрозы, позволяя злоумышленникам точно извлекать секреты из шумных данных по сайд-каналам. Поэтому постоянная бдительность, обнаружение и надежная инженерия смягчения уязвимостей необходимы для защиты как классической, так и квантовой облачной инфраструктуры в будущем.
Заинтересованные стороны по безопасности должны рассматривать устойчивость к атакам по сайд-каналу как первоклассную проблему при проектировании облачных квантовых сервисов.
Если вы нашли этот контент ценным, представьте, чего вы могли бы достичь с нашей комплексной 47-недельной элитной обучающей программой. Присоединяйтесь к более чем 1200 студентам, которые изменили свою карьеру с помощью техник Подразделения 8200.