![見出し画像](https://assets.st-note.com/production/uploads/images/153847640/rectangle_large_type_2_0db4b0639aaac944d4c11ed1cd30051e.png?width=1200)
【ローカル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暗号化には対応していません。
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桁をコロンなしで入力します。
以上で設定完了です。