목록CS 지식/보안 (5)
개발놀이터

죄송합니다.. 블로그 인생 처음으로 어그로좀 끌어봤습니다... 이번 포스팅에선 비밀번호 암호화, 암호화 된 해시값을 추적하는 해킹 기법들, 그리고 어떻게 웹 개발자로서 방지할 수 있는지에 대해서 공부한 내용을 정리해보도록 하겠습니다. 비밀번호 암호화보통 비밀번호는 평문으로 저장하는건 위험하다고 알려져있습니다. 데이터베이스가 털렸을 때를 대비해서 비밀번호만큼은 지켜낸다는 일념인 것이죠. 데이터베이스를 털릴걸 가정하고 암호화를 한다니? 데이터베이스가 털릴걸 가정하고 암호화를 하는게 아니라 데이터베이스가 '털리더라도' 안전하게 지키는 것이 목적인 것이죠. 그런 의미에서 base64로 인코딩하는건 말도안되는 소리지요. base64는 역연산으로 얼마든지 비밀번호를 얻어낼 수 있으니까요. BCryptBCry..
요즘 많은 곳에서 JWT를 인증에 사용하시는 것 같습니다. 크게는 MSA를 사용하는 곳부터 세션 스토리지를 둘 여력이 없는 스타트업까지 다양하게 사용하고 계시는 것 같습니다. 물론 이런 흐름에 맞춰 저를 비롯한 많은 취준생분들도 포트폴리오에 인증 레이어를 JWT로 사용했다는 포트폴리오를 많이 봤습니다. 하지만 이런 상황은 면접관들에게 좋은 먹잇감이 되기 쉽다는 것을 취준할 때 면접보면서 깨달았죠. 지금은 현재 회사에서도 JWT를 이용해서 인증을 처리하고 있지만 고려해야 할 사항들이 세션보다 많아 제가 현업에서 겪었던 경험 + 다른 사람이 겪었던 경험 이렇게 혼합해서 정리를 해보려고합니다. JWT 사용시 주의사항세션을 이용해서 인증을 구현하면 서버가 여러대일 경우 문제가 발생할 수 있습니다. 그 ..
평소에 인증과 인가에 대해서 자세히 알고있지는 않았습니다. 사실 인가가 뭔지도 잘 몰랐습니다. 이참에 공부를 해야겠다고 생각이 들더군요. 때문에 이번 GPT에게 물어본 내용은 인증과 인가입니다. 거기에 제가 알고있던 부분을 첨가해서 포스팅 작성해보도록 하겠습니다. ※ GPT야 이것좀 알려줘 카테고리는 원래 제가 작성하는 주제 (자바, 스프링, CS, 알고리즘) 와 다른 하지만 평소에 궁금했던 내용을 작성합니다. GPT가 답변한 내용은 ~이다 체로, 제가 작성한 부분은 ~습니다 체로 작성됩니다. 인증과 인가 포스팅을 시작하기 전에 인증과 인가에 대한 정의를 먼저 말씀드리고 가야겠군요. 인증 : 말그대로 신뢰할 수 있는 사용자라고 인증하는 것 인가 : 사용자가 할 수 있는 행위를 제한하는 것 인증과 인가에 ..

이번 포스팅에선 흔히 SSL handshake로 알려져있는 프로토콜에 대해서 알아보도록 하겠습니다. 여러분이 HTTPS URL을 사용한 적이 있으시다면 SSL handshake를 반드시 진행했을겁니다. SSL handshake의 목적은 서버와 클라이언트간 통신에서 데이터 무결성과 클라이언트의 프라이버시를 지켜주기 위한 것입니다. 포스팅에 진행하기 앞서 공개키 암호화에 대한 내용을 알고 계시면 더 나은 이해가 될 것 같습니다. 아래의 링크를 통해 공개키 암호화에 대한 내용을 확인하시면 됩니다! https://coding-review.tistory.com/329 공개키 암호화 이번 포스팅에서는 공개키 암호화에 대해서 알아보도록 하겠습니다. 공개키 암호화는 개인키 암호화와 묶여서 설명이 가능한데요. 보통 공개..

이번 포스팅에서는 공개키 암호화에 대해서 알아보도록 하겠습니다. 공개키 암호화는 개인키 암호화와 묶여서 설명이 가능한데요. 보통 공개키와 개인키는 SSL handshake에서 사용됩니다. 아직 SSL handshake에 대한 포스팅이 없어서 자세히 설명은 못해드리지만 요약하자면 이겁니다. "인증기관에 인증서를 보내고 인증서는 서버의 공개키로 암호화 되어있습니다. 클라이언트는 본인의 개인키로 인증서를 decrypt할 수 있고 내용을 확인할 수 있다." 이번 시간에는 SSL handshake 의 과정에 해당하는 공개키 암호화, 개인키 암호화에 대해서 알아볼까합니다. 그럼 시작해보죠 공개키 암호화 공개키와 개인키로 암호화하고 이를가지고 통신하는 것은 비대칭키 암호화라고 부릅니다. 맞습니다. 대칭키 암호화도 있..