Archive for the ‘iphone’ Category

Nous y voilà ! Comment sniffer l’HTTPS ? Et bien c’est possible… et voici comment !

0. Préambule

Sniffer le trafic HTTPS est plus compliqué : soit vous décryptez les trames SSL (ça peut prendre du temps…), soit vous vous faîtes passer pour le serveur. HTTPS chiffre toute la connexion, par conséquent il n’est pas possible de récupérer les URLs, ni même le nom de domaine vers lequel les requêtes sont envoyées, vous n’aurez que l’adresse IP, ce qui est bien mais insuffisant !

Alors comment récupérer les données qui passent à travers le SSL ? En redirigeant tout le trafic vers un serveur sur notre machine, déchiffrer, puis jouer le rôle d’un proxy pour finalement renvoyer les données au vrai serveur.

Dans cet article, on va essayer de lire ce qui se passe avec www.paypal.com

1. Sniffer le trafic du mobile

Vous pouvez vous référer à l’article précédent Sniffer le trafic d’un iPhone/Android avec Linux.

2. Quel domaine ?

Comme je l’ai dit, on ne peut pas retrouver quel domaine est interrogé par un webservice en lisant la trame SSL. Mais on peut regarder de quelle IP notre mobile a besoin !

Pour récupérer le nom de domaine, il suffit donc de regarder quelles sont les requêtes DNS qui passent, et de regrouper les adresses IPs données avec l’IP du trafic SSL.

En l’occurence, il s’agira de www.paypal.com.

3. Déchiffrer : stunnel

On va utiliser le fabuleux programme stunnel pour lire le trafic SSL.

stunnel est un programme qui permet en gros d’utiliser SSL pour les clients et les serveurs qui ne le supporte pas. On va donc déchiffrer / rechiffrer le trafic pour le lire en clair.

3.1 Stunnel 1 : accéder en clair à un serveur https

Iil faut configurer stunnel :

pid = /var/run/stunnel-client.pid
client = yes
[www.paypal.com]
accept = 127.0.0.1:50000
connect = www.paypal.com:443

Si vous allez sur http://127.0.0.1:50000/ et que vous acceptez le certificat, vous devriez avoir une page HTML en résultat, signe qu’on a bien été connecté avec paypal.

3.2 Rediriger le trafic SSL vers un serveur sans SSL

Il nous faudra un certificat autosigné, puis créez un fichier mondomaine.pem qui contient la clé et le certificat :

cat mondomaine.key mondomaine.crt > mondomaine.key

Ensuite, il faudra bien configurer stunnel :

pid = /var/run/stunnel-server.pid
client = no
cert = /path/to/www.paypal.com.pem
key = /path/to/www.paypal.com.pem
[www.paypal.com]
accept = 0.0.0.0:50001
connect = 127.0.0.1:50000

Lancez stunnel avec ce fichier de conf : vous devriez pouvoir vous connecter sur https://127.0.0.1:50001/ en acceptant le certificat.

4. Rediriger le trafic provenant du mobile

Pour rediriger le trafic provenant du mobile vers notre serveur, il faut utiliser iptables :

$ iptables -t nat -A PREROUTING -d www.paypal.com -p tcp --dport 443 -j REDIRECT --to-ports 50001

Si vous allez depuis votre mobile sur https://www.paypal.com/, vous devriez avoir une alerte de certificat. Acceptez cette alerte : vous devriez avoir paypal.com, mais en passant par votre serveur.

5. Mais je ne vois toujours rien en clair…

Le trafic en clair passe sur votre localhost : utilisez donc wireshark sur cette interface…

6. C’est pour débugger une app et ça marche pas…

… parce que votre certificat n’a pas été validé par une autorité, et ne le sera jamais ! Envoyez le certificat .crt sur votre mobile (par email ?) et installez-le sur votre mobile 🙂

Pour sniffer le réseau, nous allons transformer notre ordinateur sous Linux en routeur Wifi pour notre mobile.

Téléchargez le script sniff.sh, qui reprend toutes les étapes de ce tutorial, et modifiez-le à votre guise !

Avec ce système, l’ordinateur est connecté au réseau filaire pour Internet, et l’iPhone sera connecté à l’ordinateur via la carte réseau. Il est aussi possible de connecter l’ordinateur à Internet via wifi avec une deuxième carte réseau sans fil.

1. Désactivez votre gestionnaire réseau

Tous les gestionnaires réseaux ne sont pas capables de gérer plusieurs connexions réseau en même temps. Du coup, on désactive le gestionnaire réseau pour tout configurer manuellement (à l’ancienne !)

