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.

...

Cependant, Desfire EV1 reste une technologie NXP relativement fermée, même si des librairies et documentations sont librement accessibles sur internet aujourd'hui (et depuis plus près de 10 20 ans maintenant).

Reste donc que pour avoir une vision et une compréhension exacte de la structuration Desfire EV1, un document comme le "datasheet" complet de "mifare DESFire Contactless Multi-Application IC with DES and 3DES Security MF3 IC D40" peut s'avérer utile à consulter. Ce document disponible depuis le nom de fichier M075031_desfire.pdf est un document d'Avril 2004 qui est noté comme confidentiel et qui peut normalement être consulté uniquement après signature d'un accord de non divulgation (NDA), comme le relève ce thread dans le forum de mifare.net : https://www.mifare.net/support/forum/topic/desfire-ev1-aes-2k3des-clrc663-examples/

Note : cf la question "Quelle est la différence entre Mifare Desfire EV1, Mifare Desfire EV2 ou encore Mifare Desfire EV3 ? dans la FAQ", esup-nfc-tag utilise Desfire EV1 comme protocole lors de l'écriture ce qui lui permet notamment de pouvoir écrire sur les EV1, EV2 ou EV3 ; les donnéés écrites peuvent ensuite êtreutilisées par n'importe quel autre protocole Desfire (EV1, EV2 ou EV3) en fonction des possibilités de la carte : une compatibilité totale est donc assurée avec l'ensemble des cartes de la famile Desfire.

applicationContext-desfire.xml

...

La clé 0 est la Master Key de l'application, dans l’exemple toutes les clés sont à zéro et insérées en tant que version "01" (p:keyVer="01")

Info

Il n'est plus nécessaire de préciser le type de clé au niveau des beans DesfireKey, celui-ci est déterminé Les types de clé sont déterminés par la valeur de l'attribut p:nok de la DesfireApplication :

  • le premier chiffre représente de type (0 : DES, 8 : AES)
  • le deuxième est le nombre de clés
L'attribut p:type doit etre supprimé au niveau des
  • clés

La valeur à écrire dans le fichier est définie par p:tagWriteApi-ref

...

Le desfireFileOffset permet de préciser à partir de quel octet on démarre la lecture. info


L'attribut desfireFileSize n'est plus nécessaire, il doit etre supprimé.

Esup-nfc-tag-server enverra le contenu du fichier desfire ainsi que le desfireAppName : si-service (dans notre cas) à l'application TagIdCheck paramétrée dans esup-nfc-tag-server. Je web-service tagIdCheck associé à cette application doit contôler si une carte correspond effectivement à l'identifiant contenu dans le fichier defire et doit renvoyer un tagLog (voir Implémentation du Web Service TagIdCheck)

...

Bloc de code
languagexml
themeRDark
    <bean id="idAcTagWriteEsupSgc" class="org.esupportail.nfctag.service.api.impl.TagWriteRestWs">
		<property name="idFromCsnUrlTemplate" value="https://esup-sgc.univ-ville.fr/wsrest/nfc/idFromCsn?csn={0}&appName=access-control"/>
    </bean>

    <bean id="csnDomainTagWriteEsupSgc" class="org.esupportail.nfctag.service.api.impl.TagWriteRestWs">
		<property name="idFromCsnUrlTemplate" value="https://esup-sgc.univ-ville.fr/wsrest/nfc/idFromCsn?csn={0}&appName=csn-domain"/>
    </bean>


    <bean id="dateLastUpdateEsupSgc" class="org.esupportail.nfctag.service.api.impl.TagLastUpdateRestWs">
		<property name="wsUrl" value="https://esup-sgc.univ-ville.fr/wsrest/nfc/lastUpdateFromCsn"/>
    </bean>

