2009-08-28 3 views
3

모든 것이 가능하지만 네트워크 패킷 분석기 또는 이와 동등한 도구로 연결 문자열을 누군가 도용하는 것이 얼마나 쉬운 지 궁금합니다.네트워크 패킷 분석기로 연결 문자열 하이재킹

winforms 응용 프로그램은 MSSQL 서버에서 직접 데이터를 가져옵니다. (추가 보호를 위해 중간에 웹 서비스가 없다고 가정)

1) 분석기를 가진 사람이 연결 문자열을 일반 텍스트로 읽을 수 있습니까?

2) 연결 문자열을 SSL 인증서로 보호 할 수 있습니까?

3) SSL 인증서가 SQL 서버에 설치되어 있어야합니까?

4) 이미 SSL 인증서를 보유하고 있습니다. http SQL 서버용으로도 설치할 수 있습니까?

5) 반환 데이터의 속도는 SSL 때문에 줄어들 것입니까?

미리 감사드립니다.

답변

3
  1. 예. 패킷 스니퍼 (이후 "스니퍼")와 동일한 네트워크에 있고 연결 문자열이 일반 텍스트로되어 있으면 쉽습니다. 허브가 아닌 스위치를 사용해도이 작업을 수행하는 것이 더 어려워지는 것은 아닙니다.
  2. 여전히 man-in-the-middle 공격을 사용할 수 있습니다. 채널 바인딩은 클라이언트가 수신 한 인증서를 면밀히 검사하면서이를 감지하고 방지하도록 설계되었습니다. 클라이언트 인증서가이를 강화하는 데 도움이됩니다.
  3. 호스트 이름이 정확하게 작동해야하는 SQL 서버와 일치하는 한 그렇지 않으면 새 인증서가 필요합니다.
  4. 아마 속도가 빨라지지만별로 그렇지 않을 것입니다. 그것을 벤치마킹하고 침체가 여전히 수용 가능한 성능을 제공하는지 확인하십시오. 어느 정도의 신뢰성으로 영향을 예측할 수있는 다른 방법은 없습니다.

다른 하나 : 연결 문자열이 암호화되어 있으면 서버의 위치를 ​​찾기 위해 패킷을 분석 할 수 있으며 앞뒤로 전달되는 데이터가 암호화되지 않은 경우에도 읽을 수 있지만 ' SQL Server에 연결하지 마십시오. 나는 또한 잠재적으로 그것을 수정할 수 있습니다. 따라서 SQL 연결이 인터넷 상에 존재하는 것이 일반적이며, 같은 서버에있는 DB에 연결하거나, 로컬 네트워크를 통해 연결하거나, VPN을 통해 연결하거나, 전체 데이터 스트림을 암호화하는 등의 이유 때문에 일반적이지 않습니다.

+0

관련 4. 인증서 및 개인 키를 내 보내서 다른 서버에서 사용할 수 있습니까? – OrElse

+1

인증서는 연결된 호스트를 기반으로 서명되므로 호스트 이름이 동일하면 괜찮을 것입니다. 일반적으로 컴퓨터를 교체하면 인증서가 생성됩니다. 다른 서버에 다른 호스트 이름이 있으면 인증서를 계속 사용할 수 있지만 이름이 일치하지 않는다는 연결을 시도 할 때마다 클라이언트에 오류가 발생합니다. 이 질문에 대한 대답이 있습니까? –

1

암호화되어 있지 않으면 읽을 수 있습니다. 예. SQL Native Client는 종종 비 SSL 기반 암호화 (lots of factors에 따라 다름)를 수행 할 수 있지만 SSL을 사용하여 암호화 할 수도 있습니다. technet을 참조하십시오. 그리고 네, 약간 느려집니다. 인증서 요구 사항은 모두 기술 문서에 나와 있습니다. 하지만 db 서버를 인터넷에 노출시키지 마십시오.