Accueil / Cybersécurité / IOT / Prendre en compte la sécurité dans le développement des smart cities : nouvel enjeu pour les gouvernements

Prendre en compte la sécurité dans le développement des smart cities : nouvel enjeu pour les gouvernements

Alors que le concept de smart cities (villes intelligentes) devient de plus en plus une réalité les problématiques concernant leur sécurité le deviennent également. Que peut-on faire pour s’assurer que les pratiques de sécurité mises en place soient adaptées à cette réalité ? Par Ismet Geri, vice-président Europe du Sud chez ForgeRock.

Le concept de smart city n’est plus une idée futuriste et lointaine. Il s’agit d’une véritable initiative que les gouvernements du monde entier adoptent. Toutefois, alors que l’Internet des Objets (IdO) continue à stimuler le développement des smart cities, il accroît également la nécessité de faire face aux problèmes liés à la sécurité qui vont de pair avec elles.

Au début du lancement de la première vague d’implémentations de l’Internet des Objets, il y a quelques années, la communication et la connectivité étaient naturellement les objectifs principaux. Le fait de se connecter au réseau de « simples » objets tels que les téléviseurs, les ampoules et les thermostats représentait une importante avancée technique. Ces nouveaux « objets » connectés donnaient de tels résultats que les aspects concernant la gestion des accès et de l’identité étaient souvent négligés.  Alors que les communications de l’IdO gagnent en maturité et en stabilité, nous comprenons maintenant mieux les vulnérabilités et les risques potentiels relatifs à la perte de données.

L’impressionnante quantité d’appareils de l’Internet des Objets offre un important vecteur d’attaque à des personnes malveillantes. À l’échelle d’une ville dans laquelle des milliers d’appareils communiquent simultanément à la fois avec des utilisateurs et entre eux, les implications en matière de sécurité sont importantes. Les villes intelligentes représentent la cible idéale pour les pirates informatiques souhaitant créer des réseaux de style botnet constitués d’appareils compromis et s’en servir afin d’exécuter des tâches différentes de celles pour lesquels ils étaient destinés à l’origine.

Par exemple, imaginez qu’un pirate informatique puisse compromettre le système gérant le flux de trafic d’une ville et qu’il fasse passer au rouge tous les feux de signalisation du centre-ville aux heures de pointe. Associez cela à des interférences sur les stations de radio locales : il ne serait alors plus possible d’avertir les citoyens. Alors que les automobilistes emprunteraient leur chemin habituel pour se rendre au travail sans se douter des problèmes, la ville entière risquerait de se retrouver embouteillée en l’espace de quelques minutes. Non seulement cet incident coûterait de l’argent à la ville du point de vue de la productivité, mais les services d’urgence ne pourraient également pas intervenir rapidement, ce qui pourrait potentiellement coûter des vies.

Comment peut-on réduire les menaces ?
Pour empêcher les menaces de cette nature, il faut en premier lieu comprendre d’où elles proviennent. La meilleure manière d’y parvenir consiste à s’assurer que chaque appareil connecté dans l’infrastructure de la ville intelligente, qu’il s’agisse d’une voiture, d’un réverbère ou d’un détecteur de tremblements de terre, dispose d’une identité validée et est correctement relié au réseau. En effet, si un appareil est identifiable, il est bien plus facile de confirmer que les données qu’il génère sont authentiques et qu’il est possible de leur faire confiance. En outre, cela signifie surtout que si l’appareil tente d’exécuter une action sans en avoir l’autorisation, il peut être identifié et son action peut être empêchée.

Des efforts axés sur une gestion des risques efficace
Il est irréaliste d’attendre d’un réseau qu’il soit entièrement exempt de comportements malveillants. Même si les meilleures mesures en matière de sécurité sont prises, quelqu’un/quelque chose finira par s’y introduire étant donné le grand nombre de vecteurs d’attaques et de menaces qui existent. À ce titre, une gestion des risques efficace est l’élément clé pour évaluer les menaces et y réagir dans n’importe quelle smart city.  Des contrôles et, de manière plus importante encore, des plans de restauration doivent également être mis en place non seulement pour réduire l’étendue du risque, mais aussi pour réagir activement une fois un problème décelé.

L’infrastructure publique représentera toujours une cible particulièrement attractive pour les criminels et les terroristes. Par conséquent, il est essentiel de prendre des mesures efficaces à cette échelle afin de sécuriser les smart cities. Tout programme visant à sécuriser les smart cities doit être vérifié régulièrement afin de garantir que les dernières innovations y soient intégrées et qu’il soit toujours conforme. En association avec la gestion de l’identité et une connaissance solide des vecteurs de menaces, ces mesures devraient suffire à protéger des smart cities qui ne cessent d’évoluer.

É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>