Foire aux questions sur le service

Nous avons construit cette foire aux questions sous forme d'un vrai/faux à propos de Efalia Sign. Un moyen ludique de découvrir ce nouveau service et démystifier les possibilités offertes par la réglementation en matière de signature électronique.

Toutes les questions portant sur la conformité au droit de Efalia Sign ont été rassemblées dans une FAQ spécifique.

La signature électronique avec Efalia Sign

Il y a une partie visible directement dans le document : une page est ajoutée avec toutes les informations sur la signature (nom du signataire, heure de signature, etc.) et des informations plus détaillés qui apparaissent dans un onglet ajouté par Acrobat Reader.

Dans l'onglet « Panneau de signature », un résumé indique que toutes les signatures sont valables.

Pour cela Adobe se base sur les certificats fournis par ChamberSign. Comme cette autorité est reconnue par Adobe, vous voyez, dans le détail du certificat, la mention « Source de confiance obtenue auprès de : Adobe Approved Trust List (AATL) ». Par ailleurs, l'horodatage étant fait à partir d'un serveur d'horodatage accrédité, Universign (groupe Oodrive), vous voyez, dans le détail du certificat, la mention « La signature comprend un tampon temporel incorporé ».
L'utilisateur du service Efalia Sign, authentifié à la fois avec son adresse mail et son téléphone portable, procède à la signature du contrat qui lui a été adressé par le déposant. Efalia Sign appose sur le document une marque infalsifiable attestant de cette signature horodatée et de la fiabilité de la procédure suivie.

Le certificat étant porté par Efalia Sign, on a la mention « Signé par Efalia Sign » mais on retrouve l'identité du signataire dans le « détail de la signature »
Les documents signés électroniquement sont auto-suffisants et ne dépendent pas de l'éditeur de Efalia Sign : la vérification de sa fiabilité est possible pour toute personne disposant dudit document électronique, au moyen du lecteur PDF de son choix.

C'est pour cela que nous n'avons pas vocation à archiver les contrats signés au-delà de 6 mois, le temps que tous les signataires les récupèrent. Nous conservons en revanche les traces techniques (logs, accès, adresses IP, etc.), en tant que tiers de confiance pendant 10 ans ; mais ces traces techniques sont aussi disponibles en téléchargement pour les déposants.

FreeMarker template error (HTML_DEBUG mode; use RETHROW in production!)

The following has evaluated to null or missing:
==> app.getPageParam('part.' + part + '.title')  [in template "page/product/faq.ftl" at line 12, column 43]

----
Tip: If the failing expression is known to be legally refer to something that's sometimes null or missing, either specify a default value like myOptionalVar!myDefault, or use <#if myOptionalVar??>when-present<#else>when-missing</#if>. (These only cover the last step of the expression; to cover the whole expression, use parenthesis: (myOptionalVar.foo)!myDefault, (myOptionalVar.foo)??
----

----
FTL stack trace ("~" means nesting-related):
	- Failed at: ${app.getPageParam("part." + part + "...  [in template "page/product/faq.ftl" at line 12, column 41]
----

Java stack trace (for programmers):
----
freemarker.core.InvalidReferenceException: [... Exception message was already printed; see it above ...]
	at freemarker.core.InvalidReferenceException.getInstance(InvalidReferenceException.java:134)
	at freemarker.core.EvalUtil.coerceModelToTextualCommon(EvalUtil.java:451)
	at freemarker.core.EvalUtil.coerceModelToStringOrMarkup(EvalUtil.java:374)
	at freemarker.core.DollarVariable.calculateInterpolatedStringOrMarkup(DollarVariable.java:96)
	at freemarker.core.DollarVariable.accept(DollarVariable.java:59)
	at freemarker.core.Environment.visit(Environment.java:363)
	at freemarker.core.IteratorBlock$IterationContext.executedNestedContentForCollOrSeqListing(IteratorBlock.java:316)
	at freemarker.core.IteratorBlock$IterationContext.executeNestedContent(IteratorBlock.java:272)
	at freemarker.core.IteratorBlock$IterationContext.accept(IteratorBlock.java:243)
	at freemarker.core.Environment.visitIteratorBlock(Environment.java:596)
	at freemarker.core.IteratorBlock.acceptWithResult(IteratorBlock.java:108)
	at freemarker.core.IteratorBlock.accept(IteratorBlock.java:94)
	at freemarker.core.Environment.visit(Environment.java:327)
	at freemarker.core.Environment.visit(Environment.java:333)
	at freemarker.core.Environment.process(Environment.java:306)
	at freemarker.template.Template.process(Template.java:386)
	at com.adminext.contratprive.view.FreeMarkerView.renderMergedOutputModel(FreeMarkerView.java:243)
	at org.springframework.web.servlet.view.AbstractView.render(AbstractView.java:303)
	at org.springframework.web.servlet.DispatcherServlet.render(DispatcherServlet.java:1243)
	at org.springframework.web.servlet.DispatcherServlet.processDispatchResult(DispatcherServlet.java:1027)
	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:971)
	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:893)
	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:968)
	at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:859)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:634)
	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:844)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at com.adminext.contratprive.web.filter.ContextApplicationFilter.doFilter(ContextApplicationFilter.java:34)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:262)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:121)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at com.adminext.commons.web.filter.DuplicateResponseFilter.doFilterInternal(DuplicateResponseFilter.java:498)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:262)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at com.adminext.commons.util.spring.transaction.TransactionErrorRequestFilter.doFilterInternal(TransactionErrorRequestFilter.java:29)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:262)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
	at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:688)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
	at org.apache.coyote.ajp.AjpProcessor.service(AjpProcessor.java:415)
	at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
	at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
	at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1639)
	at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
	at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
	at java.base/java.lang.Thread.run(Thread.java:829)