Hallo,

> I more or less understand how to do it but I don't understand if after
> is possible to build application on card emulation.

Regarding the internal secure element (SmartMX): No. Even if you
activate this chip as the secure element, you could only use its UID for
your application. To edit data on it/install applications into it you
would need to have the access keys for that secure element.

Regarding an external secure element on the UICC ("SIM" card): Partly
yes. You can activate an SWP-UICC as secure element. But access is
limited to external readers for the moment. Until now, there is no known
way to get access to application on the UICC from a phone application.

> Moreover some of you speak about authentication, and about a password
> that is not possible to have? (What are you talking about when you
> speak about this stuff).

The SmartMX in the Nexus S contains a JavaCard operating system that is
compliant to GlobalPlatform. GlobalPlatform defines methods to manage
multiple applications on this JavaCard. A central component of this card
management is the Card Manager, which itself is one application on the
secure element. The card manager provides an interface to load, install,
... delete applications on the secure element. Additionally it controls
access to these methods. To establish a secure channel with the card
manager (i.e. a connection that provides authenticity, integrity and
possibly confidentiality) both, the entity that wants to manage the card
and the card manager need to know one or more shared secrets, the
authentication keys.

> Anyway some news about NFC card emulation
> [nearfieldcommunicationworld]
> it seems that Google dev will not give use api about that in the next
> future.

Still there is some developments towards card emulation going on (cf.
http://www.nfctimes.com/news/android-card-emulation-expected-despite-doubts-google-engineers
)

> Moreover, what does it mean "And if you improperly authenticate
> yourself a certain number of times, there are secure elements out
> there that will physically destroy themselves and can never be
> recovered"? Is related to the password of my previous questions?

While the card manager is protected by access keys, there still exist
some methods to find such keys. One of these methods would be brute
forces (i.e. trying each possible key value). While such methods are
usually very inefficient (if the key has an appropriate length) there
might be some methods that could significantly speed up this process. As
a safety mechanism the card manager usually implements an additional
protection against such an attack: After ten consecutive authentication
failures, the card manager locks itself and refuses any further
commands. (Other applications that were previously installed on that
card will continue to function as usual.) Once this lockdown has
happened, there is *NO* way of reversing this. THerefore, once in
lockdown no applications can be installed on, removed from, ... the
secure element.

br
Michael



> On May 16, 3:48 pm, Goo_Goo <[email protected]> wrote:
>> Could someone please post the the image withcardemulationenabled
>> for Nexus S?
>>
>> On May 13, 5:08 am, Markus <[email protected]> wrote:
>>
>>
>>
>>> mtk
>>> you wrote after call
>>> phLibNfc_SE_SetMode(seID,phLibNfc_SE_ActModeWired,nfc_jni_se_set_mode_callb 
>>> ack,
>>> (void *)nat);
>>> your nexus s was incardemulation
>>
>>> I called it with mode default
>>> phLibNfc_SE_SetMode(seID,phLibNfc_SE_ActModeDefault,nfc_jni_se_set_mode_cal 
>>> lback,
>>> (void *)nat);
>>> and get following log
>>> 5-12 22:08:54.421: DEBUG/NFCJNI(303):NFCcapabilities: HAL =
>>> 8150100, FW = a70414, HW = 620003, Model = 0, HCI = 1, Full_FW = 104,
>>> FW Update Info = 0
>>> 05-12 22:08:54.769: DEBUG/NFCJNI(303):
>>> phLibNfc_SE_GetSecureElementList()
>>> 05-12 22:08:54.769: DEBUG/NFCJNI(303): > Number of Secure
>>> Element(s) : 1
>>> 05-12 22:08:54.769: DEBUG/NFCJNI(303):
>>> phLibNfc_SE_GetSecureElementList(): SMX detected, handle=0xabcdef
>>> 05-12 22:08:54.769: DEBUG/NFCJNI(303): phLibNfc_SE_SetMode() returned
>>> 0x000d[NFCSTATUS_PENDING]
>>> 05-12 22:08:54.828: INFO/NFCJNI(303):NFCInitialized
>>> 05-12 22:08:54.828: DEBUG/NfcService(303):NFC-EE routing OFF
>>> 05-12 22:08:54.847: DEBUG/NfcService(303):NFC-C discovery ON
>>
>>> BUT reader is not detecting a Tag on my phone
>>> Is there maybe a problem to setting the mode
>>> returned 0x000d[NFCSTATUS_PENDING] sounds not so great
>>
>>> I am working with CyanogenMod 7 (Android 2.3.4)
>>
>>> regards
>>> Markus- Hide quoted text -
>>
>> - Show quoted text -
> 

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to