0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

[MQTT] AUTHパケット

Last updated at Posted at 2025-12-19

AUTH – Authentication exchange

クライアントからのConnectとサーバからのConnackの間において認証の情報をやりとりするために使用されるパケットです。
チャレンジアンドレスポンス方式の認証を行うのに使われるそうです。

  • クライアントから最初に送信するパケットはConnectパケットのAuthentication Dataプロパティに含まれ、最後のデータはConnackに含まれます
  • ConnectパケットのAuthenticate MethodとAUTHのAuthenticate Methodは同じもので、Connectに Authentication Methodが無いとAUTHを送信することはできません
  • Connack後にAUTHを使用する場合の例はReason Code が0x19(Re-authentication)に設定した場合で、ここから再認証を開始します

シーケンスの一例を示します。

非常に手間がかかるからか、ConnectとmTLSで十分だからか、実施例・実装例が見当たりませんでした(´・ω・`)

規格書に出てくる2パターン

規格書に2パターンの使用方法が書いてあるのでシーケンスにしてみます。ただし、これらはNon-normative example(規格外の参考例)です。

SCRAM challenge

MQTTにおいて、ConnectにAuthentication Dataにはusername, clientNonceを載せて送信し、途中はAUTHパケットで行うことになり、最後にServer SignatureをConnackでサーバから送られて終了になります。
https://christina04.hatenablog.com/entry/salted-challenge-response-authentication-mechanism

Kerberos challenge

認証してチケットを手に入れてそれを通行証にしてサーバにアクセスします。

実践

ただ実例は極めて少ないく、OSSで試すことはできませんでした。残念(´・ω・`)

著作権情報

Copyright © OASIS Open 2014. All Rights Reserved.
Available at: https://docs.oasis-open.org/mqtt/mqtt/v3.1.1/os/mqtt-v3.1.1-os.html

Copyright © OASIS Open 2019. All Rights Reserved.
Available at: https://docs.oasis-open.org/mqtt/mqtt/v5.0/os/mqtt-v5.0-os.html

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?