2012-02-25 5 views
3

하나의 마스터 인증 사이트와 여러 개의 슬레이브 사이트가있는 SSO 솔루션을 개발 중입니다. 나는 누군가가 슬레이브에 등록 할 때 등록을 마스터에 전달해야하므로 결과적으로 사용자를 마스터에 로그인해야합니다.도메인간에 HTTP를 통해 안전하게 데이터를 전송하십시오.

많은 방법이 있습니다. 현재 필요한 등록/로그인 데이터를 암호화하고 숨겨진 iframe에서이 데이터를 사용하여 최종 사용자를 리디렉션하여 최종 사용자가이 문제에 신경을 쓰지 않을 계획입니다. 프로세스 (이것은 T & C의 사이트에서 다룰 것입니다). 이제는 이미 SSL을 사용하고 있지만이 프로세스를 최대한 안전하게 만들고 싶습니다. 현재 마스터와 슬레이브가 모두 자신의 구성에서 보유하고있는 키를 사용하여 데이터를 암호화하고 있습니다. 열쇠가 항상 같기 때문에 누군가가 이것을 깨뜨릴 수 있을지 모르지만 마스터가 각 쿼리에 대해 노예에게서 가져와야하는 키와 함께 소금을 사용한다고 생각하고 있습니다. 필요한 HTTP 쿼리의 양.

나는 이것을 지나치게 생각하고 있는지, 너무 조심 스럽습니까 (이론상 SSL만으로 충분할 것입니다) 궁금합니다.

어떤 조언이 필요합니까? 감사합니다.

답변

2

대부분의 경우 SSL로 충분합니다. 서버의 인증서 및 개인 키가 안전하게 저장되면 인증서 해지는 정기적으로 확인되고 개인 키는 약하지 않습니다 (등등 ...), 최종 사용자의 브라우저와 서버 사이의 채널 및 마스터 및 슬레이브 사이트)는 도청으로부터 보호되어 다른 사람이 자격 증명을 볼 수 없게됩니다.

무엇 SSL, 즉, 연결할 수있는 권리 URL을 아는 사람이, (슬레이브 사이트를 가장) 인증 연결의 "클라이언트"측을 인증하고 인증/로그인 토큰 ( 는 IF를 획득한다하지 않는다 제공된 자격 증명이 올바른지 확인하십시오). 즉, 토큰이 주어지면 마스터 서버는 "권한있는"기능을 수행하는 사이트를 구분할 수 없습니다. 자격 증명 자체는 SSL에 의해 보호되며 공격자는 공격을 수행하기 위해 계속 알고 있어야합니다. (XSS 취약점이나 잘못된 쿠키 관리와 같은 사이트 자체에 다른 버그가 없다고 가정했습니다.)

그렇다면이 네트워크에서 권한 수준을 최대로 관리해야한다면 과 같이 슬레이브 사이트에서 마스터 사이트로 키 (또는 문자열 형식의 비밀)를 전달해야합니다. 세부 사항 (특정 사이트의 로그인을 금지하고 사용자의 신원에 따라 다른 사이트에 로그인하는 것을 허용하거나 일부 사이트가 귀하의 직접 통제하에 있지 않고 타협을 의심하는 경우 특정 사이트에 대한 로그인을 일시적으로 거부하는 등) 그렇다면 OAuth site을 살펴 보시기 바랍니다.이 프로토콜은 해당 목적을 위해 정확하게 설계된 프로토콜입니다 (로그인을 허용하고 마스터 서버에서 필요한 데이터를 검색하는 API 만 작성할 수 있습니다).

모든 사이트가 귀하의 직접 통제하에있는 경우에만 SSL을 사용하면 충분합니다. 두 세트의 키 (SSL 용과 추가 암호화 용)를 관리하는 부담이 너무 커지고 서버가 너무 많은 리소스를 사용하게됩니다. 브라우저와 서버간에 SSL을 사용하고 서버 간 모든 통신에 대해 네트워크 스니핑을 방지하기 위해 SSL 만 사용해야합니다.

+0

[oauth.net/code/](http://oauth.net/code/)에서 바로 사용할 수있는 라이브러리 저장소가 있으므로 처음부터 모든 것을 코딩 할 필요가 없습니다. –

+0

정보 주셔서 감사합니다. 나는 편집증 환자가되는 것을 멈추고 SSL에 대한 믿음을 가지고 있다고 생각합니다. – Naatan

+0

@ Naatan 여러분을 환영합니다. –

관련 문제