Android NFC手機上實現卡模擬

1, ?問:能否在AndroidNFC手機上實現卡模擬?

答:在技術上可行,但是,對一般開發人員來講,目前看來僅僅是技術上可行。

2,? 問:具體如何實現呢?

答:有兩種方式:一種是基于硬件的,被稱為虛擬卡模式(Virual Card Mode);一種是基于軟件的,被稱為主機卡模式(Host Card Mode)。

在虛擬卡模式下,需要提供安全模塊SE,NFC芯片作為非接觸通訊前端,將從外部讀寫器接收到命令,轉發到SE,然后由SE進行回復。

外部讀寫器 <--->? NFC芯片 <---> SE。

而在主機卡模式下,不需要提供SE,而是由在手機中運行的一個應用完成SE的功能。

外部讀寫器 <--->? NFC芯片 <--->? 主機上的應用

3,? 問:SE是個什么東西,一般手機上有嗎

答:SE可以理解成一個CPU卡,一般是帶有JAVA虛擬機的CPU卡,即JAVA卡。帶有NFC芯片的手機一般都帶有SE(也可能有例外),例如GOOGLE NEXUS手機的PN65N,就是PN544芯片加SmartMX安全模塊。此外,SE也可以是特殊的SIM卡或SD卡。

4,? 問:我要做基于硬件的卡模擬,如何實現?

答:首先開發在SE中運行的程序,即一個JAVA APPLET,它負責將從NFC芯片接收到命令進行解釋,處理和回復。然后,需要開發一個主機應用程序,能夠將APPLET下載到SE中,并激活運行。當然,如果是完整的移動支付系統,還要包括后臺應用,TSM等

5,? 問:SE如何與主機通信?如何才能將程序下載到SE呢

答:根據SE硬件的不同,SE與主機的硬件接口也有所不同。對內置的SE,一般是NFCWI接口,而SIM和SD卡可能是SWP接口。應用接口協議是ISO7816-4,即CPU卡APDU命令。熟悉CPU卡的都知道,沒有密鑰,根本無法完成對卡的寫操作。因此需要SE的操作密鑰。但不幸的是,這些密鑰都掌握在手機廠商(內置SE的情況),例如三星,HTC,或移動運營商(SIM的情況),或者銀行等安全模塊提供商(SD卡的情況)手中,一般開發人員是得不到這些權限的。

6,? 問:那么沒有密鑰的情況下,基于硬件能做到什么程度呢?

答:目前看來,對SE進行只讀訪問應該是可能的。例如在安裝GOOGLE錢包后,在SE中會創建GOOGLE錢包的APPLET,我們可以通過程序選擇該APPLET并發送一些查詢命令。僅此而已…

7,? 問:如何實現基于軟件的卡模擬?

答:目前,官方Android版本不支持,可以通過刷第三方ROM實現基于軟件的卡模擬,例如Cyanogenmod。(具了解,Android4.4 KitKat能支持NFC軟件卡模擬,支持ISODEP類型(CPU卡),UID為隨機ID,不能在關機和關屏幕下使用,通過AID路由可以與硬件卡模擬應用程序共存。)

8,? 問:卡模擬一般能模擬什么卡?

答:取決于軟件和硬件雙方的限制。一般虛擬卡模擬主要取決于硬件,通常支持TYPE A/B的卡,對于專有協議的卡,就看芯片廠商是否支持了。例如用NXP的芯片,可以方便的模擬M1和ULTRALIGHT等,而是用其它家的芯片就不一定支持了。主機卡模擬一般只支持ISO14443-4以上的卡。

9,? 問:基于軟件的卡模擬有什么問題嗎?

答:主要是安全問題,對應用在移動支付領域的應用,安全總是最重要的,而手機上的運行環境很不安全。

10,問:總體看來,對一般開發人員,有沒有實現在android NFC手機上卡模擬,并進行商業化的可能 ?

