本發明實施例涉及智能卡
技術領域:
,尤其涉及一種智能卡的數據共享方法和智能卡。
背景技術:
:目前,智能卡技術日趨成熟,智能卡上可以承載各類不同的應用,例如:交通應用、金融應用、社保應用、醫療應用等。通過普及承載有多種應用的智能卡,能夠極大地方便用戶的生活。隨著智能卡承載應用的增多,面臨智能卡上的多個應用需要共享數據的問題,當前,智能卡上多應用共享數據一般采用如下兩種方式:方式一:擴展應用,擴展應用采用的是一個應用依附另一個應用的方式,即在主應用中創建共享數據與密鑰,并把密鑰告知給另一個應用方。方式二:共享密鑰,共享密鑰采用的是預先在應用外部創建好密鑰與共享數據,并將密鑰同步給需要共享的應用方。針對上述方式一,密鑰維護方在主應用,但又不能隨意維護,如密鑰變更時需要通知其他應用方。針對上述方式二、由于共享了密鑰,主應用與其他獲得密鑰的應用享有了操作數據的同等權限,無法細分權限。因此,上述兩種方式由于無法對應用的密鑰進行細分權限,從而影響了共享數據的安全性。技術實現要素:本發明實施例提供一種智能卡的數據共享方法和智能卡,用以提高共享數據的安全性。本發明實施例提供一種智能卡的數據共享方法,包括:接收第一應用針對智能卡共享數據區的訪問請求,所述訪問請求中攜帶所述第一應用的訪問密鑰,所述智能卡中預設有各應用的密鑰信息以及各應用所對應的權限信息,所述第一應用為所述各應用的任一個;根據所述預設的各應用的密鑰信息對所述第一應用的訪問密鑰進行驗證,若驗證通過,則根據所述第一應用對應的權限對所述共享數據區進行操作。較佳的,通過以下方式在所述智能卡中預設各應用的密鑰信息以及各應用所對應的權限信息:在所述智能卡個人化階段,設置所述共享數據區,并為所述智能卡中需要訪問所述共享數據區的的各應用設置密鑰信息和權限信息;將所述所述智能卡中的各應用的密鑰信息分發給相應的各應用。較佳的,為所述智能卡中需要訪問所述共享數據區的的各應用設置密鑰信息和權限信息,包括:將共享數據區設置的各應用的密鑰信息進行存儲;在所述智能卡中設置共享數據屬性文件,所述共享數據屬性文件中存儲了允許訪問所述共享數據區的各應用的密鑰信息的存儲地址和權限信息。較佳的,所述共享數據區設置在所述智能卡的公共目錄下;所述各應用的密鑰信息存儲在安全存儲區。較佳的,還包括:接收所述第一應用的密鑰修改請求,所述密鑰修改請求中攜帶有所述第一應用的密鑰信息以及新密鑰信息;根據所述第一應用的密鑰信息對所述密鑰修改請求進行驗證,若驗證通過,則將所述密鑰修改請求中攜帶的所述新密鑰信息作為所述共享數據區中所述第一應用所對應的密鑰信息。較佳的,為所述智能卡中需要訪問所述共享數據區的的各應用設置權限信息,包括:為所述智能卡中的第一應用設置讀寫權限,所述第一應用為所述智能卡中的主應用;為所述智能卡中的除所述第一應用之外的應用設置讀權限。本發明實施例還提供一種智能卡,包括:預設模塊,用于在所述智能卡中預設各應用的密鑰信息以及各應用所對應的權限信息;接收模塊,用于接收第一應用針對智能卡共享數據區的訪問請求,所述訪問請求中攜帶所述第一應用的訪問密鑰,所述第一應用為所述各應用的任一個;驗證模塊,用于根據所述預設的各應用的密鑰信息對所述第一應用的訪問密鑰進行驗證,若驗證通過,則根據所述第一應用對應的權限對所述共享數據區進行操作。較佳的,所述預設模塊,具體用于:在所述智能卡個人化階段,設置所述共享數據區,并為所述智能卡中需要訪問所述共享數據區的的各應用設置密鑰信息和權限信息;將所述所述智能卡中的各應用的密鑰信息分發給相應的各應用。較佳的,所述預設模塊,具體用于:將共享數據區設置的各應用的密鑰信息進行存儲;在所述智能卡中設置共享數據屬性文件共,所述共享數據屬性文件中存儲了允許訪問所述共享數據區的各應用的密鑰信息的存儲地址和權限信息。較佳的,所述共享數據區在所述智能卡的公共目錄下;所述各應用的密鑰信息存儲在安全存儲區。較佳的,所述接收模塊,還用于:接收所述第一應用的密鑰修改請求,所述密鑰修改請求中攜帶有所述第一應用的密鑰信息以及新密鑰信息;所述驗證模塊,還用于根據所述第一應用的密鑰信息對所述密鑰修改請求進行驗證,若驗證通過,則將所述密鑰修改請求中攜帶的所述新密鑰信息作為所述共享數據區中所述第一應用所對應的密鑰信息。較佳的,所述預設模塊,具體用于:為所述智能卡中的第一應用設置讀寫權限,所述第一應用為所述智能卡中的主應用;為所述智能卡中的除所述第一應用之外的應用設置讀權限。上述實施例提供的一種智能卡的數據共享方法和智能卡,包括:接收第一應用針對智能卡共享數據區的訪問請求,該訪問請求中攜帶第一應用的訪問密鑰,智能卡中預設有各應用的密鑰信息以及各應用所對應的權限信息,根據預設的各應用的密鑰信息對第一應用的訪問密鑰進行驗證,若驗證通過,則根據第一應用對應的權限對共享數據區進行操作,可以看出,各個應用可以持有各自的密鑰,每個應用持有的密鑰不受其它應用限制,即每個應用可以持有自身的密鑰去訪問共享數據,從而實現不同應用對共享數據區擁有不同的訪問權限,因此能夠提高共享數據的安全性。附圖說明為了更清楚地說明本發明實施例中的技術方案,下面將對實施例描述中所需要使用的附圖作簡要介紹。圖1為本發明實施例提供的一種一種智能卡的數據共享方法流程圖;圖2為本發明實施例提供的一種智能卡的第一應用修改密鑰的方法流程圖;圖3為本發明實施例提供的智能卡在接收到交通應用訪問共享數據區的訪問請求后所執行的流程圖;圖4為本發明實施例提供的智能卡在接收到金融應用訪問共享數據區的訪問請求后所執行的流程圖;圖5為本發明實施例提供的一種智能卡的結構示意圖。具體實施方式為了使本發明的目的、技術方案及有益效果更加清楚明白,以下結合附圖及實施例,對本發明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅僅用以解釋本發明,并不用于限定本發明。圖1示例性示出了本發明實施例提供的一種智能卡的數據共享方法流程圖,如圖1所示,該方法可包括:S101、接收第一應用針對智能卡共享數據區的訪問請求,該訪問請求中攜帶有第一應用的訪問密鑰,所述智能卡中預設有各應用的密鑰信息以及各應用所對應的權限信息,第一應用為各應用中的任意一個應用。S102、根據智能卡中預設的各應用的密鑰信息對第一應用的訪問密鑰進行驗證。S103、判斷驗證是否通過,若驗證通過,則轉至步驟S104,否則結束流程。S104、根據第一應用所對應的權限對共享數據區進行操作。在上述步驟S101中,可通過在智能卡個人化階段,首先設置共享數據控制信息(sharedatacontrolinformation,簡稱SDI),在共享數據控制信息中可設置共享數據區所在位置,并設置共享數據區中共享文件的保護屬性,然后為智能卡中需要訪問共享數據區的各應用設置密鑰信息和權限信息,最后將智能卡中的各應用的密鑰信息分發給相應的各應用,實現在智能卡中預設各應用的密鑰信息以及各應用的權限信息。其中,為了增加設置共享數據區的靈活性,可將共享數據區設置在智能卡的公用的應用目錄之下,也可將共享數據區設置在智能卡的根目錄下,即共享數據區的位置不受限制。具體的,共享數據控制信息的設置格式可如表格一所示。表格一根據表格一中的共享數據控制信息,在共享數據區創建了兩份共享數據分別為共享數據A和共享數據B,共享數據A對應的共享數據屬性文件ID為ATTR_A,共享數據A對應的共享數據位置為LOC_A,共享數據A對應的共享數據內容加密因子為CKEY_A;共享數據B對應的共享數據屬性文件ID為ATTR_B,共享數據B對應的共享數據位置為LOC_B,共享數據B對應的共享數據內容加密因子為CKEY_B。當第一應用向共享數據區發送訪問請求時,需攜帶共享數據屬性文件ID,并根據共享數據屬性文件ID對共享文件進行訪問。需要說明的是,為了增加共享數據區的安全性,當在共享數據區創建共享數據的時候,智能卡還可使用校驗碼對其驗證,若驗證通過,則可在共享數據區創建共享數據,否則不具有在共享數據區創建共享數據的權限。其中,校驗碼的存儲位置可如表格一所示。此外,為了節約共享數據區的空間,即為了提高共享數據區的利用率,當在共享數據區創建完共享數據以后,還可使用結束位標識對共享數據區進行標記,結束位標識的存儲位置可如表格一所示。需要說明的是,為了增加共享數據區的安全性,當第一應用在訪問共享數據區前,智能卡會驗證共享數據控制信息與共享數據屬性文件的正確性,防止被非法篡改,若驗證通過,則可繼續執行后續的驗證操作,否驗證失敗,則直接拒絕訪問。在上述步驟S102中,除了根據智能卡中預設的各應用的密鑰信息對第一應用的訪問密鑰進行驗證外,還可將各應用的標識信息和各應用的密鑰信息結合對第一應用進行認證。另外,當對共享數據區中寫數據或從共享數據區中讀數據的時候,還可使用共享數據區中共享數據標識所對應的共享數據內容加密因子對寫入的數據進行加密或對讀取的數據進行解密。在為智能卡中需要訪問共享數據區的各應用設置密鑰信息和權限信息之后,還可將各應用的密鑰信息進行存儲。其中,為了增加密鑰信息存儲的靈活性,可將密鑰信息存儲在智能卡的公用的應用目錄之下,也可將密鑰信息存儲在智能卡的根目錄下,即密鑰信息的存儲位置不受限制。優選的,在為智能卡中需要訪問共享數據區的各應用設置密鑰信息和權限信息之后,可將各應用的密鑰信息存儲在智能卡的安全存儲區中。優選的,還可在智能卡中設置共享數據屬性文件(sharedataattribution,簡稱SAT),在共享數據屬性文件中存儲允許訪問共享數據區的各應用密鑰信息的索引和權限信息。其中,為了增加密鑰的安全性,可將共享數據屬性文件存儲在智能卡的安全存儲區中。智能卡在預設第一應用的權限信息時,可將第一應用的權限設置為“讀”權限,也可將第一應用的權限設置為“寫”權限,還可將第一應用的權限設置為“讀寫”權限,由于第一應用為智能卡中任意一個應用,可為每個應用設置不同的權限。具體的,若將第一應用的權限設置設置為“讀”權限時,表示第一應用只能對共享數據區中所存儲的數據可以執行讀操作而不能執行寫操作;若將第一應用的權限設置設置為“寫”權限時,表示第一應用只能對共享數據區中所存儲的數據可以進行寫操作而不能執行讀操作;若將第一應用的權限設置設置為“讀寫”權限時,表示第一應用對共享數據區中所存儲的數據既可以執行讀操作也可以執行寫操作。具體的,共享數據屬性文件在智能卡的安全存儲區的存儲形式可如表格二所示。表格二表格二中,共享數據屬性文件中存儲了兩個應用的密鑰信息以及權限信息,分別為應用1的密鑰信息及權限信息、應用2的密鑰信息及權限信息。其中,應用1在讀標志位對應的權限為“是”,應用1在寫標志位對應的權限為“是”,應用1對應的訪問密鑰索引為KEY_1;應用2在讀標志位對應的權限為“是”,應用1在寫標志位對應的權限為“否”,應用2對應的訪問密鑰索引為KEY_2。在表格二,還可設置應用的密鑰訪問期限的狀態,當將應用的密鑰訪問期限的狀態設置為“否”時候,表示應用可對共享數據區中數據進行訪問,否則應用不可對共享數據區進行訪問。需要說明的是,為了增加共享數據屬性文件的安全性,當在安全存儲區創建共享數據屬性文件的時候,智能卡還可使用校驗碼對其驗證,若驗證通過,則可在安全存儲區創建共享數據屬性文件,否則不具有在安全存儲區創建共享數據屬性文件的權限。其中,校驗碼的存儲位置可如表格二所示。此外,為了節約安全存儲區的空間,即為了提高安全存儲區的利用率,當在安全存儲區創建完共享數據屬性文件以后,還可使用結束位標識對安全存儲區進行標記,結束位標識的存儲位置可如表格二所示。優選的,各個應用還可對各個應用所持有的密鑰進行維護,例如修改應用本身的密鑰,智能卡中的各個應用修改密鑰的流程,可參見圖2。圖2示例性示出了本發明實施例提供的一種智能卡的第一應用修改密鑰的方法流程圖,如圖2所示,該方法流程可包括:S201、接收第一應用的密鑰修改請求,該密鑰修改請求中攜帶有第一應用的密鑰信息以及新密鑰信息。S202、根據第一應用的密鑰信息對密鑰修改請求進行驗證。S203、判斷驗證是否通過,若驗證通過,則轉至步驟S204,否則結束流程。S204、將密鑰修改請求中攜帶的新密鑰信息作為共享數據區中第一應用所對應的密鑰信息。下面通過一個具體的例子,對上述的方法流程進行詳細的解釋說明。在該例子中,假設智能卡中有兩個應用分別為金融應用和交通應用,交通應用需要將站點信息寫入智能卡共享數據區的共享數據A中,金融應用需要從智能卡共享數據區的共享數據A中讀取站點信息以進行后續的扣費操作,則可通過在智能卡的個人化階段,首先在智能卡的共享數據區設置共享數據A,在智能卡的共享數據區設置的共享數據A用于存儲交通應用中的站點信息。智能卡的共享數據區中共享數據A的存儲結構可如表格三所示。表格三共享數據ID共享數據屬性文件ID共享數據位置共享數據內容加密因子共享數據AATTR_ALOC_ACKEY_A表格三中,在智能卡的共享數據區創建了一份共享數據為共享數據A,并且共享數據A對應的共享數據屬性文件ID為ATTR_A,共享數據A對應的共享數據位置為LOC_A,共享數據A對應的共享數據內容加密因子為CKEY_A。然后將密鑰key1設置為金融應用的密鑰,將密鑰key2設置為交通應用的密鑰,并且將密鑰key1發送給金融應用,將密鑰key2發送給交通應用。繼續假設將共享數據區中金融應用所對應的密鑰key1和共享數據區中交通應用所對應的密鑰key2存儲在智能卡的安全存儲區,且共享數據區中金融應用所對應的密鑰key1的索引為Add1,共享數據區中交通應用所對應的密鑰key2的索引為Add2。進一步假設在智能卡卡中設置共享數據屬性文件,因此,共享數據屬性文件的存儲形式可如表格四所示。表格四應用ID讀標志位寫標志位密鑰是否過期訪問密鑰索引金融應用ID1是否否Add1交通應用ID2否寫否Add2表格四中,金融應用ID1在讀標志位對應的權限為“是”,金融應用ID1在寫標志位對應的權限為“否”,金融應用ID1對應的訪問密鑰索引為Add1;交通應用ID2在讀標志位對應的權限為“否”,交通應用ID2在寫標志位對應的權限為“是”,交通應用ID2對應的訪問密鑰索引為Add2。繼續假設當前交通應用需要向共享數據區中寫入的站點信息為“龍陽路進,張江高科出”,則智能卡在接收到交通應用訪問共享數據區的訪問請求后所執行的流程,可參見圖3。S301、交通應用發送訪問請求,該訪問請求中攜帶有密鑰key2、交通應用的標識ID2以及共享數據屬性文件ID為ATTR_A。S302、在接收到交通應用訪問共享數據區的訪問請求后,查找共享數據屬性文件中存儲交通應用的標識ID2,根據共享數據屬性文件中存儲交通應用的標識ID2確定交通應用所對應的密鑰key2的密鑰地址Add2。S303、根據共享數據屬性文件中存儲的交通應用所對應的密鑰地址Add2讀取交通應用所對應的密鑰key2。S304、根據交通應用所對應的密鑰key2對交通應用所發送的訪問請求進行驗證,由于交通應用所發送的訪問請求中攜帶密鑰信息為密鑰key2,因此驗證通過,轉至步驟S305。S305、交通應用根據訪問請求中攜帶的共享數據屬性文件ID為ATTR_A對共享數據區中共享數據A執行寫操作,即交通應用將站點信息“龍陽路進,張江高科出”寫入到共享數據A所對應的共享數據位置LOC_A中,并使用共享數據A對應的共享數據內容加密因子CKEY_A對寫入的數據進行加密。基于上述假設的基礎上,金融應用在從共享數據區中讀取交通應用所寫入的站點信息“龍陽路進,張江高科出”的流程,可參見圖4。S401、金融應用發送訪問請求,該訪問請求中攜帶有密鑰key1、金融應用的標識ID1以及共享數據屬性文件ID為ATTR_A。S402、在接收到金融應用訪問共享數據區的訪問請求后,查找共享數據屬性文件中存儲金融應用的標識ID1,根據共享數據屬性文件中存儲金融應用的標識ID1確定金融應用所對應的密鑰key1的密鑰地址Add1。S403、根據共享數據屬性文件中存儲的金融應用所對應的密鑰地址Add1讀取金融應用所對應的密鑰key1。S404、根據金融應用所對應的密鑰key1對金融應用所發送的訪問請求進行驗證,由于金融應用所發送的訪問請求中攜帶密鑰信息為密鑰key1,因此驗證通過,轉至步驟S405。S405、金融應用根據訪問請求中攜帶的共享數據屬性文件ID為ATTR_A對共享數據區中共享數據A執行讀操作,即金融應用從共享數據A所對應的共享數據位置LOC_A中讀取到站點信息“龍陽路進,張江高科出”,并使用共享數據A對應的共享數據內容加密因子CKEY_A對寫入的數據進行解密。S406、金融應用根據讀取到的站點信息“龍陽路進,張江高科出”對智能卡進行扣費操作。需要說明的是,智能卡中可以設置多個共享數據區,每個共享數據區均可以被多個應用訪問。根據以上內容可以看出,各個應用可以持有各自的密鑰,每個應用持有的密鑰不受其它應用限制,即每個應用可以持有自身的密鑰去訪問共享數據,從而可實現不同應用對共享數據擁有不同的訪問權限,并且各應用的權限各自獨立,因此能夠共享數據的安全性。另外,由于智能卡中的各個應用自行維護各自的密鑰,智能卡中的各個應用更加靈活與獨立,因此還能夠降低各個應用之間的耦合性。基于相同構思,本發明實施例提供一種智能卡,圖5為本發明實施例提供的智能卡500的結構示意圖,如圖5所示,智能卡500可包括:預設模塊501,用于在所述智能卡中預設各應用的密鑰信息以及各應用所對應的權限信息;接收模塊502,用于接收第一應用針對智能卡共享數據區的訪問請求,所述訪問請求中攜帶所述第一應用的訪問密鑰,所述第一應用為所述各應用的任一個;驗證模塊503,用于根據所述預設的各應用的密鑰信息對所述第一應用的訪問密鑰進行驗證,若驗證通過,則根據所述第一應用對應的權限對所述共享數據區進行操作。較佳的,預設模塊501,具體用于:在所述智能卡個人化階段,設置所述共享數據區,并為所述智能卡中需要訪問所述共享數據區的的各應用設置密鑰信息和權限信息;將所述所述智能卡中的各應用的密鑰信息分發給相應的各應用。較佳的,預設模塊501,具體用于:將共享數據區設置的各應用的密鑰信息進行存儲;在所述智能卡中設置共享數據屬性文件,所述共享數據屬性文件中存儲了允許訪問所述共享數據區的各應用的密鑰信息的存儲地址和權限信息。較佳的,所述共享數據區設置在所述智能卡的公共目錄下;所述各應用的密鑰信息存儲在安全存儲區。較佳的,接收模塊502,還用于:接收所述第一應用的密鑰修改請求,所述密鑰修改請求中攜帶有所述第一應用的密鑰信息以及新密鑰信息;驗證模塊503,還用于根據所述第一應用的密鑰信息對所述密鑰修改請求進行驗證,若驗證通過,則將所述密鑰修改請求中攜帶的所述新密鑰信息作為所述共享數據區中所述第一應用所對應的密鑰信息。較佳的,預設模塊501,具體用于:為所述智能卡中的第一應用設置讀寫權限,所述第一應用為所述智能卡中的主應用;為所述智能卡中的除所述第一應用之外的應用設置讀權限。從上述內容可以看出,本發明實施例提供的一種智能卡的數據共享方法和智能卡,各個應用可以持有各自的密鑰,每個應用持有的密鑰不受其它應用限制,即每個應用可以持有自身的密鑰去訪問共享數據,從而可實現不同應用對共享數據擁有不同的訪問權限,并且各應用的權限各自獨立,因此能夠共享數據的安全性。另外,由于智能卡中的各個應用自行維護各自的密鑰,智能卡中的各個應用更加靈活與獨立,因此還能夠降低各個應用之間的耦合性。本領域內的技術人員應明白,本發明的實施例可提供為方法、或計算機程序產品。因此,本發明可采用完全硬件實施例、完全軟件實施例、或結合軟件和硬件方面的實施例的形式。而且,本發明可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(包括但不限于磁盤存儲器、CD-ROM、光學存儲器等)上實施的計算機程序產品的形式。本發明是參照根據本發明實施例的方法、設備(系統)、和計算機程序產品的流程圖和/或方框圖來描述的。應理解可由計算機程序指令實現流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合。可提供這些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數據處理設備的處理器以產生一個機器,使得通過計算機或其他可編程數據處理設備的處理器執行的指令產生用于實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。這些計算機程序指令也可存儲在能引導計算機或其他可編程數據處理設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產生包括指令裝置的制造品,該指令裝置實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。這些計算機程序指令也可裝載到計算機或其他可編程數據處理設備上,使得在計算機或其他可編程設備上執行一系列操作步驟以產生計算機實現的處理,從而在計算機或其他可編程設備上執行的指令提供用于實現在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。盡管已描述了本發明的優選實施例,但本領域內的技術人員一旦得知了基本創造性概念,則可對這些實施例作出另外的變更和修改。所以,所附權利要求意欲解釋為包括優選實施例以及落入本發明范圍的所有變更和修改。顯然,本領域的技術人員可以對本發明進行各種改動和變型而不脫離本發明的精神和范圍。這樣,倘若本發明的這些修改和變型屬于本發明權利要求及其等同技術的范圍之內,則本發明也意圖包含這些改動和變型在內。當前第1頁1 2 3