Caliopen, une messagerie web multi-protocole sécurisante

23
7
oct.
2015
Internet

Caliopen est une solution logicielle en ligne, dédiée à la création d'une messagerie multi protocole avec une indication sur la sureté de chacun des systèmes utilisés.

Le but est de proposer les messageries les plus sécurisées possible, selon le contact, et de faire abandonner progressivement les protocoles à problèmes.

Cela permet de ne pas casser les habitudes des utilisateurs, en leur proposant l'accès à toutes leurs messageries. C'est l'inverse de la création d'un nouveau protocole qui n'est supporté par personne.

Ce n'est pas l'auto-hébergement qui est visé, mais des structures plus grosses, qui pourraient gérer de quelques centaines à quelques dizaines de milliers d'utilisateurs. Cela permet de centraliser des fonctions comme la gestion du spam.

image de l'interface

« Les grandes aventures commencent toujours par un premier pas…

Un jour, Jérémie Zimmermann est passé chez moi, pendant ses vacances, en pleine affaire PRISM.

Nous avons parlé, ce jour là, d'un ancien projet de service de courrier électronique, respectueux de la vie privée des utilisateurs, mais qui - face à l'ogre Google - n'a jamais vu le jour. Jérémie m'a alors poussé à relancer ce projet, expliquant que désormais, grâce à Edward Snowden, une partie du public était sans doute prête à quitter GMail et les autres pour quelque chose de moins centralisé, de moins propriétaire, et qui ne soit pas basé sur l'exploitation du contenu de nos échanges privés.

Depuis ce jour, avec une équipe réunie grâce au soutien sans faille de Gandi et de la Quadrature du Net, nous avons travaillé dur. » - Laurent Chemla

« L’idée de Caliopen, c’est donc de ne plus considérer le protocole sous-jacent comme discriminant de la fonction. Dans Caliopen, une conversation se fait avec des contacts, quel que soit le protocole utilisé. Dès qu’un contact peut être joint en privé, par n’importe lequel de ces moyens, Caliopen le permet. Il regroupe dans une unique conversation tout ce qui est échangé avec un contact, quel que soit le protocole »

Une autre image de l'interface

Quelques question à Laurent Chemla :

Dans quel état est le projet pour l'instant ? Est-il utilisable ? Est-ce qu'il est déjà déployé ?

Houla non. Le prototype est encore loin d'une alpha. Si tout va bien et qu'on arrive à mettre en phase le front, le back et le module CQL pour Postfix (en cours de dev aussi), on devrait avoir, d'ici la fin de l'année, une alpha capable de recevoir des mails (SMTP), de les afficher, et peut-être d'y répondre.

Sinon quand est-ce que vous pensez sortir une première version utilisable ?

Une fois qu'on aura une alpha, et si celle-ci permet de lever des fonds pour payer une équipe, j'estime qu'il faudra encore 6 mois de travail intensif avant de pouvoir présenter un produit qui commencera à être assez utilisable pour qu'on puisse mettre en place une infrastructure de test à même de nous permettre d'affiner les réglages (calcul du PI, évaluation de la charge, amélioration d' l'UI en fonction des retours,
etc).

Je sais que ça semble lent, mais il faut comprendre qu'on part de rien, que le projet est très ambitieux, et qu'on est très peu à bosser dessus.

Qu'est-ce que le PI ?

"Privacy Index", c'est un indice associé à chaque élément de l'UI, ainsi que plus globalement au compte utilisateur, et qui affiche le niveau de confidentialité de chacun de ces éléments.

C'est l'aspect central du projet.

Il y a combien de développeurs sur le sujet actuellement ?

Selon la disponibilité des uns et des autres: 2 devs front, 2 back, un designer, un graphiste, et moi qui ne sert à rien.

Avez vous des prestataires techniques prêt à vous suivre, pour le déployer ? A quel prix ?

Gandi nous soutient, et bien entendu pense à l'utiliser le jour où il le pourra. Je ne doute pas qu'on trouvera rapidement d'autres soutiens quand on commencera à montrer un début de commencement de produit.

Vous cherchez des développeurs de logiciels libres, mais avec quel genre de compétence ?

Python/Pyramid/Ember, surtout.

