mixi Developer Center (ミクシィ デベロッパーセンター)

ニュース » mixiアプリ » mixiアプリ公開鍵更新のお知らせとご対応のお願い

mixiアプリ公開鍵更新のお知らせとご対応のお願い

2013.11.18 mixiアプリ

mixiアプリの以下の署名付きリクエストにて利用している公開鍵の有効期限が近付いて参りましたため、
2013年12月18日に弊社サーバでの鍵交換作業を実施させて頂く予定です。 

対象となる署名付きリクエスト

2013年12月18日の弊社サーバーでの鍵交換作業以降は、上記署名付きリクエストにて新しい鍵が適用されることになります。

以下に交換手順・事前テスト方法をまとめましたので、開発されたmixiアプリにて対応漏れのないよう修正作業の程お願いいたします。

署名付きリクエストで使用する公開鍵の更新について

mixiアプリにて提供されている署名付きリクエストを利用することにより、リクエスト内容の改ざんを検知することができます。

【参考】署名付きリクエストの検証
http://developer.mixi.co.jp/appli/spec/pc/validating_signed_requests/

署名の検証には、mixi Developer Centerにて掲載されている公開鍵を使用することになりますが、今まで使用してきた鍵の有効期限が近付いてまいりました。そのため、鍵の交換を行うことが必要です。この交換に関する手順として、弊社サーバでの鍵の入れ替えに加えて、署名付きリクエストの送信先サーバに関しても対応が必要となりますので、そのための手順を以下に説明いたします。

※ 本ページ内の日時は、全てJST(GMT+09:00)です。

手順の概要

新しい鍵への交換のための手順の概要は、以下となります。

  1. mixi Developer Center(本ニュース)に掲載されている新しい公開鍵を入手します。
  2. xoauth_signature_publickeyパラメータ値に応じて、使用する公開鍵を切り替えて署名を検証するように、アプリ側サーバのプログラムを変更します。
  3. 弊社側サーバにて、使用する鍵を変更します。アプリ側サーバに新しい鍵で作られた署名が送信されます。

新しい公開鍵

新しい公開鍵はそれぞれ以下となります。お間違えの無いようご利用ください。

<mixiアプリPC版(旧方式)> gadgets.io.makeRequest によるアクセス時
有効期限:2023年11月05日 17:41:11(JST)

-----BEGIN CERTIFICATE-----
MIIDNzCCAh+gAwIBAgIJAOwgl6RQpug2MA0GCSqGSIb3DQEBBQUAMDIxCzAJBgNV
BAYTAkpQMREwDwYDVQQKDAhtaXhpIEluYzEQMA4GA1UEAwwHbWl4aS5qcDAeFw0x
MzExMDcwODQxMTFaFw0yMzExMDUwODQxMTFaMDIxCzAJBgNVBAYTAkpQMREwDwYD
VQQKDAhtaXhpIEluYzEQMA4GA1UEAwwHbWl4aS5qcDCCASIwDQYJKoZIhvcNAQEB
BQADggEPADCCAQoCggEBAK2ojofjDNhiD6rDFUv4k728rGeLDf6VERU4RsdHBkvS
UZhx7SiRidhAHQ7QX6DP9W8ALeM6i2s+vxmfYbL9NrsKx/HxWZvuxmV4ELgRsDRN
0LUjEJv+hyI/nFfPlHmvYgKx501fTWn9DbBUxaKTbA2984Styrlf8etSRkkdx+Ua
742iDEXTH6jtxFSmcPvcvAXbdoUNNx95d+3QNoG8p0zaSMUwXGn7jCVcz+WhDkCO
n2ajknn539YXVRp6I4DjJ+8M1ZmC1FTcb5PsVGUuxCxhwZc6LDq/qMxJCi20AzD9
McYsyZS1LB+q/dwibaLEZbIh+fGkUaRoRRhrOFNJ0dMCAwEAAaNQME4wHQYDVR0O
BBYEFLWrc309hb0KbH56w0aseZPQHWc2MB8GA1UdIwQYMBaAFLWrc309hb0KbH56
w0aseZPQHWc2MAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAGh27dw2
C1pxpDiA3X5zzrRDuBuCRXyY1Ywq3FboTVsUrc2NfOCOm27674D/tZtANxUBrs3k
JI1hY6mbQgvTaXNm6wuxknyQWeaKkdacdtbKeIdtut4APeY/K9NGLHqBjglpx+JK
jpXBVwVGqH36q9qqxZvCk/LZGzVuoYIsfolIUVKfQwpybc2TptdDH3Nuu/EXz/BK
xpkjcpasg+apX4zifOkdVoEmsjO1K1UeSvHDugEZRCLg/Bkbh9tK47waVj4BYvro
JkIkQk47Ws2bAlth3YaNAgjLibzyjCT/5YTJujWZHuMG/zpZMoYLuk7oJP4f4DKH
aw6UQsWgwzyYhnM=
-----END CERTIFICATE-----

