저는 Cyrus SASL 라이브러리를 사용하여 테스트 클라이언트와 서버를 작성했으며 수동으로 GSSAPI를 메커니즘으로 선택하도록 했습니다. 디버깅하는 동안 두 메시지 사이에 전달되는 각 메시지의 md5sum을 인쇄했습니다. 접속할 때마다 순서가 똑같은 것 같다는 걸 깨달았습니다. 즉, 첫 번째 협상의 메시지 시퀀스가 성공적인 인증을 위한 clientMessage1, serverResponse1, clientMessage2 등인 경우 클라이언트를 다시 시작하면 동일한 clientMessage1, serverResponse2, clientMessage2 등... 시퀀스가 반복됩니다.
보안상의 문제가 될 것 같습니다. 이것이 올바른 동작입니까? 그렇다면 이러한 통신을 TLS 등으로 래핑해야 합니까?
답변1
GSSAPI는 기본 프로토콜을 원하는 만큼 사용할 수 있습니다. 그러나 당신 말이 맞습니다. 동일한 메시지를 반복하면 재생 공격이 발생할 수 있습니다.
GSSAPI를 통해 어떤 저수준 프로토콜이 사용되었는지 알고 계십니까?