技術記事 - クミコミ https://www.kumikomi.jp クミコミは、組込みシステム・ソフトウェア、マイコン・プロセッサ、CPU、RTOS等の情報サイトです。電子機器開発メーカーの経営者・責任者・開発担当者・エンジニア向けに、組込み関連の機器、開発、プログラミング、セミナー情報等を発信しています。 Fri, 10 Jan 2025 10:51:29 +0000 ja hourly 1 https://wordpress.org/?v=7.0.8 https://www.kumikomi.jp/wp-content/uploads/2023/03/クミコミシンボルホワイト-150x150.png 技術記事 - クミコミ https://www.kumikomi.jp 32 32 HTTP/3 over QUICとは?特徴や普及率を解説 https://www.kumikomi.jp/http-3-over-quic/?utm_source=rss&utm_medium=rss&utm_campaign=http-3-over-quic Fri, 20 Dec 2024 10:33:00 +0000 https://www.kumikomi.jp/?p=9157 Webブラウジングの基盤となるHTTPの最新バージョン「HTTP/3」が注目を集めています。従来のTCPに代わってQUICプロトコルを採用し、高速で安定した通信を実現しているのが特徴です。本記事では、HTTP/3が注目さ […]

The post HTTP/3 over QUICとは?特徴や普及率を解説 first appeared on クミコミ.

]]>
HTTP/3 over QUICとは?

HTTP/3 over QUICは、Webブラウジングの基盤となるHTTPプロトコルの最新バージョンです。従来のHTTP/1.1やHTTP/2がTCPを使用していたのに対し、HTTP/3は新しいトランスポートプロトコル「QUIC」を採用しました。

QUICは2012年にGoogleが開発を始め、その後IETFによって標準化された新世代のプロトコルです。UDPをベースとしながら、TCPのような信頼性の高い通信を実現し、さらにモバイル時代に適した拡張性を備えています。

HTTP/3は、HTTP/2の優れた特徴(バイナリプロトコル、多重化通信、ヘッダー圧縮など)を継承しながら、QUICの採用によってさらなる進化を遂げました。特に注目すべきは、ネットワーク切り替えへの対応力が大幅に向上し、スマートフォンでの利用に最適化されている点です。2022年に標準化されて以降、主要ブラウザやサーバーでの対応が進んでいます。

HTTP/3が注目を集めている理由

HTTP/3が注目を集めている理由

HTTP/3が注目を集めている最大の理由は、HTTP/2が抱えていた根本的な課題を解決し、モバイル時代に最適化された通信を実現したことです。

特に重要なのが、TCPからQUICへの移行です。HTTP/2では、ストリームの多重化によってアプリケーション層でのヘッドオブラインブロッキング(HoLブロッキング)を解消しました。一方、TCP層での遅延や再送が発生すると依然として通信全体が影響を受けていました。

HTTP/3はQUICを採用することで、パケットロス時の効率を大幅に改善し、通信の安定性を高めています。さらに、TLS1.3による強固な暗号化が標準で組み込まれ、セキュリティも向上しました。

モバイル環境での利用が主流となった現代において、HTTP/3はより快適なWeb体験を提供する次世代標準として注目を集めているのです。

HTTP/3の普及率は26.1%

W3Techsの調査によると、全世界のWebサイトにおけるHTTP/3の普及率は26.1%です(2024年11月時点)。主要ブラウザ(Firefox、Safari、Chrome、Edge)はすでにHTTP/3をサポートしており、NginxやLiteSpeedなどの主要Webサーバーも対応を進めています。GoogleやYouTube、Facebookといった大手サービスはすでにHTTP/3を採用済みです。HTTP/3に対応していないブラウザやサーバーの場合は、自動的にHTTP/2にフォールバックするため、互換性の問題も発生しません。

HTTP/3の特徴

HTTP/3の特徴

HTTP/3には主に3つの特徴があります。まず、パフォーマンスが大幅に向上している点です。QUICプロトコルの採用により、1つの接続で複数のストリームを同時に処理できるため、特定のリクエストが遅延しても他の通信に影響が及びにくくなりました。

次に、セキュリティ面での強化です。QUICはTLS 1.3による暗号化が常に行われており、暗号化されていないQUIC通信は存在しません。その結果さらに安全なWebサイトの提供が実現できました。

さらに、モバイル通信の安定性の向上。「コネクションマイグレーション」という機能を搭載しており、接続の識別にIPアドレスではなく独自の識別子を使用しています。これにより、Wi-Fiとモバイルネットワークの切り替え時でも通信を継続できるようになりました。

HTTP/3利用時の注意点

HTTP/3を利用する際は、従来のHTTPプロトコルとは異なる技術要件があります。特に重要な注意点として、以下の2つのポイントを押さえておきましょう。

  • UDP443番ポートの開放
  • サーバー証明書の利用、Webサイトの常時 SSL 化

UDP443番ポートの開放

HTTP/3では、従来のTCPポートではなく、UDP443番ポートを使用します。ファイアウォールなどで UDP 443 番ポートがブロックされている場合は、HTTP/3を利用することができませんが、ブロックが発生した場合自動的にHTTP/2にフォールバックします。システム管理者は、HTTP/3の導入を検討する際、まずUDPポートの開放状況を確認しましょう。

サーバー証明書の利用、Webサイトの常時 SSL 化

HTTP/3はQUICプロトコルを採用しており、QUICではTLS1.3による暗号化が必須要件となっています。つまり、HTTP/3を利用するためには、すべてのWebコンテンツをSSL/TLS証明書で保護しなければなりません。これは近年のWeb セキュリティトレンドとも合致しており、ユーザーデータの保護やSEO対策の観点からもメリットがあります。HTTP/3導入を機に、まだSSL化していないサイトは常時SSL化への移行を検討すべきでしょう。

まとめ

HTTP/3は、QUICプロトコルの採用により、従来のHTTPが抱えていた課題を解決した画期的な通信規格です。高速な通信、強固なセキュリティ、モバイル環境での安定性という3つの特徴があり、すでに世界のWebサイトの26.1%で採用されています。導入には一定の技術要件が必要ですが、Web体験の向上に大きく貢献する次世代標準として、今後さらなる普及が期待されます。

The post HTTP/3 over QUICとは?特徴や普及率を解説 first appeared on クミコミ.

]]>
クロスプラットフォーム開発とは?メリット・デメリットやおすすめのツールを紹介 https://www.kumikomi.jp/cross-platform/?utm_source=rss&utm_medium=rss&utm_campaign=cross-platform Thu, 21 Nov 2024 23:40:00 +0000 https://www.kumikomi.jp/?p=9075 クロスプラットフォーム開発とは、1つのコードで複数のプラットフォームで動作するアプリを開発する技術です。本記事では、クロスプラットフォーム開発の種類やメリット・デメリット、おすすめのツールについて解説します。 クロスプラ […]

The post クロスプラットフォーム開発とは?メリット・デメリットやおすすめのツールを紹介 first appeared on クミコミ.

]]>
クロスプラットフォーム開発とは、1つのコードで複数のプラットフォームで動作するアプリを開発する技術です。本記事では、クロスプラットフォーム開発の種類やメリット・デメリット、おすすめのツールについて解説します。

クロスプラットフォーム開発とは

クロスプラットフォーム開発とは、1つのコードで異なるOSや端末で同じアプリケーションを動作させる技術のことです。例えば、iPhoneとAndroidスマートフォン、WindowsパソコンとMacで同じアプリを使えるようにする仕組みです。

従来、アプリ開発では各プラットフォームに合わせて別々のプログラムを作る必要がありました。しかし、クロスプラットフォーム開発では、一度のプログラミングで複数のプラットフォームに対応できるため、開発時間とコストを大幅に削減できます。

近年、スマートフォンやタブレットの普及に伴い、この技術の重要性が高まっています。特に、日本ではiOSとAndroidの利用者がほぼ半々なので、両方に対応したアプリ開発が求められており、クロスプラットフォーム開発がその解決策として注目されているのです。

クロスプラットフォーム開発には3種類がある

クロスプラットフォーム開発の方法には、以下の3種類があります。

  • ネイティブ型
  • 独自レンダラ型
  • ハイブリッド型

それぞれに特徴があり、開発するアプリケーションの目的や要件によって適した方法を選ぶことが重要です。

ネイティブ型

