JAVA [JAVA] Bouncy Castle로 LEA/ARIA 블록 암호화 하기 C/C++ 예제는 많은데... 예전부터 국산 암호화 기술에 관심은 많았는데, 이상할 정도로 Java나 Kotlin으로 작성된 예제는 그렇게 많지 않았다. 심지어 KISA 공식 홈페이지에서도 LEA 블록 암호화 알고리즘 정도나 암호화 모드별로 샘플 소스코드가 제공되고 있고, ARIA는 엔진 코드만 제공되어 있을 정도로 Java 진영에서는 찬밥 취급이다. 아마도 국내에서는 해당 알고리즘들이 DRM 위주로만
Spring Mustache CSRF 적용하기 더 이상의 CSRF disable은 NO! 보통 스프링 시큐리티 설명을 위한 글들을 보면 Config 코드에 다음과 같이 작성된 코드를 많이 볼 수 있다. http.csrf().disable().build(); // 혹은 http.csrf(CsrfConfigurer::disable) 코드만 봐도 알겠지만, 이는 HttpSecurty에서 CSRF 보안을 사용하지 않도록 설정하는 것이다. 물론 예제나 테스트를 위한 프로젝트에서는 꺼도 상관없겠지만, 실제로
JAVA Java에서 Random 클래스를 사용하지 말자 SonarLint에서 수상쩍은 경고가 떴다 SonarLint 혹은 SonarQube를 쓰는 경우, Random 객체를 사용했을 때 다음과 같은 이슈를 본 사람이 있을지도 모른다. "Random" objects should be reused 위의 경고는 Random rand = new Random(); 같이 코드를 작성했을 때 발생한다. 이런 경고가 발생하는 이유는 난수를 발생할 때 사용할 시드를 그때마다 생성시키는 비효율성
Algorithm [보안] 단방향 암호화 / 양방향 암호화란? 소프트웨어를 개발할 때, 외부 유출에 민감한 데이터를 다룬다면 좋든 싫든 데이터 암호화를 고려할 수 밖에 없다. 이 때 일반적으로 패스워드는 단방향 암호화 알고리즘을, 그 외의 개인을 식별할 수 있는 정보나 원본 데이터로 복구가 필요한 데이터는 양방향 암호화 알고리즘을 통해 암호화 한다. 암호화면 암호화지 또 뭔 단방향, 양방향으로 나뉜다는 것일까? 단방향,