$ /etc/init.d/wicd stop
$ /etc/init.d/NetworkManager stop
$ ...

2. Votre connexion Internet

Réactivez votre connexion internet : si vous êtes en ethernet par exemple, vous pouvez exécuter dhcpcd eth0. Si vous êtes en Wifi, reportez-vous à la configuration de wpa_supplicant (mais vous aurez besoin d’une autre interface Wifi pour votre mobile !)

Ensuite, pour que votre ordinateur transfère les paquets, il faut activer le NAT :

$ iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE # Active le NAT : changez eth0 par le nom de votre interface réseau Internet
$ sysctl net.ipv4.ip_forward=1 # Active le routage des paquets via votre ordinateur

3. Votre connexion Wifi

Pour transformer votre ordinateur en routeur, il faut configurer le wifi et le DHCP (facultatif) pour aider votre mobile à se connecter.

Configuration du Wifi

On configure l’interface pour lui donner un nom Wifi, et une adresse IP :

$ iwconfig wlan0 mode ad-hoc # passage en mode ad-hoc : on autorise un autre device Wifi à se connecter avec nous
$ iwconfig wlan0 essid RouteurMobile # Nom de votre réseau
$ ifconfig wlan0 10.10.10.1 # L'adresse IP de votre carte réseau Wifi

Sans DHCP

Vous pouvez connecter votre mobile dès à présent pour utiliser votre réseau, mais il faudra alors lui donner les paramètres suivants :

  • IP : 10.10.10.2
  • Gateway/Passerelle : 10.10.10.1
  • Netmask : 255.255.255.0 (ou 255.0.0.0 si vous voulez – ça importe peu)
  • DNS : on va utiliser les DNS de Google : 8.8.8.8 et 8.8.4.4

Avec DHCP

Sinon, vous configurez votre routeur linux pour fournir ces paramètres via un serveur DHCP. Cela évite de rentrer manuellement sur le téléphone les paramètres de la connexion IP.

Pour ce faire, commencez par installer le serveur dhcpd. Ensuite, paramétrez comme suit votre fichier (/etc/dhcp/dhcpd.conf) :

option domain-name-servers 8.8.4.4, 8.8.8.8;
default-lease-time 600;
max-lease-time 7200;
subnet 10.10.10.0 netmask 255.255.255.0 {
  range 10.10.10.10 10.10.10.20;
  option routers 10.10.10.1;
}

Vous pouvez télécharger un exemple de fichier de conf dhcpd.

Puis démarrez votre serveur : /etc/init.d/dhcpd start

4. Connexion

Si tout s’est bien passé, vous verrez votre réseau créé sur votre mobile, et vous pourrez vous connecter dessus sans problème.

5. Sniffer avec Wireshark

Je vous propose d’utiliser wireshark pour sniffer le trafic.

Quelques filtres :

  • http : affichera les requêtes HTTP, mais uniquement les paquets de questions (GET, POST, …) et ceux de réponses (HTTP/1.0 200 Ok, …)
  • dns : les requêtes DNS
  • dhcp : utile pour débugger le trafic DHCP

Problèmes fréquents

  • Mon réseau n’apparait pas : vérifiez que la carte wifi de votre linux est bien configurée avec iwconfig et que l’interface est up : ifconfig wlan0 up
  • Je me connecte mais je n’ai pas l’icône wifi, et pas d’adresse IP ou une adresse IP en 169.254.* : votre serveur DHCP ne fonctionne pas. Relancez-le et vérifiez sa configuration.
  • Je suis connecté mais je ne vois rien dans Wireshark : vérifiez que vous avez sélectionné la bonne interface à écouter ! Aussi, utilisez votre iPhone pour aller sur Internet un peu 🙂

Ceci n’est qu’une étape vers un prochain article : sniffer des connexion HTTPS !

Dans la série des jeux avec un très bon rapport prix/temps de jeu, toujours dans les puzzles, voici un deuxième exemple de ce qu’on peut réaliser : TrainYard.

TrainYard : un puzzle game sur les trains

TrainYard est un jeu dans lequel vous devez construire les routes qui vont permettre aux trains d’arriver à destination. Il y a plusieurs niveaux de complications :

  • La couleur d’un train est importante : le train d’une couleur doit arriver dans la gare de la même couleur ;
  • Il n’y a pas de collision de train : les trains peuvent se croiser ;
  • Si des trains se croisent, chacun voit sa couleur mélangée avec la couleur de l’autre. Si deux bleus se croisent, rien ne se passe. Si un bleu croise un jaune, les deux deviennent verts ;
  • Si deux trains se superposent, ils fusionnent et mélangent leur couleur ;
  • et pleins d’autres cas à décrouvrir : coloriage de train, duplication de train et retour aux couleurs primaires, etc.

