附 錄 B (資料性附錄) 協議消息相關數據結構
本附錄是協議消息相關數據結構的ASN.1描述。
B.1. 版本
Version::= SEQUENCE {
major INTEGER,
minor INTEGER
}
major:主要版本。
minor:次要版本
本標準的協議主要版本為1,次要版本為0。
B.2. 操作類型
Operation::= PrintableString {Register(Reg), Authentication(Auth), Deregister(Dereg)}
本標準有以下三種操作類型:
Reg:注冊
Auth:鑒別
Dereg:注銷
B.3. 擴展
Extension::= SEQUENCE {
id PrintableString,
data PrintableString,
fail_if_unknown BOOLEAN
}
該結構描述的是在各種操作中使用的通用擴展。
id:擴展的標識符。
data:該值可包含任意字符串,身份鑒別服務器和生物特征識別密鑰管理器應對該值的語義協商一致。該值可以為空。
fail_if_unknown:當fail_if_unknown是false時表示未知擴展應被忽略,當fail_if_unknown是TRUE時表示未知擴展應導致錯誤。
B.4. 操作頭
OperationHeader::= SEQUENCE {
bapv Version,
op Operation,
appID PrintableString,
serverData PrintableString OPTIONAL,
exts SEQUENCE OF Extension OPTIONAL
}
bapv:基于可信環境的生物特征識別身份鑒別協議版本,ASN.1描述參見附錄B.1。
op:值應為“Reg”,“Auth”或者“Dereg”。基于可信環境的生物特征識別身份鑒別協議操作的類型,ASN.1描述參見附錄B.2。
appID:依賴方應用程序標識符。
serverData:依賴方創建的會話標識符。
exts:擴展名列表,ASN.1描述參見附錄B.3。
B.5. 最終挑戰參數
FinalChallengeParams::= SEQUENCE {
appID PrintableString,
challenge PrintableString
}
appID:該參數值設置為操作頭的appID參數值。
challenge:該參數值設置為注冊請求或鑒別請求中的服務器挑戰參數值,服務器挑戰是服務器提供的隨機參數值。
B.6. 生物特征識別密鑰管理器信息
身份鑒別服務器可以獲取生物特征識別密鑰管理器相關信息,例如生物特征識別密鑰管理器廠商在生成廠商密鑰時所使用的相關算法和信息,以及生物特征識別密鑰管理器生成鑒別公私鑰時所使用的相關算法和信息。身份鑒別服務器可以使用生物特征識別密鑰管理器相關提供方的服務來獲取這些信息。
B.7. 斷言描述信息
AssertionInfo::= SEQUENCE {
version Version,
mode AuthenticationMode,
signatureAlgAndEncoding INTEGER,
publicKeyAlgAndEncoding INTEGER OPTIONAL
}
version:斷言的版本,ASN.1描述參見附錄B.1。
mode:斷言模式。
signatureAlgAndEncoding:該值代表簽名算法相關信息,身份鑒別服務器和生物特征識別密鑰管理器應對該值的語義協商一致,即能夠通過該值在身份鑒別過程中使用一致的簽名算法和相關參數。
publicKeyAlgAndEncoding:該值代表公鑰算法相關信息,身份鑒別服務器和生物特征識別密鑰管理器應對該值的語義協商一致,即能夠通過該值在身份鑒別過程中使用一致的公鑰算法和相關參數。
publicKeyAlgAndEncoding:用戶驗證方式,ASN.1描述如下:
AuthenticationMode::= INTEGER { explicitly(0x01)}
explicitly:應進行顯式的用戶驗證,例如指紋輸入、虹膜掃描等。
B.8. 生物特征識別密鑰管理器計數器值
Counters::= SEQUENCE {
SignCounter INTEGER,
RegCounter INTEGER
}
SignCounter:生物特征識別密鑰管理器執行簽名操作的次數。
RegCounter:生物特征識別密鑰管理器執行注冊操作的次數。
B.9. 密鑰注冊數據
KRD::= SEQUENCE {
bkmID PrintableString,
assertionInfo AssertionInfo,
challengeHash BIT STRING,
keyID PrintableString,
counters Counters,
uauthPubKey OCTET STRING
}
bkmID:生物特征識別密鑰管理器ID。
assertionInfo:斷言描述信息,ASN.1描述參見附錄B.7。
challengeHash:服務器挑戰的雜湊值。
keyID:鑒別私鑰ID。
counters:生物特征識別密鑰管理器計數器值,ASN.1描述參見附錄B.8。
uauthPubKey:生成的鑒別公鑰。
B.10. 簽名數據
SignData::= SEQUENCE {
bkmID PrintableString,
assertionInfo AssertionInfo,
nonce OCTET STRING,
challengeHash OCTET STRING,
keyID PrintableString,
counters Counters
}
bkmID:生物特征識別密鑰管理器ID。
assertionInfo:斷言描述信息,ASN.1描述參見附錄B.7。
nonce:生物特征識別密鑰管理器生成的隨機臨時參數值。
challengeHash:服務器挑戰的雜湊值。
keyID:鑒別私鑰ID。
counters:生物特征識別密鑰管理器計數器值,ASN.1描述參見附錄B.8。
B.11. 發現數據
DiscoveryData::= SEQUENCE {
supportedBAPVersions SEQUENCE OF Version,
clientVendor PrintableString,
clientVersion Version,
availableBAPKeyManagers SEQUENCE OF PrintableString
}
描述:
supportedBAPVersions:支持的基于可信環境的生物特征識別身份鑒別協議版本,ASN.1描述參見附錄B.1。
clientVendor:生物特征識別密鑰管理器廠商。
clientVersion:生物特征識別密鑰管理器版本。
availableBAPKeyManagers:可使用的生物特征識別密鑰管理器ID。
B.12. 錯誤碼
ErrorCode::= INTEGER {
NO_ERROR(0x0),
WAIT_USER_ACTION(0x1),
INSECURE_TRANSPORT(0x2),
USER_CANCELLED(0x3),
UNSUPPORTED_VERSION(0x4),
NO_SUITABLE_BAPKEYMANAGER(0x5),
PROTOCOL_ERROR(0x6),
UNTRUSTED_FACET_ID(0x7),
KEY_DISAPPEARED_PERMANENTLY(0x09),
BAPKEYMANAGER_ACCESS_DENIED(0x0c),
USER_NOT_RESPONSIVE(0x0e),
INSUFFICIENT_BAPKEYMANAGER_RESOURCES(0x0f),
USER_LOCKOUT(0x10),
USER_NOT_ENROLLED(0x11),
UNKNOWN(0xff)
}
描述:
NO_ERROR:操作完成,沒有錯誤發生。
WAIT_USER_ACTION:等待用戶操作。
INSECURE_TRANSPORT:不安全的傳輸,例如沒有使用HTTPS。
USER_CANCELLED:用戶取消當前操作。
UNSUPPORTED_VERSION:生物特征識別密鑰管理器不支持該版本的協議消息。
NO_SUITABLE_BAPKEYMANAGER:沒有與身份鑒別服務器策略相匹配的生物特征識別密鑰管理器。
PROTOCOL_ERROR:發生協議錯誤。
UNTRUSTED_FACET_ID:不受信任的依賴方應用程序。
KEY_DISAPPEARED_PERMANENTLY:鑒別私鑰丟失并且無法恢復。
BAPKEYMANAGER_ACCESS_DENIED:生物特征識別密鑰管理器拒絕訪問。
USER_NOT_RESPONSIVE:用戶長時間無響應。
INSUFFICIENT_BAPKEYMANAGER_RESOURCES:生物特征識別密鑰管理器沒有足夠的資源執行操作。
USER_LOCKOUT:由于用戶鎖定,操作無法執行。
USER_NOT_ENROLLED:用戶沒有登記。
UNKNOWN:以上沒有列出的其他錯誤。
GB/T 36651—2018 信息安全技術 基于可信環境的生物特征識別身份鑒別協議框架
推薦文章: