Mise en oeuvre de la messagerie sécurisée Apicrypt

Les termes et conditions de la licence GPL v3 ne s’appliquent pas aux composants APICRYPT, fournis par la société APICEM SARL, APICEM Développement ou l’association APICEM, qui restent la propriété exclusive desdites entités. Le code source des composants APICRYPT ne saurait être distribué dans le cadre de la licence du logiciel MedShakeEHR.
La réutilisation du code source du logiciel MedShakeEHR à quelques fins que ce soit nécessitera pour le responsable de développements de prendre contact avec la société APICEM SARL afin de procéder à l’établissement d’un contrat de partenariat ainsi qu’à des tests de validité de l’intégration des composants APICRYPT.
Le logiciel issu de cette réutilisation ne peut en effet prétendre être « compatible APICRYPT » sans avoir effectué ces démarches préalables et la société APICEM SARL ne saurait être tenue responsable d’éventuels problèmes de réceptions, de traitements ou d’envois de messages au travers de ce logiciel.

Configuration générale

Obtenir les binaires Apicrypt

L’auteur de MedShakeEHR est développeur enregistré auprès d’APICEM (société gérant Apicrypt). Il est en droit d’intégrer dans ses réalisations les binaires fournis par APICEM pour le chiffrement / déchiffrement des données Apicrypt v1 comme v2. Ces composants seront donc communiqués à tout professionnel désireux de faire de MedShakeEHR son outil de travail quotidien.

Notez qu’à la demande d’APICEM, vous ne trouverez pas certaines portions du code de MedShakeEHR dans le repository public, en particulier pour la mise en œuvre d’Apicrypt v2.

Mise en œuvre des binaires Apicrypt

Apicrypt v1 :

Nous avons cherché la solution la plus simple et la plus efficace pour l’utilisation conjointe des binaires Apicrypt et d’un serveur web comme celui nécessaire à MedShakeEHR.
La solution retenue est l’ajout des lignes suivantes à /etc/sudoers :

www-data ALL=(ALL) NOPASSWD:/home/EHR/apicrypt/bin/apicrypt
www-data ALL=(ALL) NOPASSWD:/home/EHR/apicrypt/bin/apicryptpj
www-data ALL=(ALL) NOPASSWD:/home/EHR/apicrypt/bin/apiuncrypt
www-data ALL=(ALL) NOPASSWD:/home/EHR/apicrypt/bin/apiuncryptpj

Vérifier les binaires qui doivent bien avoir les droits d’exécution et appartenir à root.

Apicrypt v2 :

Un seul binaire est utilisé ici. Il s’agit de celui qui sert à déchiffrer les nouvelles clefs envoyées annuellement. On le trouve dans /home/EHR/apicrypt/bin/ApiV2AESUtility. Il convient de s’assurer qu’il soit exécutable par www-data.

Pour Apicrypt v2, il convient également de désactiver le répertoire /tmp privé d’Apache de cette façon si PHP est exécuté comme un module :

cp /lib/systemd/system/apache2.service /etc/systemd/system/
nano  /etc/systemd/system/apache2.service

Définir PrivateTmp=false

Relancer ensuite :

systemctl daemon-reload
systemctl restart apache2.service

Considérer aussi, si persistance de problèmes, la possibilité que le service PHP puisse présenter la même problématique ou que le php.ini contienne une directive sys_temp_dir. Voir également sous Debian /etc/ssl/openssl.conf et le paramètre CipherString = DEFAULT@SECLEVEL=2.

Si vous souhaitez que l’utilisateur administrateur puisse relancer le service Apicrypt 2 depuis la zone de configuration, ajoutez à /etc/sudoers les lignes suivantes :

Cmnd_Alias      RESTART_APICRYPT = /usr/sbin/service compagnonApicrypt *

www-data ALL=(ALL) NOPASSWD:RESTART_APICRYPT

Configuration générale de MedShakeEHR pour Apicrypt 1 et 2

