リンク不正アクセス防止は、プッシュURLと再生URLのtxSecretフィールドを参照します。攻撃側がバックエンドを偽造してプッシュURLを作成したり、利益のために再生アドレスを不正に利用したりすることを防ぐ機能があります。
下図に示すとおり、攻撃者がサーバーを偽造してプッシュおよび再生URLを生成するのを防止するために、CSS管理コンソールでリンク不正アクセス防止暗号化KEYを設定し、攻撃者が有効なプッシュと再生URLを容易に生成できないようにします。
まず、公式サイトのコンソールで暗号化キーを設定する必要があります。この暗号化キーはサーバーでリンク不正アクセス防止署名を生成するために使用されます。Tencent Cloudは同じキーを保有しているため、生成されたリンク不正アクセス防止署名を復号化して確認できます。
暗号化キーは、プッシュリンク不正アクセス防止Keyまたは再生リンク不正アクセス防止Keyに区分され、前者はプッシュリンク不正アクセス防止URLの作成に使用され、後者は再生リンク不正アクセス防止URLの生成に使用されます。CSSコンソール>ドメイン名管理に移動し、対応するドメイン名または管理をクリックし、プッシュ設定を選択すると、下図のようなプッシュリンク不正アクセス防止KEYが自動的に設定されます。
再生リンク不正アクセス防止Keyの関連情報については、[再生リンク不正アクセス防止はどのように有効化するのですか?](https://www.tencentcloud.com/document/product/267/35598)をご参照ください。
署名の平文部分はtxTime(時間単位:秒)であり、このリンクの有効期限を意味します。例えば、現在の時刻が2018-12-29 11:13:45
であり、新たに生成するURLを3時間後に無効にしたい場合は、txTimeを2018-12-29 14:13:45
と設定することができます。
ただし、このように長い時間文字列をURLに含めることは困難であるため、実際の使用においては、2018-12-29 14:13:45
をUNIXタイムスタンプ1546064025(別のプログラミング言語で時間関数を直接呼び出して変換処理することもできます)に変換し、その後、16進数文字列に変換することで更に文字数を短縮します。つまり、txTime=1546064025(10進数)=5C271099(16進数)であり、10進数の使用もサポートされています。
注意:
- 実際の最終終了時間は
txTime + 認証有効期間
であり、認証有効期間の変更はURL発行に影響されません。- txTime期限は長すぎず、短すぎない時間で設定することを推奨します。
- 期限切れまでの時間が短すぎると、キャスターがライブストリーミング中にネットワークが途切れた場合に、プッシュURLの期限切れによってプッシュを再開することができません。
- 期限切れまでの時間が長すぎると、プッシュが盗用されるリスクがあります。
txSecretの生成方法は=MD5(KEY+StreamName+txTime)です。ここでのKEYは第1ステップで設定した暗号化KEYです。StreamName(ストリームIDとも呼ばれ、ランダムな数字またはユーザーIDを使用することを推奨します)は、この例ではtestであり、txTimeは直前のステップで計算された5C271099です。MD5は標準的なMD5一方向非可逆ハッシュアルゴリズムです。
例:
KEYはe12c46f2612d5106e2034781ab261ca3
したがって、 txSecret = MD5(e12c46f2612d5106e2034781ab261ca3test5C271099) = f85a2ab363fe4deaffef9754d79da6fe
Tencent Cloudの仕様に準拠するプッシュURLは、次の4つに構成されます。
このようにURLの期限切れまでの時間をTencent Cloudに通知するために使用できるプッシュ(または再生)txTimeが生成され、Tencent Cloudだけが複合化し、検証できるtxSecret、StreamNameおよびプッシュドメイン名(livepush.tcloud.com
の場合)を利用し、標準化されたURLを作成します。このドキュメントの例のプッシュ URL は次のとおりです:
rtmp://livepush.tcloud.com/live/test?txSecret=f85a2ab363fe4deaffef9754d79da6fe&txTime=5C271099
CSSコンソール>ドメイン名管理で、事前に設定されたプッシュドメイン名を選択すると、管理>プッシュ設定ページの下半分にリンク不正アクセス防止アドレスの作成方法を示すストリーミングアドレスのサンプルコード(PHPとJavaの両バージョン)が表示されます。詳細については、プッシュ設定をご参照ください。
この記事はお役に立ちましたか?