1.一種服務器,包括:
安全硬件,其包括一個或多個處理器和一個或多個計算機可讀存儲介質,所述一個或多個計算機可讀存儲介質存儲指令,所述指令由所述一個或多個處理器可執(zhí)行以執(zhí)行動作,所述動作包括:
執(zhí)行軟件系統(tǒng)的已驗證引導,所述軟件系統(tǒng)被驗證為符合軟件規(guī)范,所述軟件系統(tǒng)包括軟件應用;
從所述軟件應用向在所述軟件系統(tǒng)外部的外部應用發(fā)送公鑰,所述公鑰基于對所述軟件應用已知但是對所有其他軟件系統(tǒng)未知的私鑰而被生成;
向所述外部應用發(fā)送由所述安全硬件簽名的第一證書,其中所述第一證書標識所述公鑰由所述軟件系統(tǒng)的二進制文件提供;以及
向所述外部應用發(fā)送由所述安全硬件的提供方簽名的第二證書,所述第二證書證明所述安全硬件的身份。
2.根據(jù)權利要求1所述的服務器,其中向所述外部應用發(fā)送由所述安全硬件的所述提供方簽名的所述第二證書包括:
使用第二密鑰對所述第二證書簽名以創(chuàng)建簽名的第二證書;以及
發(fā)送所述簽名的第二證書。
3.根據(jù)權利要求1所述的服務器,其中所述動作還包括:
發(fā)送使用所述公鑰簽名的第一消息,所述公鑰指示所述第一消息由所述軟件系統(tǒng)發(fā)送。
4.根據(jù)權利要求3所述的服務器,其中所述動作還包括:
經由證明來證實:
所述公鑰對應于所述私鑰;以及
所述私鑰僅對所述軟件系統(tǒng)已知。
5.根據(jù)權利要求1到4中的任一項所述的服務器,其中所述動作還包括:
發(fā)送使用所述公鑰簽名的第二消息,所述第二消息由所述軟件系統(tǒng)可讀取但是由其他軟件系統(tǒng)不可讀取。
6.根據(jù)權利要求1到4中的任一項所述的服務器,其中所述動作還包括:
在執(zhí)行所述軟件系統(tǒng)的所述已驗證引導之前驗證所述軟件系統(tǒng)符合軟件規(guī)范,所述驗證包括證明遠程等效性。
7.根據(jù)權利要求6所述的服務器,其中:
所述服務器包括安全硬件;以及
所述驗證還包括證明安全遠程等效性。
8.根據(jù)權利要求1到4中的任一項所述的服務器,其中所述動作還包括:
驗證所述軟件系統(tǒng)的第一部件在確定所述軟件系統(tǒng)符合規(guī)范之前不能破壞所述軟件系統(tǒng)的第二部件。
9.根據(jù)權利要求1到4中的任一項所述的服務器,其中:
所述公鑰基于對所述軟件系統(tǒng)已知但是對所有其他軟件系統(tǒng)未知的私鑰而被生成;以及
第二憑證由所述安全硬件使用第二密鑰而被簽名。
10.一種計算機實現(xiàn)的方法,包括:
從由安全硬件執(zhí)行的軟件系統(tǒng)接收公鑰;
接收由所述安全硬件簽名的第一憑證,其中所述第一憑證證明所述公鑰由所述軟件系統(tǒng)的二進制文件提供;
從所述安全硬件接收證明所述安全硬件的身份的第二憑證;以及
認證所述第一憑證和所述第二憑證以確定所述公鑰由所述安全硬件執(zhí)行的所述軟件系統(tǒng)提供。
11.根據(jù)權利要求10所述的計算機實現(xiàn)的方法,其中:
所述公鑰基于僅對所述軟件系統(tǒng)已知的私鑰。
12.根據(jù)權利要求10所述的計算機實現(xiàn)的方法,其中:
所述第二憑證由所述安全硬件的提供方簽名。
13.根據(jù)權利要求10到12中的任一項所述的計算機實現(xiàn)的方法,還包括:
確定與軟件系統(tǒng)相關聯(lián)的系統(tǒng)散列匹配在所述軟件系統(tǒng)開始在所述安全硬件上執(zhí)行之前被提供的在先散列。
14.根據(jù)權利要求10到12中的任一項所述的計算機實現(xiàn)的方法,還包括:
從所述軟件系統(tǒng)接收使用所述公鑰簽名的第一消息;以及
使用所述公鑰認證所述第一消息由所述軟件系統(tǒng)發(fā)送。
15.根據(jù)權利要求10到12中的任一項所述的計算機實現(xiàn)的方法,還包括:
向所述軟件系統(tǒng)發(fā)送使用所述公鑰簽名的第二消息,其中所述第二消息使用由所述軟件系統(tǒng)維護的私鑰可解密。