<bean id="desfireComueTagUpdateEsupSgc" class="org.esupportail.nfctag.beans.DesfireTag" p:formatBeforeWrite="false" p:keyStart="0000000000000000" p:keyTypeStart="DES" p:keyFinish="0000000000000000" p:keyTypeFinish="DES" p:keyVersionFinish="00">
 	<property name="applications">
		<util:list>
			<bean class="org.esupportail.nfctag.beans.DesfireApplication"
			    p:desfireAppId="F585C1" p:amks="0B" p:nok="85" p:updateDate="2016-03-01 12:00" p:tagLastUpdateRestWs-ref="dateLastUpdateEsupSgc">
	                    <property name="files">
	                            <util:list>
	                                    <bean class="org.esupportail.nfctag.beans.DesfireFile"
	                                          p:fileNumber="00" p:communicationSettings="03" p:accessRights="1444" p:fileSize="1F0000" p:tagWriteApi-ref="idAcTagWriteEsupSgc"/>
	                                    <bean class="org.esupportail.nfctag.beans.DesfireFile"
	                                          p:fileNumber="01" p:communicationSettings="03" p:accessRights="2444" p:fileSize="1F0000" p:tagWriteApi-ref="idAcTagWriteEsupSgc"/>
	                                    <bean class="org.esupportail.nfctag.beans.DesfireFile"
	                                          p:fileNumber="0302" p:communicationSettings="03" p:accessRights="3444" p:fileSize="1F0000" p:tagWriteApi-ref="idAcTagWriteEsupSgc"/>
	                            </util:list>
	                    </property>
	                    <property name="keys">
                                    <util:list>
                                            <bean class="org.esupportail.nfctag.beans.DesfireKey"
                                                     p:keyNo="00" p:keyVer="01" p:key="00000000000000000000000000000000"/>
                                            <bean class="org.esupportail.nfctag.beans.DesfireKey"
                                                     p:keyNo="01" p:keyVer="01" p:key="00000000000000000000000000000000"/>
                                            <bean class="org.esupportail.nfctag.beans.DesfireKey"
                                                     p:keyNo="02" p:keyVer="01" p:key="00000000000000000000000000000000"/>
                                            <bean class="org.esupportail.nfctag.beans.DesfireKey"
                                                     p:keyNo="03" p:keyVer="01" p:key="00000000000000000000000000000000"/>
                                            <bean class="org.esupportail.nfctag.beans.DesfireKey"
                                                     p:keyNo="04" p:keyVer="01" p:key="00000000000000000000000000000000"/>
                                    </util:list>
	                    </property>
			</bean>
	   		<bean class="org.esupportail.nfctag.beans.DesfireApplication"
	                    p:desfireAppId="F585C2" p:amks="0B" p:nok="86" p:updateDate="2018-04-24 12:00" p:tagLastUpdateRestWs-ref="dateLastUpdateEsupSgc">
	                    <property name="files">
	                            <util:list>
	                                    <bean class="org.esupportail.nfctag.beans.DesfireFile"
	                                          p:fileNumber="00" p:communicationSettings="03" p:accessRights="1FFF" p:tagWriteApi-ref="csnDomainTagWriteEsupSgc"/>
	                                    <bean class="org.esupportail.nfctag.beans.DesfireFile"
	                                          p:fileNumber="01" p:communicationSettings="03" p:accessRights="2FFF" p:tagWriteApi-ref="csnDomainTagWriteEsupSgc"/>
	                                    <bean class="org.esupportail.nfctag.beans.DesfireFile"
	                                          p:fileNumber="02" p:communicationSettings="03" p:accessRights="3FFF" p:tagWriteApi-ref="csnDomainTagWriteEsupSgc"/>
	                                    <bean class="org.esupportail.nfctag.beans.DesfireFile"
	                                          p:fileNumber="03" p:communicationSettings="03" p:accessRights="4FFF" p:tagWriteApi-ref="csnDomainTagWriteEsupSgc"/>
	                                    <bean class="org.esupportail.nfctag.beans.DesfireFile"
	                                          p:fileNumber="04" p:communicationSettings="03" p:accessRights="5FFF" p:tagWriteApi-ref="csnDomainTagWriteEsupSgc"/>
	                            </util:list>
	                    </property>
	                    <property name="keys">
                                    <util:list>
                                            <bean class="org.esupportail.nfctag.beans.DesfireKey"
                                                  p:keyNo="00" p:keyVer="01" p:key="00000000000000000000000000000000"/>
                                            <bean class="org.esupportail.nfctag.beans.DesfireKey"
                                                  p:keyNo="01" p:keyVer="01" p:key="00000000000000000000000000000000"/>
                                            <bean class="org.esupportail.nfctag.beans.DesfireKey"
                                                  p:keyNo="02" p:keyVer="01" p:key="00000000000000000000000000000000"/>
                                            <bean class="org.esupportail.nfctag.beans.DesfireKey"
                                                  p:keyNo="03" p:keyVer="01" p:key="00000000000000000000000000000000"/>
                                            <bean class="org.esupportail.nfctag.beans.DesfireKey"
                                                  p:keyNo="04" p:keyVer="01" p:key="00000000000000000000000000000000"/>
                                            <bean class="org.esupportail.nfctag.beans.DesfireKey"
                                                  p:keyNo="05" p:keyVer="01" p:key="00000000000000000000000000000000"/>
                                    </util:list>
	                    </property>
			</bean>

        	</util:list>
	</property>
    </bean>

    <bean id="desfireAuthConfigComueUpdateEsupSgc" class="org.esupportail.nfctag.service.api.impl.DesfireUpdateConfig">
                <property name="desfireTag" ref="desfireComueTagUpdateEsupSgc" />
                <property name="description" value="Mise à jour ESUP SGC"/>
    </bean>
	

...