Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

  1. #1
    Chroniqueur Actualités

    DuckDuckGo (sous Android et iOS) envoie les noms de tous les hôtes visités vers son serveur
    Le navigateur DuckDuckGo (sous Android et iOS) envoie les noms de tous les hôtes visités par ses utilisateurs vers son serveur
    Depuis mars 2018

    « Le moteur de recherche qui ne vous espionne pas » est le slogan de DuckDuckGo, le navigateur qui se retrouve au centre de soupçons de pistage de ses utilisateurs. Code source à l’appui, certains ont établi que ce dernier (sous Android et iOS) envoie les noms de tous les hôtes visités vers son serveur, ce qui ouvre des possibilités au pistage des utilisateurs. Le cas qui suscite une crise de confiance (compte tenu de la proposition de valeur du navigateur en lien avec le respect de la vie privée) est en cours de résolution.

    Les signalements sont partis du morceau de code suivant qui n’a pas manqué d’attirer l’attention d’utilisateurs pointilleux sur Android.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    private const val faviconBaseUrlFormat = "https://icons.duckduckgo.com/ip3/%s.ico"
    
    fun Uri?.faviconLocation(): Uri? {
        val host = this?.host
        if (host.isNullOrBlank()) return null
        return Uri.parse(String.format(faviconBaseUrlFormat, host))
    }
    Le fait ici est qu’il y a une fonction chargée de récupérer le nom de l’hôte courant et de l’envoyer à un service hébergé sur duckduckgo.com ; ce dernier a son URL sauvegardée au sein de la constante faviconBaseUrlFormat. Au sein de celle-ci, %s est remplacé par le nom d’hôte courant. Dit d’une autre façon, lors de la visite d’une page comme test.com sur la version Android ou iOS de DuckDuckGo, l’icône du site web est chargée depuis https://icons.duckduckgo.com/ip3/test.com.ico qui se trouve être une page sur le serveur DuckDuckGo.

    Sur iOS, même son de cloche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    static let externalContentBase = "https://external-content.duckduckgo.com"
        static let faviconService = "\(externalContentBase)/ip3/%@.ico"
    
        public func faviconUrl(forDomain domain: String) -> URL? {
            let urlString = String(format: Url.faviconService, domain)
            return URL(string: urlString)
        }
    En fait, cette disposition concerne, semble-t-il, chaque onglet ouvert dans le navigateur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    private func configureFavicon(forDomain domain: String?) {
            let placeholder = #imageLiteral(resourceName: "GlobeSmall")
            favicon.image = placeholder
    
            if let domain = domain {
                let faviconUrl = AppUrls().faviconUrl(forDomain: domain)
                favicon.kf.setImage(with: faviconUrl,
                                      placeholder: placeholder,
                                      options: [.downloader(NotFoundCachingDownloader())],
                                      progressBlock: nil,
                                      completionHandler: nil)
            }
        }
    Les marque-pages ne sont pas en reste si l’on en croit les retours des utilisateurs sur la version iOS :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     private func configureFavicon(forDomain domain: String?) {
            favicon.image = BookmarkCell.placeholderFavicon
            if let domain = domain {
                let faviconUrl = AppUrls().faviconUrl(forDomain: domain)
                favicon.kf.setImage(with: faviconUrl, placeholder: BookmarkCell.placeholderFavicon)
            }
        }
    La limite est mince quand on sait que cet état de choses peut impliquer l’envoi d’une adresse IP. Ainsi, bonjour aux possibilités de pistage des utilisateurs, toute chose qui est au contraire aux valeurs dont l’équipe qui est derrière le navigateur fait la promotion. La fonctionnalité a fait l’objet d’ajout au navigateur en mars 2018.



    Dans une sortie en lien avec ces développements, le CEO de DuckDuckGo se veut rassurant : « Je viens d’avoir connaissance de ce problème et je suis heureux de prendre l’engagement que nous le fassions de façon locale dans le navigateur. Nous ferons en sorte que cela se fasse le plus rapidement possible. Cela dit, je tiens à préciser que nous n'avons pas collecté d'informations personnelles. Comme d'autres membres du personnel l'ont indiqué, nos services sont chiffrés et, de par leur conception, rejettent des informations comme les adresses IP. Cependant, j'estime qu'il est néanmoins plus sûr de le faire au niveau local et c'est ce que nous ferons. »

    Source : 1, 2

    Et vous ?

    Êtes-vous un utilisateur de DuckDuckGo ? Si oui, cette situation est-elle de nature à effriter la confiance que vous avez en ce navigateur ?
    Qu’est-ce qui d’un point de vue technique peut justifier l’approche adoptée par l’équipe DuckDuckGo pour retrouver l’icône d’un hôte courant ?
    En tant que développeur web quelle approche suggérez-vous qui soit respectueuse de la vie privée ?

    Voir aussi :

    DuckDuckGo propose le Do Not Track Act, un projet de loi qui obligerait les sites à ne pas pister les internautes qui utilisent Do Not Track
    DuckDuckGo utilise maintenant Apple Maps pour alimenter les résultats de la recherche privée
    DuckDuckGo accusé de faire du profilage des utilisateurs malgré sa promesse d'être l'anti-Google, le moteur assure qu'il n'en est rien
    Google cède et transfère Duck.com à DuckDuckGo afin de dissiper la confusion des utilisateurs, même si les détails de cette entente ne sont pas connus
    Contribuez au club : Corrections, suggestions, critiques, ... : Contactez le service news et Rédigez des actualités

  2. #2
    Membre éprouvé
    Ce n’est pas plus pire, qu’avec GOOGLE !!!
    Sans oublier APPLE !!!
    Ne pas savoir n’est pas une faute si l’on cherche à combler ses lacunes.

    "Il n'y a pas d'obstacles infranchissables , il y a des volontés plus ou moins énergiques voilà tous" Jules Vernes

  3. #3
    Membre éclairé
    Je ne vais pas faire mon étonné ...

  4. #4
    Membre chevronné
    Bien triste, du coup quelqu'un a une alternative à duckduckgo?

  5. #5
    Membre confirmé
    Citation Envoyé par denisys Voir le message
    Ce n’est pas plus pire, qu’avec GOOGLE !!!
    Sans oublier APPLE !!!
    Tout comme le COVID, C'est pas plus pire que le CANCER
    Sans oublier le SIDA !!!

    Et c'est pas pour autant que j'aimerai l'avoir.

    Ouais l'exemple est pas ouf, mais bon comme ils ont dit que tout était chiffré et qu'ils corrigeraient le problème, je vois pas pour l'instant pas vraiment de raison de ne plus utiliser duckduckgo, d'autant que je le trouve plus performant que StartPage, et tant qu'il n'y a pas de scandale ou de preuve réelle d'utilisation des données, ya pas de raison de fuir le service à tout prix.

  6. #6
    Membre averti
    Il y a un truc qui m'étonne, c'est la différence entre le titre de la news et le code source que je vois.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    private const val faviconBaseUrlFormat = "https://icons.duckduckgo.com/ip3/%s.ico"
    
    fun Uri?.faviconLocation(): Uri? {
        val host = this?.host
        if (host.isNullOrBlank()) return null
        return Uri.parse(String.format(faviconBaseUrlFormat, host))
    }
    Ce code en Kotlin qui est une extension utilise l'adresse d'hôte actuel du navigateur pour construire une url à partir d'une chaine de caractère, c'est du simple formatage. Tout ce fait donc au niveau local, il n'y a pas de remontées d'informations sur le serveur. Cela nécessiterais l'appel d'une API avec l'utilisation d'une librairie pour effectuer ces appels ce qui n'est pas le cas.

  7. #7
    Futur Membre du Club
    @Fooshi, dans le second lien en source, il semblerait que cette URL formatée soit appelée à chaque chargement d'onglet : https://github.com/duckduckgo/iOS/issues/665

    @kevin254kl J'ai perso adopté https://swisscows.com/ comme moteur de recherche par défaut.

  8. #8
    Nouveau membre du Club
    @kevin254kl Il y Qwant, moteur français qui assure aussi la confidentialité

  9. #9
    Futur Membre du Club
    Citation Envoyé par piwee Voir le message
    @kevin254kl Il y Qwant, moteur français qui assure aussi la confidentialité
    A la vue des investigations faites par NexInpact, perso, je n'utilise plus Qwant.

  10. #10
    Membre régulier
    @kevin254kl : J'utilise Ecosia : vie privée + plantations d'arbres, ça me va.

###raw>template_hook.ano_emploi###