HTTPS 프로토콜이란? HTTP 프로토콜은 단순 텍스트 정보를 평문 그대로 네트워크 상에 노출시키기 때문에 보안에 취약하다. 반면, HTTPS 프로토콜은 공개 키 암호화 방식을 통해 텍스트 정보를 암호화하여 전송하기 때문에 네트워크 상에서 데이터가 탈취되더라도 해당 데이터가 뭘 의미하는지 해커는 알지 못한다. 공개 키 암호화 ( = 비대칭키 암호화 ) 암호화와 복호화에 같은 키를 사용하는 대칭키 암호화 방식과는 달리, 암호화와 복호화에 사용하는 키가 서로 다른 비대칭키 암호화 방식이다. 지금의 디지털 서명은 대부분 이 공개 키 암호화 방식을 사용한다. HTTPS 프로토콜의 통신 흐름 먼저, HTTPS를 적용하고 싶은 웹 서비스 기업(=A 기업이라고 하자)이 인증서를 획득하는 과정은 다음과 같다. A 기..
최근, 아이디와 비밀번호 입력없이 구글이나 페이스북과 같은 대형 플랫폼을 통해서 로그인하는 서비스들을 많이 볼 수 있다. 사용자 인증을 타 서비스에 위임하기 위해서 사용되는 OpenID Connect에 대해서 알아보자. OpenID Connect란? 예전에는 사용자 데이터를 서비스에서 직접 관리하는 경우가 많았지만, 개인정보 유출과 관련된 보안 사고에 대해 처벌 수위가 높아짐에 따라, 지금은 사용자 데이터를 자체적으로 보관하는게 많이 부담스러워졌다. 이러한 이유와 더불어 사용자 인증을 직접 구현할 때 드는 개발 비용과 유지보수 비용을 줄이기 위해 구글, 페이스북과 같은 대형 플랫폼을 통한 로그인을 사용하는 서비스들이 많아지는 추세다. OpenID Connect(OIDC)는 대규모 플랫폼에서 사용자 인증 ..
최근의 인터넷 서비스는 그 자체가 SaaS(Software as a Service)의 형태이다. 필요한 기능만 서비스로 제공한다는 말이다. 예를 들어, 페이스북의 친구 목록 보기와 같은 기능을 이용하기 위해서 페이스북에 직접적으로 로그인할 필요없이 별도의 인증 절차만 거치면 타 서비스에서 페이스북 친구 목록 보기와 같은 기능을 사용할 수 있게 된다. 이때 이러한 인증 절차를 위해 사용되는게 바로 OAuth다. OAuth란? OAuth는 인증을 위한 표준 프로토콜이다. 사용자가 구글, 페이스북 같은 인터넷 서비스의 기능을 타 애플리케이션에서도 사용할 수 있게 한다. OAuth가 표준으로 채택되기 전에는 API 접근 위임에 대한 표준안이 없었는데, IETF OAuth 워킹그룹에 의해 2010년 RFC5849..
URL (Uniform Resource Locator) 네트워크 상에서 자원이 어디 있는지를 알려주기 위한 규약이다. 흔히 웹 사이트 주소로 알고 있지만, URL은 웹 사이트 주소뿐만 아니라 네트워크 상의 자원을 모두 나타낼 수 있다. URL의 형식은 다음과 같다. 가장 앞에 자원에 접근하기 위한 프로토콜명을 적는다. (telnet, ftp, http, ...) 프로토콜명 다음에 구분자 콜론(:)을 적는다. 만약 IP(또는 도메인명) 정보가 필요한 프로토콜이라면 콜론(:) 다음에 '//'를 적는다. 프로토콜명 구분자인 콜론(:) 혹은 '//' 다음에는 프로토콜마다 특화된 정보를 적는다. 예1) http://www.pangtrue.com/a.gif 예2) ftp://seung7642:password@192..
REST API란? Representation State Transfer (표현 상태 전이, REST) REST API는 세 가지로 구성되어 있다. 자원(Resource) : URI를 이용해 자원을 나타낸다. 예를 들어, '사용자'라는 자원이라면 http://pangtrue/users/와 같이 나타낼 수 있다. 행위(Verb) : HTTP METHOD를 이용한다. 예를 들어, '생성한다'라는 행위라면 HTTP POST를 사용한다. 표현(Representation) : JSON 형식으로 나타낸다. 예를 들어, '이름이 ted인 사용자'라면 다음과 같이 표현한다. { "users" { "name": "ted" } } REST의 특징 REST는 6가지의 특징을 가진다. Uniform Uniform Interf..