新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于嵌入式ARM平臺的可信計算軟件棧的設計與實現

        基于嵌入式ARM平臺的可信計算軟件棧的設計與實現

        作者: 時間:2013-10-15 來源:網絡 收藏

        創建密鑰之前/tmp目錄下的文件只有dir,創建成功后會打印信息,并生成密鑰文件UserKeyBlob.cer,如圖5所示:

        圖5 密鑰創建

        文件加密

        加密操作主要使用函數Tspi_Data_Bind(),示例代碼如下:

        TSS_RESULT rc=Tspi_Data_Bind(hEncdata,hKey, strlen(testCipher),(unsigned char*)testCipher);

        if(result !=TSS_SUCCESS)

        {

        fprintf(stderr,"Tspi_Data_Bind: %s ",Trspi_Error_String(rc));

        goto out_close;

        }

        交叉編譯后生成命令encryptFile。如果要加密的文件為/tmp/dir/test,前面創建的密鑰所在的目錄為/tmp,則編譯后執行命令時的格式為encryptFile -e /tmp/dir /tmp。

        加密之前,/tmp/dir目錄下只有test一個文件,使用cat命令查看該文件的內容為:Hello,world!執行加密命令之后,使用cat命令再次查看該文件的內容,看到的是亂碼,而不是原始內容,可見加密成功。加密后在test文件所在的目錄下會生成一個FileKey.cer文件。如圖6所示:

        圖6 文件加密

        文件解密

        解密操作使用函數Tspi_Data_Unbind(),示例代碼如下:

        TSS_RESULT rc=Tspi_Data_Unbind(hEncdata,hKey, unsealedDataLength, unsealedData)

        if(rc!=TSS_SUCCESS)

        {

        fprintf(stderr,"Tspi_Data_Unbind: %s ",Trspi_Error_String(rc));

        goto out_close;

        }

        解密文件和加密文件使用的是同一個命令,但后綴參數不同,格式為encryptFile –d /tmp/dir /tmp。執行解密操作后,使用cat命令查看加密的文件test,則可以看到原始的內容,說明解密成功。此時,test文件所在的目錄下加密時生成的FileKey.cer文件消失。如圖7所示:

        圖7 文件解密

        除了上面的幾個示例之外,還可以調用TSS的API編寫各種應用程序對TPM進行操作。總之,只要給定了TPM芯片,掌握了TPM的基本知識和TSS的API,就可以寫出可信計算的應用程序。

        結束語

        傳統的可信計算一般是基于PC平臺的,本文通過可信TSS在上的實現,調用TSS的API編寫應用程序與TPM進行交互,對于實現可信計算在嵌入式上的應用提供了重要的橋梁和支持。


        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 花莲县| 沙坪坝区| 定结县| 赤壁市| 积石山| 革吉县| 曲水县| 普定县| 平南县| 清丰县| 云梦县| 响水县| 达拉特旗| 纳雍县| 济阳县| 金秀| 荔浦县| 庆元县| 永吉县| 江北区| 华池县| 菏泽市| 永德县| 满洲里市| 广饶县| 孟州市| 东方市| 海原县| 怀宁县| 宝丰县| 博客| 调兵山市| 永安市| 桓台县| 北宁市| 常熟市| 盐山县| 阿拉尔市| 龙里县| 高青县| 灵台县|