Comment faites vous pour gérer les clefs privées, pour les protocoles chiffrés dans votre système ?

Je donnerai une conférence sur ce sujet en décembre aux JRES à Montpellier. Selon le choix de l'utilisateur (qui influencera le PI de son compte, ce qui devrait selon nous le pousser à faire l'effort de choisir la sécurité plutôt que la facilité), les clés privées seront stockées clientside (sans doute via l'extension End-To-End de Chrome mais nous verrons quel sera l'état de l'art au moment où nous en aurons besoin), ou serverside dans le cas où l'utilisateur considère qu'il est trop compliqué pour lui de perdre les fonctionnalités de recherche serverside (entre autres), mais dans ce cas au détriment de son PI. Il pourra changer d'avis plus tard, dans tous les cas.

Les clés publiques, au moins pour les clés PGP, seront diffusées via le DNS.

  • # A propos de la sécurité des mots de passe sur le serveur

    Posté par . Évalué à 5.

    Une autre question sur caliopen, comment stockez-vous les identifiants de
    connexion ? Sur le serveur ? Quel garanti de sécurité pouvez vous offrir
    sur ses login/mot de passe ? Doit-on obligatoirement faire confiance aux
    administrateurs de la caliopen ?

    "Ça fait plusieurs questions :)

    Comme souvent avec Caliopen, la réponse dépend du PI que l'utilisateur
    aura décidé d'atteindre (et toute l'UX est prévue pour le pousser à le
    faire évoluer le plus loin possible).

    Même s'il ne s'agit que d'un document préparatoire, déjà daté (2 ans),
    et loin d'être définitif, on prévoit dans le calcul du PI imaginé sur
    le pad dédie (https://pad.caliopen.org/p/confidentialit%C3%A9) que le
    PI de l'utilisateur va dépendre de son choix d'authentification, qui
    bien sûr au début sera sans doute de type login/password stocké sur le
    serveur, mais qui pourra ensuite évoluer jusqu'à l'utilisation d'un
    certificat client auto-signé, en passant par de la double-auth.

    Ensuite la question de la confiance: oui, dans une certaine mesure, il
    faudra faire confiance dans celui qui gère l'instance Caliopen qu'on a
    choisi d'utiliser. Elle-même (comme tout, dans Caliopen), aura un PI
    affiché sur le site de la future association (dépendant surtout de sa
    législation nationale), et aura signé, pour adhérer, la charte publique
    de Caliopen (qui reste à écrire).

    C'est un choix, motivé par le fait que Caliopen entend s'adresser à un
    public le plus large possible, très au delà des technophiles capables
    de se protéger au mieux, pourquoi pas en gérant eux-même leur propre
    système de messagerie (voir en installant eux-mêmes leur instance de
    Caliopen). Ce public là n'a pas les mêmes attentes que vous et moi,
    mais c'est à lui qu'il faut s'adresser si nous voulons que la sécurité
    globale des correspondances privées augmente significativement.

    Pour autant, il y aura toujours moyen, y compris dans une instance de
    Caliopen gérée par un tiers, d'atteindre un PI qui ne nécessitera pas
    de confiance envers l'hébergeur. Mais ça aura un coût, en terme de
    facilité d'usage, que le grand public n'est pas du tout prêt à payer
    et dont je ne m'attends pas à ce qu'il soit atteint par beaucoup de
    monde."

    "La première sécurité est la liberté"

  • # sceptique

    Posté par (page perso) . Évalué à 5. Dernière modification le 07/10/15 à 19:30.

    Je suis de plus ou moins près la plupart des outils ou projets d'outils de communication, et il faut dire que celui-ci est probablement un des plus flous et donc des plus difficiles à juger.

    Il y a de bonnes idées, enfin surtout une: un indicateur de la qualité de la protection.
    J'ai vu la conférence il y a 2 ans à PSES (les choses ont probablement évolué depuis), et il y a 2 choses que je regarde particulièrement de travers: la mise en jeu (« gamification ») et le « label » lié à la charte mentionnée ici.

    La mise en jeu je trouve ça assez symptomatique de la société actuelle: le tout divertissement, considérer qu'un utilisateur est incapable d'effort intellectuel si on ne le prend pas par la main et qu'on n'enrobe pas le tout de sucre.

    Le label me pose de nombreux problèmes: comment la charte est écrite ? Qui décide de son attribution ? Il y aura(it) une assoce derrière CaliOpen: comment est-elle organisée ? Qui prend les décisions ? Quid d'une instance qui ne signe pas la charte ? Et des autres pays ?

    Disons que je serais moins sceptique si c'était plus clair, il faut voir ce que ça va devenir.

    Il y a du monde sur le projet (7 personnes c'est une (très) grosse équipe pour un projet libre), et c'est probablement le plus visible en France (il a même été mentionné dans le diplo !), et cela peut donner quelque chose.

    Toujours est-il qu'on n'a que très peu d'infos dessus, et que je pense que c'est une erreur de partir sur du multi-protocoles, quand XMPP répond largement à tout ce que je vois pour le moment.

    • [^] # Re: sceptique

      Posté par (page perso) . Évalué à 5.

      Je viens de voir un nouvel article d'explication, https://reflets.info/re-expliquer-caliopen-encore/ et qui correspond à ce que j'avais compris. C'est un peu dommage de réinventer la roue… Enfin bonne chance tout de même au projet.

    • [^] # Re: sceptique

      Posté par (page perso) . Évalué à 3.

      La mise en jeu je trouve ça assez symptomatique de la société actuelle: le tout divertissement, considérer qu'un utilisateur est incapable d'effort intellectuel si on ne le prend pas par la main et qu'on n'enrobe pas le tout de sucre.

      La remarque je trouve ça assez symptomatique des développeurs dans leur tour d'ivoire: le tout qui doit avoir un effort à faire sinon crève, considérer qu'un utilisateur doit faire un effort intellectuel et qu'il ne faut pas enrober, et qu'il faut qu'il en chier pour mériter.

      ben désolé, mais les utilisateurs ont vraiment d'autres choses à faire, surtout quand ils savent que les développeur peuvent faire des choses plus simples.
      Tu considères que l'homme est au service de la machine, d'autres considèrent que la machine est au service de l'homme.
      Après, c'est avec ce genre de mentalité qu'on arrive à Facebook/Apple/Google, les seuls à faire attention aux utilisateurs, les gens voulant que ça soit différent n'ayant pas de considération pour les utilsateurs (bon, la, il y a aussi framasoft qui aurait compris.

      Bref, symptomatique, aussi.

      • [^] # Re: sceptique

        Posté par . Évalué à 8.

        D'autant plus qu'il ne faut pas bien longtemps pour réaliser que les utilisateurs SONT incapables d'effort intellectuel.

        ->[]

        • [^] # Re: sceptique

          Posté par (page perso) . Évalué à 2.

          il ne faut pas bien longtemps pour réaliser que les utilisateurs SONT incapables d'effort intellectuel.

          justement, framasoft ouvre des services.
          ton message ne fait passer que s'il n'y a pas d'utilisateurs, il n'y a pas de problèmes

          D'autres personnes sont plus intelligentes et mettent en œuvre le service que tu décries et sont prêtes à gérer tes réticences.
          Quelles réticences as-tu ?
          Question accessoire et facultative (la réponse) : pourquoi te mettre ces limites ? (mon boulot me l'impose parfois, pour autant je ne m'y reconnais pas et ne vais pas les promouvoir à titre personnel, même si je vais le présenter différemment selon mes interlocuteurs)

      • [^] # Re: sceptique

        Posté par (page perso) . Évalué à 7.

        ben désolé, mais les utilisateurs ont vraiment d'autres choses à faire, surtout quand ils savent que les développeur peuvent faire des choses plus simples.

        Tu devrais faire de la télé-politique tu sais, tu as déjà l'arrogance et la façon de parler à la place des autres (« les français veulent ci », « les français pensent ça »). Bon il faut encore travailler un peu le style par contre.

        Tu considères que l'homme est au service de la machine, d'autres considèrent que la machine est au service de l'homme.

        Non justement, je considère que l'homme est capable de comprendre son outil, et que c'est nécessaire s'il ne veut pas être à son service. À ne plus rien comprendre ou savoir faire soi même, on en perd le contrôle: du courriel envoyé en clair sans le savoir à la voiture et son moteur caché qui se fait contrôler à distance.

        Mais ça il faut faire un effort intellectuel pour le comprendre.

        les gens voulant que ça soit différent n'ayant pas de considération pour les utilsateurs (bon, la, il y a aussi framasoft qui aurait compris.

        Oui bien sûr, pas manichéen pour un sou avec ça ! Donc soit on prend l'utilisateur pour un con, soit on n'a pas de considération pour lui, superbe.

        • [^] # Re: sceptique

          Posté par (page perso) . Évalué à 3.

          Donc soit on prend l'utilisateur pour un con

          Je te défie de me démontrer que j'ai dit ça.
          Merci pour la démo, tout ce qu'il y a de la tour d'ivoire, où l’utilisateur devrait mériter.

          Mais ça il faut faire un effort intellectuel pour le comprendre.

          Comme il faut un effort intellectuel pour comprendre que les gens ne souhaitent pas entrer dans ton éducation forcée, et comme il faut faire un effort intellectuel pour ne pas transformer "non souhait d'apprendre quand ce n'est pas utile" en "con".

          Bon, en attendant, le monde restera avec Facebook et compagnie, faute de gens qui ne comprennent pas que les gens sont tout sauf con, ils ont le malheur de comprendre qu'on peut faire mieux et ne se prive pas d'utiliser ce qui répond à leur demande.

          Non justement, je considère que l'homme est capable de comprendre son outil,

          Il peut. Mais il n'a pas le temps de tout comprendre.
          Comme toi tu peux comprendre plein de chose mais ne le fait pas (je le sais, car c'est techniquement impossible de tout comprendre).

          J'imagine que soit tu ne prends jamais l'avion, soit tu sais comment ça fonctionne, à la pièce près (ce que même les gens concevant les avions ne savent pas, car ils sont spécialisés).
          Bref, on voit juste des gens passionnés par un domaine et qui pensent que tous les autres devraient connaitre leur domaine, alors qu'ils font exactement ce qu'ils critiquent pour d'autres domaines (car c'est impossible de faire comme tu dis pour tous les domaines).

          Exactement ma critique dans mon premier commentaire, mais en encore plus caricatural.

          • [^] # Re: sceptique

            Posté par (page perso) . Évalué à 6.

            Je te défie de me démontrer que j'ai dit ça.

            considérer qu'un utilisateur doit faire un effort intellectuel et qu'il ne faut pas enrober, et qu'il faut qu'il en chier pour mériter.

            Tu considères que faire un effort intellectuel c'est en chier. Une personne incapable d'allumer son cerveau, c'est la définition d'un con.

            Comme il faut un effort intellectuel pour comprendre que les gens ne souhaitent pas entrer dans ton éducation forcée, et comme il faut faire un effort intellectuel pour ne pas transformer "non souhait d'apprendre quand ce n'est pas utile" en "con".

            Qui t'as dit qu'il y avait un non souhait d'apprendre (sources ?) ? Et d'où ça n'est pas utile ?

            Comme toi tu peux comprendre plein de chose mais ne le fait pas (je le sais, car c'est techniquement impossible de tout comprendre). […] J'imagine que soit tu ne prends jamais l'avion, soit tu sais comment ça fonctionne, à la pièce près (ce que même les gens concevant les avions ne savent pas, car ils sont spécialisés).

            Ça c'était facile à voir venir avec tes gros sabots. Donc:

            1) je n'ai jamais dit que j'étais contre la simplification, c'est la mise en jeu systématique que je critique

            2) je n'ai jamais dit non plus qu'il fallait tout comprendre tout le fonctionnement interne. Mais bon comme d'hab tu prends la partie de la phrase qui t'intéresses, tu l'entends comme ça t'arrange, et après tu enrobe ça d'attaques directes.

            3) je ne connais pas tous les détails du fonctionnement de ma voiture, mais je sais comment et pourquoi il faut mettre de l'huile et de l'eau, et ce que c'est que faire une vidange. Si je vois un garagiste me faire une vidange pour 1000 €, je sais qu'il se fout de moi. Ici c'est pareil, un utilisateur doit savoir qu'un message passe en clair la plupart du temps, je ne lui demande pas de savoir ce que c'est que SMTP ou IMAP. Et le chiffrement est une notion que j'estime importante à comprendre, là encore je ne dis pas qu'il faut connaître les formules mathématique, mais savoir que ça sert à fermer l'enveloppe c'est utile oui. Et je ne pense pas que la mise en jeu soit la bonne façon d'apprendre. Peut-être que je me trompe, c'est un ressenti, mais j'attends toujours des arguments pour en discuter.

            4) je sais que tu fais ça parce que ça t'amuses et que tu ne cherches qu'à susciter de la réaction (et surtout pas à discuter), mais la mise en jeu n'était qu'une partie anecdotique du message qui dit pourquoi je suis dubitatif avec CaliOpen pour le moment.

            Il peut. Mais il n'a pas le temps de tout comprendre.

            Ce serait bien d'arrêter de parler à la place des autres. Et je vais te donner un scoop: je suis un utilisateur. Et c'est rigolo, je ne me reconnais pas du tout dans ton discours.

            Bref, on voit juste des gens passionnés par un domaine et qui pensent que tous les autres devraient connaitre leur domaine, alors qu'ils font exactement ce qu'ils critiquent pour d'autres domaines (car c'est impossible de faire comme tu dis pour tous les domaines).

            Que tu fasses exprès ou pas d'être à côté de la plaque c'est une chose, mais ça serait bien que t'évites de parler à ma place. D'une je n'ai pas critiqué l'utilisateur (qui n'est pas un « il », mais un « nous ») mais la mise en jeu par les concepteurs (et j'ai dit que je regardais de travers), et de deux je n'applique pas ça qu'à l'informatique. J'entends certains gens dire que le cinéma n'est que pour se divertir et se vider la tête, et je ne pense pas comme ça. Et je n'ai jamais dit non plus que tous les autres devaient connaître le domaine ; pour reprendre tes mots: « Je te défie de me démontrer que j'ai dit ça. ».

            • [^] # Re: sceptique

              Posté par . Évalué à 0.

              considérer qu'un utilisateur doit faire un effort intellectuel et qu'il ne faut pas enrober, et qu'il faut qu'il en chier pour mériter.

              Tu considères que faire un effort intellectuel c'est en chier. Une personne incapable d'allumer son cerveau, c'est la définition d'un con.

              Il n'a pas dit que la personne était incapable d'allumer son cerveau, mais qu'elle n'a pas envie de faire nécessairement cet effort : pas d'intérêt pour la chose, pas le temps, bien d'autres problèmes à régler à côté…

              Mais dans le fond, je ne suis pas sûr que vous soyez foncièrement en désaccord. Une interface au fonctionnement intuitif, pour laquelle la prise en main ne demande pas de comprendre ce qu'il y a sous le capot : l'interface web de SàT est bien faite de ce côté là. Ce qui semble plus te gêner est de le faire sous forme ludique à la manière d'un jeu, non ?

              Sapere aude ! Aie le courage de te servir de ton propre entendement. Voilà la devise des Lumières.

              • [^] # Re: sceptique

                Posté par (page perso) . Évalué à 3.

                Ce qui semble plus te gêner est de le faire sous forme ludique à la manière d'un jeu, non ?

                Oui, c'est un point qui me gêne, et de manière générale j'ai l'impression que c'est une chose qu'on voit de plus en plus souvent. J'ai rien contre le divertissement bien sûr, mais si ça devient le but (ou le moyen) de tout ça me pose problème.

                Mais encore une fois c'est un ressenti, et ce n'est qu'un des points que j'ai mentionné, et pas le plus important.

    • [^] # Re: sceptique

      Posté par . Évalué à 5.

      la mise en jeu (« gamification »)

      Tu parle d'avoir un indice de sécurité ?

      Je ne vois pas bien la différence entre le PI et ce que font les navigateurs avec TLS.

      De plus si comparer le niveau de sécurité entre différentes version d'un même protocole n'est pas trop compliqué (TLS1.2 c'est mieux que SSL), quand tu compare des protocoles très différents (TLS, OTR, PGP ou l'utilisation de cipher particuliers) ça devient beaucoup plus technique même pour moi. Simplifier ça en définissant une échelle de comparaison simple, c'est plutôt une très bonne idée à mon avis.

      Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

      • [^] # Re: sceptique

        Posté par (page perso) . Évalué à 3.

        Non l'indice de sécurité je pense que c'est une bonne idée aussi (je le dis dans mon premier commentaire d'ailleurs), et elle pourrait même être reprise ailleurs.

        C'est son utilisation sous forme de jeu qui me gêne, et c'est ce que j'en avais compris à la conf d'il y a 2 ans: comme s'il était nécessaire de rendre la chose ludique pour qu'elle soit comprise et utilisée.

        En voyant cette conf et ce qu'il se disait à l'époque, je voyais ça comme un gros jeu ou il faut avoir le plus de points (et de mémoire le mot « gamification » avait d'ailleurs été utilisé dans la conf). Mais comme j'ai dit c'est flou, donc difficile à juger.

        • [^] # Re: sceptique

          Posté par . Évalué à 3.

          Ouai, donc ils mettent en avant un indice de sécurité. Ils y donnent un aspect social en donnant ton classement parmi les utilisateurs ?

          Je vois pas ce qu'il y a de vraiment gênant. Je peux comprendre que c'est un aspect qui ne t'intéresse pas voir qui te déplais, mais ça ne change pas grand chose au sujet abordé et à son utilisation.

          Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)

  • # Attention

    Posté par (page perso) . Évalué à 2.

    Bonjour à tous,
    je viens de m'y inscrire pour tester. Voilà que je me retrouve avec un profil qui n'est pas le mien (Thomas Laurent)
    Aucune notification par mail confirmant mon inscription. Impossible de revenir en arrière

    Vermeulen Samuel Internet Libre - Pour un internet neutre & Libre

    • [^] # Re: Attention

      Posté par (page perso) . Évalué à 6.

      Si tu parles du lien « Tester le prototype » sur le site de caliopen, ce ne sont que des pages HTML statiques, avec de fausses données en dur, sans aucune implémentation côté serveur. Tout le monde s'appelle donc Thomas Laurent et ne reçoit aucun courriel.

    • [^] # Re: Attention

      Posté par . Évalué à 6.

      C'est une démo. Le projet est un logiciel à installer par une personne voulant gérer quelques centaines de personnes.

      L'utilisateur n'est pas l'installeur du projet. Celui-ci peut être linuxfr, framasoft, ovh ou autre.

      Le public d'un gros logiciel serveur n'est pas le grand publique.

      "La première sécurité est la liberté"

      • [^] # Re: Attention

        Posté par (page perso) . Évalué à 0.

        Ok autant pour moi. Donc tant mieux. Désolé pour le bruit. Merci pour ces informations

        Bien Librement ;)

        Vermeulen Samuel Internet Libre - Pour un internet neutre & Libre

  • # J'ai hâte !

    Posté par . Évalué à 3.

    Bonjour,
    Je trouve l'idée de regrouper par contact en autorisant tous les protocoles excellente. En effet, pour s'imposer dans le domaine, il faut apporter quelque chose de différent et de séduisant. Le glissement vers plus de confidentialité est une bonne idée également. Il ne faudra pas oublier d'être didactique avec une bonne documentation qui permette d'éduquer tout à chacun sur la vie privée. Je ne suis pas choqué par le côté ludique qui est aussi un bon moyen d'apprendre. (Mon fils apprend avec scracth). Ne pas oublier qu'en face nous avons des boites richissimes, établies et avec un haut niveau de marketing.
    La chose qui me semble délicate reste le PI … J'ai lu le pad et je crains l'usine à gaz. De plus un utilisateur respectant toutes les règles sur un windows xp sans antivirus pourrait avoir une bonne note alors q'un os non supprté et non à jour me semble d'emblée éliminatoire.

    Laurent ne pourrait il bénéficier de l'appel à projet du gouvernenment ? : http://www.journaldunet.com/ebusiness/le-net/1163202-axelle-lemaire-lance-un-appel-a-projets-pour-des-technos-de-protection-de-la-vie-privee/

    cordialement,

    Eric

  • # mode rabat-joie

    Posté par . Évalué à 3.

    Il manque Skype et WeChat, incontournable en Chine et au Brésil au moins.

    Sinon c'est une très bonne idée, moi aussi j'ai hâte. Mais je soupçonne que ce sera un travail de dingue à maintenir (protocoles qui changent sans prévenir, etc.)

Suivre le flux des commentaires

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.