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.

...

Info

Une clé de type p:keyStart="0000000000000000" p:keyTypeStart="DES"  est une clé PICC par défaut pour une carte Desfire. Avec cette clé la carte reste formatable facilement à l'aide d'un smartphone par exemple.

 


Si l'on détail, l'objet DesfireTag peut contenir une liste de DesfireApplication.

...

Bloc de code
languagexml
themeRDark
<bean class="org.esupportail.nfctag.beans.DesfireApplication" p:desfireAppId="AB0123" p:amks="0B" p:nok="84">
 <property name="files">
  <util:list>
   <bean class="org.esupportail.nfctag.beans.DesfireFile" p:fileNumber="00" p:communicationSettings="03" p:accessRights="1223" p:fileSize="1F0000" p:tagWriteApi-ref="idp2sTagWriteEsupSgc"/>
  </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"/>
  </util:list>
 </property>
</bean>

 


Dans cet exemple, l'application a pour identifiant p:desfireAppId="AB0123", elle est configurée avec p:nok  à 84 qui indique 4 clés AES  

...

Ajout d'une configuration NFC pour une authentification en DESFIRE (NfcAuthConfig)

...


Bloc de code
languagexml
themeRDark
<bean id="desfireAuthSiServices" class="org.esupportail.nfctag.service.api.impl.DesfireReadConfig">
	<property name="desfireKeyNumber" value="01"/>
	<property name="desfireFileNumber" value="00"/>
	<property name="desfireAppId" value="AB0123"/>
	<property name="desfireAppName" value="si-service"/>
	<property name="desfireFileOffset" value="000000"/>
	<property name="desfireKey" value="00000000000000000000000000000000"/> 
	<property name="description" value="Authentification SI Service COMUE"/>
</bean>

 


Avec cet exemple le client ira lire le fichier desfireFileNumber "00" de l'application desfire desfireAppId : AB0123 présente sur la carte à l'aide de la clé desfireKey : 00000000000000000000000000000000.
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)

Ajout d'une application d' affichage du verso de la carte (AppliExtApi)


 

Bloc de code
languagexml
themeRDark
    <bean id="esupSgcVersoExtApi" class="org.esupportail.nfctag.service.api.impl.AppliExtRestWs">
    	<property name="isTagableUrl" value="https://esup-sgc-test.univ-ville.fr/wsrest/nfc/isTagable"/>
    	<property name="validateTagUrl" value="https://esup-sgc-test.univ-ville.fr/wsrest/nfc/validateTag"/>
    	<property name="getLocationsUrl" value="https://esup-sgc-test.univ-ville.fr/wsrest/nfc/locationsVerso"/>
    	<property name="displayUrl" value="https://esup-sgc-test.univ-ville.fr/wsrest/nfc/verso"/>
    	<property name="description" value="Web Service Verso"/>
    </bean>

La nouvelle propriété displayUrl permet de définir l'emplacement des données qui seront affichées suite à la validation d'un tag. Esup-sgc peut retourner le verso en fonction du csn via cette adresse https://esup-sgc-test.univ-ville.fr/wsrest/nfc/verso.


Mise à jour électronique de cartes

Mise à jour classique

Esup-nfc-tag, en plus d'encoder les cartes, notamment en lien avec esup-sgc, peut permettre de mettre à jour vos cartes Desfire : il peut vous permettre d'ajouter des applications Desfire sur des cartes qui ont été prélablement éditées, ce si vous avez connaissance de la master-key.

Dans l'exemple ci-dessous, on montrer comment on peut déclencher des ajouts d'applications en fonction de dernières dates d'encodage (ou mises à jour élecroniques) de cartes.

Ici les dates de mises à jour électroniques sont récupérées depuis esup-sgc et les données à écrire dans le fichier également.

Notez qu'on met que des clefs AES 0000... pour les clefs des applications. Et on a gardé la master-key par défaut des cartes Desfire : clef DES 0000.... 

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="03" 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>
	

Mise à jour par essais successifs