<mixiアプリPC版(新方式)> アプリのスタートページの初回起動時
有効期限:2023年11月05日 17:40:38(JST)

-----BEGIN CERTIFICATE-----
MIIDNzCCAh+gAwIBAgIJANH20l9V3QyGMA0GCSqGSIb3DQEBBQUAMDIxCzAJBgNV
BAYTAkpQMREwDwYDVQQKDAhtaXhpIEluYzEQMA4GA1UEAwwHbWl4aS5qcDAeFw0x
MzExMDcwODQwMzhaFw0yMzExMDUwODQwMzhaMDIxCzAJBgNVBAYTAkpQMREwDwYD
VQQKDAhtaXhpIEluYzEQMA4GA1UEAwwHbWl4aS5qcDCCASIwDQYJKoZIhvcNAQEB
BQADggEPADCCAQoCggEBAMjrvmoMZdlxPbW86JO1VbIguv8ddAQV/+ZtjmanLXU6
QjbGz/0wAONo19R/z4oqccNI1USmGBocuNtzFaIbsXVohaJpJm6cJMQ6dYqJbWZD
C0m8Va+8fx3xjFs/MckvymPbNCSxsycSkiwBNLM0atNiBnRRr5rLHwOlXDarOkaL
sAYPA/EctZq4Mg380dFpDC1mqzjQvXRQ9Z9z/MD75b06EwYY4L/Yb+F92S5BhagM
pSxfIJF7VTmA9de2PE67fhoQOXGg48fS2XE2uKDMuE1U/rQIYzAw3twFJNXiCZ3j
F3uo8pjAy1kWY4uh9KwQ2zXEXSYjJOVDu2eX7Q+ZJDsCAwEAAaNQME4wHQYDVR0O
BBYEFCJwA3yljcHQ917eLcEh1kIzGIE1MB8GA1UdIwQYMBaAFCJwA3yljcHQ917e
LcEh1kIzGIE1MAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAMSUBJc8
LGLuRvhpqBfUcuHuQzzMM4Xw9x2pEcBAocu6wijvYZt1ATI6zzxC6213BT63ei4W
UzXPYUjC70BGqQu4lhFKRECl48BLJzELayS6Lh+teYmSIdXc3DNsK9L/T19deeC5
iHjkD76z6YPjsPpLyo3TkCi2Ebz+oNkCXQYCZsI0QToTuMuYyL+bsDyFmWTRlvx2
KGZe3pdbMLZW4QSHoN6h0rSpgYKi6vdKbPzLcFEko1oYUwFCHDENvqVfZdMEuauA
W58UChLDu+5bVdldYrmXkZ+u/PiSCsIVKvfCZ+JlgJR4wX+4YgICl5FbRhD/qg2l
S791sxe9mHZeByk=
-----END CERTIFICATE-----

<mixiアプリスマートフォン版(旧方式)> アプリのスタートページの初回起動時
有効期限:2023年11月05日 17:41:31(JST)

