はじめての公開鍵署名|署名検証のプログラムをサクッと試してみる
公開鍵署名(Public Key Signature)は、デジタル署名の一種で、公開鍵暗号方式を用いた署名方法です。公開鍵署名は、電子メールのセキュリティ、ソフトウェアやファームウェアに対する署名、オンライン取引など、多くのセキュリティが必要なアプリケーションで広く使用されています。
公開鍵署名(Public Key Signature)は、デジタル署名の一種で、公開鍵暗号方式を用いた署名方法です。公開鍵署名は、電子メールのセキュリティ、ソフトウェアやファームウェアに対する署名、オンライン取引など、多くのセキュリティが必要なアプリケーションで広く使用されています。
今回の記事では、セキュアファームウェア更新の基本機能について説明します。また、理解を助けるために実際のMCUでセキュアにファームウェアを更新するサンプルプログラムを動かしてみたいと思います。
この記事ではMQTTプロトコルにセキュリティ機能を取り入れたセキュアMQTT(MQTTS)をご紹介します。また、機器向けのセキュアMQTTの実装についてwolfMQTTを例に紹介します。
今回はいよいよ組み込み向けMCUと開発環境でTLSのようなセキュリティプロトコルを動作させるにはどのようにしたら良いのか、具体的にみていくことにします。説明では、Renesas社製評価ボード RX72N Envision Kit とIDE環境 e2Studioを使用しますが、できるだけその他の環境でもほぼ同様に動作させることができるように説明していきたいと思います。
シリーズ第二回の今回は、DTLS(Datagram Transport Layer Security)を取り上げます。DTLSはUDP(User Datagram Protocol)のような軽量だけど不安定な通信の上でセキュリティを実現するためのトランスポート層のプロトコルです。
主にネットワークのセキュリティプロトコルや暗号アルゴリズムなど製品に直接組み込んで利用するような機能を中心に取りあげて行きます。その第一回としてインターネットのセキュリティプロトコルの代表選手TLS(Transport Layer Security)の製品組み込みに関してです。
STマイクロエレクトロニクス社のSTM32Fシリーズにはチップ内に温度センサが内蔵されており、ADコンバータを試してみるにはちょうどいい素材です。今回はこれを動かしてPALMiCE4のリアルタイム・モニタ機能で見える化してみます。
今回は、これまで何度か触れてきたMbed TLSについて説明をしていきたいと思います。TLS(Transport Layer Security)は、通信の暗号化を行うプロトコルとして、IoTのセキュリティを実現する手段の一つとして頻繁に利用されています。また、通信の暗号化だけでなくデバイスの認証手段としてもよく使われています。
筆者がMbedを使い始めた理由は、インターネットにネイティブに接続できるマイコンボードが欲しかったからです。その頃の筆者は、中学生の頃にZ80を触って以来15年以上のブランクを経て、Arduinoを使い始めたところでした。その頃、ArduinoをIPネットワークに接続するには、IPスタックをハードウェアで実装したW5100というチップを使う事が一般的でした。