Feedback

J’ai a-do-ré ce jeu : les niveaux sont bien sur de plus en plus complexes, et on se prend au jeu. On y passe des heures et pour le prix qu’on a payé (79 cts) c’est bien rentabilisé ! Les amateurs de puzzle-game vont être servis : un must-have !

Téléchargements

La version d’essai : TrainYard Express  (gratuite avec uniquement certains niveaux)
La version payante : TrainYard à 0,79€ à ce jour (avec tous les niveaux !)

A voir également

Aargon, un jeu de puzzle/réflexion pour iPhone et iPad avec des lasers, et encore des couleurs !

Après avoir parlé du client SIP iSipSimple qui est passée payant, voici une mise à jour du précédent post.

Le SIP : à quoi ça sert ?

Le SIP permet principalement de téléphoner sur des fixes ou mobiles en utilisant une connexion Internet. Certains opérateurs, comme Free, propose d’utiliser le SIP. Il vous est alors possible, dès lors que vous êtes connecté à Internet, de téléphoner en faisant comme si vous utilisiez votre ligne Free. Ce service permet donc de téléphoner gratuitement vers les fixes en France, même à l’étranger ! Ca vous permet même de recevoir des coups de fil !

Adore SIP Client

Cette application SIP iPhone permet, comme le faisait iSipSimple, de téléphoner en utilisant l’abonnement téléphonique d’une ligne SIP.

Points positifs :

  • J’ai pu tester l’application, et les qualités sonores d’émission et de réception étaient très bonnes.
  • Vous avez directement accès aux numéros qui sont enregistrés dans votre iPhone.

Point négatif : le logiciel ne supporte pas de configuration compliquée.

Après avoir passé en revue les différents comportements de navigation privée IE, Firefox, Chrome et la plus particulière navigation privée Safari 5 Desktop, voici un logiciel de navigation privée sur iPhone : Privately – Web Browser.

Privately – Web Browser

Ce logiciel est un navigateur sous iPhone qui permet de surfer de manière privée.

Comme expliqué sur le site officiel de l’application, Privately a les fonctionnalités suivantes :

  • Les pages visitées ne sont pas ajoutées à l’historique de navigation ;
  • Les recherches effectuées avec le champ de recherche ne sont pas sauvegardés ;
  • Les cookies sont supprimés dès que vous quittez l’application.

J’ai découvert une petite perle sur iPhone : une petite application bien sympa, et bien prise de tête !

Aargon : une histoire de laser et de miroirs

Aargon est un jeu de réflexion sur iPhone. Vous avez un ou plusieurs laser, qui faut savoir réflechir avec des miroirs. Le but est de passer par toutes les pièces du puzzle.

Il faut donc savoir orienter les miroirs (et autres démultiplicateurs, séparateurs de couleurs primaires, …) pour résoudre les niveaux.

Téléchargement

Vous pouvez tester l’application avant de l’acheter. Au programme de la version gratuite : les mêmes fonctionnalités que la version payante, juste moins de niveaux.

Version lite : Aargon (Gratuite à ce jour)
Version payante : Aargon Gold à 2,39 € à ce jour (avec beaucoup plus de niveaux)

Les identités : une boîte de réception pour plusieurs adresses email

Les identités permettent donc de gérer plusieurs adresses email, pour une seule boîte aux lettres. Exemple : vous forwardez vos messages pro sur votre boîte personnelle, mais vous voulez pouvoir répondre aux différents messages à la fois avec votre adresse personnelle et votre adresse personnelle, en fonction du contenu du message et du destinataire.

Mise en place des identités sur iPhone

Il fallait le savoir : vous pouvez gérer plusieurs identités avec votre iPhone ! La première sera votre identité par défaut, utilisée à chaque fois que vous écrivez un message (réponse à un message existant ou nouveau message). Dans le cas d’une réponse, malheureusement, l’adresse email à laquelle on vous a écrit n’est pas automatiquement sélectionnée pour répondre à l’email.

Procédure : allez dans Paramètres => Mails, … => Sélectionnez le compte concerné => Informations. Une fois arrivé ici, séparez tout simplement vos adresses email d’émission par des virgules, dans le champ « Adresse », par exemple compte1@example.org, compte2@example.org.

Astuce : par défaut, il n’est pas possible de faire une virgule avec le clavier français (ce n’est pas un caractère valide pour une adresse email) ! Ecrivez donc la virgule dans la description du compte, et faites un couper-coller !