ネイティブ型アプリは、各OSのUIフレームワークを利用する方式で、高速な処理と自然なユーザー体験を実現できるのが特徴です。 iOS向けにはSwiftUIやUIKit、Android向けにはJetpack Composeなどを使用します。オフライン動作や端末機能を最大限に活用するアプリに適していますが、OSごとに別々の開発が必要です。

各プラットフォームの特性を理解し最適化する必要があるため、開発者には専門知識が求められます。ただし、React NativeやXamarinなどのクロスプラットフォームフレームワークを使用すれば、単一のコードベースで複数のプラットフォーム向けに開発できます。

独自レンダラ型

独自レンダラ型は、OSのUIフレームワークを使わず、独自の描画エンジンでUIを構築する方式です。この方法では、OSに依存しない一貫したUIを実現でき、複数のプラットフォームで同じ見た目と動作を保証できます。

プラットフォーム間で完全に同一のUIが求められるアプリに適しており、特にゲーム開発でよく用いられます。多くのフレームワークはプラグインシステムを提供し、OSネイティブの機能も利用可能です。ただし、独自の描画エンジンを使用するため、パフォーマンスの最適化には注意が必要です。

ハイブリット型

ハイブリッド型は、WebViewを使ってHTMLやCSS、JavaScriptで作られたWebアプリをネイティブアプリのように動作させる方式です。 Web技術を使うため、多くの開発者にとって馴染みやすく、開発の敷居が低いのが特徴です。

既存のWebサイトをアプリ化したい場合や、頻繁な更新が必要なコンテンツベースのアプリに適しています。Web技術を利用するため、開発速度が速く、メンテナンスも比較的簡単です。ただし、ネイティブ型や独自レンダラ型に比べて処理速度が劣る傾向があります。

クロスプラットフォーム開発のメリット

まず、一度のコーディングで複数のプラットフォーム(iOS、Android、Webなど)に対応できるため、開発時間と労力、コストを大幅に削減できます。

また、統一されたコードベースを使用するため、バグ修正や機能追加などの保守作業も効率的に行えます。さらに、開発者は特定のプラットフォーム固有の言語やツールに精通する必要がなく、既存のWeb技術などの知識を活用できるケースが多いため、人材の確保や育成も比較的容易です。

市場展開の観点からも、複数のプラットフォームに同時にリリースできるため、ユーザーの獲得機会を最大化できるメリットがあります。

クロスプラットフォーム開発のデメリット

まず、各OSに固有の不具合が発生した場合、対応に時間がかかることがあります。1つの環境で複数のデバイスに対応できるメリットがある反面、OSごとの細かな違いに対処するのが難しい場合があるのです。

また、クロスプラットフォーム開発のフレームワーク自体が最新OSに対応するまで待つ必要があるため、ネイティブ開発に比べて新機能の実装が遅れることがあります。

クロスプラットフォーム開発におすすめのフレームワーク

プログラミングのコード

クロスプラットフォーム開発におすすめのフレームワークを3つ紹介します。

React Native(ネイティブ型)

React Native(リアクトネイティブ)は、Meta(旧Facebook)が開発したオープンソースのフレームワークです。 JavaScriptとReactの知識を活かしてモバイルアプリを開発できる点が特徴です。ネイティブUIコンポーネントを使用するため、高いパフォーマンスと自然なユーザー体験を実現できます。

InstagramやFacebookなど、多くの有名アプリで採用されているのも魅力の1つです。Web開発者がモバイルアプリ開発に参入しやすい点も魅力で、大規模なコミュニティサポートがあります。

Flutter( 独自レンダラ型 )

Flutter(フラッター)は、Googleが開発したオープンソースのUIソフトウェア開発キットです。Dart言語を使用し、独自のレンダリングエンジンを採用しています。これにより、プラットフォーム間で一貫したデザインと高速なパフォーマンスを実現します。

ホットリロード機能により、開発者は変更をリアルタイムで確認でき、スピーディに開発することが可能です。美しいUIやアニメーションの作成に優れており、Google自身のアプリでも採用されています。ただし、他のフレームワークに比べてアプリのサイズが大きくなる傾向があります。

Apache Cordova(ハイブリッド型)

Apache Cordovaは、Web技術を活用してクロスプラットフォームのモバイルアプリを開発できるオープンソースのフレームワークです。HTML5やCSS3、JavaScriptを使用して、iOSやAndroid向けのアプリを効率的に作成できます。

各デバイスの機能にアクセスするためのAPIを提供し、カメラや加速度センサーなどの様々なプラグインをサポート。さらに、独自のプラグイン作成も可能で、柔軟性の高い開発環境を実現しています。

まとめ|クロスプラットフォーム開発について解説しました

クロスプラットフォーム開発は、効率的にマルチOSアプリを作る手法です。ネイティブ型や独自レンダラ型、ハイブリッド型の3種類があります。開発時間とコストを削減できるのが大きなメリットです。React NativeやFlutter、Apache Cordovaなど様々なフレームワークがあり、プロジェクトの要件に合わせて適切な方法を選択することが重要です。

The post クロスプラットフォーム開発とは?メリット・デメリットやおすすめのツールを紹介 first appeared on クミコミ.

]]>
QUICプロトコルとは?仕組みや特徴、ユースケースを解説 https://www.kumikomi.jp/quic_protocol/?utm_source=rss&utm_medium=rss&utm_campaign=quic_protocol Fri, 08 Nov 2024 01:00:00 +0000 https://www.kumikomi.jp/?p=9109 QUICプロトコルとは、Googleが開発した次世代のインターネット通信プロトコルです。TCPに比べ効率的かつセキュアな通信で、主要なブラウザでは既に対応しており、サーバーへの普及も進んでいます。本記事では、QUICプロ […]

The post QUICプロトコルとは?仕組みや特徴、ユースケースを解説 first appeared on クミコミ.

]]>
QUICプロトコルとは、Googleが開発した次世代のインターネット通信プロトコルです。TCPに比べ効率的かつセキュアな通信で、主要なブラウザでは既に対応しており、サーバーへの普及も進んでいます。本記事では、QUICプロトコルの仕組みや特徴、ユースケースを詳しく解説します。

QUICプロトコルとは?

QUICプロトコルは、Googleが開発した新世代のインターネット通信プロトコルです。従来のTCP/IPに代わり、UDPの上に構築されています。主な目的は、インターネット通信の効率化と信頼性を向上させることです。

現在、IETF(Internet Engineering Task Force)によって標準化が進められており、主要なWebブラウザやサーバーでの採用が広がっています。なお、次世代のHTTPプロトコルであるHTTP/3は、QUICプロトコルを基盤として設計されています。

QUICプロトコルの仕組み

QUICプロトコルの仕組み

QUICプロトコルは、UDPの上に高速性と安全性を両立させる革新的な設計に基づいています。複数のストリームを同時送信するマルチプレキシング(多重化)により効率的な通信を行いつつ、ストリーム個別にフロー制御を行うことで、データ喪失時の影響を小さくし、データ送受信が滞ることがありません

セキュリティ面では、QUICプロトコル経由で送信されるほとんどのデータを暗号化。従来のHTTPSでは、トランスポート層での3ウェイハンドシェイクが完了した後に、TLSハンドシェイクを開始する必要がありました。これに対してQUICプロトコルは、TLS暗号化を通常の通信プロセスに組み込み、2つのハンドシェイクを同時に実行します。この統合により、クライアントとサーバーは接続確立と暗号鍵の生成を並行して行うことができ、結果として接続の確立が高速化されます。

さらに、QUICプロトコルは従来のTCP/IPとTLSのハンドシェイクを統合し、同時に実行することで接続時間を短縮。クライアントとサーバー間のデータ交換をより迅速に開始できます。

QUICプロトコルの特長

QUICプロトコルの特徴

QUICプロトコルの主な特長は以下の4つです。

  • 複数のデータストリームを同時に扱える
  • セキュリティが強固
  • 通信の遅延時間が短い
  • 低帯域の接続でも過負荷にならない

これらの特徴により、QUICプロトコルは従来のプロトコルと比較して、より効率的で安全な通信を実現しています。それぞれ詳しく解説します。

複数のデータストリームを同時に扱える

QUICプロトコルは、単一の接続内で複数のデータストリームを同時に処理できます。これは、64ビットの接続識別子と複数のストリームを使用することで実現されています。

