Accueil / Cybersécurité / Securite informatique / Testé pour vous, la clé double authentification SoloKeys

Testé pour vous, la clé double authentification SoloKeys

Après vous avoir proposé de découvrir les méthodes de double authentification offertes sur le web, Google ou encore la Yubico, voici la présentation de la Solo Tap Hacker de chez Solokeys !

Les tests que nous vous proposons sur les matériels de cybersécurité vous plaisent. Vos messages nous font plaisir et nous incitent à vous en proposer d’autres. Après vous avoir fait découvrir la double authentification de Google, Facebook, Linkedin, de l’administration d’un site web sous WordPress. Après la découverte des clés 2FA/FIDO de chez Yubico ou encore la Titan Security Key de chez Google. Voici le test de la Solokeys.

Solokeys, kesako

La solution de cybersécurité Solokeys à le goût de la clé de chez Google ; la couleur de la clé de chez Yubiko mais sa force se cache ailleurs. Cette double authentification physique tire sa force de sa communauté. C’est la première Fido Security Key open source. Bilan, les « codeurs » qui veulent mettre leur nez dans l’objet et sa programmation sont attendus les bras ouverts. Plusieurs versions sont proposées. J’ai testé la SOLO (USB) et la SOLO TAP (USB et le sans contact). Il est possible de recevoir la clé en mode « développeur ». Compter 20€ pour la SOLO ; 35€ pour la TAP. La version « je mets mes doigts dedans » coûte 20euros.

Test de la Solokeys

Le packaging arrive par la poste dans une enveloppe à bulle. J’avoue que pour avoir eu des colis de ce type arriver dans le même type d’enveloppe me laisse des sueurs froides sur le front. Je me souviens encore de cette enveloppe à bulle… et les traces de roues de ce qui semblait être une moto. L’objet à l’intérieur était littéralement DÉFONCÉ !

En ce qui concerne la SoloKeys, pas de problème. Le colis est arrivé en 20 jours après le paiement.

Exemple d'authentification de la Solokeys sur Facebook.

Les clés sont dans une seconde enveloppe métallisée, celle qui protègent les appareils électroniques de l’électricité statique. Selon la clé, vous recevrez dans votre colis la clé nue et deux protections en caoutchouc. A noter que j’ai cassé une des clés commandées rien qu’en tentant de mettre la protection noire. La clé à fait… crick, crack. Je mettrais cela sur mon petit côté « gros doigts de bourrin ». Une fois la seconde clé protégée par sa ganse rouge, son utilisation est fort simple. D’ailleurs, la page proposant sa mise en route est l’une des plus claire rencontrée. Pour authentifier la clé, il suffit de se rendre dans les espaces de Validation en deux étapes et activer la clé. Google c’est par ici ; Facebook c’est par .

Solokeys
La SoloKeys est très simple d’utilisation… et modifiable. Son code est open source.

Résistance et confiance ?

La force de la Solo keys réside dans son code source ouvert. Son matériel (fabrication) l’est tout autant. Autre détail loin d’être négligeable, surtout pour ceux qui craignent les Américains, les Russes, la Corée du Nord et les extraterrestres, le processeur et le circuit imprimé sont fabriqués et programmés en Europe. Côté résistance physique. Comme déjà indiqué, j’ai « cassé » une clé en voulant la placer dans son étui en latex. J’en ai cassé une autre en voulant l’accrocher à un porte clé. Côté étanchéité. Un passage en machine à laver n’a pas altérée le fonctionnement de la clé.

En conclusion. La Solokeys Une excellente alternative pour ceux qui ne souhaitent pas passer par les géants du secteur. La double authentification étant un outil indispensable dans votre panoplie cybersécurité.

Étiquetté :

Nos partenaires




Actualités du mois

mars 2026
L M M J V S D
 1
2345678
9101112131415
16171819202122
23242526272829
3031  

Articles en UNE

Actus zataz



Réseaux sociaux


Liste des sujets


<!-- Cyber'Émission ZATAZ — badge volant (déplaçable) + réduire/fermer -->
<div class="zataz-yt-float" id="zatazYtFloat" role="region" aria-label="Cyber'Émission ZATAZ">
  <div class="zataz-yt-float__bar" id="zatazYtBar">
    <span class="zataz-yt-float__title">Cyber'Émission ZATAZ</span>

    <div class="zataz-yt-float__actions">
      <button type="button" class="zataz-yt-float__btn" id="zatazYtMin" aria-label="Réduire">—</button>
      <button type="button" class="zataz-yt-float__btn zataz-yt-float__btn--close" id="zatazYtClose" aria-label="Fermer">×</button>
    </div>
  </div>

  <a class="zataz-yt-badge" href="https://www.youtube.com/@ZATAZCOM" target="_blank" rel="noopener noreferrer"
     aria-label="Regarder Cyber'Émission ZATAZ sur YouTube (nouvel onglet)">
    <span class="zataz-yt-badge__thumb" aria-hidden="true">
      <span class="zataz-yt-badge__play" aria-hidden="true"></span>
    </span>
  </a>
</div>