Source : Apple support : multiple identities

Configuration du mail sur iPhone

La configuration du mail sur l’iPhone se fait très bien : il y a un utilitaire de découverte de service qui fonctionne très bien. On peut mettre son adresse gmail en quelques tapotements d’écran.

Le problème : si j’utilise une adresse de redirection (fournie par exemple par mon employeur, ou bien un service d’anciens élèves type m4x.org 😉 ), et que j’utilise le smtp de GMail, les gens qui me répondent vont me répondre sur mon adresse GMail, et non pas mon adresse personnalisée.

Différence entre from et reply-to

La raison se trouve dans les headers de l’email : le serveur SMTP de GMail va, pour des raisons de protocole et de sécurité, automatiquement rajouter que l’adresse de la personne qui envoie est réellement @gmail.com, bien que le from reste bien ce que vous avez défini dans vos préférences.

Utilisation d’un SMTP différent

La solution consiste donc à ne pas utiliser le SMTP de GMail. Il faut privilégier, pour des raisons de sécurité et de délivrabilité, le SMTP fourni par votre fournisseur de redirection.

Si vous êtes chez Orange : utilisez le SMTP fourni par orange (qui marchera en 3G et en Wifi). Dans votre compte client orange, cliquez sur « messagerie ». Créez un compte (attention : l’identifiant de votre compte apparaîtra dans les entêtes X-* des emails envoyés), et entrez ce compte et le mot de passe d’accès à votre compte orange dans les paramètres SMTP de smtp.orange.fr. Désactivez ensuite les autres SMTP pour ne laisser que celui-ci actif.

Jusqu’à présent, il n’était pas possible de synchroniser ses évènements avec Funambol sans jailbreaker son iPhone. Aujourd’hui ? Ce n’est toujours pas possible 😉 Mais ça va le devenir.

L’API de calendrier iPhone dans le nouveau SDK

Auparavant, Apple ne proposait pas dans son SDK d’API permettant d’accéder au calendrier. C’est désormais chose possible ! Il ne reste plus qu’à attendre d’une part la sortie du nouveau Firmware 4 iPhone (prévu cet été), et d’autre part la mise à jour de l’application Funambol.

Il sera alors possible de synchroniser non seulement ses contacts (comme maintenant), mais aussi tout son calendrier et ses évènements.

Télécharger Funambol

Considération technique

Free met aujourd’hui à disposition de ses abonnés un compte SIP. Le SIP est un protocole qui permet de téléphoner sur Internet, grâce à des applications que l’on appelle des clients SIP.

Considération pratique

  1. Activer la ligne SIP chez Free : connectez-vous à votre compte Free, et activer l’option SIP dans « Téléphonie », puis « Gestion de mon compte SIP ». On vous demandera un mot de passe. C’est celui-ci qu’il faudra recaser plus tard.
  2. Installer un client SIP. Pour le SIP iPhone, il suffit de télécharger l’application iSipSimple gratuitement. Pour windows, vous pouvez utiliser X-Lite. Pour Linux, utilisez ekega ou bien twinkle.
  3. Configurer le client SIP. La configuration est extrêmement simple : sur l’iPhone, choisissez le SIP Freephonie.net (Public), entrez comme identifiant votre numéro de téléphone en « 09 », remplissez le mot de passe tel que défini au 1, et activez ensuite le compte SIP. De manière plus générale, le « domaine » à mettre est freephonie.net, l’identifiant est votre numéro de téléphone. Notez par ailleurs qu’il faut être connecté en Wifi avec votre iPhone pour que ça fonctionne.
  4. Téléphoner : tapez un numéro normalement, et c’est parti ! Si vous utilisez iSipSimple, utilisez le bouton « SIP » pour lancer la communication afin d’utiliser votre ligne SIP. Si vous cliquez sur Cellular, la communication vous sera facturée selon votre forfait avec votre opérateur.

Contraintes

  1. La première contrainte, déjà énoncée, est qu’il faut passer en Wifi pour pouvoir passer des appels. Vous pouvez avoir à votre disposition la liste des Hotspots FreeWifi pour vous connecter aux Freebox qui sont autours de vous en utilisant l’application FreeWifi Connect.
  2. Certaines personnes ont constaté qu’il n’était pas possible de téléphoner à des numéros étrangers en passant par le SIP.

Avantages

  1. Téléphonez gratuitement vers les Fixes !
  2. Téléphonez à tarif réduit en France lors de vos déplacements à l’étranger. Il ne suffit que d’une connexion wifi…