CS/Security

    [Security] 복무하며 사용한 Spring Secure Coding

    세상에는 수많은 해킹 기법들이 있다. 학부생 때 컴퓨터 시스템 개론 과목을 들으면서 attack lab을 하며 buffer overflow를 처음 배우고 사용해 봤을 때의 충격이란... 정말 놀라웠다. 사실상 프로그램에 원하는 명령어를 넣는다는 것은 관리자 권한을 얻을수 있다는 말이고, 즉슨 해당 프로그램의 사용자 정보를 탈취하거나 서버 정보에 악의적인 공격을 해 막대한 손해를 끼칠 수 있다는 말이다. 따라서 코드를 작성할 때 이러한 공격을 방지할 수 있어야 한다. secure coding은 보안 취약점이 없는 코드를 작성한다는 의미이며, 안정적인 서비스를 위해 꼭 필요한 개념이다. 지금까지 SW개발병으로 근무하면서 수많은 보안 취약점들을 보아 왔고, 그 중 대표적인 몇 가지에 대해 어떤 문제가 있는지,..

    [Security] 1:1, group E2EE 암호화 방법 ***TODO

    (작성 중 - 암호화 로직(소인수분해, 이산대수), 디피헬만 작성하기) 읽기 전에 비대칭키 암호화(public/private key), 대칭키 암호화(shared key)에 대해 알고 있어야 합니다. 대칭키 암호화 암호화와 복호화를 할 때 같은 키를 사용하는 암호화 방식입니다. Alice가 Bob에게 메시지를 보낸다고 가정했을 때 프로토콜은 아래와 같습니다. Alice와 Bob이 shared key를 공유합니다. Alice는 shared key로 메시지를 암호화합니다. 해당 암호문을 Bob에게 전달합니다. Bob은 전달받은 암호문을 shared key로 해독합니다. 비대칭키 암호화 암호화와 복호화를 할 때 다른 키를 사용하는 암호화 방식입니다. 공개키-개인키가 한 쌍을 이루며, 공개키로 암호화한 암호문은..