This article is an automated machine-translation of an article in English. We know the translation isn't perfect, but we hope it's useful for people who don't read English.

행운의 열 셋 를 공격 Boffins '균열'HTTPS 암호화

Filed Under: Featured, Privacy, Web Browsers

영국 cryptographers 한 쌍의가 TLS에 목표를 맡아도 온라인 거래의 보안이 주목을 다시합니다.

TLS 또는 전송 계층 보안은 SSL을 후계자, 또는 보안 소켓 레이어입니다.

그건 너무, HTTPS (그게 당신이 안전한 웹 사이트에서 볼 수있는 자물쇠입니다)로 S를 게재 시스템, 그리고 많은 다른 프로토콜에 대한 보안을 제공합니다.

2011의 악명 높은처럼 짐승의 공격 :이 멋져요 이름이 행운의 열 셋을 .

이름은 암호화 TLS 패킷은 TLS가 의존하는 암호화 계산 중 하나를 소비해야하기 때문입니다 열세 헤더 바이트를 가지고 있다는 사실에서 비롯됩니다.

→ 종이의 이름은 약간 건방진이다 - 저자는 wryly 12 바이트 헤더가 훨씬 더 효율적으로 공격을해야 보이는데 "는, 어떤 의미에서, 13 운이지만, 열두이 낫겠했을거야"참고.

여기 당신에게 cryptographers를 움직이는, 그리고 어떻게 신중하게 - 인위적인 혼란 나오기 순서를 추출하기 위해 관리를 만드는 몇 가지 아이디어를 제공하려면이 모든 시작 방법은 다음과 같습니다.

종이의 저자는 것을 대부분의 TLS 세션의 암호화 된 패킷 :

  • 내용을 비밀로하기 위해 CBC 모드에서 일반적으로 안전한 블록 암호, AES와 암호화됩니다.
  • 오류 및 위조를 방지하기 위해 일반적으로 강력한 암호화 체크섬, HMAC-SHA1을 포함합니다.

당신은지만 강한 암호화 원형를 사용하여 필연적으로 보안을 강화한다고 가정 수 있지만, cryptographers 그렇게 생각하지 않습니다.

Nadhem AlFardan과 로얄 홀로 웨이 런던 대학교의 일부 정보 보안 연구 유명한 센터의 케네스 패터슨은 때문에 그들이 TLS에서 결합하는 방법 중 하나를 서로 다른 두 가지 보안 기능을 사용할 수 있습니다 깨달았습니다.

크게 oversimplified, 공격은 다음과 같은 세부 사항에 의존 :

  • AES 블록 암호는 한 번에 16 바이트를 암호화합니다. 그 때까지 16 바이트의 배수가 아닌 데이터 패킷이 긴 알아 패드를 물렸다해야합니다.
  • TLS 패킷 체크섬은 원시 데이터 뒤에 필요한 패딩 전에 암호화 레이어 내부에 저장됩니다.

TLS 서버가 HMAC-SHA1 checksummed 및 AES-CBS 암호화 패킷을 수신하면, 이렇게,이를 확인해야합니다 :

  • 길이 16 바이트의 배수 여야 해독 수신 된 데이터입니다.
  • 해독 버퍼의 끝에있는 패딩을 식별하고,를 제거.
  • 지난 20 바이트를 (HMAC-SHA1 체크섬의 길이) 제거 및 참조를 위해 저장합니다.
  • 버퍼 (이하 패딩 및 참조 검사)에 남아있는 일의 HMAC-SHA1을 계산합니다.

계산 된 HMAC-SHA1 체크섬은 참조 체크섬과 일치하지 않는 경우, 오류 또는 위조가 발생했습니다. 서버가 오류 메시지를 다시 보내 연결을 종료합니다.

이제 MITM 있다고 상상, 또는 사람이 중간에 개입. 당신은 암호를 해독하고 다시 암호화가 과거 비행으로 패킷을하지만, 그들에게 도청을 단축, 미묘를 변경하고, 수정 된 버전에 전달할 수 있습니다. 수 없습니다

이 작업을 수행 할 때마다, 당신은 공격하는 TLS 세션을 깰 수있을 거라하지만, 당신은 지금 - 깨진 세션 안에 뭐가에 대한 정보를 누출 할 수있는 방법으로 할 수 있습니다.

그 즉시 당신에게 왕관의 보석을 제공하지 않습니다하지만 cipher 화 된 데이터 스트림에서 무엇이든을 추출 할 수 있다면, 당신은 TLS를 제공하기로 예정되어있는 암호화 고결함을 위반했습니다.

트릭은 암호화 된 패킷을 잘라야 때, 다진 오프 데이터 스트림의 끝에 일반 텍스트가 원본 데이터로 시작하는 짧은했다면 TLS 추가 한 것이라고 패딩 바이트의 정렬과 같이 표시됩니다 가능성이 있다는 것입니다 .

이 경우 TLS 서버는 그런 일이 있다고 생각하는 것은 패딩이 해제 제거가 패킷 체크섬이라고 생각 추출 후 체크섬이 일치하는지 확인합니다.