従来のTCP/IPでは、IPアドレスとポート番号で接続を識別するため、1つの接続で複数のポートを使用することは困難でした。しかし、QUICプロトコルはこの制限を解消し、より柔軟な通信を可能にしているのです。

この特徴により、QUICプロトコルは特定のポートやIPアドレス、エンドポイントに縛られることなく、効率的なデータ転送を実現。特に複雑なWebアプリケーションやリアルタイム通信において力を発揮します。

セキュリティが強固

QUICプロトコルは、セキュリティが強固な点も特長の1つです。従来のTCP/IPの主な脆弱性であった、パケットヘッダーが平文で送信される問題に対処しています。

QUICプロトコルの場合、ペイロードを含むほぼすべてのパケットが暗号化され、認証されます。暗号化されていないヘッダー部分も、受信側の認証によって検証されているので、中間者攻撃やインジェクション攻撃、データ改ざんのリスクを大幅に低減することが可能です。

また、TLS暗号化が通信プロセスに統合されているため、安全な接続の確立が迅速に行われます。これにより、高いセキュリティを維持しつつ、通信の効率性も確保しています。

通信の遅延時間が短い

接続のセットアップ速度が従来のTCP/IPよりも大幅に速いのも特徴です。TCP/IPの「3ウェイハンドシェイク」に比べ、QUICプロトコルは1つのパケット(初回接続時は2つ)で接続を開始し、必要なTLSやHTTPSのパラメータも同時に送信します。

効率的な接続確立により、クライアントは多くの場合、サーバーからの応答を待たずに直接データを送信することが可能です。一方、TCP/IPではサーバーの確認応答を待ち、処理する必要があります。

結果として、QUICプロトコルは特に高遅延ネットワークや頻繁に再接続が必要な環境で、大幅な性能向上を実現します。

低帯域の接続でも過負荷にならない

QUICプロトコルは、「パケットペーシング」と呼ばれる技術を採用しています。これにより、ネットワークの負荷ピークを抑制し、データ伝送速度を自動的に調整します。

従来のTCP/IPは常に可能な限り高速にデータを送信しようとするため、パケットロスが発生しやすく、再送信が頻繁に必要になることがありました。一方、QUICプロトコルのパケットペーシングは、低帯域の接続でも過負荷を防ぎ、安定した通信を維持します。

この機能により、QUICプロトコルは様々なネットワーク環境で効率的に動作し、特に不安定または低速な接続でのパフォーマンスを向上させます。

QUICプロトコルのユースケース

QUICプロトコルのユースケース

QUICプロトコルは、さまざまな分野で活用が期待されています。以下が主要なユースケースです。

  • リアルタイム通信の品質向上
  • IoTデバイスの接続強化
  • 次世代モビリティの通信基盤

それぞれ詳しく解説します。

リアルタイム通信の品質向上

QUICプロトコルは、ビデオ会議システムやオンラインゲームなど、リアルタイム性が求められるアプリケーションの性能を大幅に向上させます。独立したストリームと効果的な輻輳(ふくそう)制御機構により、低遅延で信頼性の高いデータ通信を実現します。

特に音声や映像通信において、QUICプロトコルは迅速かつ効率的なデータの送受信を可能にし、マルチストリームモードでは同一接続内の異なるストリーム間での影響は受けません。これらの特性により、リアルタイムのWebやモバイルアプリケーションの通信品質が大幅に改善され、ユーザー体験を向上できます。

IoTデバイスの接続強化

QUICプロトコルは、スマートホーム機器やウェアラブルデバイスなど、様々なIoTアプリケーションの通信品質と安定性を大幅に向上させます。高遅延・高パケットロス環境でも安定して機能するよう設計されているからです。

結果として、制約のあるネットワーク環境でのIoTデバイス通信における従来のTCP/IPやMQTTの課題を解決できます。ラウンドトリップタイム(RTT)はほぼゼロに近いため、ネットワークの利用効率とユーザー体験が向上し、IoTデバイスとの通信の信頼性と効率性を高められます。

次世代モビリティの通信基盤

QUICプロトコルは、自動運転システムの安全性向上やリアルタイムの交通情報の提供、車両間通信の効率化など、次世代モビリティの革新的サービスの基盤となります。

QUICプロトコルは低遅延性や多重化機能、パケットロスや順序の乱れへの耐性を備えているからです。これらの特性により、自動運転車やコネクテッドカーのリアルタイムデータ交換に不可欠な、車両とインフラ間の信頼性の高い通信を実現できます。

さらに、TLS暗号化により機密性の高い車両データのセキュリティを強化し、次世代自動車(IoV)エコシステム全体の安全性と効率性を向上させることも可能です。

【まとめ】QUICプロトコルについて解説しました

QUICプロトコルは、従来のTCP/IPに代わる新しい通信プロトコルです。複数のデータストリームの同時処理や強固なセキュリティなどが特徴です。これらの特性により、リアルタイムアプリケーションやIoTデバイス、自動運転車などの次世代技術において、通信の品質と効率を大幅に向上させることが期待されています。IETFによる標準化が進み、今後も主要ブラウザやサーバーでの採用が広がっていくでしょう。

The post QUICプロトコルとは?仕組みや特徴、ユースケースを解説 first appeared on クミコミ.

]]>
Yocto Projectとは?利用するメリット・デメリットを解説 https://www.kumikomi.jp/yocto-project/?utm_source=rss&utm_medium=rss&utm_campaign=yocto-project Fri, 27 Sep 2024 01:17:00 +0000 https://www.kumikomi.jp/?p=8857 組込み機器やIoT機器開発で、ソフトウェアのカスタマイズ性や効率性を追求する開発者にとっては、Yocto Project(ヨクトプロジェクト)は非常に有用なツールです。しかし、Yocto Projectを使うには一定の知 […]

The post Yocto Projectとは?利用するメリット・デメリットを解説 first appeared on クミコミ.

]]>
組込み機器やIoT機器開発で、ソフトウェアのカスタマイズ性や効率性を追求する開発者にとっては、Yocto Project(ヨクトプロジェクト)は非常に有用なツールです。しかし、Yocto Projectを使うには一定の知識や経験が必要となります。この記事では、Yocto Projectの概要とその特長、メリット・デメリットについて詳しく解説していきます。

Yocto Projectとは?

Yocto Projectは、組み込みLinuxのディストリビューションを構築するために生まれたLinux Foundation傘下のオープンソースプロジェクトです。具体的には、ビルドシステムやレシピ、パッケージ管理のためのツール群を提供し、開発者が自身の要件に合ったLinuxディストリビューションの作成が可能で、無料で利用することができます。

Yocto Projectの主なコンポーネント

poky : リファレンス・ビルド・システム

カスタマイズした独自のLinuxディストリビューションを構築するためのシステムです。

bitbake(ビットベイク): ビルドツール

Yocto(poky)上で利用される組込みLinuxシステム向けのビルドツール。 BitBakeは、Makeのようなもので、後述のレシピを元に依存関係ツリーを作成してコンパイルを順序付け、含まれるコードのコンパイルをスケジュールし、最後に指定されたカスタム Linux イメージのビルドを実行します。

レシピ: ソフトウェアのビルド定義

ソフトウェアのビルドを行うのに必要な手順や依存関係、ソースコードの情報などを記述したファイルです。

レイヤー

レシピなどを含めた情報を集めた層。レイヤーは階層化されており、以前の仕様に機能を追加することができます。

Yocto Projectを利用する際の3つのメリット

メリット①:高いカスタマイズ性によってOSを構築できる

Yocto Projectは、OSの機能を自由に選択・削除できるため、必要最低限の機能に絞り込んで軽量化することが可能です。このレイヤーモデルによって、各プロジェクトの要件に最適化された組込みLinuxディストリビューションを作成できるため、メモリリソースが限られたデバイスでも効率的に動作させることができます。

メリット②:組込み業界全体で広く採用されている

Yocto Projectは、組込みLinux開発においてデファクトスタンダードとして広く認知されています。
実際、多くの半導体メーカーやデバイスメーカーがYocto Projectをサポートしており、業界全体で採用が進んでいます。豊富な情報やリソース、コミュニティサポートも活用できるため、新しいプロジェクトでも安心して導入できる環境が整っています。

メリット③:複数プラットフォームとの互換性の高さ

