E2E 암호화란?

  • End to End Encrpytion의 약자로, 연결된 양 종단기기만 서로 평문을 볼 수 있도록 하고 그 사이에는 복호화 할 수 없는 암호문만 전달하는 것이다
  • 권한 있는 사용자만이 읽을 수 있도록 데이터를 조합하는 암호화 키를 사용한다. 엔드투엔드 암호화 역시 이와 같은 프로세스를 사용한다. 그러나, 엔드투엔드 암호화는 엔드포인트 간 통신에 보안을 적용하여 이 프로세스를 더 강화한다.
  • 엔드투엔드 암호화의 경우 암호 해독 키를 가진 사람만이 암호화 데이터를 볼 수 있습니다. 다시 말해, 의도된 열람자만이 액세스 권한과 읽기 및 수정 능력을 가져야 하는 경우 E2E는 제3자를 포함한 의도되지 않은 사용자가 데이터를 읽거나 수정하지 못하도록 차단합니다.

 

E2E 암호화의 중요성

  • 엔드투엔드 암호화는 사이버 공격으로부터 데이터를 보호하는 데 도움을 줄 수 있습니다. 
  • 엔드투엔드 암호화는 암호화된 메시지 전송 이상의 기능을 제공합니다. 엔드투엔드 암호화는 저장된 데이터에 사용자 액세스 권한을 부여하기 위한 통제 장치를 지원할 수 있습니다. 

 

E2E 작동 원리

  • 엔드투엔드 암호화는 정보를 암호문이라는 읽기가 불가능한 형식으로 변환하여 보호하는 방법인 암호작성술에서 시작됩니다. 비밀 키를 가진 사용자만이 이러한 메시지를 평문으로 해독할 수 있습니다.
  • E2EE를 사용하면 송신자 또는 작성자는 데이터를 암호화하고 의도된 수신자 또는 열람자만이 이를 해독할 수 있습니다.
  • 비대칭 또는 공개 키 암호작성술은 두 개의 별도의 암호 키를 사용하여 데이터를 암호화 및 해독합니다. 공개 키는 메시지를 암호화하여 공개 키 소유자에게 보내는 데 사용됩니다.
  • 그 다음, 이 메시지는 암호 해독 키라고도 부르는 해당 비공개 키를 사용할 경우에만 해독할 수 있습니다. 예를 들면, TLS(Transport Layer Security) 암호화 프로토콜은 제3자가 이동 중 메시지를 가로채지 못하도록 차단합니다.

 

E2E 암호화 우회 방법

1) js 파일 분석

  • E2E 암호화를하여 파라미터를 보내는 페이지가 존재할 경우 E2E암호화를 하는 js파일을 먼저 분석합니다.
  • 전달되는 데이터가 암호화 되는 곳을 찾아 암호화되기전에 prompt를 이용해 파라미터를 확인할 수 있습니다.

ex) id.value = prompt('ID value', id.value);

 

2) 편법

  • E2E 암호화가 엄청 오래된 암호화 기법은 아니기때문에 웹사이트마다 적용할 때 호환성 문제가 발생할 수 있습니다. 이를 이용한 우회 기법입니다.
  • 각 페이지마다 E2E암호화를 사용하는 페이지가 존재하고 그렇지 않은 페이지가 존재하는데 js파일을 먼저 분석해보면 if문 같은 방식으로 E2E암호화를 적용하거나 적용하지 않는 구문이 있습니다.

ex) if(enctp==1){

      복호화

} else{

      그냥처리

}

 

  • E2E암호화하는 페이지에 enctp=0으로 수정하여 요청을 보내면 E2E 암호화를 사용하지 않고 파라미터를 전송하여 확인할 수 있습니다.

'Web Hacking' 카테고리의 다른 글

XXE Injection  (0) 2023.03.03
SSRF  (0) 2023.02.24
웹 모의 해킹 취약점 항목 분석(#1)  (0) 2023.02.11
불충분한 인증/인가 취약점  (0) 2023.01.17
파일 업로드 취약점  (0) 2023.01.04

+ Recent posts