Signing documents with OCA

Within the framework of the Odoo Community Association (OCA), we have worked on developing a community solution aimed at managing document signatures from Odoo. In a previous article, we analyzed the system provided by Odoo Enterprise, reviewing its strengths and weaknesses. With that information, we set out to create a possible tool that would meet our needs as comprehensively as possible.

The main drawback of the system proposed by Odoo Enterprise that we identified is that it is considered a simple signature. According to the eIDAS regulation, in all digital signatures, we cannot deny their legal effects or admissibility as evidence in a judicial procedure. However, we may find that in a legal process, its evidentiary burden is weak. The reason is that we cannot ensure that the document has not been altered or that the signer is who they claim to be. We believe that it is essential to give the maximum credibility to these types of documents to reduce the possibility of challenge. In all these cases, we must increase the evidentiary burden by adding the maximum amount of information to ensure its credibility.

Therefore, we will address each of these issues separately to find solutions.

Documentary Immutability

Immutability ensures that we have not modified the document. The first solution is to create a chained system so that if I try to alter a document, I alter all the subsequent documents. This is a clever and interesting solution that allows us to easily resolve the issue of a third party modifying the file, as they would have to alter the entire chain. Unfortunately, this could happen if someone were to enter our database. In other words, this solution protects the instance owner, but to some extent, we can consider that they could modify the entire chain without incidents.

In such situations, it is more appropriate to use a trusted third party. This would involve sending the chained information to a third party that can certify in the future that I have not altered it. This could be done using blockchain or a Time Stamping Authority (TSA).

With this certification, we can prove at a given moment that neither we nor anyone else has been able to modify that document.

Signer Identification

Another relevant point is being able to identify the signer unequivocally. Without being able to ensure who the signer is, we may find that our document is not accepted. There are cases in Europe where, due to the inability to ensure the identity of a contract signer, the contract has been considered invalid.

In this case, we should try to provide the maximum number of proofs that the signer is the person we claim. The first things we can easily obtain are:

  • Device geolocation
  • Signature image

Unfortunately, geolocation can be easily replaced from the client. In the case of the image, it is not considered valid as it is easily replicable.

Another viable solution would be to use OTP (One Time Password) systems, generally linked to the signer's mobile phone. In many countries, this is considered valid because I must present my identification to obtain a mobile phone.

Another solution would be to use a biometric signature system. The big problem in this case is the storage of this information as it is extremely sensitive data. In this case, our proposal is to use a dual-key system so that the server never has the private key needed to decrypt the data. This solution allows us to encrypt the data directly from the client's device, and the data will never be decrypted at the server level. In fact, it will not have the decryption key. Once we have defined the storage strategy, we only need to check if this system allows us to identify the signer reliably.

Roadmap

At Dixmit, we have been working on this issue by proposing the necessary improvements to carry out the mentioned points. As of today, we have progressed in:

  • Internal system for the immutability of a document
  • Obtaining geolocation data
  • Encryption system for sensitive data from the client
  • Creation of a biometric signature system

The next steps to be taken include:

  • Integration with a trusted third party to ensure all existing data with greater reliability.
  • Verification of the biometric signature system. It is important to conduct verification and define how to check if two signatures are equivalent.

We are committed to improving and securing document signatures in Odoo, and we will continue working to offer more robust and reliable solutions. Stay tuned for our updates!

Manage your Quality Processes with Odoo