<style>
  .zataz-yt-float{
    position:fixed;
    right:18px;
    bottom:18px;
    z-index:99999;
    width:320px;
    max-width:calc(100vw - 36px);
    border-radius:14px;
    overflow:hidden;
    background:linear-gradient(135deg,#111827,#0b1220 55%,#111827);
    border:1px solid rgba(255,255,255,.12);
    box-shadow:0 14px 40px rgba(0,0,0,.35);
    transform:translateZ(0);
    user-select:none;
    touch-action:none; /* drag mobile */
  }

  /* Barre de drag + boutons */
  .zataz-yt-float__bar{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    padding:10px 10px 10px 12px;
    font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
    color:#fff;
    background:rgba(0,0,0,.18);
    border-bottom:1px solid rgba(255,255,255,.10);
    cursor:grab;
  }
  .zataz-yt-float__bar:active{ cursor:grabbing; }
  .zataz-yt-float__title{
    font-weight:800;
    letter-spacing:.2px;
    font-size:15px;
    line-height:1;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
  }
  .zataz-yt-float__actions{ display:flex; gap:8px; }
  .zataz-yt-float__btn{
    appearance:none;
    border:1px solid rgba(255,255,255,.18);
    background:rgba(0,0,0,.28);
    color:#fff;
    width:32px;
    height:28px;
    border-radius:10px;
    font-weight:900;
    line-height:1;
    cursor:pointer;
    display:grid;
    place-items:center;
  }
  .zataz-yt-float__btn:hover{ background:rgba(255,255,255,.08); border-color:rgba(255,255,255,.28); }
  .zataz-yt-float__btn--close:hover{ background:rgba(239,68,68,.22); border-color:rgba(239,68,68,.45); }

  /* Contenu (votre vignette) */
  .zataz-yt-badge{
    display:block;
    text-decoration:none;
    color:#fff;
  }
  .zataz-yt-badge__thumb{
    display:block;
    height:180px;
    background:#0f172a url("https://i.ytimg.com/vi/HUo8dnD6Swk/hqdefault.jpg") center/cover no-repeat;
    position:relative;
  }
  .zataz-yt-badge__play{
    position:absolute;
    left:50%;
    top:50%;
    width:54px;
    height:54px;
    margin:-27px 0 0 -27px;
    border-radius:999px;
    background:rgba(0,0,0,.55);
    border:1px solid rgba(255,255,255,.25);
    box-shadow:0 10px 22px rgba(0,0,0,.35);
  }
  .zataz-yt-badge__play:before{
    content:"";
    position:absolute;
    left:22px;
    top:16px;
    width:0;height:0;
    border-top:11px solid transparent;
    border-bottom:11px solid transparent;
    border-left:16px solid #fff;
  }

  .zataz-yt-float:hover{
    box-shadow:0 18px 55px rgba(0,0,0,.45);
    border-color:rgba(255,255,255,.18);
  }
  .zataz-yt-badge:active{ transform:scale(.99); }

  /* Etat réduit */
  .zataz-yt-float.is-min .zataz-yt-badge{ display:none; }
  .zataz-yt-float.is-min{ width:260px; }

  /* Mobile : plus compact */
  @media (max-width:480px){
    .zataz-yt-float{ width:280px; right:12px; bottom:12px; }
    .zataz-yt-badge__thumb{ height:158px; }
    .zataz-yt-float.is-min{ width:220px; }
  }
</style>

<script>
(() => {
  const box = document.getElementById('zatazYtFloat');
  const bar = document.getElementById('zatazYtBar');
  const btnMin = document.getElementById('zatazYtMin');
  const btnClose = document.getElementById('zatazYtClose');

  if (!box || !bar || !btnMin || !btnClose) return;

  // Réduire / restaurer
  btnMin.addEventListener('click', (e) => {
    e.stopPropagation();
    box.classList.toggle('is-min');
    btnMin.textContent = box.classList.contains('is-min') ? '▢' : '—';
    btnMin.setAttribute('aria-label', box.classList.contains('is-min') ? 'Restaurer' : 'Réduire');
  });

  // Fermer
  btnClose.addEventListener('click', (e) => {
    e.stopPropagation();
    box.remove();
  });

  // Drag (souris + tactile) via Pointer Events
  let dragging = false;
  let startX = 0, startY = 0;
  let startLeft = 0, startTop = 0;

  // Position initiale: on convertit right/bottom en left/top pour le drag
  const init = () => {
    const r = box.getBoundingClientRect();
    box.style.left = r.left + 'px';
    box.style.top  = r.top  + 'px';
    box.style.right = 'auto';
    box.style.bottom = 'auto';
  };
  init();

  const clamp = (v, min, max) => Math.min(Math.max(v, min), max);

  bar.addEventListener('pointerdown', (e) => {
    // pas de drag quand on clique sur les boutons
    if (e.target === btnMin || e.target === btnClose) return;

    dragging = true;
    bar.setPointerCapture(e.pointerId);

    const r = box.getBoundingClientRect();
    startX = e.clientX;
    startY = e.clientY;
    startLeft = r.left;
    startTop = r.top;

    e.preventDefault();
  });

  bar.addEventListener('pointermove', (e) => {
    if (!dragging) return;

    const dx = e.clientX - startX;
    const dy = e.clientY - startY;

    const r = box.getBoundingClientRect();
    const w = r.width;
    const h = r.height;

    const maxLeft = window.innerWidth - w - 8;
    const maxTop  = window.innerHeight - h - 8;

    box.style.left = clamp(startLeft + dx, 8, maxLeft) + 'px';
    box.style.top  = clamp(startTop + dy, 8, maxTop) + 'px';
  });

  const endDrag = () => { dragging = false; };
  bar.addEventListener('pointerup', endDrag);
  bar.addEventListener('pointercancel', endDrag);

  // Re-clamp au resize
  window.addEventListener('resize', () => {
    const r = box.getBoundingClientRect();
    const maxLeft = window.innerWidth - r.width - 8;
    const maxTop  = window.innerHeight - r.height - 8;
    box.style.left = clamp(r.left, 8, maxLeft) + 'px';
    box.style.top  = clamp(r.top, 8, maxTop) + 'px';
  });
})();
</script>