Suivant l'historique de votre gestion de cartes (SGC différents, erreurs de la part de prestataires, misconfigurations, fusions d'établissements), vous pouvez potentiellement vous retrouver avec un parc de cartes en activité dans des états différents et sans même avoir la possibilité d'identifier l'état de chacune d'elles.

On a pu notamment être confrontés à des cartes qui avaient des master-key restées par défaut, ou qui ont pu être positionnées différemment d'une année sur l'autre ... 

esup-nfc-tag est capable de proposer via une seule et unique salle de badgeage de faire des tentatives de mises à jour successives. Il joue ces tentatives les unes à la suite des autres, jusqu'à la dernière. Seul le "résultat" de la dernière tentative est pris en compte comme résultat global du badgeage.

Ces tentatives sont autant de  configurations de DesfireTag que voulu.

Voici un exemple d'une mise à jour par essais successifs - on se place dans un cas où on a des cartes qui peuvent avoir ou non une master-key en AES à 11111111111111111111111111111111 ou 22222222222222222222222222222222.
On souhaite ajouter une application F22221 avec fichier vide et des clefs (2 clefs DES ici → 82). On souhaite positionner une master-key en AES à 33333333333333333333333333333333 et que ça badge valide ci effectivement on a finalement une master-key AES à 33333333333333333333333333333333


Bloc de code
languagexml
themeRDark
    <bean id="desfireComueTagUpdateEsupSgc" class="org.esupportail.nfctag.beans.DesfireTag" p:keyStart="11111111111111111111111111111111" p:keyTypeStart="AES" p:keyFinish="33333333333333333333333333333333" p:keyTypeFinish="AES" p:keyVersionFinish="00">
   	 	<property name="applications">
   	 		<util:list>
	            <bean class="org.esupportail.nfctag.beans.DesfireApplication"
	                    p:desfireAppId="F22221" p:amks="0B" p:nok="82">
	                    <property name="files">
	                            <util:list>
	                                    <bean class="org.esupportail.nfctag.beans.DesfireFile"
	                                          p:fileNumber="00" p:communicationSettings="03" p:accessRights="1111" p:fileSize="1F0000"/>
	                            </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"/>
	                            </util:list>
	                    </property>
	            </bean>
        	</util:list>
		</property>
    </bean>

	<bean id="desfireComueTagUpdateEsupSgc2" class="org.esupportail.nfctag.beans.DesfireTag" p:keyStart="22222222222222222222222222222222" p:keyTypeStart="AES" p:keyFinish="33333333333333333333333333333333" p:keyTypeFinish="AES" p:keyVersionFinish="00">
		<property name="applications">
			<util:list>
				<bean class="org.esupportail.nfctag.beans.DesfireApplication"
					  p:desfireAppId="F22221" p:amks="0B" p:nok="82">
					<property name="files">
						<util:list>
							<bean class="org.esupportail.nfctag.beans.DesfireFile"
								  p:fileNumber="00" p:communicationSettings="03" p:accessRights="1111" p:fileSize="1F0000"/>
						</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"/>
						</util:list>
					</property>
				</bean>
			</util:list>
		</property>
	</bean>

	<bean id="desfireComueTagUpdateEsupSgcFinal" class="org.esupportail.nfctag.beans.DesfireTag" p:keyStart="33333333333333333333333333333333" p:keyTypeStart="AES" p:keyFinish="33333333333333333333333333333333" p:keyTypeFinish="AES" p:keyVersionFinish="00"/>

    
	<bean id="desfireAuthConfigComueUpdateEsupSgc" class="org.esupportail.nfctag.service.api.impl.DesfireUpdateConfig">
    	<property name="desfireTags">
			<util:list>
				<ref bean="desfireComueTagUpdateEsupSgc"/>
				<ref bean="desfireComueTagUpdateEsupSgc2"/>
				<ref bean="desfireComueTagUpdateEsupSgcFinal"/>
			</util:list>
		</property>
        <property name="description" value="Mise à jour DES Test"/>
    </bean>