아키텍쳐 /Security & IDM 10

서버와 APNS(애플푸쉬서버)와의 보안 메커니즘

서버와 APNS(애플푸쉬서버)와의 보안 메커니즘 애플 iOS 디바이스로 서버가 푸쉬를 보내고자 할때는, APNS 서비스를 거쳐야 한다.푸쉬 메시지를 보내고자 하는 Provider 서버가 APNS로 푸쉬 요청을 보내면, APNS 서버가 디바이스로 푸쉬를 보내는 구조이다.이때 APNS 서버와 Provider 서버를 어떻게 신뢰하는 지를 알아보자.APNS 서버 입장에서는 Provider 서버가 해커가 아냐? 진짜 Provider 맞아? 하는 의문을 가질 수 있고, Provider 서버도 APNS 서버가 진짜 APNS 서버가 맞는지를 확인할 수 있어야 한다.이를 양방향 SSL(TLS:Transport Level Security)를 이용해서 해결 한다.먼저 SSL 메커니즘에 대해서 알아보자 SSL 을 비대칭 (P..

OAuth 2.0 노트

OAuth 용어 정리 Resource Owner (사용자) Authorization Server (인증서버 Resource Server (REST API) OAuth 2.0 grant flow Authorization code grant flow 가장 많이 권장되고, 사용자와 앱을 둘다 인증함. 앱 인증을 위해서 call back URL(앱의)를 등록해서 call back을 통해서 앱을 인증함 Implicit grant flow 자바스크립트 애플리케이션에서 많이 사용됨. 스크립트 단에서는 credential 등이 노출 될 수 있으니, 주로 Read only 용도로 많이 사용함. accessToken이 노출될것을 전제로 함. 모바일 애플리케이션도 많이 사용하는걸로 나오네?? Ÿ Used in public ..

OAuth 2.0 based API 인증 메모

* Authroization Code- Redirect base / 서버 백엔드가 있는 경우 사용 - 파트너사가 API를 사용하는 시나리오에 유리* Implicit - Rediect base / 특히 Java script 처럼 서버 백엔드가 없는 경우 유용. Read Only 등에 사용* Resource Owner Password Credential - Client Id, Secret을 앱에 넣은 후, Client Id/Password로 인증하여, access token을 발급 받는 방식으로, Authorization Server와 Resource Owner가 같은 서비스인 경우 유용함 (자사 API 제공에 유용)* Client Crendetial- 유용한 Link서버 구현체 : http://oauth...

Security-애플리케이션 보안 1. 인증 방식 및 비밀번호 암호화

Authentication (인증 방식)일반적인 id,passwd 기반의 인증 방식사용자 정보와 사용자 credential (id/passwd)를 데이타베이스에 저장해놓고, 사용자로 부터 id/passwd를 입력받아, 이를 비교하여 인증하는 방식.일반적은 중소 규모 사이트 개발에는 RDBMS를 사용하는 것이 일반적이며,조직 구조, 여러가지 Role, 권한등을 저장할때는 LDAP등을 사용한다. 근래에는 대규모 사용자를 저장하기 위해서 Cassandra와 같은 NoSQL을 저장하는 경우도 많다.이러한 저장소에 비밀 번호를 저장할때 평문으로 저장하는것 보다, 암호화된 형태로 저장하는 것이 좋다. 그래서 MD5나 SHA1같은 Hash로 변경해서 저장한다. 이렇게 하면, Hacker에 의해서 데이타 베이스가 탈취..

Federation과 SSO 에 대한 주요 표준 (메모)

Federation 기술로는 크게 1. WS-Security가 있으며, 상세 스펙으로는 WS-Trust 는 STS 기반의 초기 인증과 토큰 발행WS-Federation은 다른 리소스의 액세스에 대한 토큰 사용을 정의을 정의 2. 반대 진영으로는 SAML 기반의 SSO가 있음 3. 그리고 B2C 진영에는 OAuth도 사용됨 주로 현재 대세는SSO는 SAML을 사용하고,API를 통한 특정 resource에 대한 접근은 OAuth를 사용한다. 구글을 사례SSO 구현 : http://support.google.com/a/bin/answer.py?hl=ko&answer=60224API 접근 : https://support.google.com/a/bin/answer.py?hl=ko&answer=61017&topic..

Claim based Authentication (CBA)

CBA Claim based authentication ADFS 2.0 등 MS 진영에서 주로 사용함- Claim : Subject를 identitify 할 수 있는 name, group 등 (쉽게 말해서 attribute)- Token : Claim을 transpport하기 위한 packet ( 1개 이사으이 claim이 packaging되며, digitial signature로 packaging됨) ex) SAML packaging도 하나의 Token의 예- Issuer: Token을 만드는 대상 (Idp가 주로 Issuer가 되는 경우가 많음)- Secure Token Server (STS) : The central issuing authority. (In most case STS works as ..

SAML 기반의 web sso 원리 정리

Single Sign On을 지원하기 위한 프로토콜이나 방법은 여러가지가 있다.그중 대표적인 방법으로 CAS,SAML,OAuth등이 있는데, CAS는 쿠기를 기반으로 하기 때문에 같은 도메인명 (xxx.domain.com yyy.domain.com) 사이에서만 SSO가 가능하다. (그만큼 구현도 쉽다.) OAuth는 현재 B2C쪽에 많이 사용되는 프로토콜이고, 그리고 마지막으로 SAML 있다. cross domain간 SSO 구현이 가능하며, OAuth 만큼이나 많이 사용되고 있다. SAML은 어떤 구현체가 아니라 SSO등(꼭 SSO만은 아님)을 구현하기 위한 XML 스펙이다.HTTP GET, POST 또는 SOAP 웹서비스 등 여러가지 방법으로 구현될 수 있으며, 여기서는 HTTP Post를 이용한 S..