ホームページ  >  記事  >  ippプリンターとは何ですか

ippプリンターとは何ですか

青灯夜游
青灯夜游オリジナル
2023-03-15 16:26:2516552ブラウズ

ipp プリンターは、ipp プロトコルを使用するプリンターを指します。 IPP は「Internet Printing Protocol」の略で、インターネット上で印刷するための標準ネットワーク プロトコルです。 IPP プロトコルを使用すると、ユーザーはインターネットに接続されているプリンタを管理し、オンライン ホスト プリンタにプリンタ ジョブを送信できます。ユーザーは、関連するインターフェイスを通じて、印刷物に使用される用紙の種類や解像度などのさまざまなパラメータを制御できます。

ippプリンターとは何ですか

このチュートリアルの動作環境: Windows 7 システム、Dell G3 コンピューター。

ipp プリンターは、ipp プロトコルを使用するプリンターを指します。

IPP は「Internet Printing Protocol」の略で、その名前が示すように、このプロトコルを使用すると、ユーザーはインターネットに接続されているプリンタを管理し、オンライン ホスト プリンタにプリンタ ジョブを送信できます。 IPP と他の多くのプリンター管理プロトコルの違いは、IPP はアクセス制御リスト、認証、暗号化通信などの高度な機能をサポートするセキュリティ プロトコルですが、デバイス所有者がこれらの機能を使用していることを意味するわけではありません。

ippプリンターとは何ですか

インターネット プリンタ プロトコル IPP 分析

wireshark はパケット分析をキャプチャし、印刷ファイル名、ファイル、および IP ポートを解析します。 、ユーザー名;

ippプリンターとは何ですか

ippプリンターとは何ですか

## 1. 契約の説明

インターネット印刷プロトコル (IPP、InternetPrintingProtocol) は、インターネット上で印刷するための標準ネットワーク プロトコルであり、ユーザーがインターネット経由でリモートで印刷したり、印刷ジョブを管理したりできるようにします。ユーザーは、関連するインターフェイスを通じて、印刷製品に使用される用紙の種類や解像度などのさまざまなパラメーターを制御できます。

IPP は、ハイパーテキスト転送プロトコルの HTTP POST メソッドを使用して、クライアントとプリント サーバー間の会話を行います。 IPP プロトコルに関連するオブジェクト モデルによって記述されるオブジェクトには 3 つのタイプがあります。

  • プリンター デバイスをカプセル化するプリンター オブジェクト。すべての実際の印刷サービスはこのオブジェクトによって完了します。

  • Job オブジェクト。1 つ以上のファイルで構成される印刷ジョブをカプセル化します。

  • スケジュールされたオブジェクトは、ジョブとプリンター オブジェクトのステータスが変化したときに通知をトリガーする通知メカニズムをカプセル化します。

クライアントに対しては、IPP プロトコルを通じて、プリンターの状態を問い合わせるメッセージとプリンターのジョブを送信するメッセージの 2 種類のメッセージを送信できます。プリント サーバーからの通知;

#通信方法

    TCP プロトコル、HTTP プロトコル;
  • トランスポート層は HTTP リクエストとレスポンスで構成され、オペレーション層は HTTP リクエストまたはレスポンスのメッセージ本文です;
  • #サーバー ポート: 631
  • クライアント ポート: any
  • #Content-Type:application/ipp

  • ##2. TCP データ フロー分析

