Pinning SSL avec TrustKit

Le pinning SSL « maison », c’est un peu compliqué parfois.

Heureusement, l’excellente équipe de Data Theorem est là.

Ils fournissent depuis plusieurs années la solution TrustKit sur iOS, tvOS, macOS et watchOS qui permet de mettre en place le pinning SSL en 2 temps 3 mouvements.

Ils fournissent maintenant une version Android de TrustKit compatible avec les API 15+.

Pour ceux qui ne connaissent pas le fonctionnement de TrustKit, c’est franchement simple.

En gros,  il faut déterminer ce que l’on va pinner dans la chaîne de confiance, à l’instar de HPKP :

  • le certificat de l’autorité de certification (CA)
  • le certificat de l’autorité de certification intermédiaire (ies)
  • le certificat du serveur (EE, leaf)

À partir de là, on peut calculer les clés publiques actuelles. Il est fortement conseillé d’utiliser une clé de secours. Et, enfin, on peut ajouter une date d’expiration.

En gros, si les clés sont validées, ça passe. Sinon, on regarde côté clé de secours. Et, passé la date d’expiration, on ne fait plus de pinning.

Et ensuite : TrustKit fait le job. Et ça, c’est top.

Statistiques des OS mobiles

Apple vient de publier les nouveaux chiffres, issus des données de l’App Store :

  • 79 % des utilisateurs sont sur iOS 10 (fin 2016)
  • 16 % sont sur iOS 9 (fin 2015)
  • 5 % sont sur une des versions antérieures

Soit 95 % de iOS 9+. Un score plutôt honorable.

Mixpanel voit des chiffres plus hauts, au-delà de l’App Store :

  • 90 % sur iOS 10
  • 8 % sur iOS 9
  • 2 % sur des versions antérieures

Soit 98 % de iOS 9+.

En parallèle, 1,2 % des utilisateurs utilisent Android 7 (fin 2016). Et 30,7 % sont sur Android 6 (fin 2015). Ce qui fait 31,9 % sur Android 6+.

Il faut remonter à Android 4.2 (fin 2012) pour passer la barre des 90 %.

Selon Mixpanel, Android 7 serait à 3 % et Android 6 à 46 %. Android 6+ serait donc à 49 % du parc.

Mieux vaut développer plutôt sur iOS 9+ et sur Android 4.2+ si vous souhaitez avoir un bon équilibre entre le nombre d’utilisateurs actifs et la stabilité de l’app.

Si vous misez sur la sécurité, optez plutôt pour iOS 10 (ATS présent depuis iOS 9 mais surtout jailbreak plus difficile donc accès au binaire limité) et Android 6.0 (l’API 23 introduit network_security_config.xml qui est un équivalent de ATS avec le pinning SSL en plus).

Dessines-moi un mouton… comme Picasso

Si l’exemple donné n’est pas le meilleur, on voit clairement aujourd’hui que la machine imite l’homme de mieux en mieux.

À partir de simples photos, on peut aujourd’hui imaginer comme des artistes auraient pu représenter leur environnement.

Évidemment, la démonstration n’est que technique. Mais elle n’en est pas moins une certaines représentation de la réalité. Et cela en dit long sur l’avenir de l’apprentissage par les machines (Machine Learning).

Pour en savoir plus, voici l’outil que j’ai utilisé :

https://github.com/lengstrom/fast-style-transfer

J’ai testé plusieurs représentations de Niort que vous pouvez découvrir ci-dessous.

1 2 3 4 1 2 3 4 1 2 3 4 1 2 3 4

App Store : 76 % pour iOS 10

Les chiffres officiels d’Apple sont tombés.

76 % des utilisateurs utilisent iOS 10 (fin 2016). Soit une progression de 13 % en 2 mois. 18 % sont sur iOS 9 (fin 2015). Et seulement 6 % sont sur une version inférieure.

En étant compatible iOS 9 et supérieurs, vous pouvez atteindre 94 % des utilisateurs.

Mais, objectivement, 76 % est aussi très bien si vous souhaitez utiliser des fonctionnalités récentes !