答:綜上所述,主機卡模式存在嚴重的安全問題,而且在目前官方Android版本不支持的情況下,不可能要求用戶刷機以支持一個應用。因此主機卡模式目前只能是一個技術上的研究,而沒有商業應用的可能性。對虛擬卡模式,SE掌握在手機廠商,移動運營商或銀行等行業巨頭手中,根據目前的趨勢,一般應用開發者可以采用與這些巨頭合作,取得SE的部分使用權,一般是建立一個應用的安全域,以加載自己的虛擬卡。中小應用開發者也可以考慮自己發行基于SD或外置模塊的SE,但是自行發卡的成本很高,終端用戶一般也不會認可。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/165876.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/165876.shtml
英文地址,請注明出處:http://en.pswp.cn/news/165876.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

git的使用記錄

GitHub是公有的遠程倉庫&#xff0c;Gitlab是私有的遠程倉庫。 git add file git commit -m "add file" git mv filea fileb git log 顯示提交記錄 git log --oneline 一行的簡略信息顯示 git log --oneline --decorate 顯示當前指針 git reset --ha…

矩陣知識補充

正交矩陣 定義&#xff1a; 正交矩陣是一種滿足 A T A E A^{T}AE ATAE的方陣 正交矩陣具有以下幾個重要性質&#xff1a; A的逆等于A的轉置&#xff0c;即 A ? 1 A T A^{-1}A^{T} A?1AT**A的行列式的絕對值等于1&#xff0c;即 ∣ d e t ( A ) ∣ 1 |det(A)|1 ∣det(A)∣…

通用功能——git 攻略

摘要 本文主要介紹git常用命令的使用方法&#xff0c;同時介紹一些常見問題的處理方法&#xff0c;持續更新中… git命令通用選項 大多數git命令都適用的選項列表如下&#xff1a; -v, --verbose show hash and subject, give twice for upstream branch -q, --quie…

Vim 一下日志文件,Java 進程沒了?

一次端口告警&#xff0c;發現 java 進程被異常殺掉&#xff0c;而根因竟然是因為在問題機器上 vim 查看了 nginx 日志。下面我將從時間維度詳細回顧這次排查&#xff0c;希望讀者在遇到相似問題時有些許啟發。 時間線 15:19 收到端口異常 odin 告警。 狀態:P1故障 名稱:應用端…

黑馬點評筆記 redis實現優惠卷秒殺

文章目錄 難題全局唯一IDRedis實現全局唯一Id 超賣問題問題解決方案樂觀鎖問題 一人一單 難題 要解決優惠卷秒殺的問題我們要考慮到三個個問題&#xff0c;全局唯一ID&#xff0c;超賣問題&#xff0c;一人一單。 全局唯一ID 用戶搶購時&#xff0c;就會生成訂單并保存到同一…

【git】pip install git+https://github.com/xxx/xxx替換成本地下載編譯安裝解決網絡超時問題

目錄 &#x1f311;&#x1f311; 背景 &#x1f312; &#x1f312;作用 &#x1f314;&#x1f314; 問題 &#x1f314;&#x1f314;解決方案 &#x1f319;方法一 &#x1f319;方法二 &#x1f31d;&#x1f31d;我的解決方案 整理不易&#xff0c;歡迎一鍵三連…

7-12 統計投票情況(集合)

7-12 統計投票情況&#xff08;集合&#xff09; 分數 10 作者 python課程組 單位 福州大學至誠學院 利用集合分析活動投票情況。 第一小隊有五名隊員&#xff0c;序號是1,2,3,4,5&#xff1b;第二小隊也有五名隊員&#xff0c;序號6,7,8,9,10。 輸入一個由得票隊員編號組成的…

分布式篇---第三篇

系列文章目錄 文章目錄 系列文章目錄前言一、什么是補償事務?二、消息隊列是怎么實現的?三、那你說說Sagas事務模型前言 前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到網站,這篇文章男女通用,看懂了就去分享給你的碼吧。…

qgis添加postgis數據

左側瀏覽器-PostGIS-右鍵-新建連接 展開-雙擊即可呈現 可以點擊編輯按鈕對矢量數據編輯后是直接入庫的&#xff0c;因此謹慎使用。

【DQN】基于pytorch的強化學習算法Demo

目錄 簡介代碼 簡介 DQN&#xff08;Deep Q-Network&#xff09;是一種基于深度神經網絡的強化學習算法&#xff0c;于2013年由DeepMind提出。它的目標是解決具有離散動作空間的強化學習問題&#xff0c;并在多個任務中取得了令人矚目的表現。 DQN的核心思想是使用深度神經網…