Yocto Projectは、異なるアーキテクチャやプラットフォーム間でも一貫した開発環境を提供します。特定のハードウェアに依存せず、さまざまなデバイス向けに最適化されたLinuxイメージを構築できるため、異なるプラットフォームへの展開が容易です。そのため将来的なハードウェアの変更や新しいアーキテクチャへの移行もスムーズです。

この互換性の高さにより、開発コストを削減しつつ、柔軟な開発が可能となります。

Yocto Projectを利用する際の3つのデメリット

ここまでYoctoProjectを利用する際のメリットについて解説しましたが、少なからずデメリットも存在します。

デメリット①:習得までに時間がかかる

Yocto Projectを効果的に利用するためには、専門的な知識とスキルが必要で、初心者にとっては習得に時間がかかる点がデメリットとして挙げられます。特に、BitBake(ビットベイク)やレシピの作成、Pokyなどのコンポーネントを理解するには、ある程度の学習と経験が必要です。

デメリット②:初期設定の複雑さ

Yocto Projectのビルド環境を構築するための初期設定は、他のビルドシステムと比較しても複雑です。各種ツールのインストールや環境構築には細かな設定が必要なため、エラーが発生した場合のトラブルシューティングも容易ではありません。この初期設定の複雑さが、プロジェクトの立ち上げにおいて高いハードルとなることがあります。

まとめ

Yocto Projectは、組込み機器開発において有効的なツールです。その高いOSのカスタマイズ性やクロスプラットフォームへの対応など、導入することによって多くのメリットを得ることができます。

一方で、高い学習コストや複雑な初期設定という課題が存在していることも理解する必要があります。これらの点を考慮しつつYocto Projectを導入することで、より効率的で柔軟な組込みシステム開発が可能になるでしょう。

The post Yocto Projectとは?利用するメリット・デメリットを解説 first appeared on クミコミ.

]]>
LoRaWANとは?メリットや主な用途、LoRaとの違いを解説 https://www.kumikomi.jp/lorawan/?utm_source=rss&utm_medium=rss&utm_campaign=lorawan Fri, 23 Aug 2024 08:24:00 +0000 https://www.kumikomi.jp/?p=8652 IoTの世界に革命を起こす通信技術、それがLoRaWANです。読者の中には、LoRaWANという名前は耳にしたことがあるものの、詳しく知らない方もいるのではないでしょうか? そこで本記事では、LoRaWANの概要やメリッ […]

The post LoRaWANとは?メリットや主な用途、LoRaとの違いを解説 first appeared on クミコミ.

]]>
IoTの世界に革命を起こす通信技術、それがLoRaWANです。読者の中には、LoRaWANという名前は耳にしたことがあるものの、詳しく知らない方もいるのではないでしょうか?

そこで本記事では、LoRaWANの概要やメリット、LoRaとの違いまで、わかりやすく解説します。IoTの未来を切り開く、革新的な技術の全貌をぜひご覧ください。

LoRaWANとは

LoRaWAN(Long Range Wide Area Network)は、IoTデバイスの長距離通信を可能にする革新的な無線ネットワーク規格です。低消費電力と広域をカバーするのが特徴で、ライセンス不要の920MHz帯を使用します。

LoRa Allianceが策定し、2021年に国際標準となったLoRaWANは、多数のIoTデバイスを少数のゲートウェイで効率的に接続できます。キャリアの通信網に依存せず、独自のネットワーク構築が可能なため、様々な規模や用途に柔軟に対応することが可能です。

省電力性と長距離通信能力を兼ね備えたLoRaWANは、スマートシティや農業、工場監視など、幅広いIoTアプリケーションで急速に普及しています。

LoRaWANはLPWAの一種

LoRaWANは、LPWA(Low Power Wide Area)と呼ばれる低消費電力広域通信技術の一種です。LPWA規格は他にもNB-IoTやSigfoxなどがあります。

LoRaWANNB-IoTSigfox
電波の免許不要必要不要
通信速度の目安250bps100kbps100bps
最大通信距離の目安10km40km50km

LoRaWANは、免許不要の周波数帯を使用するため、独自のネットワーク構築が容易です。また、双方向通信が可能で、セキュリティ機能も備えています。通信速度は他の技術より遅いものの、センサーデータの送信など小容量データの長距離伝送に最適です。

LPWAについて詳しく知りたい方は、以下の記事も読んでみてください。

関連記事:LPWAとは?特長や他通信規格との比較、活用事例を紹介

LoRaWANとLoRaの違い

LoRaとLoRaWANは、しばしば混同されますが、それぞれ異なる役割を持っています。LoRaはアメリカのセムテック社が開発した無線通信における変調方式の一つで、IoT 接続を提供する長距離無線通信テクノロジーのことです。少ない電力で遠距離通信を可能にする特殊な電波の送り方を使用し、IoTデバイスの基本的な通信手段として利用されています。

一方、LoRaWANは、LoRa技術を利用したネットワークプロトコルです。LoRaの長距離通信能力を活かしつつ、デバイス管理、セキュリティ、双方向通信などの機能を追加しています。

簡単に言えば、LoRaが「どのように信号を送るか」を定義するのに対し、LoRaWANは「その信号をどのように管理し、ネットワーク化するか」を規定しているのです。この組み合わせにより、効率的で信頼性の高いIoTネットワークの構築が可能になっています。

LoRaWANの主な用途

LoRaWANは、多様な分野でIoTを実現する重要な通信技術として注目されています。

主な用途は以下の通りです。

  • 製造業のIoT化
  • スマート農業
  • 物流や人の位置情報トラッキング
  • 環境センシング
  • スマートシティをはじめとする生活インフラの最適化

ビジネスの効率化や新規サービスの立案、社会課題の解決など、幅広い分野で活用が進んでいます。

LoRaWANを活用するメリット

長距離通信網

LoRaWANを活用するメリットは以下の3つです。

  • 省電力で利用できる
  • 長距離通信に対応している
  • ノイズ耐性がある

順番に解説します。

省電力で利用できる

LoRaWANの最大の特長の1つは、優れた省電力性能です。従来の4Gや5G回線、Wi-Fiと比べ、圧倒的に低い消費電力で動作します。ボタン電池1個で双方向通信可能なセンサーも。

この特性により、デバイスの電池寿命が大幅に延長され、頻繁な充電やバッテリー交換が不要になります。結果として、メンテナンス作業の軽減とコスト削減につながります。また、低消費電力によりセンサーの小型化も可能となり、設置や運用に労力がかかりません。

長距離通信に対応している

優れた長距離通信能力もLoRaWANを活用するメリットと言えるでしょう。群馬大学理工学部と太田市による実証実験では、LoRaWANのゲートウェイ(基地局)が半径10kmをカバーし、5Gアンテナの100倍の範囲で通信を可能にしています。

この能力により、広大な農地や都市全体をカバーする大規模IoTネットワークの構築ができるようになります。また、遠隔地のモニタリングや、通信インフラ整備が困難だった地域でのIoT導入も容易になるでしょう。

参照:国立大学法人 群馬大学 理工学部・大学院理工学府「【太田市との実証実験】LoRaWAN超低電力広域ネットワークを活用した熱中症対策について」

ノイズ耐性がある

優れたノイズ耐性もLoRaWANを活用するメリットです。使用する920MHz帯は、他の無線ネットワークが存在する環境下でも安定した通信を実現できます。これは、Wi-Fiなどが使用する2.4GHz帯と比べて大きな利点です。2.4GHz帯では、デバイスが密集すると通信干渉が起こり、接続が不安定になることがあります。

一方、LoRaWANは電波干渉の影響を受けにくく、工場内など無線設備が多い環境でも安定運用が可能です。

まとめ|LoRaWANについて解説しました

LoRaWANは、低消費電力で長距離通信が可能な無線ネットワーク規格で、スマートシティや農業、工場監視など幅広い分野で活用されています。

主なメリットは省電力性、長距離通信能力、ノイズ耐性の3つです。

LoRaWANは、効率的で信頼性の高いIoTネットワークの構築を可能にし、IoT技術の未来を切り開く重要な役割を果たすことが期待されています。

