9.2 直接基于TCP的管理協議
下面的簡單的基于TCP的協議可以用于傳輸PKI消息。這一協議適用于EE或RA啟動一個transaction并可以通過輪詢來獲得結果的情況。
如果事務處理由PKI實體(RA或CA)啟動,那么EE要么必須提供一個偵聽進程,要么由啟動方提供一個輪詢參考數以允許它從PKI管理部件處獲得PKI消息。
本協議假設在RA或CA上有一個監聽進程在知名端口829上偵聽PKI消息。通常情況下,啟動者綁定到該端口并為給定的transactionID提交初始的PKI消息。響應者向請求方返回一個PKI消息和/或一個參考數(用于其后的輪詢以獲得真正的PKI響應消息)。
如果對于給定的請求將產生多個PKI響應消息(假設請求的某些部分比其它部分處理的快),那么將返回一個新的輪詢參考數。
當最后一個PKI響應消息已被啟動者獲得后,響應方將不提供新的輪詢參考數。
事務處理的啟動者向接收者發送一個”直接基于TCP的PKI消息”。接收者返回一個類似的消息。
一個”直接基于TCP的PKI消息”由下列各部分組成:
length (32-bits), flag (8-bits), value (defined below)
length —— 包含該消息的其它部分的字節數(即”value”的字節數加1)。本協議中所有的32-bit值都采用網絡序。
消息名 標志 值
pkiMsg ‘00’H DER-encoded PKI message
– PKI消息
pollRep ‘01’H polling reference (32 bits),
time-to-check-back (32 bits)
– 無準備好的PKI消息時返回的poll響應;使用其中的polling
– reference值(在估計的時間間隔后)再次查詢
pollReq ‘02’H polling reference (32 bits)
– 請求對最初的PKI消息的響應
negPollRep ‘03’H ‘00’H
– 再沒有polling響應(即,transaction完畢)
partialMsgRep ‘04’H next polling reference (32 bits),
time-to-check-back (32 bits),
DER-encoded PKI message
– 對最初的PKI消息的部分響應,加上用于得到下一部分響應的
– 新polling reference(和估計的時間間隔值)
finalMsgRep ‘05’H DER-encoded PKI message
– 對最初的PKI消息的最終(可能是唯一的)響應
errorMsgRep ‘06’H human readable error message
– 檢測到錯誤時產生這一消息(如,接收到一個不存在的或已經
– 結束的polling reference)
當要傳輸PKIConfirm消息時(總是從請求方發送到響應方),發送一個pkiMsg消息并返回一個negPollRep消息。
可能發生的消息序列為:
a) EE發送pkiMsg消息,接收到的響應為pollRep、negPollRep、partialMsgRep或finalMsgRep中的一種;
b) EE發送pollReq消息,接收到的響應為negPollRep、partialMsgRep、finalMsgRep或errorMsgRep中的一種。
參數”time-to-check-back”是一個32-bit的整數,定義為從1970年1月1日午夜12點開始經過的秒數。這是EE應當發送下一個pollReq的估計時間。
推薦文章: