RFC 7301 Quiz

TLS の中で protocol を決める仕組み

0 / 0

References (URLs)

範囲: RFC 7301はpublication当時のTLSでconnection単位のapplication-protocol negotiationを定義します. TLS 1.3ではserver selectionをServerHelloではなくEncryptedExtensionsで運びます. ALPNはprotocolを選択しますが, agent認証, task authorization, 別々に終端されたTLS connection間のbindingは行いません.

Q1: このClientHello ALPN listはRFC 7301上valid?

Multiple Choice

clientがh2, empty byte string, http/1.1の3 identifierを送ります. implementationはempty entryを無視して続行する案です.

**Explanation:** A: serverは認識しないnon-empty protocol nameを無視しますが, empty ProtocolNameはencoding rule違反です. B: RFC 7301 Section 3.1はidentifierをopaque, non-empty byte stringとし, empty stringの包含とbyte stringのtruncateを禁止します. C: ProtocolNameList内の全identifierにProtocolName length constraintが適用されます. D: ClientHelloはcandidate listを運び, exactly-one ruleはserverのselection responseに適用されます.

Q2: serverが選択すべきprotocolはどれ?

Multiple Choice

clientはh2, http/1.1の順にadvertiseします. serverは両方をsupportし, 自身のpreferenceはhttp/1.1, h2の順です.

**Explanation:** A: client orderはclient preferenceを伝えますが, RFC 7301はfinal selectionをserverへ与えます. B: orderが異なってもcommon protocol setはなくなりません. C: Section 3.2は, clientもadvertiseしたserverのsupported protocolのうち, serverが最もpreferするものを選ぶSHOULDを示します. D: serverのALPN responseはProtocolNameをexactly one含まなければなりません.

Q3: このserverに要求されるALPN failureはどれ?

Multiple Choice

ALPNを処理するserverはhttp/1.1だけをsupportし, ClientHelloがadvertiseするprotocolはh2だけです.

**Explanation:** A: selected protocolはclientのadvertised listに含まれる必要があります. B: RFC 7301はempty intersection後のplaintext fallbackを定義しません. C: server responseはexactly one non-empty selectionを含み, empty selectionはfailure encodingではありません. D: Section 3.2はserverがclient提示protocolを1つもsupportしない場合, fatal alertを送るSHALLを定めます.

Q4: traceと整合するdiagnosisはどれ?

Multiple Choice

clientはh2http/1.1をofferします. TLSは完了しましたがclientはnegotiated ALPN valueなしと報告し, serverもALPN extensionを返していません.

**Explanation:** A: SNIはserver nameを示し, application protocolを選択も秘匿もしません. B: RFC 7301 Section 3.1はserver responseをoptionalとします. extensionを返さないserverはALPN selectionをしておらず, それでもTLSは完了し得ます. C: ALPN selectionはimplicitにもadvertised list外にもできません. D: application fallback behaviorをexplicit ALPN selectionと混同できません.

Q5: server behaviorはconformant?

Multiple Choice

serverはALPNでh2をselectした後, backend pool変更を理由に同じTLS connectionでHTTP/1.1 application dataを送ります.

**Explanation:** A: server selectionはadvisoryではありません. B: backend topologyはwire contractの例外を作りません. C: RFC 7301 Section 3.2はselectionをconnectionにdefinitiveとするSHALLと, 1つをselectして別protocolでapplication dataを交換してはならないSHALL NOTを定めます. D: ALPNはnegotiated protocolに基づくroutingを促進できますが, routing後も選択protocolを保つ必要があります.

Q6: resumed connectionをcontrolするALPN valueはどれ?

Multiple Choice

previous sessionはh2をnegotiateしました. resumption時の新ClientHelloはserverもsupportするhttp/1.1だけをofferします.

**Explanation:** A: RFC 7301はALPNをsession-ticket propertyとして確立しません. B: Section 3.1はALPNをconnectionだけのpropertyとし, resumptionではprevious contentsをirrelevantとしてnew handshake messageをconsiderします. C: RFC 7301はabbreviated handshakeでもALPNを示します. D: serverはcurrent connectionにexactly one protocolをselectします.

Q7: supportできるvisibility結論はどれ?

Multiple Choice

privacy reviewは, TLS 1.3を使えばcomplete ALPN exchangeがordinary on-path observerから見えなくなると主張します.

**Explanation:** A: TLS 1.3自体はordinary ClientHelloを暗号化せず, ECHのようなmechanismが別のexposureに対応します. B: RFC 7301 Section 5はidentifier leakageを警告し, ALPNをexternally visible markerと表現します. C: RFC 8446 Section 4.2はALPNをEncryptedExtensionsに置き, ServerHello後のserver selected valueを保護します. ordinary ClientHello offerは引き続き観測され得ます. D: TLS 1.3はALPN server responseをServerHelloからEncryptedExtensionsへ移します.

Q8: gatewayのALPN metadataからbackendは何を結論できる?

Multiple Choice

A2A gatewayがh2をselectしたclient TLS connectionを終端します. backendへ別TLS connectionを開き, external-alpn=h2 headerを転送します. backendはこれをoriginal secure channel, agent identity, grant holder, task authorizationの証拠とする案です.

**Explanation:** A: ALPNは1 TLS connectionのpropertyであり, text copyは別connectionをcryptographically bindしません. B: RFC 7301はagent identityもauthorization grant possessionも確立しません. C: Sections 3.1-3.2はconnection単位のprotocol negotiationを定義します. backendがgateway metadataを信頼できるのはexplicit gateway-to-backend trust modelの範囲だけで, A2A identity, credential, sender-binding, authorization ruleが独立claimを確立する必要があります. D: RFC 7301はselected valueのoperational useを禁じず, その意味を限定します.