企業數字化轉型的作用是什么?_光點科技

在當今快速變化的商業環境中&#xff0c;數字化轉型已成為企業發展的重要策略。企業數字化轉型指的是利用數字技術改造傳統業務模式和管理方式&#xff0c;以提升效率、增強競爭力和創造新的增長機會。 提升運營效率&#xff1a;數字化轉型通過引入自動化工具和智能系統&#x…

指數退避重試

指數退避重試&#xff08;Exponential Backoff and Retry&#xff09;是一種網絡通信中常用的錯誤處理和重試策略。它通常用于處理臨時性的故障&#xff0c;例如網絡延遲、服務器過載或臨時性的錯誤&#xff0c;以提高系統的可靠性和穩定性。 基本思想是&#xff0c;當發生一個…

NX二次開發UF_CSYS_ask_wcs 函數介紹

文章作者&#xff1a;里海 來源網站&#xff1a;https://blog.csdn.net/WangPaiFeiXingYuan UF_CSYS_ask_wcs Defined in: uf_csys.h int UF_CSYS_ask_wcs(tag_t * wcs_id ) overview 概述 Gets the object identifier of the coordinate system to which the work coordin…

JMeter壓測常見面試問題

1、JMeter可以模擬哪些類型的負載&#xff1f; JMeter可以模擬各種類型的負載&#xff0c;包括但不限于Web應用程序、API、數據庫、FTP、SMTP、JMS、SOAP / RESTful Web服務等。這使得JMeter成為一個功能強大且靈活的壓力測試工具。 2、如何配置JMeter來進行分布式壓力測試&a…

在華為昇騰開發板安裝gdal-python

作者:朱金燦 來源:clever101的專欄 為什么大多數人學不會人工智能編程?>>> 在華為昇騰開發板安裝gdal-python分為兩步:編譯gdal庫和下載gdal對應的python包。 1.編譯gdal庫 首先下載gdal庫,。在linux(arm架構)上編譯的gdal庫及其第三方庫源碼,內含一個編譯…

智慧法院 | RPA+AI打造智慧執行助手,解決“案多人少”現實難題

為深化政法智能化建設&#xff0c;加強“智慧治理”“智慧法院”“智慧檢務”“智慧警務”“智慧司法”等信息平臺建設&#xff0c;深入實施大數據戰略&#xff0c;實現科技創新成果同政法工作深度融合。法制日報社于今年3月繼續舉辦了2023政法智能化建設創新案例及論文征集宣傳…

Unity UGUI的HorizontalLayoutGroup(水平布局)組件

Horizontal Layout Group | Unity UI | 1.0.0 1. 什么是HorizontalLayoutGroup組件&#xff1f; HorizontalLayoutGroup是Unity UGUI中的一種布局組件&#xff0c;用于在水平方向上對子物體進行排列和布局。它可以根據一定的規則自動調整子物體的位置和大小&#xff0c;使它…

Shell腳本:Linux Shell腳本學習指南(第二部分Shell編程)二

第二部分&#xff1a;Shell編程&#xff08;二&#xff09; 十一、Shell數組&#xff1a;Shell數組定義以及獲取數組元素 和其他編程語言一樣&#xff0c;Shell 也支持數組。數組&#xff08;Array&#xff09;是若干數據的集合&#xff0c;其中的每一份數據都稱為元素&#…

Navicat 技術指引 | GaussDB服務器對象的創建/設計(編輯)

Navicat Premium&#xff08;16.2.8 Windows版或以上&#xff09; 已支持對GaussDB 主備版的管理和開發功能。它不僅具備輕松、便捷的可視化數據查看和編輯功能&#xff0c;還提供強大的高階功能&#xff08;如模型、結構同步、協同合作、數據遷移等&#xff09;&#xff0c;這…

【華為OD題庫-034】字符串化繁為簡-java

題目 給定一個輸入字符串&#xff0c;字符串只可能由英文字母(a ~ z、A ~ Z)和左右小括號()組成。當字符里存在小括號時&#xff0c;小括號是成對的&#xff0c;可以有一個或多個小括號對&#xff0c;小括號對不會嵌套&#xff0c;小括號對內可以包含1個或多個英文字母也可以不…