-----BEGIN CERTIFICATE-----
MIIDNzCCAh+gAwIBAgIJALrJUUWw3R2sMA0GCSqGSIb3DQEBBQUAMDIxCzAJBgNV
BAYTAkpQMREwDwYDVQQKDAhtaXhpIEluYzEQMA4GA1UEAwwHbWl4aS5qcDAeFw0x
MzExMDcwODQxMzFaFw0yMzExMDUwODQxMzFaMDIxCzAJBgNVBAYTAkpQMREwDwYD
VQQKDAhtaXhpIEluYzEQMA4GA1UEAwwHbWl4aS5qcDCCASIwDQYJKoZIhvcNAQEB
BQADggEPADCCAQoCggEBANhRS3l0OcqPbmu5GuwE4oIImw0TNJEtLnxhygWdyQ5r
NLrMysOMHBXBW8UMvxVmh8yhUomFfTwGS6Got7aDS+9P//YiAfpFteMNhQ7NuIKD
bHlNTjOT2wThZD+GZqkFalv5+86YmVJ09sNTEKq2W6Xip1Q1R56kcfYlBQC51et/
aiPZF/nlpESWHM0NK3U5dD8sPutXxjnPObF47lSettnaHe/7p80oASHR87o+hqhb
hiwIucaAwE6xqvM5qUkL4tYHDNqvTBQBErrCX4lcUkxI2Jr0BKjAU4x6Z/yxJtcS
kxeSo8GvKVgUsk8SqJ33gdDaasy2dTrTRjMh/FP0YlUCAwEAAaNQME4wHQYDVR0O
BBYEFDis4n7zlw2UBLRRPXbcNJEGGP+PMB8GA1UdIwQYMBaAFDis4n7zlw2UBLRR
PXbcNJEGGP+PMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAIj/UdbB
IS2HpArm7HHITjn/r5QhFNbtJ1PXqj+scGv7zG3QrLEelQ64kWdf/Ocr4ERdOlmW
3yeBx6DDLJ7Gad6lcRl9PEjC+Z/A7AIf13XBozJmcMn7Qp/dQrG5HuyqvJVNZxdo
XvFQSr3v1KfYMiSdRPjS+U0hPM5wCV19i7/82KjNU9mtwtYzw2qqN76sDESr7lbI
EVJwUq7xE3YJcT3T6YC6AgnZ1uKO/w5kaTaUDioXTHzegNVO8g9xpk37iasu401X
wM3cfSlKNwn2YwBYW9yeHFDDmRL60V7OD03w5vgwz/4cFGMh3qDEM/sfNhiNHFAW
MWJRjRQVTA13wmg=
-----END CERTIFICATE-----

<mixiアプリスマートフォン版(新方式)> アプリのスタートページの初回起動時
有効期限:2023年11月05日 17:41:31(JST)