Une nouvelle toujours réjouissante pour les développeurs. 🙂

À titre de comparaison du côté Android, si vous souhaitez être compatible avec 60,7 % des utilisateurs, vous devez fonctionner sur les versions 5 (mi-2015) et supérieures. Pour passer au-delà des 75 %, il faudra accepter d’être compatible Android 4.4 (fin 2013). Et pour passer au-delà des 90 %, il faudra passer à la version Android 4.2 (fin 2012). La dernière version (7) sortie fin 2016 est présente sur 0,4 % des appareils. Et si on veut les deux dernières versions (6 et 7), on atteindra au mieux 26,7 % des utilisateurs.

Ce qui est pénalisant côté développement mobile l’est également pour la partie web. Les versions inférieures à Android 4.4 ayant par défaut un navigateur obsolète.

Mais bon. Côté iOS, on reste au top technologiquement. Et ça, c’est une super nouvelle !

Source : https://developer.apple.com/support/app-store/

Les bots Facebook Messenger

Les bots sont des petits programmes qui effectuent automatiquement des actions à partir des ordres données.

Dans le cas de Facebook Messenger, à partir du message envoyé, on peut imaginer plein d’interactions.

Un exemple très basique vous est proposé sur la page Facebook de Morin Innovation.

Envoyez un message privé à Morin Innovation et vous aurez cette réponse :

morin_innovation_-_messages

C’est (très) basique mais rudement efficace.

On peut aller beaucoup plus loin, comme le fait par exemple la SNCF en vous proposant de réserver un voyage directement via leur bot.

voyages-sncf_com_bot_-_messages

Les bots peuvent également vous solliciter après l’échange.

C’est vraiment une automatisation du processus de communication qui laisse la porte ouverte à plein de supers idées !

 

GraphQL : le futur de REST ?

Attention : le contenu de cet article est plutôt technique.

Aujourd’hui : REST

À l’origine, il y avait SOAP. Une première forme de standardisation des services web utilisant XML.

Puis, avec les améliorations de Javascript, des navigateurs et des serveurs web est arrivée une nouvelle architecture : REST.

REST utilise XML mais aussi et surtout JSON. L’accès aux données est basé sur les URL. C’est standardisé et bien sécurisé sans être une usine à gaz.

Sauf qu’il y a aujourd’hui quelques limites qui commencent à être atteinte et quelques améliorations suggérées par les usages actuels des services web.

Demain : GraphQL ?

GraphQL a été présenté il y a environ 2 ans par Facebook.

En gros, il s’agit de s’appuyer sur un langage de requêtes côté client. C’est le client qui détermine son affichage et non le serveur.

Par exemple, pour aller chercher uniquement les nom, prénom, les URL des photos de l’utilisateur « john.doe » de ma base de données, je ferai une requête de type :

{
  user(username: "john.doe") {
    firstName
    lastName
    photos {
      url
    }
  }
}

Et je recevrai une réponse de type :

{
  "data": {
    "user": {
      "firstName": "John",
      "lastName": "Doe",
      "photos": [
        {
          "url": "https://..."
        },
        {
          "url": "https://..."
        },
        {
          "url": "https://..."
        }
      ]
    }
  }
}

C’est plutôt pratique, même s’il reste encore des points à éclaircir pour en faire un véritable standard.

En tout cas, avec REST, cela aurait été une horreur à intégrer !

Quel avenir pour GraphQL et REST ?

Aujourd’hui, REST est bien en place dans l’industrie et pour une bonne dizaine d’années encore.

GraphQL pourra cohabiter avec REST. Dans un premier temps sous forme d’API secondaire, puis progressivement sous forme d’API principale.

D’autant que son intégration est assez rapide et plutôt pratique côté client avec des outils comme React + Relay (Javascript), Apollo (iOS / Swift, Android / Java) et autres.

Node.js (Javascript), Ruby on Rails (Ruby) et Symfony (PHP) permettent de créer des services GraphQL côté serveur.

Qui utilise GraphQL aujourd’hui ?

Parmi les early adopters de GraphQL, nous pouvons citer :

  • Facebook
  • GitHub
  • Pinterest
  • Shopify
  • 20 minutes
  • Allociné
  • Club Med

L’avenir semble donc bien être à GraphQL 🙂

Votre carte bancaire hackée en 6 secondes

Une pratique scandaleuse des établissements bancaires : nous obliger à posséder une carte bancaire avec le fameux sans contact.

Le sans contact par CB « sécurisé » ?

On vous dira : de toutes manières, le risque est limité.

Sur le papier, en effet :

  • il faut être à quelques centimètres de la carte pour lire les infos
  • « seuls » le numéro de CB et la date d’expiration sont transmis
  • aucun code n’est transmis
  • le code à 3 chiffres au dos de la carte n’est pas transmis
  • on peut seulement débiter 20 € par transaction.

Sur le papier, c’est sécurisé. Sur le papier.

Sécurité sur le papier = sécurité en carton

Reprenons ces arguments.

il faut être à quelques centimètres de la carte pour lire les infos

Dans le métro, avec un simple smartphone, on peut récupérer ces infos.

Il existe même des boîtiers permettant une lecture à distance de ces informations.

« seuls » le numéro de CB et la date d’expiration sont transmis

Ces 2 informations (sur 3) sont transmises. Sans soucis.

 

aucun code n’est transmis

Il n’est pas utile.

 

le code à 3 chiffres au dos de la carte n’est pas transmis

C’est la seule inconnue.

 

on peut seulement débiter 20 € par transaction.

Pas sur le web si on a ce fameux code à 3 chiffres.

Trouver le code à 3 chiffres

Si les CB MasterCard sont limitées à 100 essais (ce qui laisse une chance de trouver le code), les CB Visa n’ont pas cette limite.

A partir de là, des petits programmes peuvent automatiquement tester la carte sur plusieurs sites.

En voici la preuve. En 6 secondes.

Le « sans contact » n’est donc pas fiable ?

Le sans contact peut être fiable si vous passez par une solution mobile comme Apple Pay, Android Pay, Samsung Pay, Microsoft Wallet, Boon ou bien encore Orange Cash.

Dans ces cas-là, votre mobile va transmettre au terminal de paiement un code valable pour une durée définie, pour un commerçant et un montant défini, valable une seule fois.

Autant dire, le risque est quasiment nul. Du moins face aux menaces actuelles.

Quel avenir pour la carte bancaire ?

Face au sans contact mobile, la carte bancaire semble vivre ses dernières années.

D’autant que les solutions mobiles permettent maintenant – progressivement – de payer en ligne sur Internet. Ce qui est encore plus fiable que la CB.

La CB montre chaque jour ses limites tandis que les solutions mobiles se développent.

Peut-être est-il temps de passer le relais ?

Paiement sans contact Apple Pay avec Orange Cash

Un article super-rapide.

J’ai testé Apple Pay via Orange Cash sur iPhone, Watch et Mac : c’est nickel.

Apple Pay

Apple Pay est la solution de paiement « générique » développée par Apple.

En gros, on ajoute sa CB dedans (si la banque est partenaire) et on peut payer partout où il est possible de payer en sans contact.

On peut payer en magasin, mais aussi sur le web sur iOS et sur macOS (il faut utiliser Safari comme navigateur par défaut), et dans les apps.

Le tout est intégré le plus facilement possible, c’est rapide, c’est (hyper) sécurisé. Et on ne subit pas les plafonds de paiement.

En gros, c’est la version 2 du sans contact. (ou plutôt la version terminée)

Orange Cash

Orange Cash est une solution développée par Orange (et ouais !) qui permet de disposer d’un porte-feuille virtuel sur Android, Windows Phone et iOS. Du moment qu’on utilise le réseau de l’opérateur.

On recharge ce porte-feuille virtuel et on peut ensuite payer partout.

Depuis ce matin, Orange Cash est disponible sur iOS.

J’ai donc – enfin – pu tester Apple Pay.

En magasin

Le paiement sur iPhone :

  • j’approche mon iPhone, qui me propose la CB à débiter
  • le magasin, la date et le montant sont affichés
  • je pose juste mon doigt sur le capteur d’empreinte digitale pour valider (sans déverrouiller, sans lancer une app ou quoi que ce soit)
  • c’est fait.

La même chose avec la Watch :

  • je « clic » 2 fois le bouton latéral : la CB s’affiche
  • je m’approche du terminal de paiement (2-3 cm)
  • c’est payé.

C’est franchement super facile. On n’a pas à chercher. Pas d’app ou autre. C’est facile et rapide.

Sur le web

J’ai testé sur mon iPhone, dans Safari : on appuie sur le bouton d’achat, une « note » apparait, on a juste à valider le paiement avec son empreinte digitale.

Sur le Mac, dans Safari : on appuie sur le bouton d’achat, la « note » s’affiche à l’écran et demande à être validée sur l’iPhone ou la Watch. La même note est affichée sur l’appareil concerné. Ensuite, c’est comme en magasin : empreinte digitale ou double tapotement.

Facile, rapide. Par contre, ça ne fonctionne que dans Safari qui doit être le navigateur par défaut. (sur Mac, j’utilise plutôt Chrome)

Pour conclure

Orange Cash fonctionne bien. Avec Apple Pay, c’est nickel.

A terme, les CB pourraient bien disparaitre car le processus est plus long et pas forcément plus sécurisé :

  • le commerçant saisit le montant
  • on insère la CB
  • on saisie le code (à l’abris des regards indiscrets)
  • on redonne le terminal au commerçant
  • le commerçant attend les 2 tickets qu’il doit découper…

Alors que le sans contact via mobile est plus simple :

  • le commerçant saisit le montant
  • on valide le paiement sur le mobile / la montre (peu importe les regards indiscrets)
  • on s’en va : chacun a reçu son ticket via le web.

À Google de sortir Android Pay en France, aux banques de jouer le jeu et adieu la CB.

iOS 10 : un point sur la compatibilité

En général, une application iPhone ou iPad est compatible avec les versions n – 1 de iOS.

Qu’en est-il avec iOS 10 ? Qu’en est-il du matériel ? Tout vous sera dévoilé dans cet article.

État de l’art

Aujourd’hui, la plupart de applications sont compatibles iOS 8 et iOS 9. Ce qui permet d’être compatible avec plus de 90 % des appareils : 97 % selon les chiffres Apple de juillet 2016, sachant que quasiment 90 % des appareils sont sur iOS 9.

Une particularité cependant : tous les appareils compatibles iOS 8 sont également compatibles iOS 9, ce qui facilite l’adoption. Même si l’expérience passée a montré que le changement de compatibilité matérielle n’est pas vraiment un frein, un appareil iOS pouvant supporter les dernières mises à jour pendant 4 à 5 ans (on change de smartphone tous les 3-4 ans en général, le temps que les demandes de fonctionnalités de la part des utilisateurs les rendent « obsolètes »).

Par exemple, iOS 9 est compatible avec l’iPhone 4S sorti le 14 octobre 2011. Sachant qu’il faut au minimum un iPhone 5 pour jouer à Pokémon Go (des millions d’apps distribuées), cela donne une idée de l’impact sur le parc actuel.

Le taux d’adoption de iOS 9 a été très rapide : plus de 50 % en moins d’un moins, au moins 30 % dès le premier jour de sortie.

Les appareils compatibles avec iOS 9 :

  • tous les iPhone à partir de l’iPhone 4S (fin 2011)
  • tous les iPad à partir de l’iPad 2 (début 2011)

Et iOS 10 ?

iOS 10 vient avec de nombreuses nouvelles fonctionnalités qui dépassent les capacités de l’iPhone 4S et l’iPad 2. Tout en ne profitant pas pleinement de la technologie des appareils les plus récents.

Les appareils compatibles sont donc :

  • tous les iPhone à partir de l’iPhone 5 (iPhone 4S disparait)
  • tous les iPad à partir de l’iPad 4 (iPad 2 et iPad 3 disparaissent)
  • tous les iPad Mini à partir de l’iPad Mini 2 (iPad Mini 1 disparait)

