通過APDU通訊讀社保卡

什么是 APDU?

APDU (Application Protocol Data Unit) 是基于 ISO/IEC 7816-4 標準的智能卡通信協議,是智能卡與外部設備(如讀卡器)之間交換數據的基本單元。它是智能卡通信的核心概念,定義了一組用于請求和響應的標準化消息格式。
APDU 分為兩類:Command APDU(指令 APDU)Response APDU(響應 APDU)
1. Command APDU(指令 APDU):由外部設備(主機)發送給智能卡,用于向卡片發出指令。由以下字段組成:

字段名稱 長度 (字節) 描述
CLA 1 指令類別 (Class)。指定命令的類別。
INS 1 指令代碼 (Instruction)。指定要執行的操作。
P1, P2 2 參數 (Parameter)。指定指令的操作參數。
LC 1 (可選) 數據字段長度 (Length of Command)。
Data 可變長度 數據字段 (Data)。向卡片傳遞的數據。
LE 1 (可選) 期望的響應數據長度 (Length of Expected)。

Command APDU 示例:
00A404000F7378312E73682EC9E7BBE1B1A3D5CF
? CLA: 00 - 標準指令。
? INS: A4 - SELECT 文件指令。
? P1, P2: 04 00 - 選擇方式。
? LC: 0F - 后續數據長度。
? Data: 7378312E73682EC9E7BBE1B1A3D5CF- 要選擇的文件標識符。

2.  **Response APDU(響應 APDU)**:由智能卡返回給主機,用于提供執行結果或數據。由以下字段組成:
字段名稱 長度 (字節) 描述
Data 可變長度 響應數據。
SW1, SW2 2 狀態字 (Status Word)。指示執行結果。

Response APDU 示例:
6F 10 84 08 A0 00 00 00 87 10 02 02 90 00
? Data: 6F 10 84 08 A0 00 00 00 87 10 02 02 - 返回的數據內容。
? SW1, SW2: 90 00 - 執行成功。
Command APDU 與 Response APDU 的工作流程
1. 主機發送 Command APDU
? 外部設備(主機)通過讀卡器向智能卡發送指令,例如選擇應用、讀取數據或驗證 PIN。
2. 智能卡解析并執行指令
? 智能卡接收并解析 Command APDU,根據指令內容執行操作。
3. 智能卡返回 Response APDU
? 執行完成后,智能卡將響應數據和狀態字通過 Response APDU 返回給主機。
示例:
? Command APDU: 主機發送選擇文件指令 00 A4 04 00 08 A0 00 00 00 87 10 02 02。
? Response APDU: 智能卡返回文件選擇成功 90 00。
APDU 狀態字 (SW1, SW2)狀態字是智能卡返回的兩個字節,指示指令的執行結果。常見狀態字包括:

狀態字 描述
90 00 執行成功。
67 00 長度錯誤。
6A 82 文件未找到。
6A 84 存儲空間不足。
69 82 安全狀態未滿足(如未認證)。
6C XX LE 字段不匹配,返回推薦的長度 XX。

讀取社保卡信息

了解了什么是APDU之后,就可以來讀社保卡了。
根據關于印發社會保障卡文件結構和數據項(V2.0)的通知 人社信息函?2012?37 號
中的說明。
社會保障系統環境 SSSE 的應用標識符

DDF 應用標識符內容 應用標識符
SSSE sx1.sh.社會保障 7378312E73682EC9E7BBE1B1A3D5CF

基本應用數據區文件特性

文件定義 文件標識符 短文件標識符 讀控制 寫控制 文件結構 類別
發卡機構數據文件 EF05 05 UKSSSE 變長記錄 啟用
持卡人的基本信息文件 EF06 06 UKSSSE 變長記錄 啟用

數據項的格式與屬性

標志 數據項 類型 長度 所屬文件 備注
01 卡的識別碼 cn 10 SSSE "EF05"
02 卡的類別 an 01 SSSE "EF05"
03 規范版本 an 04 SSSE "EF05"
04 初始化機構編號 cn 0C SSSE "EF05"
05 發卡日期 cn 04 SSSE "EF05"
06 卡有效期 cn 04 SSSE "EF05"
07 卡號 an 09 SSSE "EF05"
08 社會保障卡號碼 cn 12 SSSE "EF06"
09 姓名 an 1E SSSE "EF06"
4E 姓名擴展 an 14 SSSE "EF06"
0A 性別 cn 01 SSSE "EF06"
0B 民族 cn 01 SSSE "EF06"
0C 出生地 cn 03 SSSE "EF06"
0D 出生日期 cn 04 SSSE "EF06"

可以獲知,以上數據,可以直接讀出,不需要走加密模塊。

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,739評論 6 534
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,634評論 3 419
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,653評論 0 377
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,063評論 1 314
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,835評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,235評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,315評論 3 442
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,459評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,000評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,819評論 3 355
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,004評論 1 370
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,560評論 5 362
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,257評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,676評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,937評論 1 288
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,717評論 3 393
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,003評論 2 374

推薦閱讀更多精彩內容