-----BEGIN CERTIFICATE-----
MIIDNzCCAh+gAwIBAgIJALrJUUWw3R2sMA0GCSqGSIb3DQEBBQUAMDIxCzAJBgNV
BAYTAkpQMREwDwYDVQQKDAhtaXhpIEluYzEQMA4GA1UEAwwHbWl4aS5qcDAeFw0x
MzExMDcwODQxMzFaFw0yMzExMDUwODQxMzFaMDIxCzAJBgNVBAYTAkpQMREwDwYD
VQQKDAhtaXhpIEluYzEQMA4GA1UEAwwHbWl4aS5qcDCCASIwDQYJKoZIhvcNAQEB
BQADggEPADCCAQoCggEBANhRS3l0OcqPbmu5GuwE4oIImw0TNJEtLnxhygWdyQ5r
NLrMysOMHBXBW8UMvxVmh8yhUomFfTwGS6Got7aDS+9P//YiAfpFteMNhQ7NuIKD
bHlNTjOT2wThZD+GZqkFalv5+86YmVJ09sNTEKq2W6Xip1Q1R56kcfYlBQC51et/
aiPZF/nlpESWHM0NK3U5dD8sPutXxjnPObF47lSettnaHe/7p80oASHR87o+hqhb
hiwIucaAwE6xqvM5qUkL4tYHDNqvTBQBErrCX4lcUkxI2Jr0BKjAU4x6Z/yxJtcS
kxeSo8GvKVgUsk8SqJ33gdDaasy2dTrTRjMh/FP0YlUCAwEAAaNQME4wHQYDVR0O
BBYEFDis4n7zlw2UBLRRPXbcNJEGGP+PMB8GA1UdIwQYMBaAFDis4n7zlw2UBLRR
PXbcNJEGGP+PMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBAIj/UdbB
IS2HpArm7HHITjn/r5QhFNbtJ1PXqj+scGv7zG3QrLEelQ64kWdf/Ocr4ERdOlmW
3yeBx6DDLJ7Gad6lcRl9PEjC+Z/A7AIf13XBozJmcMn7Qp/dQrG5HuyqvJVNZxdo
XvFQSr3v1KfYMiSdRPjS+U0hPM5wCV19i7/82KjNU9mtwtYzw2qqN76sDESr7lbI
EVJwUq7xE3YJcT3T6YC6AgnZ1uKO/w5kaTaUDioXTHzegNVO8g9xpk37iasu401X
wM3cfSlKNwn2YwBYW9yeHFDDmRL60V7OD03w5vgwz/4cFGMh3qDEM/sfNhiNHFAW
MWJRjRQVTA13wmg=
-----END CERTIFICATE-----

<デバイス共通> ライフサイクルイベント / イベント通知先 URL へのアクセス時 
有効期限:2023年11月05日 17:40:50(JST)

-----BEGIN CERTIFICATE-----
MIIDNzCCAh+gAwIBAgIJAIQ3zDiILtpzMA0GCSqGSIb3DQEBBQUAMDIxCzAJBgNV
BAYTAkpQMREwDwYDVQQKDAhtaXhpIEluYzEQMA4GA1UEAwwHbWl4aS5qcDAeFw0x
MzExMDcwODQwNTBaFw0yMzExMDUwODQwNTBaMDIxCzAJBgNVBAYTAkpQMREwDwYD
VQQKDAhtaXhpIEluYzEQMA4GA1UEAwwHbWl4aS5qcDCCASIwDQYJKoZIhvcNAQEB
BQADggEPADCCAQoCggEBAMxzCu9sUctGAzL/X0/sH2MSRmc/+X2Wx87ObZDpEd5P
19mIUQXW6hCXObB3SkE7kMuXiRhtrxwsnB9fjYIUEq/1vsTHkLJoJVUFIumqe6EH
c/WZaTmu34WpEUFXNDS4htidXyVqikoDQZF9wdczyH7bLPbekQfRAcyek3E6/7Qi
B00yWUqK8FcUOD4ILmtSHXsz4BNqekNgEzfUi5WkBYKtuD5zSunZalbWUPS7xa57
o1auVdclaHBfqe8dC5DTbxIe0szpHckQrJF9fJ/bIQSmvY6ADBRGfoLF7Fgoc5x+
R5my9weytzg4WdDUjYrxmhy5IpjxytipQqrFDqAUxl8CAwEAAaNQME4wHQYDVR0O
BBYEFKCQSlssCWLqd0tT7NVtoBUNzCasMB8GA1UdIwQYMBaAFKCQSlssCWLqd0tT
7NVtoBUNzCasMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEBALoI7elk
ZCv+pUpi6aJepzLnQDYHB2eXpDkpWEUrF1WMvx8ovmWdVeviHqUdFtGL0XZ5tSoV
vGE/KQTavag+MfbafKaff4iHXNyNMygeFP7r/FaFQQRafyNfhaXF6sWfwKrOk/Bc
jIXFN9tYWN6LEwNgYT0C+OSOppQJzt2y1am15FExAHQcIEFYc+3T+MGGJ7e9H8tn
Qz84WmIgNZRUMYQC0PJTsMNVvr+/DTIzjabKz4W8qodXGA7AxXiRYdgC+3RUj/rA
lR09PXZ6nRaKiB0KBDIMUlPu/0u0Vw+GBt0ckH0htOKSxsn09jkITFhy3NX7Slbk
jlnY4pS9JO+avmM=
-----END CERTIFICATE-----