The post LoRaWANとは?メリットや主な用途、LoRaとの違いを解説 first appeared on クミコミ.

]]>
Arm TrustZoneとは? https://www.kumikomi.jp/arm-trustzon/?utm_source=rss&utm_medium=rss&utm_campaign=arm-trustzon Fri, 26 Apr 2024 00:44:00 +0000 https://www.kumikomi.jp/?p=7776 Arm TrustZoneは、Armプロセッサが提供するセキュリティ技術です。コンピューターシステムのセキュリティを向上させるために開発されました。 非セキュアな環境とセキュアな環境にコンピューターリソースを分割し、安全 […]

The post Arm TrustZoneとは? first appeared on クミコミ.

]]>
Arm TrustZoneは、Armプロセッサが提供するセキュリティ技術です。コンピューターシステムのセキュリティを向上させるために開発されました。

非セキュアな環境とセキュアな環境にコンピューターリソースを分割し、安全な実行環境の提供を目的としています。モバイルデバイスやマイクロコントローラーなど、さまざまなプラットフォームで利用可能です。

TrustZoneは、Armv8-M(Cortex-Mシリーズ)とArmv8-A(Cortex-Aシリーズ)に搭載されています。また、 Armv8-AとArmv8-Mでは仕組みが異なり、Armv8-Mは組込みシステム向きに最適化されています。

IoTデバイスでは堅牢なシステムが必要

近年、スマートホームや産業機器などのIoTデバイスがインターネットに接続されることで、高度なセキュリティが求められています。情報のやり取りが含まれるため、攻撃の標的となりやすくなってしまいます。

IoTの普及により、社会は便利になる一方で、インターネットに接続する機器の増加に伴いセキュリティリスクも増加していると言えます。例えば、以下のようなリスクが考えられます。

  • 自動車の車載システムに不正アクセスを行い、遠隔操作でブレーキやハンドルを操作することで事故を引き起こす
  • 病院の輸液ポンプを不正に操作して薬物の投与量を変更する
  • 自宅の監視カメラが不正にアクセスされ、映像が公開される
  • IoT機器が不正なソフトウェアに乗っ取られ、攻撃側として他のシステムを攻撃する

自動車や医療機器などのIoT機器におけるセキュリティ事故は、人命に関わる可能性もあるでしょう。このようなリスクを踏まえて、IoTデバイスにおける堅牢なセキュリティ対策がますます重要となっています。

組込みシステムでサイバー攻撃の可能性を下げるためには

組込みシステムでは、セキュリティファームウェアを独立させることで攻撃のリスクを低減できます。 Armv8-MのTrustZone技術では、非セキュアモード、セキュアモードにコンピューターリソースを分離させて、より安全な環境を実現させています。

非セキュアモードでは、通常のアプリケーションを動かし、 セキュアモードでは、暗号処理、指紋、パスワードなどの機密性の高い処理を実行します。

また、非セキュアモードからセキュアモードの処理を呼び出す際は、必ずセキュアゲートウェイを中継する仕組みになっているます。

ここで、一般的な組込みシステムにおけるセキュリティ要件も紹介するので、ご覧ください。

  • 通信保護:データ転送が許可されていない人に見られたり傍受されたりするのを防ぐもので、暗号化などの他の技術が含まれる場合もある
  • データ保護:権限のない人がデバイス内の機密データへのアクセスを防止
  • ファームウェア保護:オンチップ・ファームウェアのリバースエンジニアリングを防止
  • 動作保護:悪意のある意図的な故障から、重要なオペレーションを保護
  • 改ざん防止:デバイスの動作や保護メカニズムがオーバーライドされるのを防ぐための、改ざん防止機能

参考:Arm Developer

また、Armv8-MのTrustZone技術は、組込みシステム向けに最適化されており、セキュリティ要件の一部に直接対応も可能です。

  • データ保護:機密データは安全なメモリ空間に保存され、安全なソフトウェアだけがアクセス可能。非セキュアソフトウェアは、セキュリティチェックまたは認証後にのみ、非セキュアドメインにサービスを提供するセキュアAPIにアクセス可能。
  • ファームウェア保護:プリロードされたファームウェアは、セキュアメモリに保存して、リバースエンジニアリングや悪意のある攻撃による侵害を防ぐ。 追加の保護テクノロジーと併用も可能。
  • 動作保護:重要な操作用のソフトウェアはセキュアファームウェアとしてプリロードでき、適切な周辺機器はセキュア状態からのアクセスのみを許可するように設定可能。非セキュア側からの侵入から操作を保護。
  • セキュアブート:セキュアブートメカニズムにより、常にセキュアメモリから起動するため、プラットフォームの信頼性を高める。

参考:Arm Developer

ワンチップマイコンでセキュリティ対策は実現できる

Arm Cortex-M33は、Armv8-Mのアーキテクチャに基づき作成されているため、セキュア状態と非セキュア状態をサポートするTrustZoneを使用できます。それにより、ワンチップでのセキュリティ対策を実現できるのです。

Arm Cortex-M33は 、ゲート数が少なく、エネルギー効率が高いとされており、組込みアプリケーション向けのプロセッサです。また、Arm Cortex-M4と比較すると、CPUの性能が約20%強化されています。

主にセキュリティを重視する環境での利用を目的とし、高度な構成が可能で、高速な割り込み応答機能を必要とする幅広い組込みアプリケーションに対応できます。

Arm、Cortexは、米国およびその他の国におけるARM Ltd.の登録商標または商標です。

Trust Zoneテクノロジーを使用して使えるμC3

イー・フォースでは、 Arm Cortex-M33 のセキュリティ機能を活用したRTOS「μC3(マイクロシーキューブ)」を提供しています。 Armv8-Mのアーキテクチャ をベースとして、TrustZone技術のサポートをしています。

マイコン向け超軽量カーネルを採用したRTOS「μC3(マイクロ・シー・キューブ)/Compact」

μC3(マイクロ・シー・キューブ)/Compactは、マイコン内蔵の小さなメモリだけで動作するように最適化された、コンパクトなμITRON4.0仕様のRTOSです。

μC3/Compactは、ソースコードに直接コンフィグレーションを行うのではなく、付属のコンフィグレータによりGUIベースでRTOS、TCP/IP、デバイスのコンフィグレーションからベースコードの自動生成まで行います。

小さいフットプリント
マイコンの小さなROM/RAMのみで動作するように最適化された最小2.4kbyteのコンパクトなカーネル。メモリ容量が小さい安価なデバイスを使用する事ができます。
μC3/Configurator付属
選択・設定するだけでベースコードが生成できるコンフィギュレーションツール。開発時間の大幅な短縮やコーディングミスの減少が可能。RTOSの初心者でも簡単に開発をスタートできます。
豊富なCPUサポート
業界随一のCPUサポート実績があり、技術サポートも充実しています。CPUの選択肢を広げ、機会費用を抑える事ができます。業界随一のCPUサポート実績があり、技術サポートも充実。使用予定のデバイスで直ぐに開発着手が可能で、ご質問に対して24時間以内の1次回答を徹底しています。
省電力対応
デフォルトで省電力機能がついているため、システム全体の省電力に貢献します。

詳しい資料をご希望の方は、下記よりプロダクトガイドをダウンロードしてください。

資料ダウンロード(無料)

高性能リアルタイム処理向けRTOS「μC3(マイクロ・シー・キューブ)/Standard」

μC3(マイクロ・シー・キューブ)/Standardは、μITRON4.0のスタンダードプロファイルをベースに、32/64ビットプロセッサが搭載された組み込みシステム向けのRTOSです。

μC3/Standardは、高性能プロセッサがより高度なリアルタイム制御に耐えられるよう、割込み禁止時間を極力なくし、割込み応答性を最重要課題として設計したRTOSです。

Arm Cortex-Aシリーズ、Arm Cortexシリーズだけでなく、高性能な Arm Cortex-MやRenesas RXシリーズにも対応しています。

32/64bitの高性能プロセッサに最適化
割り込み応答性を高め、32/64bitの高性能プロセッサ向けに最適化されたμITRON4.0仕様のカーネル。
豊富なプロセッサ・サポート
業界随一のプロセッササポート実績があり、技術サポートも充実しています。CPUの選択肢を広げ、機会費用を抑える事ができます。業界随一のCPUサ
ポート実績があり、技術サポートも充実しています。ご使用予定のデバイスで直ぐに開発着手が可能で、ご質問に対して24時間以内の1次回答を徹底しています。
マルチコア対応
組み込み機器向けに最適なAMP型カーネル。マルチコアによって、リアルタイム性能を強化します。
豊富なデバイスドライバを用意
I2C, SPI, GPIO, SDなどのデバイスドライバをオプションで用意。(UART, Timer, INTCはμC3に、EthernetドライバはμNet3に付属しています。)

