Qraft (クラフト)

ファームウェア

読み: ふぁーむうぇあ

ファームウェアは、ハードウェア機器に組み込まれ、その動作を制御するソフトウェアです。OS やアプリケーションとは異なり、機器の ROM やフラッシュメモリに書き込まれ、電源を切っても保持されます。ルーター、プリンター、カメラ、IoT デバイスなど、ほぼすべての電子機器がファームウェアで動作しています。

QR コードの読み取りに関わるファームウェアの代表は、専用の QR コードリーダー (ハンディスキャナー) です。画像処理アルゴリズムとデコードエンジンがファームウェアに含まれるため、更新によって読み取り速度が上がり、新しいシンボル体系にも対応できます。ここで注意したいのは、「新しい QR コードの規格」と呼ばれるものに性質の違う二種類がある点です。長方形の rMQR (ISO/IEC 23941) はシンボルの構造そのものが違うため、デコードエンジンすなわちファームウェア側の対応が必要になります。一方、地方税統一 QR コード (eL-QR) はシンボル体系には従来の QR コードをそのまま使い、そこに載せる納付情報のデータ形式を定めた規格なので、読み取り自体は既存のリーダーで成立します。対応が要るのは、読み取った文字列を解釈するアプリや業務システムの側です。GS1 QR コードに対応するための POS 端末の更新も、多くは後者、データ形式の解釈にあたります。

スマートフォンのカメラで QR コードを読む場合は、層をさらに分けて考える必要があります。イメージセンサーや画像処理プロセッサーを動かしているのはファームウェアですが、読み取り機能そのものを提供しているのは OS とアプリケーションの層です。iOS 11 でカメラアプリに QR コード読み取りが標準搭載されたのは、ファームウェアの変更ではなく OS の機能追加でした。OS の更新で認識精度が上がったと感じるときも、変わっているのは多くの場合ファームウェアではなく OS 側の認識処理です。

セキュリティの観点では、ファームウェアの脆弱性を放置すると、QR コードリーダー自体が攻撃の入口になり得ます。既知の脆弱性が残ったままだと、スキャナーの挙動を書き換えられ、読み取り結果を意図しない URL へ差し替えられる恐れがあります。特にネットワークに接続された業務用スキャナーでは、ファームウェアを最新に保つことが基本の対策になります。