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 |