Arborescence des pages

Comparaison des versions

Légende

  • Ces lignes ont été ajoutées. Ce mot a été ajouté.
  • Ces lignes ont été supprimées. Ce mot a été supprimé.
  • La mise en forme a été modifiée.

...

En accès libre, une application type TagInfo de NXP sous Android permet d'afficher directement les 3 fichiers de la DEUINFO, on retrouve ainsi notamment en clair l'ESCN sous sa forme hexadecimal dans le fichier 00, soit d88b02c1894e1038a711001999465982 ici :

Afin de permettre une compatibilité avec d'autres technologies que Mifare Desfire, la DEUINFO est également spécifiée pour supporter la norme ISO/IEC 7816-4 : https://www.iso.org/fr/standard/77180.html

Mise en oeuvre

La mise en oeuvre de l'encodage de l'application DEUINFO se fait principalement côté esup-nfc-tag-server. De même esup-nfc-tag-server permet également de lire et vérifier l'ensemble des mécanismes d'une DEUINFO.

...

Bloc de code
languagexml
 <!-- Application DEUINFO de la carte étudiante européenne 
		nok A3 : ISO enbaled, 3 AES keys
		amks OAOB :  configuration changeable, free directory list access without master key
-->
<bean class="org.esupportail.nfctag.beans.DesfireApplication" p:desfireAppId="F58840" p:amks="0B" p:nok="83A3" p:isoId="1000" p:isoName="A00000061404F58840">
	<property name="files">
		<util:list>
			<!-- ESCN File 
							communicationSettings 00 : communication plain text for clear access
							accessRights E000 : - read access clear 'E' 
	              								- write access '0' master key only
	              								- read/write access clear '0'
	             								- change acces rights '0' master key only
	              								- fileSize : 16bits -> 000010 -> 100000. 
			-->
			<bean class="org.esupportail.nfctag.beans.DesfireFile"
p:fileNumber="00" p:communicationSettings="00" p:accessRights="E000"
 p:tagWriteApiisoId="1001"
p:tagWriteApi-ref="escnDeuInfoTagWriteEsupSgc" />

			<!-- Signature (71 ou 72 octets) - taille variable  -->
			<bean class="org.esupportail.nfctag.beans.DesfireFile"
p:fileNumber="01" p:communicationSettings="00" p:accessRights="E000" p:isoId="1002"
p:tagWriteApi-ref="signatureDeuInfoTagWriteEsupSgc" />
			<!-- Certificat - taille variable  -->
			<bean class="org.esupportail.nfctag.beans.DesfireFile"
p:fileNumber="02" p:communicationSettings="00" p:accessRights="E000" p:isoId="1003"
p:tagWriteApi-ref="certDeuInfoTagWriteEsupSgc"/>
		</util:list>
	</property>
	<property name="keys">
		<util:list>
			<!-- master key of deuInfo application : private app master key of the university -->
			<bean class="org.esupportail.nfctag.beans.DesfireKey" 
p:keyNo="00" p:keyVer="00" p:key="00000000000000000000000000000000" />
			<!-- deuinfo master key diversified with ESCN -->
			<bean class="org.esupportail.nfctag.beans.DesfireKey" 
p:keyNo="01" p:keyVer="00" p:desfireKeyService-ref="escnDeuInfoDiversifiedKeyService" />
			<!-- deuinfo master key diversified with CSN -->
			<bean class="org.esupportail.nfctag.beans.DesfireKey" 
p:keyNo="02" p:keyVer="00" p:desfireKeyService-ref="csnDeuInfoDiversifiedKeyService" />
		</util:list>
	</property>
</bean>

...

Celle-ci permet ainsi notamment de valider techniquement l'ensemble de la DEUINFO, validation des clefs, certificats, ...

La validation ci-dessus proposée par esup-nfc-tag se fait via la technologie Mifare Desfire et est complète vis à vis des vérifications possibles sur la DEUINFO implémentée dans une Mifare Desfire.

En utilisant non pas Mifare Desfire, mais la norme ISO/IEC 7816-4, la lecture de la carte créée depuis esup-sgc/esup-nfc-tag est également possible ; celle-ci est alors plus simple et légère, elle ne permet pas de vérifier les clefs par exemple, mais elle a l'avantage d'être standardisée et donc possible sur bon nombre de technologies de cartes.

