Public key pinning
In general, Apple-platform apps can be trivially MITMed, which lets an attacker view credentials or discover endpoints to abuse. Public-key pinning greatly increases the difficulty of MITMing your app.
AIProxySwift uses public key pinning automatically. If you already use AIProxySwift, you do not need to perform any special handling yourself.
If you are building your own client, pin the production key for api.aiproxy.com and both backup keys below. Including the backup keys allows AIProxy to rotate the production key without interrupting your app's network access. Each key is provided as an uncompressed hexadecimal P-256 point and as a standard PEM-encoded SubjectPublicKeyInfo.
api.aiproxy.com
Hex
[
0x04, 0x4a, 0x42, 0x12, 0xe7, 0xed, 0x36, 0xb4, 0xa9, 0x1f, 0x96, 0x7e, 0xcf, 0xbd, 0xe0,
0x9d, 0xea, 0x4b, 0xfb, 0xaf, 0xe7, 0xc6, 0x93, 0xf0, 0xbf, 0x92, 0x0f, 0x12, 0x7a, 0x22,
0x7d, 0x00, 0x77, 0x81, 0xa5, 0x06, 0x26, 0x06, 0x5c, 0x47, 0x8f, 0x57, 0xef, 0x41, 0x39,
0x0b, 0x3d, 0x41, 0x72, 0x68, 0x33, 0x86, 0x69, 0x14, 0x2a, 0x36, 0x4d, 0x74, 0x7d, 0xbc,
0x60, 0x91, 0xff, 0xcc, 0x29
]
PEM
-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAESkIS5+02tKkfln7PveCd6kv7r+fG
k/C/kg8SeiJ9AHeBpQYmBlxHj1fvQTkLPUFyaDOGaRQqNk10fbxgkf/MKQ==
-----END PUBLIC KEY-----
Backup key A
Hex
[
0x04, 0x2c, 0x25, 0x74, 0xbc, 0x7e, 0x18, 0x10, 0x27, 0xbd, 0x03, 0x56, 0x4a, 0x7b, 0x32,
0xd2, 0xc1, 0xb0, 0x2e, 0x58, 0x85, 0x9a, 0xb0, 0x7d, 0xcd, 0x7e, 0x23, 0x33, 0x88, 0x2f,
0xc0, 0xfe, 0xce, 0x2e, 0xbf, 0x36, 0x67, 0xc6, 0x81, 0xf6, 0x52, 0x2b, 0x9b, 0xaf, 0x97,
0x3c, 0xac, 0x00, 0x39, 0xd8, 0xcc, 0x43, 0x6b, 0x1d, 0x65, 0xa5, 0xad, 0xd1, 0x57, 0x4b,
0xad, 0xb1, 0x17, 0xd3, 0x10
]
PEM
-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAELCV0vH4YECe9A1ZKezLSwbAuWIWa
sH3NfiMziC/A/s4uvzZnxoH2Uiubr5c8rAA52MxDax1lpa3RV0utsRfTEA==
-----END PUBLIC KEY-----
Backup key B
Hex
[
0x04, 0x34, 0xae, 0x84, 0x94, 0xe9, 0x02, 0xf0, 0x78, 0x0e, 0xee, 0xe6, 0x4e, 0x39, 0x7f,
0xb4, 0x84, 0xf6, 0xec, 0x55, 0x20, 0x0d, 0x36, 0xe9, 0xa6, 0x44, 0x6b, 0x9b, 0xe1, 0xef,
0x19, 0xe7, 0x90, 0x5b, 0xf4, 0xa3, 0x29, 0xf3, 0x56, 0x7c, 0x60, 0x97, 0xf0, 0xc6, 0x61,
0x83, 0x31, 0x5d, 0x2d, 0xc9, 0xcc, 0x40, 0x43, 0xad, 0x81, 0x63, 0xfd, 0xcf, 0xe2, 0x8e,
0xfa, 0x07, 0x09, 0xf6, 0xf2
]
PEM
-----BEGIN PUBLIC KEY-----
MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAENK6ElOkC8HgO7uZOOX+0hPbsVSAN
NummRGub4e8Z55Bb9KMp81Z8YJfwxmGDMV0tycxAQ62BY/3P4o76Bwn28g==
-----END PUBLIC KEY-----