2011-09-16 6 views
2

우리는 우리의 임베디드 플랫폼에 HTTP RESTful 인터페이스를 적용하고 있습니다. 하드웨어가 SSL을 지원하기에는 너무 제한적이지만 다른 용도로는 AES 암호화를 사용합니다.표준 SSL이 아닌 HTTP 암호화

데이터를 암호화하기 위해 공유 키가있는 AES를 사용하려고합니다. 적어도 HTTP를 통해 암호화하는 다소 표준적인 방법이 있습니까?

+2

SSL은 어떤면에서 제한이 있습니까? –

+0

여기 좋은 응답으로 비슷한 질문을 찾았습니다. http://stackoverflow.com/questions/5246831/lightweight-encryption-key-exchange-protocol –

답변

4

HTTP 암호화의 표준 방법은 SSL (또는 그 후속 요즘 TLS는()이 다음 HTTPS로 알려져있다) .

GregS가 의견에서 묻는 것처럼, 플랫폼이 SSL을 위해 어떤 방식으로 제한되어 있지만 AES는 허용합니까? modular exponentiation (RSA, DSA, Diffie-Hellman에서 사용됨)을 수행하는 데 충분한 컴퓨팅 성능/메모리가 부족합니까?

그런 다음 TLS의 사전 공유 키 버전을 사용할 수 있습니다. RFC 4279은 미리 공유 된 키 인증을 사용하는 암호 모음을 정의합니다. 여기서 TLS_PSK_WITH_AES_128_CBC_SHA은 AES 및 SHA-1 만 필요하고, 모듈러 지수화는 필요없는 것처럼 보입니다.

공격자가 비밀을 얻을 수있는 위험이있는 경우 (예 : 장치 크래킹과 같은) 물론 이전에 등록 된 모든 연결을 읽을 수 있으므로이 옵션을 사용하면 안됩니다 (Diffie-Hellman 이는 각 세션에 대해 새로운 세션 키를 제공함).

+0

@Craig : 편집 해 주셔서 감사합니다. 피곤할 때 대답하지 말아야하는 것처럼 보입니다. –

+0

귀하의 가정은 정확합니다. 모듈화 지수 및 난수 생성이 문제입니다. 당신이 지적한 RFC는 정확히 내가 필요로하는 것이거나, 적어도 그것이 올바른 방향으로 향하게합니다. –

+0

초기화 벡터에 여전히 난수가 필요합니다. AES와 같은 블록 암호로부터 PRNG를 만들 수 있습니다. (예를 들어 [ANSI X9.31] (http://crypto.stackexchange.com/q/634/58)을 참조하십시오.) –

관련 문제