Pour ce faire, on peut passer les APDU suivants normalisés ISO 7816  : 

Bloc de code
# select deuinfo app
00A4040009A00000061404F5884000
# select ESCN file
00A40000021001
# read
00B0000000
# select sign file
00A40000021002
# read
00B0000000
# select cert file
00A40000021003 
# read
00B0000000


Voici un exemple de ce que ça donne (depuis scriptor ici) : 

Bloc de code
vincent@debian-i7:/tmp$ scriptor -r 'Identive Identive CLOUD 4500 F Dual Interface Reader [CLOUD 4700 F Contactless Reader] (53201322201041) 01 00'
Using given card reader: Identive Identive CLOUD 4500 F Dual Interface Reader [CLOUD 4700 F Contactless Reader] (53201322201041) 01 00
Using T=1 protocol
Reading commands from STDIN
00A4040009A00000061404F5884000
> 00 A4 04 00 09 A0 00 00 06 14 04 F5 88 40 00 
< 90 00 : Normal processing.
00A40000021001
> 00 A4 00 00 02 10 01 
< 90 00 : Normal processing.
00B0000000
> 00 B0 00 00 00 
< D8 8B 02 C0 89 4E 10 38 BA 5A 00 19 99 46 59 82 
90 00 : Normal processing.
00A40000021002
> 00 A4 00 00 02 10 02 
< 90 00 : Normal processing.
00B0000000
> 00 B0 00 00 00 
< 30 45 02 20 0E 11 C6 79 2B C9 2B 34 0D FC 89 D3 
7E 5E 12 F3 7B 5F 75 7A C5 A0 5D C3 54 BB 28 2C 
11 50 30 F4 02 21 00 CB CE CA 4F 7E 7E 7C 01 A6 
9F 66 43 31 5A 87 50 3A 32 76 62 CA 1B 3B B0 F0 
68 1D 69 ED E4 CE 2B 90 00 : Normal processing.
00A40000021003
> 00 A4 00 00 02 10 03 
< 90 00 : Normal processing.
00B0000000
> 00 B0 00 00 00 
< 30 82 02 64 30 82 02 09 A0 03 02 01 02 02 02 10 
00 30 0A 06 08 2A 86 48 CE 3D 04 03 02 30 81 8E 
31 0B 30 09 06 03 55 04 06 13 02 46 52 31 0B 30 
09 06 03 55 04 08 0C 02 37 36 31 0E 30 0C 06 03 
55 04 07 0C 05 52 6F 75 65 6E 31 29 30 27 06 03 
55 04 0A 0C 20 55 6E 69 76 65 72 73 69 74 C3 83 
C2 A9 20 64 65 20 52 6F 75 65 6E 20 4E 6F 72 6D 
61 6E 64 69 65 31 16 30 14 06 03 55 04 03 0C 0D 
75 6E 69 76 2D 72 6F 75 65 6E 2E 66 72 31 1F 30 
1D 06 09 2A 86 48 86 F7 0D 01 09 01 16 10 73 69 
40 75 6E 69 76 2D 72 6F 75 65 6E 2E 66 72 30 1E 
17 0D 32 30 30 34 30 36 31 30 31 30 31 32 5A 17 
0D 33 30 30 34 30 34 31 30 31 30 31 32 5A 30 7E 
31 0B 30 09 06 03 55 04 06 13 02 46 52 31 0B 30 
09 06 03 55 04 08 0C 02 37 36 31 29 30 27 06 03 
55 04 0A 0C 20 55 6E 69 76 65 72 73 69 74 C3 83 
90 00 : Normal processing.

Délégation d'applications Mifare Desfire EV2 (implémentation à l'étude)

Présentation

Cette dernière partie correspond à la fonctionnalité la plus avancée que propose le projet de Carte Étudiante Européenne en rapport à la technologie Desfire EV2.

...

Dit autrement, cela peut en fait "rendre compatible" une carte extérieure Desfire EV2 avec des applications sécurisées de l'établissement, applications telles que le contrôle d'accès ou  encore le paiement Izly.

Mise en oeuvre


Info

L'implémentation correspondant à cette partie est à l'étude / en cours.