• [^] # Re: malwares : remote lookup

    Posté par (site web personnel) . En réponse à la dépêche Firefox sur son 31. Évalué à 8.

    Merci de ta réponse.

    Néanmoins, il faudrait aller voir le code en détail. Tu vas me dire, j'ai qu'à le faire au lieu d'écrire sur du vent sur linuxfr (mais bon l'investissement en temps n'est pas le même).

    Si Mozilla utilise bien le Safe Browsing API v3 (et non le Safe Browsing Lookup API), regardons comment ça fonctionne :
    https://developers.google.com/safe-browsing/developers_guide_v3#GettingStarted

    Chunks that contain hash values do not necessarily contain the full hash; they are often only a prefix for that hash. A second request (a gethash request) can be issued to get the list of full-length hashes that start with the prefix.

    A client may request the list of full-length hashes for a hash prefix. This usually occurs when a client is about to download content from a URL whose calculated hash starts with a prefix listed in a blacklist. See the Lookup section for details.

    Donc en gros, a priori (à vérifier dans l'implémentation), Firefox récupère une liste des préfixes de hashes (sur 4 octets). Lorsque l'utilisateur tombe sur une URL dont le hash commence par ce préfixe, il va demander à Google la liste des "full-hash" (32 octets) qui commencent par ce préfixe.

    Imaginons alors que (削除) la NSA (削除ここまで) Google veuille connaître la liste des visiteurs de wikileaks.org (au hasard). Il rajoute dans ses listes de préfixes celui de wikileaks.org, mais ne mets pas dans ses listes complètes le hash complet de l'url de wikileaks.org (il peut en mettre un autre qui ne correspond à rien de connu). Comme ça, on peut trouver les visiteurs de wikileaks en listant ceux qui ont requêté la liste de hashes complète concernant le préfixe de wikileaks.org, et les visiteurs ne s'en rendront pas compte...

    Autre sujet, cette fonctionnalité nécessite une API key:

    In order to interact with the Safe Browsing service, you need an API key to authenticate as an API user. You will pass this key as a CGI parameter in your HTTP requests to the lookup server

    Ça veut dire qu'un individu lambda n'a pas le droit de compiler Firefox incluant cette fonctionnalité sans passer un contrat avec Google ?

    À ce sujet, j'aimerais votre avis sur le raisonnement suivant (qui ne concerne pas Firefox car il n'est pas sous GPL) :

    Ça me fait penser à ces applis Android disponibles sur f-droid en GPL qui utilisent Google Maps, et donc une API key fournie par Google. Si je ne m'abuse, ne pas fournir les clés essentielles pour faire fonctionner l'appli est incompatible avec la GPLv3 :

    "Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made.

    Par ailleurs, le développeur ne doit pas fournir ses API keys :

    5.3 Your Passwords and Account Security. You agree that you will be solely responsible to Google for your use of the Service. If you become aware of any unauthorized use of your password, your account, or your key(s), you agree to notify Google immediately.

    Donc je ne peux pas prendre ces applis supposées GPLv3 et les recompiler en changeant juste le nom d'une activité (par exemple) sans casser certaines fonctionnalités (Google Maps) ; sinon je devrais fournir une autre API key, et donc signer un contrat avec Google pour faire fonctionner cette application modifiée.

    J'en conclus que toute appli incluant Google Maps ne peut pas être GPLv3.

    Qu'en pensez-vous ?

    blog.rom1v.com