詳しい資料をご希望の方は、下記よりプロダクトガイドをダウンロードしてください。

資料ダウンロード(無料)

The post Arm TrustZoneとは? first appeared on クミコミ.

]]>
セキュア通信をコンパクトに実現する方法(4)デジタル証明書・公開鍵とは?デジタル署名の仕組みなどをわかりやすく解説 https://www.kumikomi.jp/secure-communication4/?utm_source=rss&utm_medium=rss&utm_campaign=secure-communication4 Fri, 02 Jun 2023 00:00:21 +0000 https://stg.kumikomi.jp/?p=6144 前回の記事では「組込み機器におけるセキュリティ対策」を取り上げました。 今回の記事では、デジタル証明書や公開鍵について述べていきます。 デジタル証明書は通信技術ではありませんが、プロトコルとの相性も非常によい特長があり、 […]

The post セキュア通信をコンパクトに実現する方法(4)デジタル証明書・公開鍵とは?デジタル署名の仕組みなどをわかりやすく解説 first appeared on クミコミ.

]]>
前回の記事では「組込み機器におけるセキュリティ対策」を取り上げました。

今回の記事では、デジタル証明書や公開鍵について述べていきます。

デジタル証明書は通信技術ではありませんが、プロトコルとの相性も非常によい特長があり、近年利用される機会が増えています。

デジタル証明書とは

デジタル証明書とは、インターネット上でデータをやり取りする際の本人確認に使用されるデータです。電子証明書と呼ばれることもあり、基本的には認証局によって発行されます。

デジタル証明書を利用することで、オンラインで申請や手続きなどを行なう際に、他人によるなりすましやデータの改ざん、盗聴されることを防ぎます。

TLS/HTTPS, SSH, EAP(回線認証)などのプロトコルで使用され、近年は暗号資産(仮想通貨やNFTなど)やデジタルサインなどで活用した人も多いかもしれません。

パスワードとの主な違いは以下の通りです。

パスワード デジタル証明書
要素 知識を要素とする情報 所有を要素とする情報
発行者 ユーザーが設定する 第三者が発行する
管理 認証する側はアカウント数に応じた管理が必要 認証する側の管理は不要
認証される側は秘密鍵とペアで管理する
機密性 あり デジタル証明書(なし)
秘密鍵(あり)
使用方法 一般的にはログインの際に入力 プロトコル上の認証プロセス

公開鍵暗号方式

デジタル証明書を実現する代表的な方法として「公開鍵暗号方式」があります。

暗号化と復号において、秘密鍵と公開鍵を使用する方式です。

秘密鍵はその所有者によって管理され、存在するのは1つだけです。一方、その秘密鍵の対になる公開鍵は相手が利用するための鍵で、公開することが可能です。

重要な特長として、公開鍵で暗号したデータは秘密鍵でしか復号できず、また秘密鍵で暗号化したデータは公開鍵でしか復号できません。

例えば、機密情報をやり取りする場合、公開鍵暗号方式におけるデータの送受信は以下のように行なわれます。


悪意のある第三者が盗み見て改ざんしようとしても、機密鍵を持っていないため暗号文を復号することはできません。このように、情報漏洩を防ぐことができます。

デジタル署名

デジタル署名

デジタル署名とは

デジタル署名は、秘密鍵で署名を作成し、秘密鍵と対になる公開鍵で検証する暗号技術です。

公開鍵暗号方式は、機密情報を扱う上記のケースとは鍵の使い方を逆にすることで、デジタル署名として使うこともできます。

デジタル署名とよく似た言葉に「電子署名」があります。日本ネットワークセキュリティ協会 電子署名ワーキンググループの「デジタル署名検証ガイドライン」では、下記のように記されています。

電子署名とは、電磁的記録(電子文書)に関連付けられ、検証により確認可能な、電子的措置であり、その効力を持たせるために様々な方式がある。欧米では電子署名(electronic signature)とデジタル署名(digital signature)を区別し、電子署名は広い意味で、本人と電子文書との関係を示すために本人が作成した電子データを指し、デジタル署名は、署名者の身元とデータが改ざんされていないことを、公開鍵暗号技術を使って検証できる技術を指す。

引用:NPO法人 日本ネットワークセキュリティ協会 電子署名ワーキンググループ「デジタル署名検証ガイドライン」 p.1

電子署名はデジタル文書が改ざんされていないかの検証や本人確認をする仕組み・技術の総称で、デジタル署名は電子署名において公開鍵暗号方式を利用する技術です。しかし、両方を同義とするケースや、混同して使用している場合もあるため、これらの言葉を使う際には、どの範囲を指しているのか注意しましょう。

参考:一般財団法人日本情報経済社会推進協会「電子署名の仕組み」
参考:一般財団法人日本情報経済社会推進協会「電子署名(デジタル署名)」
参考:株式会社Innovation & Co.「電子署名とデジタル署名の違いとは?仕組みや特徴など詳しく解説!」

デジタル署名の仕組み

デジタル署名は、以下の流れで行なわれます。

デジタル署名の手順
【送信者】

1.送信者が公開鍵と秘密鍵を生成し、受信者に公開鍵を送付
  認証局に登録して公開鍵と秘密鍵を生成し、相手に公開鍵のみ送付する

2.ハッシュ関数を使用してデータからハッシュ値を算出
  送信者はハッシュ関数を用いて、デジタル文書(平文)のデータからハッシュ値を算出する

3.送信者の秘密鍵を使用してハッシュ値を暗号化
  算出したハッシュ値を、自身の秘密鍵を使用して暗号化する

4.デジタル文章にハッシュ値を署名として付けて送信
  送信者は、デジタル文章(平文)と暗号化したデータを受信者に送付する

【受信者】
5.受信者が送信者の公開鍵を使用して暗号化されたハッシュ値を復号
  受信者は、予め送付されていた送信者の公開鍵を使って、暗号化されているデータからハッシュ値を復号する

6.送信者と同じハッシュ関数を使用してハッシュ値を算出
  受領したデジタル文書(平文)から、送信者と同じハッシュ関数を用いてハッシュ値を算出する

7.復号されたハッシュ値(「5.」で出した値)と算出されたハッシュ値(「6.」で出した値)を比較
  2つのハッシュ値が一致していれば、デジタル文書は途中で改ざんされることなく、送信者本人が送ったデータであることが確認できる

ハッシュ関数

公開鍵暗号方式で利用されるハッシュ関数とは何かについて、一般財団法人日本情報経済社会推進協会のサイトでは下記のように説明されています。

電子署名で用いられるハッシュ関数は、暗号学的ハッシュ関数とも呼ばれます。任意の長さのデータ(ビット列)を、一定の長さのデータ(ビット列)に変換する”関数(アルゴリズム)”です。

引用:一般財団法人日本情報経済社会推進協会「ハッシュ関数(Hash Function)とは」

認証局について

インターネット上で機密情報のやり取りや契約書への署名を行なう際には、デジタル証明書が有効であることを紹介しました。そしてその安全なやりとりには認証局(CA:Certificate Authority)と呼ばれる組織の存在が欠かせません。

認証局には、第三者機関が運営するパブリック認証局と、社内用などの一部利用に限定して独自に構築するプライベート認証局の2種類あります。

パブリック認証局

パブリック認証局は、公に対して電子署名が正当なものであることを示すため、セキュリティ対策などの盤石な基盤を備えている必要があります。そのため、厳しい審査に合格して国の認定を取得した事業者だけがパブリック認証局の役割を果たすことができます。

パブリック認証局に電子署名用のデジタル証明書を希望する場合は、デジタル庁のサイトで動作確認済みの認証局が確認できます。(デジタル庁 e-Gov電子申請「認証局のご案内」)

プライベート認証局

社内向けなどの限定された範囲で誰がいつ署名したかを確認する場合など、公に正当性を示すほどの必要がないケースではプライベート認証局が利用されることもあります。

プライベート認証局の構築には一定の手間はかかるものの、デジタル証明書を発行する際の費用が省けるメリットもあります。

なお、電子契約で電子証明書を利用する場合は、プライベート認証局ではなくパブリック認証局を利用する必要があります。

