2010-11-25 6 views
1

안녕하세요, C++로 작성된 서버에서 TCP와 UDP를 통해 클라이언트에서 서버로 메시지를 보냅니다. 나는 무엇이 최선인지 궁금해서 이메일, 패스워드, IP 등의 로그인 데이터를 보내고 싶다면 예를 들어 보낼 방법을 확보해야한다. 이 데이터가 char *에 저장되는 동안 메시지에서 메시지를 보내는 가장 좋은 방법은 서버의 데이터를 읽는 것입니다.텍스트 (char *)에서 데이터를 가져 오는 가장 좋은 방법

감사합니다.

답변

0

다른 포스터에서 말한 것처럼 C++에 대해서는 걱정하지 마십시오. SSL 또는 TLS를 사용하십시오. 즉, 서버용 인증서를 취득해야하며 상업용 인증서를 받으면 50 달러에서 1500 달러 사이의 비용이들 수도 있고 인트라넷 인증 기관에서 직접 인증서를 만들 수도 있습니다.

이 측정 값은 통신을 암호화하고 클라이언트가 사기꾼이 아닌 실제 서버와 실제로 "대화"하고 있는지 확인합니다. 그러나 클라이언트를 인증해야하는 경우 두 번째 인증서 (정확한 경우 클라이언트 컴퓨터 당 하나씩)가 필요합니다. 클라이언트 요구 사항이 너무 무거울 경우 HMAC를 사용하여 승인 된 클라이언트를 사기꾼으로부터 결정하는 것을 고려하십시오.

+0

나는 정확한 설명을하지 못했을 까봐 두렵다. 나는 C++에 저장된 문자열을 C++에 저장했다.이 문자열은 세부 사항을 담고 있어야한다. 텍스트 (암호화 될 것입니다, 가정 해 봅시다, 간단한 텍스트), 전자 메일, 암호 및 IP를 한 문자열의 분리 된 사용자 이름, 다른 문자열의 암호 및 다른 문자열의 IP로 포함하는 문자열을 ouytpot하고 싶습니다. 그렇게하는 가장 좋은 방법은 무엇입니까? 감사! –

+0

사실, 자체 서명 인증서를 무료로 사용할 수 있습니다. – vy32

4

이것은 C++과는 아무런 관련이 없습니다. 정보 보안에 관한 일반적인 질문을하고 있습니다. 중요한 정보 (전자 메일 주소, 암호 및 IP)가 포함 된 TCP 또는 UDP를 통해 정보를 보내려고합니다. 이를 위해 암호화를 사용해야합니다.

암호화는 자신이하는 일에 대해 많이 알지 못하면 자신의 프로토콜을 굴리지 말아야하는 복잡한 영역입니다. 대신, UDP를 피하는 것이 좋습니다 (UDP를 통해 암호화를 제대로 수행하는 것이 매우 어렵 기 때문에). 단순히 TCP를 통한 SSL을 사용하십시오.

C++에서이를 수행하려면 OpenSSL 소켓 라이브러리를 사용할 수 있습니다. 클라이언트와 서버 모두 라이브러리와 링크됩니다. 약간의 도움이 필요하면 클라이언트 & 서버의 일반 텍스트 소켓을 사용할 수 있지만 SSL TCP 연결 안에 암호화되지 않은 데이터를 래핑하는 명령 줄 도구 인 sslwrap을 사용하여 디버깅 할 수 있습니다.

+0

나는 나 자신을 올바르게 설명하지 않은 것이 두렵다 ... 나는 C++에 저장된 문자열을 C++ 어플리케이션에 저장하고있다.이 문자열에는 세부 사항이 들어 있어야한다. 그냥 텍스트 (그것은 암호화 될 것입니다, 그것을 가정하자, 그냥 간단한 텍스트), 나는 이메일, 비밀 번호 및 IP를 한 문자열에서 분리 된 사용자 이름, 다른 문자열의 암호 및 다른 문자열의 IP로 들어있는 문자열을 ouytpot하고 싶습니다. 그렇게하는 가장 좋은 방법은 무엇입니까? 감사! –

+0

당신은 자신을 훌륭하게 설명했습니다. 당신이 C++ 서버를 사용하고 있다는 것은 무분별한 것입니다. TCP 프로토콜을 만들거나 XMLRPC 또는 REST를 사용하여 SSL을 통해 실행하십시오. – vy32

+0

보안 부분 이후가 아니며 문자열을 세 개의 필드로 나누는 것에 대해 질문하는 중입니까? 그렇다면 "암호화"로 질문에 태그를 추가 한 이유는 무엇입니까? – dajames

관련 문제