2017-12-29 13 views
2

으로 원시 SSL 데이터를 디코딩 :내가 디코딩과 미래, 내가 예하여 설명하는 경우가 더 좋을 것이다 생각에 뭔가 증명하기 위해 원시 SSL/TLS 데이터를 저장하고자하는 사용 및 증거

을 1) SSL을 통해 액세스 할 수 있고 유용한 데이터를 제공하는 원격 REST 엔드 포인트가 있습니다. 이 엔드 포인트는 제 3 자에 의해 제어되며 그 제어 권한이 없습니다.

2) 나는 또한 내가이 엔드 포인트의 SSL 인증서를 저장)이 엔드 포인트에 대한 GET 요청을 발행하고 다른 파일

3에서 하나 개의 파일 응답의 원시 SSL 트래픽 다음 디코딩 된 SSL 트래픽을 저장 별도의 파일에 (이 작업을 한 번만 수행해야 할 것 같아요)

위의 단계에서 모든 데이터가있을 때 나는 올바르게 이해하고 다른 제 3자가 증거를 요청할 때 과거의 어떤 시점에서 원격 서버에 특정 데이터가있었습니다.

1) Pres 인증서를 내가 저장했는지 확인하십시오 (3 단계). 이 인증서는 잘 알려진 기관이 서명되어 있기 때문에 내가) 그것을

2를 위조는

3) 위의 인증서를 사용하여 디코딩 할 수있는 방법과 함께 RAW SSL 데이터로 제시 할 수 있음을 거의 제로 기회가있다 디코딩 된 REST 응답 헤더에는 원격 서버 시간도 있어야합니다.

따라서 내가 잘못 생각하지 않는다면, 원격 서버 자체가 더 이상 없다고하더라도, 원격 노드의 서버에 특정 데이터 조각이 있음을 거의 의심 할 여지없이 증명할 수 있습니다. 운영.

따라서 원시 SSL 데이터를 사용하여 과거에 원격 서버에 무엇인가 존재했음을 증명할 수 있습니다. 그리고 응답 데이터 나 헤더를 위조하면 SSL 암호화를 깨뜨릴 수 있으므로이 주장을 뒷받침 할 사람은 거의 없을 것입니다.

이러한 시나리오를 자동화하는 방법이 있습니까? 원시 SSL 데이터를 나중에 쉽게 해독 할 수있는 형식으로 기록하는 방법이 있습니까?

나는 firefox/chrome 브라우저를 사용하여 sslkeylog 파일을 사용하고 wireshark를 사용하여 트래픽을 스니핑 해 보았습니다. 실제로 작동하지만 firefox를 사용하고 SSL 키를 기록한 이후로 REST 라이브러리를 사용하여 자동화하는 방법이 있습니다. 시간이 번거로운 일이 될 수 있습니다 - 시간당 이러한 요청의 수천을 저장할 필요가있을 수 있습니다 수동으로 일을 풀 타임 직업이 될뿐만 아니라 ssskeylog 파일에 저장된 이러한 키가 실제로 일치하는 증명할 수있는 방법이 있는지 모르겠습니다 원격 서버 인증서 ...

+2

찾고있는 기술을 디지털 서명이라고합니다. 현재의 접근 방식은 적합하지도 않고 실행 가능하지도 않습니다. – EJP

답변

1

아니요, 서버에서 데이터를 전송했음을 증명할 수 없습니다. 예를 들어, TLS_RSA_WITH_AES_256_CBC_SHA256을 암호 조합으로 사용하면 서버에 연결하지 않고도 전체 TLS 세션에서 양측의 모든 데이터를 위조 할 수 있습니다. 그리고 서버 측은 위조품을 생산할 수도 있습니다. EJP에서 언급했듯이, 단조 할 수없는 유일한 데이터는 인 데이터이며입니다. RSA 암호 슈트로 서명 된 것은 인증서뿐입니다. 그러나 변경되지 않고 TLS 세션에 암호 학적으로 바인딩되지 않습니다.

다른 암호문에는 서명 된 핸드 셰이크 데이터가 포함될 수 있지만 TLS는 부인 방지를 제공하지 않으므로 실수로 인한 것으로 의심됩니다.

+0

정확하고 답변을 삭제했습니다. 가짜 응용 프로그램 데이터를 만드는 데 필요한 모든 것은 클라이언트가 알고있는 마스터 비밀입니다. 따라서 클라이언트는 모든 데이터를 가짜로 만들 수 있으며 서버가이를 보냈다고 주장 할 수 있습니다. –

+0

Stefan에게 감사드립니다. 나는 당신이 대답을 삭제하거나 내가 왜 틀렸는 지 말해주었습니다. 어떤 경우에는 제 대답을 삭제했을 것입니다. –

+0

답변 해 주셔서 감사합니다. 따라서 데이터에 서명하지 않고 TLS 만 사용하는 경우 데이터가 특정 서버에서 왔음을 증명할 수있는 방법이 없다고 가정합니다. – Pma

관련 문제