まとめ

本記事では、デジタル証明書やそれを実現する公開鍵暗号方式などを紹介しました。

国が電子化を推進し、重要なやりとりがインターネット上で行なわれることが増えている現代において、安全対策に関する知識は非常に重要です。

脅威やそれに対する対策も今後進化してくことが予想されますが、紹介した内容が今後の安全対策の一助になれば幸いです。

 

The post セキュア通信をコンパクトに実現する方法(4)デジタル証明書・公開鍵とは?デジタル署名の仕組みなどをわかりやすく解説 first appeared on クミコミ.

]]>
セキュア通信をコンパクトに実現する方法(3)組込み機器におけるセキュリティ対策とは? https://www.kumikomi.jp/secure-communication3/?utm_source=rss&utm_medium=rss&utm_campaign=secure-communication3 Fri, 26 May 2023 00:00:44 +0000 https://stg.kumikomi.jp/?p=5592 前回の記事では「セキュリティ対策における障壁」を取り上げました。 今回の記事では、組込み機器におけるセキュリティ対策について述べていきます。 組込み機器のセキュリティ対策はむずかしい? 組込み機器と情報通信機器の比較 下 […]

The post セキュア通信をコンパクトに実現する方法(3)組込み機器におけるセキュリティ対策とは? first appeared on クミコミ.

]]>
前回の記事では「セキュリティ対策における障壁」を取り上げました。

今回の記事では、組込み機器におけるセキュリティ対策について述べていきます。

組込み機器のセキュリティ対策はむずかしい?

組込み機器と情報通信機器の比較

下記は、組込み機器と情報通信機器を比較した表です。それぞれの特徴を確認してみてください。

組込み機器 情報通信機器
ユーザーインターフェース 限定的な操作 豊富な操作が可能
ソフトウェア RTOS・専用アプリケーション 汎用OS・アプリケーション
ハードウェア マイコン~プロセッサ
メモリは潤沢ではない
ハイエンドプロセッサ
大容量メモリ
稼働 長期的・連続的な運用 ユーザによる限定的な稼働

表の内容からも分かるように、PCやスマートフォンなどの情報通信機器と一般的な組込みデバイスではさまざまな違いがあります。

これらの違いによって組込みデバイスのセキュリティ対策が難化している中、ネットワークを介した攻撃が激化していることは大きな問題です。

組込みデバイスにおけるセキュリティ対策の進め方

組込みデバイスのセキュリティ対策を進める際は、2段階でアプローチするのがよいでしょう。

まず最初に、どの脅威に対応する必要があるかを考えます。そして次に、どのようにな対策を実装するかを考えていきます。

memcmpについて

セキュリティ対策

memcmpの注意点

memcmpはメモリを比較する関数として広く知られていますが、セキュリティ面で問題があることはご存じでしょうか。

まずは、下記のような検討事項が思いつくかもしれません。

  • 引数のサイズ(n)によっては該当領域のReadでオーバランが発生する?
  • 複数のスレッドからリエントラントできる?
  • 呼び出しコンテキストのスタックは足りる?
  • 標準ライブラリをリンクすることで想定以上のメモリを消費する?

しかし、上記だけではなく、特に知っておいていただきたい注意点があります。

JM ProjectのLinux Programmer’s Manualによると、memcmpに関する注意点として下記の記載があります。

暗号化された秘密などセキュリティ的に重要なデータの比較には memcmp() を使用しないこと。 必要な CPU 時間は値が等しいバイトの量に依存するからである。 その代わり、 一定時間で比較を実行する関数が必要である。 いくつかのオペレーティングシステムでは (例えば NetBSD の consttime_memequal() などの) 関数が提供されているが、 このような関数は POSIX では規定されていない。 Linux では、 このような関数自体を実装する必要があるかもしれない。

引用:JM Project「Linux Programmer’s Manual (3) MEMCMP」

つまり、暗号化された秘密などの重要なデータの比較にはそもそもmemcmpを使用できないということです。必要なCPU時間は値が等しいバイトの量に依存してしまい、サイドチャネルアタック攻撃(暗号を処理するハードウェアを外部から観測し、内部の秘匿情報を取得しようとする非破壊型の攻撃)を受けやすくなります。

例えば、入力されたパスワードが正しいかどうかを検証する際にmemcmpを使用すると、パスワードの合っている長さに比例してその応答時間が長くなります。

処理をするアルゴリズム自体が直接攻撃を受けるのではなく、その処理に伴って発生する現象を手がかりに攻撃されてしまうのです。

サイドチャネルアタック攻撃対策とメモリ比較

それでは、サイドチャネルアタック攻撃を防ぎながらメモリを比較するにはどうすればよいのでしょうか。

上記のような攻撃を防ぐために、一定時間で比較を実行するconsttime_memequal関数はありますが、POSIXでは規定されていないためLinuxで使用する場合は関数自体を実装しなければならない可能性があります。

そこで、現実的な対策として「usleep(random() % 10); /* 0~9μs停止 */」のように関数に追記し、memcmp後にランダム時間を設けるのがよいでしょう。

対応策
  • consttime_memequal関数を使用→POSIXでは規定されていないため、関数の実装面が課題
  • 「usleep(random() % 10); /* 0~9μs停止 */」のように、関数に対策を追記→ひと手間で脅威に対応

そうすることで、先ほどの例で挙げた「パスワードの合っている長さに比例してその応答時間が長くなる」状態を防ぎ、システムの処理時間の差異によって認証情報を推測されるリスクを抑えられます。

このように、攻撃の原理を理解し、対応するためのひと手間を加えることで脅威に対応していくことが重要です。

次の記事では、セキュア通信をコンパクトに実現する方法を考えていきます。

 

The post セキュア通信をコンパクトに実現する方法(3)組込み機器におけるセキュリティ対策とは? first appeared on クミコミ.

]]>
セキュア通信をコンパクトに実現する方法(2)セキュリティ対策にはどんなハードルがある? https://www.kumikomi.jp/secure-communication2/?utm_source=rss&utm_medium=rss&utm_campaign=secure-communication2 Fri, 19 May 2023 00:00:54 +0000 https://stg.kumikomi.jp/?p=5568 前回の記事では「サイバーセキュリティの脅威」について取り上げました。 今回の記事では、実際のセキュリティ対策について考えながら、どんな障壁があるのかを述べていきます。 セキュリティ対策を阻む要因 セキュリティ対策の障壁に […]

The post セキュア通信をコンパクトに実現する方法(2)セキュリティ対策にはどんなハードルがある? first appeared on クミコミ.

]]>
前回の記事では「サイバーセキュリティの脅威」について取り上げました。

今回の記事では、実際のセキュリティ対策について考えながら、どんな障壁があるのかを述べていきます。

セキュリティ対策を阻む要因

セキュリティ対策の障壁になっている要因は主に4つあります。

1:攻撃者の立場や目的が多様で複雑化している

「情報セキュリティの10大脅威」でも挙げたように、技術革新に伴って脅威も年々変化しています。

攻撃者の目的や手段が多様になって複雑化してきたことで、セキュリティ対策もさまざまな場面をカバーする必要が出てきています。そのため、何から着手すればよいか判断しづらくなっているという状況があります。

2:セキュリティ対策によって本来のユーザビリティを損なう

セキュリティ対策としてアンチウイルスソフトを入れた場合、ソフトウェアの動きが遅くなり重くなることがあります。

実装コードが肥大化してシステムのパフォーマンスが低下するため、セキュリティ対策に対して否定的な印象を持たれることもあります。

3:セキュリティ対策費を投資とみなしている

セキュリティ対策は、インシデントが発生しない限りほとんど意識されません。

何か問題が発生しない限りユーザーはセキュリティ動作を確認することがないため、動作するかしないかも分からないものに費用をかけるという印象を持たれるケースがあります。

「とりあえずやっておく投資」というよりも、「危機管理をして最悪の状況を防ぐ保険」という考え方がいいでしょう。

4:そもそもセキュリティ技術の敷居が高い

専門家が不在の場合、セキュリティ技術の敷居が高いと思われていることがあります。

本来セキュリティにの知見を持ち合わせていない担当者が必要に迫られて対策をしなければいけないケースでは、攻撃者の顔が見えないことで、必要以上にセキュリティ対策を難しく捉えてしまうことがあります。

