WebSockets-보안

프로토콜은 보안상의 이유로 설계되어야합니다. WebSocket은 완전히 새로운 프로토콜이며 모든 웹 브라우저가 올바르게 구현하는 것은 아닙니다. 예를 들어, 사양은 그 반대를 암시하지만 일부는 여전히 HTTP와 WS의 혼합을 허용합니다. 이 장에서는 사용자가 알아야 할 몇 가지 일반적인 보안 공격에 대해 설명합니다.

서비스 거부

서비스 거부 (DoS) 공격은 요청하는 사용자가 시스템 또는 네트워크 리소스를 사용할 수 없도록 만들려고 시도합니다. 누군가가 시간 간격이 없거나 아주 짧은 웹 서버에 무한한 수의 요청을한다고 가정합니다. 서버는 각 연결을 처리 할 수 ​​없으며 응답을 중지하거나 너무 느리게 응답합니다. 이를 서비스 거부 공격이라고 할 수 있습니다.

서비스 거부는 웹 페이지를로드 할 수도없는 최종 사용자에게 매우 실망 스럽습니다.

DoS 공격은 P2P 통신에도 적용될 수있어 P2P 네트워크의 클라이언트가 피해자 웹 서버에 동시에 연결하도록합니다.

중간에있는 남성

예제의 도움으로 이것을 이해합시다.

사람을 생각해 A 그의 친구와 채팅 중입니다 BIM 클라이언트를 통해. 어떤 제 3자가 당신이 교환 한 메시지를보고 싶어합니다. 그래서 그는 두 사람과 독립적 인 관계를 맺습니다. 그는 또한 사람에게 메시지를 보냅니다.A 그리고 그의 친구 B, 커뮤니케이션의 보이지 않는 매개체입니다. 이것은 중간자 공격으로 알려져 있습니다.

침입자가 패키지를 직접 읽을 수 있기 때문에 중간자 유형의 공격은 암호화되지 않은 연결에 더 쉽습니다. 연결이 암호화되면 공격자가 정보를 해독해야하므로 너무 어려울 수 있습니다.

기술적 측면에서 공격자는 공개 키 메시지 교환을 가로 채서 요청 된 키를 자신의 키로 바꾸면서 메시지를 보냅니다. 분명히 공격자의 작업을 어렵게 만드는 확실한 전략은 WebSocket과 함께 SSH를 사용하는 것입니다.

대부분 중요한 데이터를 교환 할 때 암호화되지 않은 WS 대신 WSS 보안 연결을 선호합니다.

XSS

크로스 사이트 스크립팅 (XSS)은 공격자가 웹 페이지 또는 애플리케이션에 클라이언트 측 스크립트를 삽입 할 수 있도록하는 취약성입니다. 공격자는 애플리케이션 허브를 사용하여 HTML 또는 Javascript 코드를 전송하고이 코드가 클라이언트의 컴퓨터에서 실행되도록 할 수 있습니다.

WebSocket 기본 방어 메커니즘

기본적으로 WebSocket 프로토콜은 안전하도록 설계되었습니다. 현실 세계에서 사용자는 잘못된 브라우저 구현으로 인해 발생할 수있는 다양한 문제에 직면 할 수 있습니다. 시간이 지남에 따라 브라우저 공급 업체는 모든 문제를 즉시 수정합니다.

SSH (또는 TLS)를 통한 보안 WebSocket 연결이 사용되는 경우 추가 보안 계층이 추가됩니다.

WebSocket 세계에서 주요 관심사는 보안 연결의 성능입니다. 여전히 추가 TLS 계층이 상단에 있지만 프로토콜 자체에는 이러한 종류의 사용에 대한 최적화가 포함되어 있으며 또한 WSS는 프록시를 통해 더 매끄럽게 작동합니다.

클라이언트-서버 마스킹

WebSocket 서버와 WebSocket 클라이언트간에 전송되는 모든 메시지에는 마스킹 키라는 이름의 특정 키가 포함되어있어 모든 WebSocket 호환 중개자가 메시지를 마스크 해제하고 검사 할 수 있습니다. 중개자가 WebSocket과 호환되지 않는 경우 메시지에 영향을 줄 수 없습니다. WebSocket 프로토콜을 구현하는 브라우저는 마스킹을 처리합니다.

보안 도구 상자

마지막으로 WebSocket 클라이언트와 서버 간의 정보 흐름을 조사하고 교환 된 데이터를 분석하고 가능한 위험을 식별하는 데 유용한 도구를 제공 할 수 있습니다.

브라우저 개발자 도구

Chrome, Firefox 및 Opera는 개발자 지원 측면에서 훌륭한 브라우저입니다. 기본 제공 도구는 클라이언트 측 상호 작용 및 리소스의 거의 모든 측면을 결정하는 데 도움이됩니다. 보안 목적으로 큰 역할을합니다.