СПОСОБ ЗАЩИЩЕННОЙ ЗАГРУЗКИ И УСТРОЙСТВО ЗАЩИЩЕННОЙ ЗАГРУЗКИ

1. Способ исполнения программного компонента, проверяемого по измерениям целостности, содержащий этапы, на которых:
а) предоставляют первое преобразование из логических идентификаторов во флаги задействованного состояния программного компонента;
b) предоставляют второе преобразование из упомянутых логических идентификаторов и информации о предыдущих состояниях программного компонента в сертификаты фактического измерения целостности, содержащие данные проверки;
c) ищут в первом преобразовании заданный логический идентификатор, идентифицирующий упомянутый программный компонент, чтобы получить флаг состояния, указывающий, задействован ли упомянутый программный компонент;
d) если упомянутый флаг состояния указывает, что упомянутый программный компонент не задействован, то
i) ищут во втором преобразовании заданный логический идентификатор, идентифицирующий сертификат неудачи проверки упомянутого программного компонента и упомянутые предыдущие состояния программного компонента, чтобы получить сертификат отключенного измерения целостности; и
ii) обновляют текущее измерение целостности для включения в него указания отключенного состояния программного компонента, сохраненного в упомянутом сертификате отключенного измерения целостности, и
e) если упомянутый флаг состояния указывает, что упомянутый программный компонент задействован, то
i) ищут во втором преобразовании заданный логический идентификатор, идентифицирующий упомянутый сертификат проверки программного компонента и упомянутые предыдущие состояния программного компонента, чтобы получить сертификат измерения целостности;
ii) вычисляют контрольное число упомянутого программного компонента для исполнения;
iii) проверяют, что упомянутое измерение целостности совпадает со значением измерения целостности в упомянутом сертификате измерения целостности и что упомянутое вычисленное контрольное число совпадает с контрольным числом в упомянутом сертификате измерения целостности;
iv) обновляют текущее измерение целостности для включения в него указания упомянутого контрольного числа в упомянутом сертификате измерения целостности, если упомянутая проверка успешна; и
v) исполняют упомянутый программный компонент, если упомянутая проверка успешна.
2. Способ исполнения программного компонента, проверяемого по измерениям целостности, содержащий этапы, на которых:
а) предоставляют первое преобразование из логических идентификаторов во флаги задействованного состояния программного компонента;
b) предоставляют второе преобразование из упомянутых логических идентификаторов и информации о предыдущих состояниях программного компонента в сертификаты фактического измерения целостности, содержащие данные проверки;
c) ищут в первом преобразовании заданный логический идентификатор, идентифицирующий упомянутый программный компонент, чтобы получить флаг состояния, указывающий, задействован ли упомянутый программный компонент;
d) ищут во втором преобразовании заданный логический идентификатор, идентифицирующий упомянутый сертификат проверки программного компонента и упомянутые предыдущие состояния программного компонента, чтобы получить сертификат измерения целостности;
e) вычисляют контрольное число упомянутого программного компонента для исполнения;
f) проверяют, что упомянутое измерение целостности совпадает со значением измерения целостности в упомянутом сертификате измерения целостности и что упомянутое вычисленное контрольное число совпадает с контрольным числом в упомянутом сертификате измерения целостности;
g) если упомянутая проверка неудачна, то
i) ищут во втором преобразовании заданный логический идентификатор, идентифицирующий сертификат неудачи проверки упомянутого программного компонента и упомянутые предыдущие состояния программного компонента, чтобы получить сертификат неудачного измерения целостности; и
ii) обновляют текущее измерение целостности для включения в него указания неудачного измерения целостности, сохраненного в упомянутом сертификате неудачного измерения целостности, и
h) если упомянутая проверка успешна, то
i) обновляют текущее измерение целостности для включения в него указания упомянутого контрольного числа в упомянутом сертификате измерения целостности, если упомянутый флаг состояния указывает, что упомянутый программный компонент задействован; и
ii) исполняют упомянутый программный компонент, если упомянутый флаг состояния указывает, что упомянутый программный компонент задействован.
3. Способ по п.1 или 2, дополнительно содержащий этапы, на которых:
если упомянутый программный компонент не задействован или упомянутая проверка неудачна, то
i) предоставляют третье преобразование из логических идентификаторов и информации о предыдущих состояниях программного компонента в идентификаторы компонента;
ii) ищут в третьем преобразовании заданный логический идентификатор, идентифицирующий упомянутый программный компонент и упомянутые предыдущие состояния программного компонента, чтобы получить логический идентификатор, идентифицирующий альтернативный программный компонент для исполнения;
iii) ищут во втором преобразовании упомянутый логический идентификатор, идентифицирующий альтернативный программный компонент для исполнения и упомянутые предыдущие состояния программного компонента, чтобы получить сертификат измерения целостности альтернативного программного компонента;
iv) вычисляют контрольное число упомянутого альтернативного программного компонента для исполнения;
v) проверяют, что упомянутое измерение целостности совпадает со значением измерения целостности в упомянутом сертификате измерения целостности альтернативного программного компонента и что упомянутое вычисленное контрольное число упомянутого альтернативного программного компонента совпадает с контрольным числом в упомянутом сертификате измерения целостности альтернативного программного компонента;
vi) обновляют текущее измерение целостности для включения в него указания упомянутого контрольного числа упомянутого альтернативного программного компонента в упомянутом сертификате измерения целостности альтернативного программного компонента, если упомянутая проверка упомянутого альтернативного программного компонента успешна; и
vii) исполняют упомянутый альтернативный программный компонент, если упомянутая проверка упомянутого альтернативного программного компонента успешна.
4. Машиночитаемый носитель данных, хранящий компьютерный программный код, который предписывает компьютеру выполнять способ по п.1 или 3 для исполнения программного компонента, проверяемого по измерениям целостности.
5. Устройство для исполнения программного компонента, проверяемого по измерениям целостности, содержащее:
а) блок предоставления, сконфигурированный для предоставления первого преобразования из логических идентификаторов во флаги задействованного состояния программного компонента и второго преобразования из упомянутых логических идентификаторов и информации о предыдущих состояниях программного компонента в сертификаты фактического измерения целостности, содержащие данные проверки;
b) блок поиска, сконфигурированный для поиска в первом преобразовании заданного логического идентификатора, идентифицирующего упомянутый программный компонент, чтобы получить флаг состояния, указывающий, задействован ли упомянутый программный компонент, и для поиска во втором преобразовании заданного логического идентификатора, идентифицирующего сертификат проверки упомянутого программного компонента и упомянутые предыдущие состояния программного компонента, чтобы получить сертификат измерения целостности, если упомянутый флаг состояния указывает, что упомянутый программный компонент задействован;
c) вычислительный блок, сконфигурированный для вычисления контрольного числа упомянутого программного компонента для исполнения, если упомянутый флаг состояния указывает, что упомянутый программный компонент задействован;
d) блок проверки, сконфигурированный для проверки, что упомянутое измерение целостности совпадает со значением измерения целостности в упомянутом сертификате измерения целостности и что упомянутое вычисленное контрольное число совпадает с контрольным числом в упомянутом сертификате измерения целостности, если упомянутый флаг состояния указывает, что упомянутый программный компонент задействован;
e) блок обновления, сконфигурированный для обновления текущего измерения целостности для включения в него указания упомянутого контрольного числа в упомянутом сертификате измерения целостности, если упомянутый флаг состояния указывает, что упомянутый программный компонент задействован, и упомянутая проверка успешна; и
f) блок исполнения, сконфигурированный для исполнения упомянутого программного компонента, если упомянутый флаг состояния указывает, что упомянутый программный компонент задействован, и упомянутая проверка успешна,
где, если упомянутый флаг состояния указывает, что упомянутый программный компонент не задействован, то
i) блок поиска сконфигурирован для поиска во втором преобразовании заданного логического идентификатора, идентифицирующего сертификат неудачи проверки упомянутого программного компонента и упомянутые предыдущие состояния программного компонента, чтобы получить сертификат отключенного измерения целостности; и
ii) блок обновления сконфигурирован для обновления текущего измерения целостности для включения в него указания отключенного состояния программного компонента, сохраненного в упомянутом сертификате отключенного измерения целостности.
6. Устройство для исполнения программного компонента, проверяемого по измерениям целостности, содержащее:
а) блок предоставления, сконфигурированный для предоставления первого преобразования из логических идентификаторов во флаги задействованного состояния программного компонента и второго преобразования из упомянутых логических идентификаторов и информации о предыдущих состояниях программного компонента в сертификаты фактического измерения целостности, содержащие данные проверки;
b) блок поиска, сконфигурированный для поиска в первом преобразовании заданного логического идентификатора, идентифицирующего упомянутый программный компонент, чтобы получить флаг состояния, указывающий, задействован ли упомянутый программный компонент, и для поиска во втором преобразовании заданного логического идентификатора, идентифицирующего сертификат проверки упомянутого программного компонента и упомянутые предыдущие состояния программного компонента, чтобы получить сертификат измерения целостности;
c) вычислительный блок, сконфигурированный для вычисления контрольного числа упомянутого программного компонента для исполнения;
d) блок проверки, сконфигурированный для проверки, что упомянутое измерение целостности совпадает со значением измерения целостности в упомянутом сертификате измерения целостности и что упомянутое вычисленное контрольное число совпадает с контрольным числом в упомянутом сертификате измерения целостности;
e) блок обновления, сконфигурированный для обновления текущего измерения целостности для включения в него указания упомянутого контрольного числа в упомянутом сертификате измерения целостности, если упомянутая проверка успешна и упомянутый флаг состояния указывает, что упомянутый программный компонент задействован; и
f) блок исполнения, сконфигурированный для исполнения упомянутого программного компонента, если упомянутая проверка успешна и упомянутый флаг состояния указывает, что упомянутый программный компонент задействован,
при этом, если упомянутая проверка неудачна, то
i) блок поиска сконфигурирован для поиска во втором преобразовании заданного логического идентификатора, идентифицирующего сертификат неудачи проверки упомянутого программного компонента и упомянутые предыдущие состояния программного компонента, чтобы получить сертификат неудачного измерения целостности; и
ii) блок обновления сконфигурирован для обновления текущего измерения целостности для включения в него указания неудачного измерения целостности, сохраненного в упомянутом сертификате неудачного измерения целостности.
7. Устройство по п.5 или 6,
выполненное в виде интегральной схемы.