組込み分野におけるセキュリティ課題

上記で挙げた4点は、組込みデバイスに限らず一般的なセキュリティの話ですが、組込み分野ではそのような情報セキュリティにおける体制が整っていません。

セキュリティ対策に障壁要因があることよりも、組込み分野でセキュリティの体制がないことのほうが大きな問題と言えるでしょう。

制御システム10大脅威

セキュリティ対策

「産業用制御システム(ICS)のセキュリティ -10大脅威と対策2022-」

下記は、IPA 独立行政法人 情報処理推進機構が発表した「産業用制御システムのセキュリティ -10大脅威と対策 2022-」です。

日本国内の産業用制御システム保有事業者のセキュリティ対策を促進するために、ドイツ連邦政府 情報セキュリティ庁(BSI)が作成したものをIPAが許可を得て翻訳しています。

産業用制御システムのセキュリティ 10大脅威(2022年) 2019年からの傾向
リムーバルメディアや外部機器経由のマルウェア感染 →
インターネットやイントラネット経由のマルウェア感染 ↑
ヒューマンエラーと妨害行為 →
外部ネットワークやクラウドコンポーネントの攻撃 ↗
ソーシャルエンジニアリングとフィッシング →
DoS/DDoS攻撃 →
インターネットに接続された制御コンポーネント ↗
リモートメンテナンスアクセスからの侵入 ↗
技術的な不具合と不可抗力 →
サプライチェーンにおけるソフトウェアおよびハードウェアの脆弱性 ↑

※産業用制御システムにとって最も危険度の高い10種類の脅威を順不同で列挙しており、脅威の順序は、1位~10位といった順位を表しているものではない。

出典:IPA 独立行政法人 情報処理推進機構「産業用制御システム(ICS)のセキュリティ -10大脅威と対策2022-」(出典元の表を基に弊社にて一部加工)

参考:Bundesamt fur Sicherheit in der Informationstechnik「Industrial Control System Security: Top 10 threats and countermeasures 2022 [English] v1.5」

ランキングから見えること

制御系システムということもあり、特定のシチュエーションに言及されているものが多くあります。

また、「インターネットやイントラネット経由のマルウェア感染」「外部ネットワークやクラウドコンポーネントの攻撃」「DoS/DDoS攻撃」など、表の赤字で示した脅威のように、トポロジやプロトコルはさまざまであってもネットワークに接続する状況が多くあり、制御系システムがネットワークへ接続すること自体が脅威となっている点も特徴です。

ネットワーク技術と制御系システムにおける脅威は密接に関係しており、情報セキュリティでも繰り返し注意勧告されているポイントです。

次の記事では、組込み機器におけるセキュリティ対策について考えていきます。

 

The post セキュア通信をコンパクトに実現する方法(2)セキュリティ対策にはどんなハードルがある? first appeared on クミコミ.

]]>
セキュア通信をコンパクトに実現する方法(1)サイバーセキュリティの脅威とは? https://www.kumikomi.jp/secure-communication1/?utm_source=rss&utm_medium=rss&utm_campaign=secure-communication1 Fri, 12 May 2023 00:00:38 +0000 https://stg.kumikomi.jp/?p=5531 日常生活や企業活動において欠かせないインターネットですが、不正アクセスやウイルス感染など、さまざまなトラブルリスクも孕んでいます。そのため、脅威に対する手段として「サイバーセキュリティ」が必須となってきます。 本記事では […]

The post セキュア通信をコンパクトに実現する方法(1)サイバーセキュリティの脅威とは? first appeared on クミコミ.

]]>
日常生活や企業活動において欠かせないインターネットですが、不正アクセスやウイルス感染など、さまざまなトラブルリスクも孕んでいます。そのため、脅威に対する手段として「サイバーセキュリティ」が必須となってきます。

本記事では「プロトコルスタックをスクラッチ開発したエンジニアが考えるセキュア通信をコンパクトに実現する方法とは?」と題したセミナーの内容を複数回に分けて紹介し、サイバーセキュリティの現状や組込みデバイスのセキュリティ対策の実情を紹介していきます。

サイバーセキュリティとは?

サイバーセキュリティと聞いたとき、皆さんはどういったものを思い浮かべますか。

総務省のサイトによると、下記のように記されています。

サイバーセキュリティという言葉は、一般的には、情報の機密性、完全性、可用性を確保することと定義されています。
機密性とは、ある情報へのアクセスを認められた人だけが、その情報にアクセスできる状態を確保すること。完全性とは、情報が破壊、改ざん又は消去されていない状態を確保すること。可用性とは、情報へのアクセスを認められた人が、必要時に中断することなく、情報にアクセスできる状態を確保することをいいます。

引用:総務省「国民のためのサイバーセキュリティサイト」

一方、誰でも編集できるフリー百科事典「Wikipedia」における「サイバーセキュリティ」のページでは以下の内容が記載されています。

  • サイバーセキュリティの定義は論者によって異なる
  • 情報セキュリティの一部とみなしサイバー空間において機密性、完全性、可用性の確保を目指すもの
  • デジタル社会のリスクへの対応を指すとするもの
  • 情報セキュリティに変わるバズワード(※バズワード:いかにも専門性がある言葉だけが一人歩きしている状態)
  • 攻撃対象が産業システムにも広がった

出典: フリー百科事典 ウィキペディア(Wikipedia)「サイバーセキュリティ」

「サイバーセキュリティ」という言葉は専門的で説得力があるように聞こえますが、実際は曖昧な定義で広く使われている「バズワード」でもあります。

「セキュリティ対策は必要だと認識しているものの、一体何をやればいいかが分からない」という状況が、セキュリティ対策ありきのプロダクト制作においては足かせになる問題が起きています。

情報セキュリティ10大脅威

セキュリティ対策

「情報セキュリティ10大脅威 2022」

では、そもそも情報セキュリティの脅威にはどんなものがあるのでしょうか。

下記は、IPA 独立行政法人 情報処理推進機構から発表された「情報セキュリティ10大脅威 2022」です。

順位 個人 昨年からの変化 組織 昨年からの変化
1 フィッシングによる個人情報等の詐取 ↑ ランサムウェアによる被害 →
2 ネット上の誹謗・中傷・デマ ↑ 標的型攻撃による機密情報の窃取 →
3 メールやSMS等を使った脅迫・詐欺の手口による金銭要求 ↑ サプライチェーンの弱点を悪用した攻撃 ↑
4 クレジットカード情報の不正利用 ↑ テレワーク等のニューノーマルな働き方を狙った攻撃 ↑
5 スマホ決済の不正利用 ↓ 内部不正による情報漏えい ↑
6 偽警告によるインターネット詐欺 ↑ 脆弱性対策情報の公開に伴う悪用増加 ↑
7 不正アプリによるスマートフォン利用者への被害 ↑ 修正プログラムの公開前を狙う攻撃(ゼロデイ攻撃) NEW
8 インターネット上のサービスからの個人情報の窃取 ↓ ビジネスメール詐欺による金銭被害 ↓
9 インターネットバンキングの不正利用 ↓ 予期せぬIT基盤の障害に伴う業務停止 ↓
10 インターネット上のサービスへの不正ログイン → 不注意による情報漏えい等の被害 ↓

出典:IPA 独立行政法人 情報処理推進機構「情報セキュリティ10大脅威 2022」(出典元の表を基に弊社にて一部加工)

ランキングから見えること

ランキングから、下記のことが見えてきます。

  • 社会的な情勢の変化に伴う脅威がランキングに入ってきている
  • SNSや開発プラットフォームなどでノウハウを共有できることから、攻撃する敷居が下がってきている
  • 情報技術(IT)にフォーカスしているため、組込みデバイスとの関連性が見えづらい

個人順位2位の「ネット上の誹謗中傷デマ」に着目すると、攻撃者が自分の身元を隠そうとするシチュエーションが想像できます。その際、組込みデバイスはその足跡がつかないように踏み台として利用され、つまりは間接的に攻撃されるということも考えられます。

組込みデバイスとサイバーセキュリティの関連性を見るためには、これらの脅威をあと2~3段階ブレイクダウンして解析する必要があります。

次の記事では、セキュリティ対策について考えていきます。

 

The post セキュア通信をコンパクトに実現する方法(1)サイバーセキュリティの脅威とは? first appeared on クミコミ.

]]>