leeechsh

leeechsh

M1カード

M1 カード(水カード、食事カード、飲料カード、入退室カードなど)の破解と複製についての考察 —— 理論知識編#

声明:カードの破解は科学研究のためのみであり、データ暗号化のアップグレードの必要性を探求します。

この記事は技術研究、学習交流のためのものであり、違法な用途には使用しないでください。そうしないと、結果は自己責任となります!!!

前言
最近、マイコンやハードウェアに関連する知識(専門外で、純粋に個人的な趣味)を研究していました。偶然、ネットユーザーが学校の水カードの破解に関する投稿をしているのを見ました。それで、学校の一体型カードのセキュリティを研究(破解)し、プロセスを記録しようと思いました。

注:本文は 6 つの章に分かれており、この記事は [理論知識編] です。今後も継続的に更新します。

長文のため、重要な部分は [太字で示しています]。

  1. 概要
    まず、カードを破解する前に、現在市場に出回っている一般的なカードの関連知識、すなわち IC カードと ID カードについて理解する必要があります。

1)IC カード(Integrated Circuit Card)、またはスマートカード(Smart Card)、マイクロチップカードとも呼ばれます。一般的な IC カードには、二代目 ID カード、携帯電話の SIM カード、キャンパスの一体型カードなどがあります。非接触式 IC カードと接触式 IC カードに分かれます。この記事での M1 カードは非接触式 IC カードです。

M1 カード

2)ID カード(Integrated Circuit Card)、すなわち身分識別カードです。ID カードはデータを書き込むことができず、固定の ID 番号のみを持ち、秘密機能はありません。

まとめ:ID カードは読み取り専用で、カード番号のみを記録し、暗号化できないため、安全性が低いです。IC カードは読み書き可能で、暗号化が可能で、IC カードのデータの読み取りや書き込みなどの操作には相応のパスワード認証が必要で、カード内の各ブロックには異なるパスワード保護があります(後述します)。

  1. IC カードの分類
    準備作業として、まずカードの種類を確認する必要があります。これがカードが破解できるかどうかに関係します。

ここでは、スマートフォンのアプリを使用してカードデータを確認するのが最も便利です。前提として、スマートフォンが NFC 機能をサポートしている必要があります。または、PN532 や ACR122u リーダー(後で破解に使用するデバイス)を直接使用することもできます。もちろん、単純な方法として — カードの外観を観察して判断することもできます(方法は自分でインターネットで検索してください、詳細は省略しますが、必ずしも正確ではありません)。

SAK を通じて、カードのタイプを判断できます。以下の図を参照してください:

赤い四角内が SAK 情報です
(Mifare Classic Tool ソフトウェアを使用して確認します。文末にダウンロードリンクを提供します)
その中で:

SAK:08 は M1 カードまたは S50 カード —— 通常は破解可能

SAK:18 は S70K カード —— 通常は破解可能

SAK:20 は CPU カード —— 破解不可能

SAK:28 は CPU 模擬カード ——M1 カードの構造を模倣し、極少数が解読可能

この記事で言及されている M1 カードは、正式名称 NXP Mifare1 シリーズカードで、非接触式 IC カードに属し、通常は一体型カード、バスなどのシステムで使用されます。一般的にはカード式とキーホルダー式があります。以下の図を参照してください:

左がカード式、右がキーホルダー式
M1 カードの容量は通常 1KB です(ここでの単位はバイトであり、ビットではなく、ビットに換算すると 8Kb になります)。ストレージスペースは比較的小さいですが、M1 カードの構造は依然として複雑です。

  1. セクターとブロック
    M1 カードは合計 16 のセクター(0〜15 セクター)を持ち、各セクターには 4 つのブロック(0〜3)があり、各ブロックは 16 バイトの内容を保存できます。すなわち、16(セクター)*4(各セクターに 4 つのブロック)*16(各ブロックは 16 バイト)=1024 バイト = 8192 ビット;

以下の図を参照してください:

ある空白の M1 カードの第 4、5 セクター
その中で、0、1、2 のブロックはデータを保存するために使用され、3 番目のブロックはキーを保存するために使用されます。上の図のように、ブロックの番号は赤いフォントで示されています。キーはキー A とキー B に分かれ、キー A と B の間には制御ビットがあります。

[制御ビットはそのブロックのアクセス権を決定します。読者は関連資料を自分で調べてください。この記事では詳細は省略します]

例えば、セクター 5 のブロック 3:ここで「FF078069」は制御ビットで、左右のキー A と B は同じで、「000000000000」(この例で使用している M1 カードは空白カードで、データやキーはありません)。

通常、特定のセクターのブロック 3 を知っていれば、そのセクターの制御権(データの読み書きなど)を把握できます。同時に、M1 カードの各セクターには異なるキーを設定できます。

また、各 M1 カードにはユニークなシリアル番号(UID)があり、0 セクター 0 ブロックに保存されています。その中で、最初の 4 バイトがカードの UID であり、5 バイト目がチェックビットで、残りはメーカーデータであり、そのブロックは変更できません(変更可能なカードもあります。後述します)。

したがって、M1 カードのデータを読み取りおよび変更するには、まず各セクターのキーを取得する必要があります。カードが暗号化されていない限り、具体的な方法は後で詳しく説明します。

このように、M1 カードのキーを破解できるかどうかが、カード全体の破解の重要な要素であることがわかります。

読み込み中...
文章は、創作者によって署名され、ブロックチェーンに安全に保存されています。