クライアントとサーバーはどちらも送信に HTTP プロトコルに依存し、操作層は HTTP リクエストと応答のメッセージ本文の固有の形式を使用します (3# を参照) ## 詳細) メッセージ構造 ) インタラクション;

(1) 単一ドキュメントの印刷 print-job: クライアントは、単一の文書。資料データも併せてお送りいたします。 (2) 複数ドキュメントの印刷

Create-job: クライアントは、複数のドキュメントを含む印刷ジョブを送信したいと考えています。ドキュメントは、send-document 操作と send-uri 操作を使用して送信されます。

Send-document: クライアントは、print-job 操作を使用して作成された印刷ジョブにドキュメントを追加したいと考えています。資料データも併せてお送りいたします。

print-job: クライアントは 1 つのドキュメントのみを含む印刷ジョブを送信しています。資料データも併せてお送りいたします。

3. メッセージ構造

3.1 操作リクエストと応答のエンコーディング

------ --------------------------------------------------

| バージョン番号>

| オペレーション ID (リクエスト) または |

| ステータス コード (応答) | リクエスト 2 バイト

---------------------------- -------- --------------

| リクエスト ID | 4 バイトが必要です

--------- ----- --------------------------------------

| グループ

--------------------------

| 属性終了タグ | 1 バイト ------ -------------------------------------------- ----

| データ---------------

4 番目のフィールドは、「 「属性グループ」フィールド。0 個以上の出現が許可されます。各「プロパティ グループ」フィールドは、操作プロパティ グループやジョブ プロパティ グループなど、単一のプロパティ セットを表します (ドキュメント モデルを参照)。 IPP モデル ファイルは、各操作の要求と応答に必要な属性のセットとその順序を指定します。

「終了タグ」フィールドは、「データ」が存在しない場合でも常に存在します

モデルドキュメントは、各操作リクエストと応答に「データ」フィールドが存在するかどうかを指定します。

3.2 属性グループ

------------------------------------- ----------------------------| 属性グループの開始タグ | 1 バイト

-- ------------------------------------------------ -- --|

属性

--------------------------------- ------------

「属性グループ開始タグ」フィールドは属性グループの開始をマークし、その値は属性グループの

タイプを識別します

。たとえば、

オペレーション属性グループとジョブ属性グループ

。 「属性グループ開始タグ」は、それが要求または応答の最初の属性グループでない限り、前の属性グループの終了もマークします。 「属性グループ」フィールドは別の「属性グループ」フィールド内にネストできないため、「属性開始タグ」フィールドは「属性グループ」の終了として機能します。

属性グループ フィールドには、0 個以上の「属性」フィールドが含まれます

注: 「属性グループ開始タグ」フィールドと「属性グループ終了タグ」フィールドは「区切りタグ」と呼ばれます。

3.3 属性

「属性」フィールドは次のようにコーディングされます:

----------- --- ------------------------------------------

|単一値属性 .値 # ------------------------------------------------ -- ---

属性が単一値である場合 (例: 「コピー」の値が 10)、または複数値であるが 1 つの値のみを取る場合 (例: 「マルチパーティ サポート」は値 ' のみを取る)一方的') の場合、「単一値属性」フィールドのみでエンコードされます。属性が多値であり、n 個の値を取る場合 (例: 「マルチパーティ サポート」は「片側」および「両側の長い境界」の値を取る)、「属性単一値」フィールドでエンコードされます。 、その後に n-1 個の「追加値」フィールドが続きます。

3.4 単一値属性 (キー値)

---------------------- ----------------------------------

| 値タグを通じて」の ‐ を半角に---- -------------------------------------- ------------ ----

| キー名の長さ (単位 u) | 2 バイト

----- -------- --------------------------------------

| #u

bytes

--------------------------------- ----------- ------------------

| 値の値の長さ (unitv

) | 2バイト

##-- -------------------------------------- ---------- --

| ----------------------------- ---「単一値属性」は 5 つのフィールドでエンコードされます。

「値ラベル」フィールドは、属性の構文を指定します (例: ##) #0x44 は属性構文「

keyword

を表します。

「名前の長さ」フィールドは、「名前」フィールドの長さをバイト単位で指定します。たとえば、上の図の u または 15 は、名前が「マルチパーティ サポート」であることを示します。 」。

  • 「名前」フィールドには、「双方向サポート」などのテキスト名属性が含まれます。

    「値の長さ」フィールドは、「値」フィールドの長さをバイト単位で指定します。たとえば、上の図の v または 9 は、値「片側」を示します。

  • 「值」欄位包含值的屬性,如文字值「單邊」。

3.5 附加價值

----------------------- -------------------------------

|            值標籤                   #------------------------------------------------- -----

|       

名稱長度(單位

0x0000        |  2#        |  2個位元組

----------------------------------------- -------------

|         長度長度(單位w)              | 12位元組

#------- ----------------------------------------------

#|            。                     #  )21w----------------

  • 111111X#-d----------------T----------------T----------------| -------------------------
附加價值使用4個字域編碼:

「值標籤」欄位規定屬性語法,例如0x44表示屬性語法「keyword」。

「名稱長度」欄位可取0值以表示這是一個「附加價值」。 「名稱長度」欄位的值把「附加價值」欄位(「名稱長度」是0

)和「單值屬性」欄位(「名稱長度」不是

0

)區分了開來

 「值長度」欄位以位元組為單位規定了「值」欄位的長度,如上圖的w或19表示值「雙方長邊界」。

ippプリンターとは何ですか

###「值」欄位包含值的屬性,如文字值「雙方長邊界」。 ##################四、結構體參數##########
//属性值;
struct _ipp_attr_value{
    char type;//属性类型
    short len;//值长度
    std::string value;//值内容
};

//一个属性包括一个属性名name,零个或者多个属性值;
typedef struct _ipp_attr{
    std::string name;//属性名称
    std::vector<_ipp_attr_value *> values;//一个或者多个属性值
}IPP_ATTR;

//一个属性组包括一个组TAG,零个或者多个属性;
struct _ipp_attr_seq{
    char seq;//属性组类型
    std::vector<IPP_ATTR *> attr;//一个或者多个属性
};

typedef struct _ipp{
    int data_left;//移动剩下的数据长度
    short version;//版本号
    union{
        short int operation;//操作码
        short int response;//响应码
    };
    int request_id;//请求ID
    //零个或者多个属性组
    std::vector<_ipp_attr_seq *> seqs;// 一个或者多个属性组
}IPP;

IPP *m_ipp;//IPP结构
short int m_bufptr;//记录buf移动位置
#########擴充知識:每天有80000台印表機透過IPP線上曝光############Shadowserver專家表示,他們專門掃描了Internet上具有IPP功能的印表機,這些印表機在沒有受到防火牆保護的情況下仍處於暴露狀態,並允許攻擊者透過「取得印表機屬性」功能查詢本機詳細資料。 ######使用搜尋引擎BinaryEdge進行的正常掃描顯示,平均每天透過IPP連接埠發現約80,000台印表機,而這些印表機每天都會在網路上曝光。 IPP連接埠曝光而沒有任何其他安全保護(例如防火牆或身分驗證機制)會導致許多問題。 ######例如,Shadowserver的專家表示此連接埠可用於收集情報:因為支援IPP的印表機中有很大一部分(例如印表機名稱,位置,型號,韌體版本,組織名稱甚至WiFi網路名稱)返回了有關其自身的其他信息,攻擊者可以收集此信息,然後通過該信息檢查公司網絡,以便於將來的攻擊。 ######此外,其中支援IPP的印表機的四分之一(約21,000台)也透露了其設計和製造的細節,公開這些資訊顯然使攻擊者更容易找到特定漏洞的設備群體。 ######糟糕的是,IPP駭客工具也可以在線上取得。諸如PRET(印表機操作工具包)支援IPP駭客攻擊,並且過去曾被用於劫持和強迫印表機列印各種宣傳訊息,甚至可能完全接管易受攻擊的裝置。 ############

Shadowserver 基金會表示,計劃將來在其網站上發布每日IPP暴露報告。 「我們希望在我們的新開放空間中共享IPP設備數據報告,這將減少啟用IPP的裸露印表機的數量,並提高人們對將這種設備暴露給未經身份驗證的掃描儀/攻擊者的危險的認識。」訂閱組織安全警報的公司或國家CERT團隊將在國家/地區的網路和IP位址空間中在線公開任何IPP服務時收到自動通知。

Shadowserver基金會針對處理暴露於互聯網的設備提供的前瞻性建議與去年的學術研究結果一致,該研究發現DDoS刪除通常無效,執法部門應將重點放在修補系統上,以限制攻擊者。

同時建議使用者閱讀印表機的手冊,以設定IPP存取控制和IPP驗證功能,在印表機尚未被利用的情況下做好保護,管理面板中的大多數印表機都有IPP配置部分,使用者可以從中啟用身份驗證,加密並透過存取清單限制對裝置的存取。

更多相關知識,請造訪常見問題欄位!

以上がippプリンターとは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。