체크섬은 물론, 일치하지 않지만, 그건 상관 없어.

당신이 관심은 그 패킷이 잘못 알게되는데 TLS 서버가 오류 메시지와 함께 답장 데 걸리는 시간입니다.

때문에 HMAC-SHA1 작품, 그건 모든 추가 64 바이트 청크에 대한 데이터의 첫 번째 55 바이트 플러스 추가 시간 단위 (또는 끝 부분에 그 부분을) 체크섬하기 위해 CPU 시간을 네 개의 단위를 소요하는 방식의.

저자는이 두 바이트 암호화 된 패킷의 부분으로 조정하고 그것을 버리는으로, 그들은 서버가 잘못 메시지가 패딩을 벗겨하고 어떤 건지 checksumming, 패드를 물렸다 한 생각 끝낼 것을 약 65,000에서의 기회가 있다는 것을 깨달았 떠났다.

TLS 서버 코드가 신중에 관계없이 해독 패킷의 내용 같은 시간을 소비 할 수 있도록 설계되었습니다 않는 한,이 untweaked 패킷을 처리 시간을 네 fifths을 것입니다.

변화를 패킷 데이터가 아닌 56 이상 55 바이트 이하 checksumming으로 서버를 속했기 때문에 이러한 문제가 발생할 것입니다.

연구자 안정적으로 서버의 오류 응답이 돌아 왔을 얼마나 빠른 타이밍으로이 단축를 측정 할 수 있다면, 다음 조정에 따라, 그들은 이제 원래 패킷의 2 바이트를 계산 수 있습니다.

체계적으로 가능한 모든 2 바이트 고치면 되겠 어 (2 16 또는 이들의 65536) 노력하고 완벽한 타이밍 측정을 가정하면, 그들은 암호화 된 바이트의 두를 추출 할 수 있도록 보장 수 있습니다.

그 첫 두 바이트가 해킹되면 추가로 14 바이트는 2 개의 16 + 14x2 8 총 '조정 비용'에 대한 각 바이트의 256 가능한 번만 더 개조하면 되겠를 시도하여 한 번에 한 바이트를 해킹 할 수 있습니다.

용어, 이론하지 않으면 그것은, 그로테스크 간단한 운영에 럭키 열 셋 공격입니다.

완벽한 타이밍 측정이 불가능하기 때문에이 대단히 실용적인 공격, 적어도이 아냐 :

  • 각 시도에 띄는 시간이 소요 모두가 될 수있는, 종료하려면 TLS 세션의 원인을 조정할.
  • 각각의 변화 세션은 철저하게 수행 할 수있는 조정에 대해 동일한 패킷 장소에서 동일한 일반 텍스트가 필요합니다.
  • 저자는 신뢰할 수있는 결과에 대한 충분한 통계적으로 - 중요한 타이밍 데이터를 생성하기 위해 2 16 고치면 되겠 어 (그 팔백만 쓸모 TLS 세션입니다!)의 철저한 세트 2 7 반복이 필요했습니다.

아, 그리고 그 같은 전용 LAN에 TLS 클라이언트, 서버 및 MITM 컴퓨터, 이상적인 네트워크 상황이었다.

위에서 언급 한 바와 같이,이 TLS를 제공하기로 예정되어있는 암호화 신성한의 일부를 구멍, 때문에 그럼에도 불구하고, 그것은 중요한 결과입니다.

미래 프로토콜의 디자이너가 명심 수도 솔루션 및 mitigations은 다음과 같습니다

  • 이 방법은 중복 계산을 수행하는 경우에도이, 잴 수있을 정도로 빠르게 또는 오류가 발생했을 때 느린되지 않도록 코드를 디자인하고 작성합니다.
  • 일반 텍스트 패딩의 필요성을 방지하기 위해, 스트림 암호가 아닌 블록 암호를 사용하십시오.
  • 체크섬은 암호화 후 데이터 대신 체크섬을 암호화보다. 이 checksummed 할 데이터의 양이 일반 텍스트에 의존하지 않습니다 보장합니다.
  • 같은 인증 암호화 알고리즘을 사용합니다 AES-GCM checksumming과 암호화 결합.

흥미롭게도, 위의 마지막 나열된 완화는 (인증 암호화를 사용)가 이미 나와 TLS 버전 1.2에서 지원되는 거의 5 년 전 .

슬프게도, 럭키 열 셋 포인트에서의 저자로, TLS 1.2은 여전히​​ "아직 널리 구현에서 지원되지 않습니다"입니다.

에 따르면 SSL-펄스 프로젝트, 웹 사이트의 이하 12 %가 TLS 1.2을 지원 2013년 1월에 조사하고, 대부분의 브라우저 (윈도우 7 IE와 주목할만한 예외되는 8)하거나, 그것을 포함되어 있지 않습니다.

아마 시간이 앞으로 이동!

You might like

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

About the author

Paul Ducklin is a passionate security proselytiser. (That's like an evangelist, but more so!) He lives and breathes computer security, and would be happy for you to do so, too. Paul won the inaugural AusCERT Director's Award for Individual Excellence in Computer Security in 2009. Follow him on Twitter: @duckblog