見出し画像

【ローカル5G】 free5GCとリアルgNBでiPhone接続を試してみた。(4. SUCI SIMとfree5GCへの設定)

※本記事は2024年9月9日時点の内容です。
この記事は私がfree5GCとリアルgNB(ローカル5G用小型基地局= Small Cell)を使ってiPhone接続を試す機会があり、その過程をまとめたものです。


SUCI SIMについて

1. iPhoneをローカル5Gで使うためには…

ローカル5GでiPhoneを使うためには少し手間がかかりました。
iPhone, iPad は IOS17からプライベートネットワークに対応しました。

ローカル5Gは5G SAですが、Appleの5G SA セキュリティとプライバシーの要件には以下の記載があります。

プライバシーの秘匿: SUCI(Subscription Concealed Identifier)では非Null保護スキームを使用する必要があります。これは、TCA 2.3.1および3.1仕様で説明されているように、SIM上のSUCI計算またはME SUCI計算のいずれかによって実現できます。詳しくは、3GPP技術仕様33.501を参照してください。

ユーザデータの機密性: ユーザデータを不正なアクセスから保護するため、Null暗号化には対応していません。

Apple.Inc "Appleデバイスのプライベート5GおよびLTEネットワーク対応" より

SUCI暗号化の保護スキームには現状以下3種があるのですが、

  • Null Scheme (ID = 0x0)

  • Profile A (ID = 0x1)

  • Profile B (ID = 0x2)

※他、0x3 ~ 0xFは予約されている

プライバシー要件として、上記保護スキームのうち「Null Scheme」には対応しておらず「Profile A」か「Profile B」の保護スキームを使う必要があるという事です。
(SUCI保護スキームの詳細については3GPP TS33.501を参照ください。)

という事で、iPhoneをローカル5Gネットワークで使用しようとする場合にはSUCI保護スキーム「Profile A」か「Profile B」に設定されたSIMの入手が必要です。


2. SUCI保護スキーム用プライベートキーとパブリックキーの生成

SUCI SIM作成にあたり、SIMと5G Coreに設定する暗号鍵を生成する必要があります。これはOpenSSLで生成可能です。
今回はProfile Aで進めました。3GPPによると、Profile Aの暗号化アルゴリズムはCurve25519です。

以下のコマンドでプライベートキーを生成します。

openssl genpkey -algorithm X25519 -out <Path & filename>.key

<Path & filename>部分はkeyファイルをexportする場所とファイル名を指定します。
(例)openssl genpkey -algorithm X25519 -out /root/ProfileA_private.key

次に生成したプライベートキーファイルからプライベートキーとパブリックキーを確認します。

openssl pkey -text -in <上で生成したPrivate keyのPath>

プライベートキーとパブリックキーが16進数64桁でそれぞれ表示されますのでメモします。
SUCI SIM作成にはこのパブリックキーが必要で、一方free5GCにはプライベートキーとパブリックキー両方を設定します。
SIM調達方法については別途記事でご紹介するつもりです。


3. free5GCへキー設定

メモしたプライベートキーとパブリックキーをfree5GCに設定します。
SSH接続後、udmcfg.yamlを編集します。

cd /root/free5gc/config
vi udmcfg.yaml

SUCI profileのProfile Aにプライベートキーとパブリックキーを入れて保存します。
入力の際にはデフォルトでキーが記載されていますのでそれにならって同じように16進数64桁をコロンなしで入力します。

以上で設定完了です。

次記事ではgNB接続の過程についてご紹介予定です。
#SUCI #SUPI

いいなと思ったら応援しよう!