En gros, tous les appareils sortis à partir de fin 2012 sont compatibles. C’est à dire les produits équipés de puce A6 minimum. En gros, 3X plus puissantes que les A5 tout en étant plus économes en énergie.

Et pour l’avenir ?

Il y a fort à parier pour que la prochaine grosse étape soit le 100% 64 bits.

En effet, l’A7 est le premier processeur de smartphone 64 bits et il est apparu avec l’iPhone 5S. Un atout qui permettra de profiter de meilleures performances et un niveau de sécurité plus élevé sans toucher à l’autonomie.

Un autre atout de l’architecture A7 est la compatibilité avec l’API Metal (induite par le 64 bits), qui permet de tirer le meilleur parti des performances graphiques. En gros, on gagne des performances et de la qualité dans les jeux vidéos et autres animations sans avoir un impact sur la consommation d’énergie.

L’A7 est également compatible avec OpenGL ES 3.0, une autre API graphique moins performante que Metal mais plus populaire.

Il y a donc fort à parier pour que iOS 11 soit une version encore plus stable que iOS 10. Et pour que iOS 12 soit une bombe en termes de sécurité, d’autonomie et d’effets visuels.

Mais ça, c’est pour plus tard.

En conclusion

iOS 10 arrive cet automne, probablement en septembre, avec plein de nouveautés dont la très grande majorité des utilisateurs iOS pourront profiter.

Pour les autres, ils pourront profiter des apps pendant environ 1 an.

Ensuite, s’ils veulent rester à jour, il faudra penser à changer de matériel. Si le budget est limité, Apple propose des appareils reconditionnés à moindre coût.

Sachant que la meilleur rapport qualité/prix du moment reste l’iPhone SE : la puissance d’un iPhone 6S, dans un petit iPhone avec un peu moins de fonctionnalités (écran un peu moindre, pas de 3D Touch), à moins de 500 € (offre à 15,95 € / mois disponible sur le site Apple).

Apple en pleine forme !

Un petit point sur l’actualité d’Apple.

1 milliard d’iPhone vendus

Apple vient récemment d’annoncer le milliardième iPhone vendu !

1 milliard. Ce n’est pas rien. Sachant que la moitié de ces iPhone (~ 500 millions) ont été vendus ces 2 dernières années.

Quand l’iPhone est sorti en 2007, Nokia était le leader incontesté et Blackberry était en pleine forme. Apple est arrivée avec un smartphone qui coûtait cher et n’était même pas compatible avec Flash (un plugin installé à l’époque dans les navigateurs).

L’app store le plus rentable

Alors que son concurrent Google continue d’écouler ses appareils pour développer son marché publicitaire, Apple a choisi de faire payer les consommateurs.

Malgré un nombre bien inférieur d’appareils en circulation (~ 500 millions pour iOS, contre au moins 1 milliard pour Android, Apple continue de dominer le marché des apps.

En effet, son App Store est 2 fois plus rentable que Google Play. Avec 2 fois moins de téléchargements. Une opportunité pour Apple et pour les concepteurs d’applications.

Apple Pay en plein essor

Nous avons parlé d’Apple Pay il y a quelques temps.

La plateforme de paiement sans contact d’Apple continue de se développer. Elle est disponible en France depuis juillet. Et elle va accepter de plus en plus de nouveaux partenaires.

Son nombre d’utilisateurs a été multiplié par 4 en un an.

Les 3/4 des paiements sans contact réalisés aux USA se font via Apple Pay.

Apple Pay est disponible dans plus de 11 millions de points de vente dans le monde, et ce chiffre ne cesse de croitre.

Et plein d’autres choses

Le successeur de l’iPhone 6S se fait attendre. iOS 10 va également apporter de nombreuses opportunités. L’iPhone SE et l’iPad Pro voient leur succès se confirmer.

Certes, tout n’est pas rose, mais c’est très encourageant pour les concepteurs d’applications et autres partenaires d’Apple : le premium a encore un bel avenir devant lui !