Les réglages généraux pour l’utilisation d’Apicrypt en envoi et en réception se trouvent dans "Configuration > Paramètres courants > Paramètres globaux" à l’onglet Apicrypt.
Les paramètres sont documentés in situ et leur compréhension ne devrait pas poser de difficulté particulière (l’article "Installation et configuration initiale de MedShakeEHR" peut offrir également quelques explications supplémentaires) .

Configuration pour un utilisateur particulier

Utilisateur ne possédant pas sa propre adresse mail Apicrypt nominative

Afin qu’un utilisateur puisse accéder au courrier entrant en provenance d’une ou plusieurs boites Apicrypt, il convient de personnaliser (voir cet article) pour cet utilisateur le paramètre apicryptInboxMailForUserID. Celui doit contenir l’ID numérique du compte utilisateur qui relève le mail (cf. paragraphe suivant). Si on souhaite un accès à plusieurs comptes, on peut séparer les ID numériques par des virgules (et sans espace).

Utilisateur possédant sa propre adresse mail Apicrypt nominative

Les paramètres suivants devront être personnalisés utilisateur par utilisateur (voir cet article) pour Apicrypt v1 :
-  apicryptAdresse
-  apicryptUtilisateur
-  apicryptPopUser
-  apicryptPopPassword

Pour Apicrypt v2 :
-  apicryptAdresse
-  apicryptUtilisateur
-  apicryptPopPassword
-  apicrypt2CertName (optionnel)
-  apicrypt2CertPassword (optionnel)

On pourra configurer également le paramètre suivant si l’utilisateur doit avoir accès aux mails entrants d’autres utilisateurs (cf. paragraphe précédent).
-  apicryptInboxMailForUserID

Mise en place de la relève automatique des mails à horaire programmé

MedShakeEHR est fourni avec 2 scripts de relève automatique des boites Apicrypt configurées dans le logiciel, suivant la version d’Apicrypt mise en oeuvre.
Le paramétrage s’effectue dans "Configuration > Paramètres courants > Tâches planifiées".
Le principe est d’examiner chaque compte utilisateur et d’en déduire lesquels comportent une adresse Apicrypt puis de boucler d’adresse en adresse en lançant la relève des mails. Chaque mail relevé est attaché au compte utilisateur qui porte l’adresse correspondante.

NB : pour que la relève fonctionne, il convient de mettre en paramètre spécifique apicryptAdresse à chaque utilisateur, même s’il est unique dans le système.
NB : les scripts fournis effacent en fin de processus les mails du serveur ! Ne pas utiliser pour test !

Intégration et mise à jour des clefs Apicrypt

L’intégration des clefs Apicrypt comme la mise à jour annuelle peut se faire via la page Configuration du logiciel.

Le principe est de configurer initialement le système avec le bon paramètre apicryptCheminVersClefs, c’est à dire chemin vers le répertoire" Clefs" Apicrypt contenant les clefs de l’utilisateur. Il convient en effet que les clefs soient bien dans un répertoire Clefs (avec majuscule) pour le bon fonctionnement. Le chemin indiqué ne doit pas indiquer le répertoire Clefs final.

Comme pour chaque paramètre de configuration, celui-ci peut être surchargé et personnalisé pour chaque utilisateur (voir cet article). Il est donc possible de définir un répertoire par utilisateur (mais cela ne semble pas absolument nécessaire).

Pour une gestion courante des clefs par interface web, il convient de vérifier que le répertoire Clefs soit accessible en lecture / écriture par le serveur web.
Indications visuelles et messages explicatifs vous renseigneront à ce sujet sur la page de gestion.

Certaines clefs étant fournies chiffrées à l’utilisateur (fichier se terminant par l’extension .aes), MedShakeEHR propose de les déchiffrer après upload.
Le code long de déchiffrage est alors nécessaire pour accomplir le processus correctement.

Vérification de l’état du système

Notez (v5.9.0) que la page Informations système en zone Configuration permet de vérifier la bonne réponse au ping du service Apicrypt v2.

 

Article précédent

Mise en production initiale

LAP : mise en production

 

Article suivant