1

我正在编写一个使用 NFC 标签来传输一些信息的 Android 应用程序。目前我有读取 NFC 标签内容的读取功能:

protected NdefMessage[] getNdefMessages(Intent intent) {
    // Parse the intent
    NdefMessage[] msgs = null;
    String action = intent.getAction();
    if (NfcAdapter.ACTION_TAG_DISCOVERED.equals(action)
        || NfcAdapter.ACTION_NDEF_DISCOVERED.equals(action)) {
        Parcelable[] rawMsgs = 
            intent.getParcelableArrayExtra(NfcAdapter.EXTRA_NDEF_MESSAGES);
        if (rawMsgs != null) {
            msgs = new NdefMessage[rawMsgs.length];
            for (int i = 0; i < rawMsgs.length; i++) {
                msgs[i] = (NdefMessage) rawMsgs[i];
            }
        } else {
            // Unknown tag type
            byte[] empty = new byte[] {};
            NdefRecord record = new NdefRecord(NdefRecord.TNF_UNKNOWN, empty, empty, empty);
            NdefMessage msg = new NdefMessage(new NdefRecord[] {
                record
            });
            msgs = new NdefMessage[] {
                msg
            };
        }
    } else {
        finish();
    }
    return msgs;
}

现在,我想为通信添加安全性,即 SSL。但是,我真的不知道我必须采取哪些步骤才能实现此功能。是否有一些 NFCSecurity 类或类似的东西,可以为您完成所有工作?

任何想法?

4

1 回答 1

2

Android NFC API 使您可以访问(低级)标签通信和标签上(或通过 Android Beam 传输)的(高级)NDEF 消息存储。增加安全性,同时仍然保留自动读取和写入 NDEF 消息的好处,例如,可以通过加密NdefRecord您使用的有效负载来完成。

SSL/TLS 适用于连接级别。据我所知,没有支持这种东西的标签。您可以考虑将 SSL/TLS 添加到 NFC 对等通信,但目前不存在。这将涉及修改 Android NFC 堆栈并构建自定义 Android 系统映像(如果可能的话)。它不是应用程序可以添加到 Android Beam 之上的东西。

于 2013-04-16T12:50:35.150 回答