tencent cloud

フィードバック

ホットリンク防止の計算

最終更新日:2023-04-25 14:42:34

    リンク不正アクセス防止は、プッシュURLと再生URLのtxSecretフィールドを参照します。攻撃側がバックエンドを偽造してプッシュURLを作成したり、利益のために再生アドレスを不正に利用したりすることを防ぐ機能があります。

    セキュリティ原理

    下図に示すとおり、攻撃者がサーバーを偽造してプッシュおよび再生URLを生成するのを防止するために、CSS管理コンソールでリンク不正アクセス防止暗号化KEYを設定し、攻撃者が有効なプッシュと再生URLを容易に生成できないようにします。

    計算プロセス

    手順1:認証キー

    まず、公式サイトのコンソールで暗号化キーを設定する必要があります。この暗号化キーはサーバーでリンク不正アクセス防止署名を生成するために使用されます。Tencent Cloudは同じキーを保有しているため、生成されたリンク不正アクセス防止署名を復号化して確認できます。

    暗号化キーは、プッシュリンク不正アクセス防止Keyまたは再生リンク不正アクセス防止Keyに区分され、前者はプッシュリンク不正アクセス防止URLの作成に使用され、後者は再生リンク不正アクセス防止URLの生成に使用されます。CSSコンソール>ドメイン名管理に移動し、対応するドメイン名または管理をクリックし、プッシュ設定を選択すると、下図のようなプッシュリンク不正アクセス防止KEYが自動的に設定されます。

    再生リンク不正アクセス防止Keyの関連情報については、[再生リンク不正アクセス防止はどのように有効化するのですか?](https://www.tencentcloud.com/document/product/267/35598)をご参照ください。

    手順2 : txTimeの生成

    署名の平文部分は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の期限切れによってプッシュを再開することができません。
      • 期限切れまでの時間が長すぎると、プッシュが盗用されるリスクがあります。

    手順3: txSecretの生成

    txSecretの生成方法は=MD5(KEY+StreamName+txTime)です。ここでのKEYは第1ステップで設定した暗号化KEYです。StreamName(ストリームIDとも呼ばれ、ランダムな数字またはユーザーIDを使用することを推奨します)は、この例ではtestであり、txTimeは直前のステップで計算された5C271099です。MD5は標準的なMD5一方向非可逆ハッシュアルゴリズムです。
    例:

    KEYはe12c46f2612d5106e2034781ab261ca3
    したがって、 txSecret = MD5(e12c46f2612d5106e2034781ab261ca3test5C271099) = f85a2ab363fe4deaffef9754d79da6fe
    

    手順4:リンク不正アクセス防止アドレスの合成

    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の両バージョン)が表示されます。詳細については、プッシュ設定をご参照ください。

    お問い合わせ

    カスタマーサービスをご提供できるため、ぜひお気軽にお問い合わせくださいませ。

    テクニカルサポート

    さらにサポートが必要な場合は、サポートチケットを送信して弊社サポートチームにお問い合わせください。24時間365日のサポートをご提供します。

    電話サポート(24 時間365日対応)