본문 바로가기

전체 글87

Properties 암호화하기 지금 하고 있는 프로젝트에서 Aws Config 를 세팅하는 도중 accessKey 와 secretKey 를 프로퍼티에 등록하려고 한다. 근데 너무 날것(?) 으로 입력하면 보안이슈도 있고... 뭔가 하수같단말이지!!! 그래서 해당값을 Jasypt(Java Simplified Encryption) 를 이용하여 암호화해서 넣어보려한다. 우선 간단하게 암호화해서 입력할수 있도록 간단한 function 작성을 위해 Jasypt 라이브러리 추가 implementation 'com.github.ulisesbocchio:jasypt-spring-boot-starter:3.0.4' 그런다음 암호화 함수작성 public static void encProcess() { StandardPBEStringEncryptor s.. 2023. 10. 12.
JWT에 대한 고찰 로그인시 JWT 를 어디다 보관해야할지, 어떻게 보관해야 안전할 지 골똘히 생각하다가 정리하는 포스팅.. 일단 JWT 를 왜쓰는걸까? 남들이 다 써서^^? 걍 기존 시스템이 jwt라? 위에서 시켜서?? 물론 남들이 많이 쓰는덴 다 이유가 있다. JWT 는 stateless 해서 쓴다. 사용자 정보를 DB에 저장해놓고 요청할때 마다 I/O 해서 검증하는건 stateful 한 방식인 세션방식이다. On-premise(온-프레미스) → Cloud(클라우드) 시스템으로 넘어가면서 수평적확장(Horizontal Scale Out) 방식을 쓴다. 즉, 사용자가 1000명이었을 땐 서버가 1개였다가 갑자기 급증해서 10000명이 되면 클라우드 플랫폼이 이를 감지하여 서버를 10개 늘리는걸 수평적 확장이라 한다. 이게.. 2023. 9. 13.
HttpOnly + Secure Cookies 생성 Https 로 설정까지 마쳤다면 HttpOnly 쿠키를 설정해보자 로그인 시 Refresh 토큰발급을 HttpOnly 쿠키로 발급하고자한다. httpOnly란 Set-Cookie HTTP reponse 헤더에 포함되는 flag이다. cookie를 생성할 때 HttpOnly를 사용하는 것은 브라우저가 HttpOnly를 지원할 경우 쿠키는 클라이언트 측 스크립트에 접근할 수 없다. 악성 스크립트(XSS 공격)에 의한 위험을 완화시켜준다. 즉, http only 쿠키 방식으로 저장된 정보는 Javscript의 Document.cookieAPI로 접근이 불가능하다. 따라서 XSS 취약점 공격으로 담긴 값을 불러올 수 없다. 또한 CSRF 공격도 막을 수 있다. 1. 쿠키생성 ResponseCookie.from(.. 2023. 9. 12.
HTTPS(SSL) 적용 http 가 아닌 https 통신을 하기위해 로컬에 SSL 적용하는 법을 정리했다. 일반적인 정보는 Http로 통신해도 상관이 없지만, 개인정보나 ID/PW 같은 민감한 정보는 암호화를 통해 통신을 해야하기에 SSL을 적용해보고자 한다. Java에는 릴리스에 keytool 유틸리티가 포함되어 있으므로 굳이 따로 설치할 필요는 없다. 아래 명령어를 이용하여 만들자 keytool -genkey -alias bmex-ssl -storetype PKCS12 -keyalg RSA -keysize 2048 -keystore bmaxkeystore.p12 -validity 3650 -alias bmex-ssl : alias 를 bmex-ssl 로 지정 -keystore bmaxkeystore.p12 : 키스토어를 .. 2023. 9. 11.