xoauth_signature_publickey

署名付きリクエストにおいて、弊社サーバにて使用している鍵を識別するために、xoauth_signature_publickeyパラメータが送信されています。このxoauth_signature_publickeyパラメータ値によって、アプリ側サーバでは使用する公開鍵はどれなのかを判断することが可能です。

交換前および交換後のxoauth_signature_publickeyパラメータの値は、それぞれ以下のように変更されます。

<mixiアプリPC版(旧方式)> gadgets.io.makeRequest によるアクセス時

  • 交換前: "sr_20120106"
  • 交換後: "sr_20131107"

<mixiアプリPC版(新方式)> アプリのスタートページの初回起動時

  • 交換前: "app_pc_20120120"
  • 交換後: "app_pc_20131107"

<mixiアプリスマートフォン版(旧方式)> アプリのスタートページの初回起動時

  • 交換前: "app_touch_20120306"
  • 交換後: "app_touch_20131107"

<mixiアプリスマートフォン版(新方式)> アプリのスタートページの初回起動時

  • 交換前: "app_touch_20120306"
  • 交換後: "app_touch_20131107"

<デバイス共通> ライフサイクルイベント / イベント通知先 URLの初回起動時

  • 交換前: "lc_20120106"
  • 交換後: "lc_20131107"

また、署名を付与するためのoauth_signatureパラメータ値に関しては、以下となります。

  • 交換前: 古い鍵で生成された署名文字列
  • 交換後: 新しい鍵で生成された署名文字列

プログラム変更内容

弊社側にて鍵の交換を行った後には、署名付きリクエストにて付与される署名は、交換後の新しい公開鍵でのみ妥当性検証を行うことができます。ただし、弊社側サーバでの鍵の入れ替え作業中は、上記のリクエストが混在することになります。つまり、弊社側作業開始から約1時間弱は、古い鍵と新しい鍵の両方のリクエストがアプリ側サーバに送信されることになりますので、アプリ側サーバにて両方の鍵を使い分けられるように対応していただくことが必要となります。

具体的には、xoauth_signature_publickeyパラメータ値により、使用する公開鍵を切り替えます。例えば、以下のようになります。

String publicKey = request.getParameter(
        "xoauth_signature_publickey"); // パラメータ値取得
if ("pubkey001".equals(publicKey)) {
    // 古い公開鍵を使って妥当性検証
} else if ("pubkey002".equals(publicKey)) {
    // 新しい公開鍵を使って妥当性検証
}

事前テスト方法

署名付きリクエストについては、新しい鍵を使ったテストを事前に行うことができます。run_appli.plページを表示する際に、「shindig_beta=1」というパラメータを追記することで、新しい鍵が使われた署名つきリクエストが送信されます。これと同時に、xoauth_signature_publickeyパラメータ値に関しても、交換後の値で送信されます。

これにより、署名つきリクエストを受信するプログラムの修正確認を行うことが可能です。

【2013.11.20更新】
※mixiアプリPC版(旧方式)の事前テスト(shindig_beta=1による処理の切り替え)機能について、準備が少し遅れておりましたが、11/20(水)にプラットフォーム側の準備が完了し、事前テストが可能となりました。お待たせしてしまい申し訳ありませんでした。ご対応をよろしくお願いいたします。

※ライフサイクルイベントに関しましては上記のような事前テストの方法がございませんので、他の署名付きリクエストと同様の切り替えロジックを実装し、弊社公開鍵の変更に備えてください。

スケジュール

公開鍵の交換に関するスケジュールは、以下となります。

  • 新しい公開鍵の掲載: 2013年11月18日
  • 新しい鍵への交換: 2013年12月18日

パートナーの皆様には大変お手数をお掛け致しますが、アプリの正常な動作のため、事前のご対応の程よろしくお願いいたします。

今後ともmixi Platformをよろしくお願いいたします。

このページの上部へ