본문 바로가기

서버운영 (TA, ADMIN)

(181)
[정보보안] API 보안 체크 리스트 인증 (Authentication) Basic Auth를 사용하지 말고 표준 인증 방식을 사용하세요 (예로, JWT, OAuth 등)인증, 토큰 생성, 패스워드 저장은 직접 개발하지 말고 표준을 사용하세요. JWT (JSON Web Token)- 무작위 대입 공격을 어렵게 하기 위해 랜덤하고 복잡한 키값 (JWT Secret)을 사용하세요.- 요청 페이로드에서 알고리즘을 가져오지 마세요. 알고리즘은 백엔드에서 강제로 적용하세요. (HS256 혹은 RS256)- 토큰 만료기간(TTL, RTTL)은 되도록 짧게 설정하세요.- JWT 페이로드는 디코딩이 쉽기 때문에 민감한 데이터는 저장하지 마세요. OAuth- 허용된 URL만 받기 위해서는 서버단에서 redirect_uri가 유효한지 항상 검증하세요.- 토큰..
[서버관리] 인바운드 트래픽과 아웃바운드 트래픽 인바운드 트래픽(inbound traffic)외부에서 가상서버 내부로 데이터가 유입될때 발생하는 트래픽을 말합니다. 예를들어, 클라이언트가 웹사이트에 접속했을 경우 클라이언트의 접속정보가 가상서버 내의 DB에 저장된다거나 클라이언트가 웹사이트에서 어떠한 정보가 필요하여 가상서버에 요청데이터를 보냈을때 발생하기도 합니다.그리고 FTP나 웹사이트 첨부파일 등으로 가상서버내로 파일을 전송하여 저장하는 것도 인바운드 트래픽이 발생됩니다. 아웃바운드 트래픽(outbound traffic)인바운드 트래픽과는 반대로, 가상서버 내에서 외부로 데이터가 전송되었을때의 트래픽을 발합니다. 아웃바운드의 경우 클라이언트가 웹사이트에서 어떤 정보를 요청하였을 때 해당 정보에 대한 데이터를 다시 클라이언트로 전송시 발생된 트래픽..
[분산처리] WAS 이중화와 세션클러스터링 WAS 이중화 방법 및 세션 클러스터링 로드밸런싱 방법에는 크게 두가지가 있습니다. 하나는 L4를 이용한 웹서버 로드밸런싱, 그리고 나머지는 WAS 로드밸런싱입니다. L4를 이용한 로드 밸런싱은 하드웨어 영역까지 컨트롤해야 하기때문에 상당히 난이도 있는 기술이라고 할 수 있지만, WAS 로드밸런싱은 아파치에서 제공하는 모듈을 이용하여 조금더 간단하게 설정할 수 있습니다. 일단 여기서 말하는 아파치는 WEB 서버이며, 톰캣에서 로드밸런싱을 지원하지는 않습니다. AJP를 통한 로드밸런싱은 Tomcat의 부하증가나 이중화시에 이용할수 있습니다. 아파치 모듈 중에는 mod_jk, mod_proxy을 이용해서 이중화를 해주는 것이 가능합니다. L4 로드밸런싱 방법은 HAProxy 같은 소프트웨어 혹은 L4 하드웨..
[분산처리] 대용량 세션을 위한 로드밸런서 대용량 서비스를 운영하려면 부하 분산은 필수입니다. 대용량 트래픽을 장애 없이 처리하려면 여러 대의 서버에 적절히 트래픽을 분배해야 합니다. 기존에는 세션 서버를 위한 로드밸런서로 DNS와 L4를 이용하였으나 네이버에서는 최적화된 분산을 위하여 로드밸런서를 직접 개발했다고 합니다. 본 포스팅은 학습을 위해 http://d2.naver.com/helloworld/605418 문서를 참조하여 작성했습니다. 기존 로드 밸런서의 제약 사항 DNS(Domain Name System) DNS는 도메인 이름을 IP 주소로 변환하는 기술입니다. 하나의 도메인 이름을 라운드로빈(Round Robin) 방식으로 여러 개의 IP 주소로 변환한다면 이것만으로도 쉽게 부하 분산이 가능합니다. 하지만 여기에는 두가지 단점이 있습..
[정보보안] JCA로 이해하는 암호화와 보안 Java는 오래전부터 자체적인 보안 관련 기능을 제공하고 있습니다. 보안 관련 기능 중에서 JCA(Java Cryptography Architecture)는 가장 핵심이라고 할 수 있습니다. JCA는 프로바이더 구조를 사용하면서 보안과 관련한 다양한 API를 제공합니다. JCA는 매우 다양한 기능을 제공하는데, 전자서명(Digital Signature), 메시지 다이제스트(MessageDigest, hashs), 인증서와 인증서 유효성 검사(Certificate Validation), 키 생성 및 관리 그리고 보안 랜덤 수(Secure Random Number) 생성 등 현대 정보 통신 암호 기술 중에서 필수적인 것은 모두 제공한다고 할 수 있습니다. JCA를 이용하면 암호화에 대한 매우 전문적인 지식이..